版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)生信息管理系統(tǒng)1引言1.1工程背景隨著信息技術(shù)在管理上越來(lái)越深入而廣泛的應(yīng)用,管理信息系統(tǒng)的實(shí)施在技術(shù)上已逐步成熟。管理信息系統(tǒng)是一個(gè)不斷開(kāi)展的新型學(xué)科,任何一個(gè)單位要生存要開(kāi)展,要高效率地把內(nèi)部活動(dòng)有機(jī)地組織起來(lái),就必須建立與自身特點(diǎn)相適應(yīng)的管理信息系統(tǒng)。目前,在學(xué)校里,隨著高校規(guī)模的不斷擴(kuò)大和招生人數(shù)的不斷增加,需要處理大量的學(xué)生數(shù)據(jù)信息。如何更好的組織學(xué)生信息,更加快捷的管理學(xué)生信息顯得尤為的重要。作為計(jì)算機(jī)應(yīng)用的一局部,使用計(jì)算機(jī)對(duì)學(xué)生信息進(jìn)行管理,有著手工管理所無(wú)法比較的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、本錢(qián)低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生信息管理的效率,也是學(xué)校的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。我們?yōu)榇碎_(kāi)發(fā)了一套學(xué)生信息管理系統(tǒng),本系統(tǒng)面向?qū)W校的教務(wù)人員,目的是為學(xué)校辦公管理提供一個(gè)快速、簡(jiǎn)單標(biāo)準(zhǔn)的管理平臺(tái),使學(xué)院在學(xué)生信息管理方面更加標(biāo)準(zhǔn)化,快捷化。1.2工程目標(biāo)本章以學(xué)校的學(xué)生信息管理為依托,結(jié)合教務(wù)教學(xué)管理,設(shè)計(jì)并開(kāi)發(fā)一個(gè)學(xué)生信息管理系統(tǒng),提供一個(gè)信息更新快捷、管理方便、功能設(shè)置合理的學(xué)生信息管理解決方案。針對(duì)學(xué)校大量的學(xué)生信息,就學(xué)生管理的幾個(gè)方面,提供一個(gè)互動(dòng)式的學(xué)生管理平臺(tái)。系統(tǒng)目標(biāo)如下:通過(guò)學(xué)生信息管理系統(tǒng)的實(shí)現(xiàn),使學(xué)校的學(xué)生信息管理更加科學(xué)化。提供靈活、方便的操作。節(jié)約學(xué)生信息管理的本錢(qián),提高學(xué)校管理的效率。對(duì)系統(tǒng)提供必要的權(quán)限管理。為學(xué)校考核學(xué)生的綜合素質(zhì)提供必要的數(shù)據(jù)支持。2需求分析2.1系統(tǒng)需求在各大中專(zhuān)院校,學(xué)校的教務(wù)管理的主要內(nèi)容包括學(xué)生的信息管理和教師排課,學(xué)生信息管理傳統(tǒng)的手工管理主要包括學(xué)生檔案管理,學(xué)生成績(jī)管理。其中學(xué)生信息管理對(duì)大數(shù)據(jù)量要求較高,而教師排課系統(tǒng)由于需要十分專(zhuān)業(yè)的算法并且系統(tǒng)需求不斷的變化,因此在實(shí)際應(yīng)用時(shí),往往會(huì)遇到很大的問(wèn)題,需要進(jìn)一步研究,目前一般的學(xué)校管理系統(tǒng)都包含了學(xué)生信息管理的功能。本系統(tǒng)不包含教師排課管理和教師管理的詳細(xì)業(yè)務(wù),只提供學(xué)生相關(guān)信息信息的查詢(xún)。2.2功能需求根據(jù)上述的信息管理系統(tǒng)的業(yè)務(wù)流程、要求以及所要實(shí)現(xiàn)的目標(biāo),我們可以擬出以下需求目標(biāo):〔1〕建立學(xué)生檔案的管理和維護(hù)。實(shí)現(xiàn)計(jì)算機(jī)自動(dòng)化管理體制。〔2〕建立學(xué)生成績(jī)管理機(jī)制,在計(jì)算機(jī)的支持下快速的完成學(xué)生成績(jī)的查詢(xún)和修改。〔3〕建立課程設(shè)置管理,在計(jì)算機(jī)的支持下實(shí)現(xiàn)課程的添加、刪除、修改?!?〕建立班級(jí)設(shè)置管理,在計(jì)算機(jī)的支持下實(shí)現(xiàn)班級(jí)的添加、刪除和修改?!?〕實(shí)現(xiàn)系統(tǒng)的權(quán)限設(shè)置管理,保證系統(tǒng)平安性。根據(jù)系統(tǒng)的需求分析,得到本系統(tǒng)的功能要求如下:〔1〕班級(jí)、課程的設(shè)置管理:學(xué)校的教務(wù)秘書(shū)可以根據(jù)本校具體情況在每學(xué)期開(kāi)始時(shí)設(shè)置所需班級(jí)數(shù)量和人數(shù)。并設(shè)置本學(xué)期的課程。〔2〕權(quán)限管理:為了很好的保證系統(tǒng)的平安性,學(xué)校相關(guān)負(fù)責(zé)人可以設(shè)置不同類(lèi)型的人員的權(quán)限?!?〕學(xué)生檔案管理:學(xué)生檔案的數(shù)量十分龐大,教務(wù)管理人員進(jìn)行新生入學(xué)的檔案錄入及更改。其中包括學(xué)生個(gè)人信息的修改。〔4〕學(xué)生成績(jī)管理:教務(wù)管理人員可以查詢(xún)和修改學(xué)生的歷年考試成績(jī),掌握學(xué)生學(xué)習(xí)情況,作為評(píng)定學(xué)生素質(zhì)的數(shù)據(jù)依據(jù)。2.3性能需求系統(tǒng)的運(yùn)行對(duì)于運(yùn)行環(huán)境的要求是;1.硬件環(huán)境目前,我們所開(kāi)發(fā)的系統(tǒng)主要是應(yīng)用在中小規(guī)模的學(xué)校內(nèi)部,因此,一般配置的計(jì)算機(jī)硬件就可以滿(mǎn)足系統(tǒng)需求。考慮到學(xué)校規(guī)模的擴(kuò)大和硬件價(jià)格的降低,為本系統(tǒng)配置在較優(yōu)秀的效勞器硬件,可以充分發(fā)揮本系統(tǒng)性能。處理器:IntelPentium43.06GX或更高內(nèi)存:256M〔推薦〕硬盤(pán)空間:40GB顯卡:SVGA顯示適配器 2.軟件環(huán)境操作系統(tǒng):Windows2000/XP開(kāi)發(fā)軟件:MicrosoftVisualStudio.NET2003數(shù)據(jù)庫(kù):MicrosoftSQLServer20003總體設(shè)計(jì)3.1設(shè)計(jì)思想與處理流程本系統(tǒng)采用面向?qū)ο蠓椒ㄟM(jìn)行分析和設(shè)計(jì),在SQLServer2000數(shù)據(jù)庫(kù)上實(shí)現(xiàn)數(shù)據(jù)操作。使用純面向?qū)ο蟮腃#語(yǔ)言作為開(kāi)發(fā)語(yǔ)言,使用Windows2000作為開(kāi)發(fā)平臺(tái),能夠很好的實(shí)現(xiàn)系統(tǒng)的開(kāi)發(fā)及測(cè)試。系統(tǒng)的根本流程是:用戶(hù)登陸→主界面→選擇各項(xiàng)子系統(tǒng)。3.2系統(tǒng)層次模塊圖 “學(xué)生信息管理系統(tǒng)〞主要分為登錄、新生信息錄入、學(xué)生信息查詢(xún)、更新學(xué)生信息、學(xué)生成績(jī)錄入、學(xué)生成績(jī)查詢(xún)、權(quán)限管理、密碼管理、班級(jí)管理、課程管理等10個(gè)模塊。系統(tǒng)主模塊功能樹(shù)如圖2-1所示:學(xué)生信息管理系統(tǒng)更新學(xué)生信息學(xué)生成績(jī)錄入學(xué)生成績(jī)查詢(xún)登錄密碼管理權(quán)限管理班級(jí)管理課程管理新生信息錄入學(xué)生信息查詢(xún)學(xué)生信息管理系統(tǒng)更新學(xué)生信息學(xué)生成績(jī)錄入學(xué)生成績(jī)查詢(xún)登錄密碼管理權(quán)限管理班級(jí)管理課程管理新生信息錄入學(xué)生信息查詢(xún)圖2-1“學(xué)生信息管理系統(tǒng)〞系統(tǒng)主模塊功能樹(shù)3.3模塊設(shè)計(jì)1.登錄模塊:輸入用戶(hù)名稱(chēng)和密碼,如果用戶(hù)名、密碼正確,進(jìn)入主控制平臺(tái);否那么給出錯(cuò)誤信息提示。2.系統(tǒng)維護(hù)模塊:權(quán)限管理子模塊:系統(tǒng)管理員進(jìn)行用戶(hù)權(quán)限設(shè)置和初始密碼的設(shè)置。密碼修改子模塊:登陸系統(tǒng)用戶(hù)可以隨時(shí)修改自己的密碼,保證密碼的有效性和保密性。班級(jí)管理子模塊:在新學(xué)期開(kāi)始或每學(xué)期中間需要開(kāi)設(shè)新的課程時(shí)可以在本模塊進(jìn)行班級(jí)的設(shè)置和維護(hù)。課程設(shè)置子模塊:在每學(xué)期開(kāi)始需要進(jìn)行本學(xué)期需要開(kāi)設(shè)課程的設(shè)置。在某一課程發(fā)生變動(dòng)時(shí)可以進(jìn)行課程的維護(hù),包括修改課程的名稱(chēng)、學(xué)分等,也可以刪除某一課程。3.學(xué)生信息管理模塊:新生信息錄入子模塊:在每學(xué)年開(kāi)始或中間可以進(jìn)行學(xué)生信息的錄入,包括學(xué)生的根本信息等。學(xué)生信息查詢(xún)子模塊:方便教務(wù)管理人員快速的查找某一學(xué)生。分為按照學(xué)生的姓名進(jìn)行查找和按照學(xué)生的所在班級(jí)名進(jìn)行查找。利于管理人員隨時(shí)掌握學(xué)生信息。更新學(xué)生信息子模塊:教務(wù)管理人員可以隨時(shí)更改學(xué)生的某些信息,包括學(xué)生姓名、身份證號(hào)、班級(jí)等信息的更改。4.學(xué)生成績(jī)管理模塊:學(xué)生成績(jī)錄入子模塊:按照學(xué)生考試的時(shí)間和課程錄入學(xué)生的考試成績(jī)。學(xué)生成績(jī)查詢(xún)子模塊:方便教務(wù)管理人員快速的查找某一學(xué)生的成績(jī)。分為按照學(xué)生的姓名進(jìn)行查找和按照學(xué)生的所在班級(jí)名進(jìn)行查找。利于管理人員隨時(shí)掌握學(xué)生考試信息。5.幫助信息模塊:顯示系統(tǒng)的開(kāi)發(fā)版本和系統(tǒng)說(shuō)明信息。4數(shù)據(jù)庫(kù)設(shè)計(jì) 1.SQLServer2000數(shù)據(jù)庫(kù)建立過(guò)程首先把SQLServer2000的“效勞管理器〞翻開(kāi),鼠標(biāo)左鍵單擊“開(kāi)始/繼續(xù)〞按鈕,然后在“開(kāi)始〞→“程序〞內(nèi)選擇“MicrosoftSQLServer〞→“企業(yè)管理器〞。展開(kāi)左邊的程序樹(shù),如圖2-2所示。圖2-2翻開(kāi)企業(yè)管理器在“數(shù)據(jù)庫(kù)〞文件夾圖標(biāo)上單擊鼠標(biāo)右鍵,選擇“新建數(shù)據(jù)庫(kù)〞,彈出新建數(shù)據(jù)庫(kù)窗體,如圖2-3所示。圖2-3新建數(shù)據(jù)庫(kù)窗體在“名稱(chēng)〞文本框內(nèi),輸入新建數(shù)據(jù)庫(kù)的名稱(chēng),在此輸入“StuMagSys〞,新建學(xué)生信息管理數(shù)據(jù)庫(kù)。其他選項(xiàng)默認(rèn)即可。然后,開(kāi)始建立本系統(tǒng)需要的數(shù)據(jù)庫(kù)表,方法如下:首先,在新建的數(shù)據(jù)庫(kù)上單擊鼠標(biāo)右鍵,選擇“新建〞→“表〞,如圖2-4所示。圖2-4新建表然后,在彈出的窗體內(nèi)輸入表字段和類(lèi)型以及長(zhǎng)度和是否允許空等信息,如圖2-5所示。圖2-5新建表窗體輸入完表字段后,為表的字段添加主鍵、約束和關(guān)系等,方法是在添加約束或關(guān)系的字段上單擊鼠標(biāo)右鍵,選擇“設(shè)置主鍵〞或“關(guān)系〞等。如圖2-6所示。圖2-6創(chuàng)立主鍵保存該表,命名為Student。接下來(lái)在建立本章需要的其他表,在此不再詳述了。接下來(lái)就是如何向已經(jīng)建立好的數(shù)據(jù)表內(nèi)輸入數(shù)據(jù)了,方法如下,首先在建立好的表上單擊鼠標(biāo)右鍵,選擇“翻開(kāi)表〞→“返回所有行〞,如圖2-7所示。圖2-7翻開(kāi)表然后在彈出的窗體內(nèi)輸入數(shù)據(jù),輸入結(jié)束后,鼠標(biāo)左鍵單擊工具欄上的運(yùn)行圖標(biāo),保存數(shù)據(jù),如圖2-8所示。圖2-8為表添加數(shù)據(jù)窗體2.表結(jié)構(gòu)實(shí)現(xiàn)根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,對(duì)于系統(tǒng)用戶(hù)信息數(shù)據(jù)庫(kù),可以列出以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):〔1〕、名稱(chēng):學(xué)生信息表表名稱(chēng)標(biāo)識(shí):Student表數(shù)據(jù)來(lái)源:新生信息錄入模塊進(jìn)行錄入。表2-1學(xué)生信息表〔Student〕字段名字段類(lèi)型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名Student_idint4PNotnull學(xué)號(hào)Student_namenvarchar10Notnull姓名Sexchar2性別Birthsmalldatatime4出生年月Nationchar8民族Class_idint4Notnull班級(jí)號(hào)Entrance_datesmalldatetimeNotnull入學(xué)時(shí)間homenvarchar40家庭地址politicchar10政治面貌IDnvarchar18身份證號(hào)Jobnvarchar20職位specialtynvarchar20所學(xué)專(zhuān)業(yè)〔2〕、名稱(chēng):學(xué)生成績(jī)表表名稱(chēng)標(biāo)識(shí):Student_course表數(shù)據(jù)來(lái)源:學(xué)生成績(jī)錄入模塊進(jìn)行錄入。表2-2學(xué)生成績(jī)表〔Student_course〕字段名字段類(lèi)型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名Course_idint4PNotnull課程號(hào)Student_idint4PNotnull學(xué)號(hào)Gradefloat8Notnull成績(jī)SC_semesterSmallint2Notnull學(xué)期School_yearSmallint2Notnull學(xué)年〔3〕、名稱(chēng):班級(jí)表表名稱(chēng)標(biāo)識(shí):class表數(shù)據(jù)來(lái)源:班級(jí)管理模塊進(jìn)行錄入表2-3班級(jí)表〔class〕字段名字段類(lèi)型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名Class_idInt4pNotnull班級(jí)號(hào)Gradechar10年級(jí)Class_namenvarchar40Notnull班級(jí)名稱(chēng)SumStuInt4班級(jí)人數(shù)MaxNumint4最大人數(shù)〔4〕、名稱(chēng):課程表表名稱(chēng)標(biāo)識(shí):course表數(shù)據(jù)來(lái)源:課程管理模塊進(jìn)行錄入表2-4課程表〔course〕字段名字段類(lèi)型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名Course_idInt4PNotnull課程號(hào)Course_nameCredit20Notnull課程名CreditSmallint2學(xué)分〔5〕、名稱(chēng):用戶(hù)表表名稱(chēng)標(biāo)識(shí):Syuser表數(shù)據(jù)來(lái)源:權(quán)限管理模塊進(jìn)行錄入表2-5用戶(hù)表〔Syuser〕字段名字段類(lèi)型長(zhǎng)度主/外鍵字段值約束對(duì)應(yīng)中文名User_idchar10PNotnull用戶(hù)編號(hào)User_name10Notnull用戶(hù)名User_role10用戶(hù)角色Password8密碼5詳細(xì)設(shè)計(jì)本系統(tǒng)主要實(shí)現(xiàn)學(xué)生信息的瀏覽、查詢(xún)、編輯、添加和刪除,同時(shí)對(duì)班級(jí)和課程進(jìn)行管理,增加權(quán)限的管理。根據(jù)已有的需求分析和總體設(shè)計(jì),我們?cè)诖烁咨蟻?lái)進(jìn)行系統(tǒng)的詳細(xì)設(shè)計(jì)和實(shí)現(xiàn),為此,我們建立了一個(gè)C#.NET工程。在“開(kāi)始〞菜單中找到“MircoSoftVisualStudio.Net2003〞,啟動(dòng)應(yīng)用程序,鼠標(biāo)單擊“文件〞→“新建〞→“工程〞,單擊“VisualC#工程〞,建立一個(gè)“Windows應(yīng)用程序〞,命名為“StudentManagementSystem〞,位置默認(rèn)。如圖2-9所示。圖2-9新建C#工程窗體然后我們把這個(gè)工程生成的默認(rèn)窗體作為本系統(tǒng)的主窗體,我們?cè)傧蜻@個(gè)工程中添加一個(gè)窗體,鼠標(biāo)單擊“工程〞→“添加Windows窗體〞,輸入窗體名稱(chēng)為“Login〞把新添加的窗體作為登陸窗體,調(diào)整窗體大小到適宜值。修改該窗體的name屬性為“Login〞,text屬性為“用戶(hù)登陸〞,StartPosition屬性為“CenterScreen〞,其他屬性默認(rèn)。我們接下來(lái)的所有窗體文件都是使用這種方法在這個(gè)工程中添加。5.1登錄模塊的設(shè)計(jì)與實(shí)現(xiàn)1.用戶(hù)身份驗(yàn)證IPO圖輸入:用戶(hù)名和密碼。處理:(1)用戶(hù)登錄窗體啟動(dòng)。(2)輸入用戶(hù)名和密碼。(3)從用戶(hù)信息表中檢查是否有相應(yīng)的用戶(hù)名和密碼。(4)如果用戶(hù)名或密碼為空或者錯(cuò)誤,進(jìn)行提示。(5)如果輸入的用戶(hù)名和密碼正確,那么允許該用戶(hù)進(jìn)入系統(tǒng)。(6)進(jìn)入主控制平臺(tái)。輸出:主控制平臺(tái)。2.用戶(hù)登錄模塊的窗體設(shè)計(jì),如圖2-10所示:圖2-10用戶(hù)登錄模塊的窗體效果3.用戶(hù)登錄模塊的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.SqlClient;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.Labellabel1; privateSystem.Windows.Forms.Labellabel2; privateSystem.Windows.Forms.Buttonlogin_butt; privateSystem.Windows.Forms.ButtonLogout_butt; privateSystem.Windows.Forms.TextBoxUser_name; privateSystem.Windows.Forms.TextBoxPasswords; publicstaticStringUsername="";//保存用戶(hù)登陸名,以便以后使用。 publicstaticboolloginOrnot;//判斷用戶(hù)登陸成功與否。 privatestringstrconn;//查詢(xún)更新數(shù)據(jù)庫(kù)字符串。 privatestringconnstr="workstationid=localhost;IntegratedSecurity=SSPI;database=StuMagSys";//連接數(shù)據(jù)庫(kù)字符串。 privateSqlDataAdaptersqlda;//查詢(xún)數(shù)據(jù)庫(kù)時(shí)使用的適配器。privateDataSetdset=newDataSet();//保存查詢(xún)結(jié)果的數(shù)據(jù)集。 privateSqlConnectionmyconn;//數(shù)據(jù)庫(kù)連接。 privateDataTablemytable;//查詢(xún)返回的數(shù)據(jù)表。 privateDataRowUserrows;//表中的行。 privateSystem.Windows.Forms.GroupBoxgroupBox1; privateSystem.Windows.Forms.GroupBoxgroupBox2; privateSystem.ComponentModel.Containercomponents=null; /*此處省略程序自動(dòng)生成的代碼*/ privatevoidlogin_butt_Click(objectsender,System.EventArgse) { try { strconn="select*fromsyuserwhereUse_name="+"'"+this.User_name.Text.ToString().Trim()+"'";//根據(jù)用戶(hù)輸入的用戶(hù)名和密碼初始化查詢(xún)更新數(shù)據(jù)庫(kù)字符串 myconn=newSqlConnection(connstr); sqlda=newSqlDataAdapter(strconn,myconn); dset.Clear(); sqlda.Fill(dset,"syuser"); mytable=dset.Tables[0];//查詢(xún)的結(jié)果在Tables[0]中。 for(intj=0;j<mytable.Rows.Count;j++) { Userrows=mytable.Rows[j]; if(Userrows[1].ToString().Trim()==this.User_name.Text.ToString().Trim()&&Userrows[3].ToString().Trim()==this.Passwords.Text.ToString().Trim()){ loginOrnot=true; Username=Userrows[1].ToString().Trim(); this.Close(); } else { MessageBox.Show("用戶(hù)名/密碼錯(cuò)誤!請(qǐng)重試!","確認(rèn)",MessageBoxButtons.OK); loginOrnot=false; this.User_name.Text=""; this.Passwords.Text=""; } } } catch(Exceptionex) { MessageBox.Show(ex.ToString(),"確認(rèn)",MessageBoxButtons.YesNoCancel); } return; } privatevoidLogout_butt_Click(objectsender,System.EventArgse) { loginOrnot=false; this.Close(); } }}5.2主操作頁(yè)面效果1.主控制平臺(tái)的窗體設(shè)計(jì),如圖2-11所示:圖2-11用戶(hù)登錄模塊的窗體效果2.窗體和控件特殊屬性的設(shè)置:控件控件名稱(chēng)MainMenuStuMenuStatusBarMainstatusBar3.主控制平臺(tái)的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.MenuItemmenuItem1; privateSystem.Windows.Forms.MenuItemmenuItem2; privateSystem.Windows.Forms.MenuItemmenuItem7; privateSystem.Windows.Forms.StatusBarMainstatusBar; privateSystem.Windows.Forms.MainMenuStuMenu; privateSystem.Windows.Forms.MenuItemNewstu; privateSystem.Windows.Forms.MenuItemQueryStu; privateSystem.Windows.Forms.MenuItemInputGrade; privateSystem.Windows.Forms.MenuItemQueryStuGrade; privateSystem.Windows.Forms.MenuItemUpdateRole; privateSystem.Windows.Forms.MenuItemExitSys; privateSystem.Windows.Forms.MenuItemUpdateStu; privateSystem.Windows.Forms.MenuItemAddClass; privateSystem.Windows.Forms.MenuItemChgPsw; privateSystem.Windows.Forms.MenuItemmenuItem3; privateSystem.Windows.Forms.PictureBoxpictureBox1; privateSystem.Windows.Forms.MenuItemStu_JC; privateSystem.Windows.Forms.MenuItemmenuItem4; privateSystem.ComponentModel.Containercomponents=null; publicMainFrm() { InitializeComponent(); this.MainFrm_Load(); } /*此處省略程序自動(dòng)生成的代碼*/ staticvoidMain() { Loginlog=newLogin(); log.ShowDialog(); if(Login.loginOrnot==true)Application.Run(newMainFrm()); } //根據(jù)登陸的用戶(hù)名設(shè)置窗體狀態(tài)。 privatevoidMainFrm_Load() { this.MainstatusBar.Text="歡送使用學(xué)生信息管理系統(tǒng):"+Login.Username; } //-----------顯示學(xué)生信息查詢(xún)窗體--------- privatevoidQueryStu_Click(objectsender,System.EventArgse) { QueryStuQryStu=newQueryStu(); QryStu.Show(); } //-----------顯示更新學(xué)生信息窗體--------- privatevoidUpdateStu_Click(objectsender,System.EventArgse) { UpdateStuupdstu=newUpdateStu(); updstu.Show(); } //-----------顯示學(xué)生成績(jī)錄入窗體--------- privatevoidInputGrade_Click(objectsender,System.EventArgse) { InputGradeinptgrade=newInputGrade(); inptgrade.Show(); } //-----------顯示學(xué)生成績(jī)查詢(xún)窗體--------- privatevoidQueryStuGrade_Click(objectsender,System.EventArgse) { QueryStuGradeqrystu=newQueryStuGrade(); qrystu.Show(); } //-----------顯示權(quán)限管理窗體--------- privatevoidUpdateRole_Click(objectsender,System.EventArgse) { UpdateRoleupdrole=newUpdateRole(); updrole.Show(); } //-----------顯示新生信息錄入窗體--------- privatevoidNewstu_Click(objectsender,System.EventArgse) { NewStunfrm=newNewStu(); nfrm.Show(); } //-----------退出主界面--------- privatevoidExitSys_Click(objectsender,System.EventArgse) { if(MessageBox.Show("您確認(rèn)要退出本系統(tǒng)?","確認(rèn)",MessageBoxButtons.YesNoCancel)==DialogResult.Yes) this.Close(); } //-----------顯示密碼修改窗體--------- privatevoidChgPsw_Click(objectsender,System.EventArgse) { ChgPswChangePsw=newChgPsw(); ChangePsw.Show(); } //-----------顯示班級(jí)管理窗體--------- privatevoidAddClass_Click(objectsender,System.EventArgse) { NewClassNewC=newNewClass(); NewC.Show(); } //-----------顯示課程管理窗體--------- privatevoidAddcour_Click(objectsender,System.EventArgse) { AddCourseAdCour=newAddCourse(); AdCour.Show(); } //-----------顯示幫助窗體--------- privatevoidSysHlp_Click(objectsender,System.EventArgse) { SysHelphp=newSysHelp(); hp.Show(); } }}5.3系統(tǒng)維護(hù)模塊模塊的設(shè)計(jì)與實(shí)現(xiàn)1.權(quán)限管理模塊的設(shè)計(jì)與實(shí)現(xiàn)權(quán)限管理模塊負(fù)責(zé)整個(gè)系統(tǒng)的平安性,只能增加新的用戶(hù)而不能修改、刪除用戶(hù),這樣保證了系統(tǒng)的惡意操作、誤刪除等情況出現(xiàn)?!?〕.權(quán)限管理模塊實(shí)現(xiàn)的功能權(quán)限管理模塊主要實(shí)現(xiàn)增加新的用戶(hù)和并設(shè)定該用戶(hù)權(quán)限和設(shè)置初始密碼?!?〕.權(quán)限管理模塊實(shí)現(xiàn)的效果權(quán)限設(shè)置模塊的窗體設(shè)計(jì)效果如圖2-12所示。圖2-12權(quán)限管理模塊的窗體效果〔3〕.權(quán)限管理模塊的IPO圖功能:從對(duì)話框中取得新的用戶(hù)名和密碼以及相應(yīng)的職務(wù),寫(xiě)入到數(shù)據(jù)庫(kù)內(nèi)的Syuser表中。輸入:用戶(hù)名、初始密碼和職務(wù)處理:權(quán)限管理窗體啟動(dòng)。在用戶(hù)名、密碼輸入對(duì)話框中取得用戶(hù)名和密碼,在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的Syuser表內(nèi)查找該用戶(hù)名如果已存在該用戶(hù)名,那么提示錯(cuò)誤信息,否那么在Syuser表內(nèi)添加一條新的記錄輸出:對(duì)用戶(hù)表Syuser進(jìn)行記錄添加〔4〕.權(quán)限管理模塊的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.SqlClient;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.TextBoxUserName; privateSystem.Windows.Forms.TextBoxPsw; privateSystem.Windows.Forms.ButtonNewUserOk; privateSystem.Windows.Forms.ButtonNewUserCanl; privateSystem.Windows.Forms.ComboBoxRoleItem; privatestringNewRoleStrConn; privateSqlConnectionNewRoleConn; privateSqlCommandNewRoleComd; /*此處省略程序自動(dòng)生成的代碼*/ privatevoidNewUserCanl_Click(objectsender,System.EventArgse) { if(MessageBox.Show("您確認(rèn)要退出?","確認(rèn)",MessageBoxButtons.YesNo)==DialogResult.Yes) this.Close(); } privatevoidNewUserOk_Click(objectsender,System.EventArgse) { try { stringSqlStr="insertintosyuser(Use_name,Password,Use_role)values"+"("+"'"+this.UserName.Text.ToString().Trim()+"'"+","+"'"+this.Psw.Text.ToString().Trim()+"'"+","+"'"+this.RoleItem.SelectedItem.ToString().Trim()+"'"+")"; NewRoleStrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=StuMagSys"; NewRoleConn=newSqlConnection(NewRoleStrConn); NewRoleConn.Open(); NewRoleComd=newSqlCommand(SqlStr,NewRoleConn); intSuccnum=NewRoleComd.ExecuteNonQuery(); if(Succnum>0)MessageBox.Show("錄入成功"); } catch(ExceptionEx) { MessageBox.Show("必須選擇一個(gè)角色!","錯(cuò)誤"); } } }}2.密碼修改模塊的設(shè)計(jì)與實(shí)現(xiàn)密碼修改模塊負(fù)責(zé)登陸用戶(hù)隨時(shí)修改密碼,保證密碼的平安性?!?〕密碼修改模塊實(shí)現(xiàn)的功能密碼修改模塊主要實(shí)現(xiàn)修改登陸用戶(hù)的密碼?!?〕密碼修改模塊實(shí)現(xiàn)的效果密碼修改模塊的窗體設(shè)計(jì)效果如圖2-13所示。圖2-13密碼修改模塊的窗體效果〔3〕密碼修改模塊的IPO圖功能:從登陸窗體中取得登陸成功的用戶(hù)名,在數(shù)據(jù)庫(kù)的Syuser表內(nèi)查找該用戶(hù),并據(jù)此把輸入的新密碼寫(xiě)入到數(shù)據(jù)庫(kù)內(nèi)的Syuser表中。輸入:新密碼和確認(rèn)密碼處理:1〕密碼修改窗體啟動(dòng)。2〕首先從登陸對(duì)話框Login內(nèi)取得登陸系統(tǒng)的登陸用戶(hù)的登陸用戶(hù)名。2〕根據(jù)已經(jīng)取得的登陸用戶(hù)名在數(shù)據(jù)庫(kù)StuMagSys的Syuser表內(nèi)查找該用戶(hù),然后比較用戶(hù)輸入的新密碼和確認(rèn)密碼,如果比較結(jié)果相同,那么把新密碼寫(xiě)入到相應(yīng)記錄內(nèi),如果兩次輸入不一致,那么提示錯(cuò)誤信息。3〕把用戶(hù)的新密碼記錄到數(shù)據(jù)庫(kù)內(nèi)。輸出:對(duì)用戶(hù)表進(jìn)行記錄修改〔4〕.密碼修改模塊的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingSystem.Data;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.ButtonChgPswCanl; privateSystem.Windows.Forms.ButtonChgPswOk; privateSystem.Windows.Forms.TextBoxConfPsw; privateSystem.Windows.Forms.TextBoxNewPsw; privatestringPswStrCon; privateSqlConnectionPswConn; privateStringPswStrComd; privateSqlCommandPswComd; /*此處省略程序自動(dòng)生成的代碼*/ privatevoidChgPswCanl_Click(objectsender,System.EventArgse) { if(MessageBox.Show("您確認(rèn)要退出?","確認(rèn)",MessageBoxButtons.YesNo)==DialogResult.Yes) this.Close(); } privatevoidChgPswOk_Click(objectsender,System.EventArgse) { if(NewPsw.Text.ToString().Trim()==ConfPsw.Text.ToString().Trim()) { PswStrCon="workstationid=localhost;IntegratedSecurity=SSPI;database=StuMagSys"; PswStrComd="updateSyusersetPassword="+"'"+NewPsw.Text.ToString().Trim()+"'"+"whereUse_name="+"'"+Login.Username+"'"; PswConn=newSqlConnection(PswStrCon); PswConn.Open(); PswComd=newSqlCommand(PswStrComd,PswConn); intSuccnum=PswComd.ExecuteNonQuery(); if(Succnum>0)MessageBox.Show("密碼修改成功"); } else { MessageBox.Show("密碼不一致,請(qǐng)重新輸入","確認(rèn)",MessageBoxButtons.OK); NewPsw.Text=""; ConfPsw.Text=""; } } }}3.班級(jí)管理模塊的設(shè)計(jì)與實(shí)現(xiàn)班級(jí)管理模塊負(fù)責(zé)登陸用戶(hù)錄入班級(jí)信息?!?〕班級(jí)管理模塊實(shí)現(xiàn)的功能班級(jí)管理模塊主要實(shí)現(xiàn)錄入班級(jí)信息?!?〕班級(jí)管理模塊實(shí)現(xiàn)的效果班級(jí)管理模塊的窗體設(shè)計(jì)效果如圖2-14所示。圖2-14班級(jí)管理模塊的窗體效果〔3〕班級(jí)管理模塊的IPO圖功能:用戶(hù)輸入要添加的班級(jí)信息,包括班級(jí)名稱(chēng)、所在年級(jí)和最大人數(shù),錄入信息到數(shù)據(jù)庫(kù)內(nèi)的class表中。輸入:班級(jí)名稱(chēng)、所在年級(jí)和最大人數(shù)處理:1〕班級(jí)管理窗體啟動(dòng)。2〕把用戶(hù)輸入要添加的班級(jí)信息,包括班級(jí)名稱(chēng)、所在年級(jí)和最大人數(shù)信息錄入到數(shù)據(jù)庫(kù)StuMagSys內(nèi)的class表中,如果成功那么在class表內(nèi)添加一條記錄,給出成功信息。否那么給出失敗的提示信息。輸出:對(duì)班級(jí)表進(jìn)行記錄修改〔4〕班級(jí)管理模塊的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.SqlClient;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.TextBoxGrade; privateSystem.Windows.Forms.TextBoxClassName; privateSystem.Windows.Forms.TextBoxMaxNum; privateSystem.Windows.Forms.ButtonNewClassCanl; privateSystem.Windows.Forms.ButtonNewClassOk; privatestringNewClassStrConn; privateSqlConnectionNewClassConn; privateSqlCommandNewClassComd; /*此處省略程序自動(dòng)生成的代碼*/ privatevoidNewClassOk_Click(objectsender,System.EventArgse) { try { stringSqlStr="insertintoclass(Class_name,grade,MaxNum)values"+"("+"'"+this.ClassName.Text.ToString().Trim()+"'"+","+"'"+this.Grade.Text.ToString().Trim()+"'"+","+"'"+this.MaxNum.Text.ToString().Trim()+"'"+")"; NewClassStrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=StuMagSys"; NewClassConn=newSqlConnection(NewClassStrConn); NewClassConn.Open(); NewClassComd=newSqlCommand(SqlStr,NewClassConn); intSuccnum=NewClassComd.ExecuteNonQuery(); if(Succnum>0)MessageBox.Show("錄入成功"); } catch(ExceptionEx) { MessageBox.Show(Ex.ToString(),"錯(cuò)誤"); } } privatevoidNewClassCanl_Click(objectsender,System.EventArgse) { if(MessageBox.Show("您確認(rèn)要退出?","確認(rèn)",MessageBoxButtons.YesNo)==DialogResult.Yes) this.Close(); } }}4.課程管理模塊的設(shè)計(jì)與實(shí)現(xiàn)課程管理模塊負(fù)責(zé)登陸用戶(hù)隨時(shí)課程信息,包括錄入新開(kāi)設(shè)的課程;修改已有課程的名稱(chēng)、學(xué)分;刪除不再開(kāi)設(shè)的課程等?!?〕課程管理模塊實(shí)現(xiàn)的功能課程管理模塊主要實(shí)現(xiàn)課程信息的維護(hù)?!?〕課程管理模塊實(shí)現(xiàn)的效果課程管理模塊的窗體設(shè)計(jì)效果如圖2-15所示。圖2-15課程管理模塊的窗體效果〔3〕課程管理模塊的IPO圖 1〕.增加新的課程功能:在課程信息表中增加新的課程,并把結(jié)果寫(xiě)入到數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表中。輸入:新課程的名稱(chēng)和學(xué)分信息處理:在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表內(nèi)檢索課程信息,顯示到窗體的DataGrid控件AddCourDA中。取得用戶(hù)輸入的新課程的名稱(chēng)和學(xué)分信息。在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表內(nèi)檢索該課程,如果存在該課程,那么提示錯(cuò)誤信息。如果不存在該課程信息,那么把用戶(hù)添加的新課程信息記錄到數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表中。輸出:對(duì)課程表course進(jìn)行記錄修改 2〕.刪除課程功能:在課程信息表中刪除已有課程,并把結(jié)果寫(xiě)入到數(shù)據(jù)庫(kù)內(nèi)的course表中。輸入:選中一條課程記錄處理:在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表內(nèi)檢索課程信息,顯示到窗體的DataGrid控件AddCourDA中。在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表內(nèi)檢索該課程,如果不存在該課程,那么提示錯(cuò)誤信息。如果存在該課程信息,那么把該課程信息記錄從數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表中刪除。把數(shù)據(jù)表的改動(dòng)記錄到數(shù)據(jù)庫(kù)內(nèi)。輸出:對(duì)課程表進(jìn)行記錄修改2〕.修改課程功能:在課程信息表中修改課程信息,包括課程名稱(chēng)和學(xué)分,并把結(jié)果寫(xiě)入到數(shù)據(jù)庫(kù)內(nèi)的course表中。輸入:選中一條課程記錄,輸入修改信息處理:在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的course表內(nèi)檢索課程信息,顯示到窗體的DataGrid控件AddCourDA中。在DataGrid控件AddCourDA中錄入修改的課程信息。把對(duì)數(shù)據(jù)表course的改動(dòng)記錄到數(shù)據(jù)庫(kù)內(nèi)。輸出:對(duì)課程表進(jìn)行記錄修改〔4〕.課程管理模塊的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.SqlClient;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.DataGridCourList; privateSystem.Windows.Forms.ButtonAddCour; privateSystem.Windows.Forms.ButtonChgCour; privateSystem.Windows.Forms.ButtonDelCour; privateSystem.Windows.Forms.ButtonExitCour; privateSystem.ComponentModel.Containercomponents=null; privatestringAddCourConnStr="workstationid=localhost;IntegratedSecurity=SSPI;database=StuMagSys"; privateSqlConnectionAddCourConn; privatestringAddCourSql; privateSqlCommandBuilderAddCourComm; privateSqlDataAdapterAddCourDA; privateDataSetAddCourseset=newDataSet(); publicAddCourse() { InitializeComponent(); this.AddCourse_Load(); } /*此處省略程序自動(dòng)生成的代碼*/ privatevoidAddCourse_Load() { AddCourSql="selectCourse_nameas課程名,creditas學(xué)分fromcourse"; this.AddCourConn=newSqlConnection(this.AddCourConnStr); this.AddCourDA=newSqlDataAdapter(this.AddCourSql,this.AddCourConn); AddCourseset.Clear(); this.AddCourDA.Fill(AddCourseset,"Course"); CourList.DataSource=AddCourseset.Tables[0]; } privatevoidChgCour_Click(objectsender,System.EventArgse) { try { introw=this.CourList.CurrentCell.RowNumber; this.CourList.CurrentCell=newDataGridCell(row+1,0); if(AddCourseset.HasChanges()) { this.AddCourConn=newSqlConnection(this.AddCourConnStr); this.AddCourDA=newSqlDataAdapter(this.AddCourSql,this.AddCourConn); AddCourComm=newSqlCommandBuilder(AddCourDA); this.AddCourDA.Update(this.AddCourseset.GetChanges(),"Course"); MessageBox.Show("保存修改成功!","信息"); } } catch(ExceptionEe) { MessageBox.Show(Ee.ToString(),"信息"); } } privatevoidExitCour_Click(objectsender,System.EventArgse) { if(MessageBox.Show("您確認(rèn)要退出本系統(tǒng)?","確認(rèn)",MessageBoxButtons.YesNoCancel)==DialogResult.Yes) this.Close(); } privatevoidDelCour_Click(objectsender,System.EventArgse) { introwNumber=this.CourList.CurrentCell.RowNumber; try { this.AddCourseset.Tables[0].Rows[rowNumber].Delete(); this.AddCourConn=newSqlConnection(this.AddCourConnStr); AddCourDA=newSqlDataAdapter("",AddCourConn); AddCourComm=newSqlCommandBuilder(AddCourDA); AddCourDA.Update(this.AddCourseset.GetChanges(),"Course"); MessageBox.Show("刪除成功!","信息"); } catch {} } privatevoidAddCour_Click(objectsender,System.EventArgse) { introw=this.CourList.VisibleRowCount; this.CourList.CurrentCell=newDataGridCell(row+1,0); } }}5.4新生信息錄入模塊的設(shè)計(jì)與實(shí)現(xiàn)新生信息錄入模塊負(fù)責(zé)登陸用戶(hù)錄入學(xué)生信息,包括必須輸入的學(xué)生姓名,所在班級(jí),入學(xué)日期等信息。1.新生信息錄入模塊實(shí)現(xiàn)的功能新生信息錄入模塊主要實(shí)現(xiàn)錄入學(xué)生信息。2.新生信息錄入模塊實(shí)現(xiàn)的效果新生信息錄入模塊的窗體設(shè)計(jì)效果如圖2-16所示。圖2-16新生信息錄入模塊的窗體效果3.窗體和控件特殊屬性的設(shè)置:控件控件屬性設(shè)置ComboBoxNameBirthdateTimeComboBoxNameERdateTimeComboBoxNameClass 4.新生信息錄入模塊的IPO圖功能:用戶(hù)輸入要添加的學(xué)生信息,包括必須輸入的學(xué)生姓名、所在班級(jí)、入學(xué)日期等信息,錄入信息到數(shù)據(jù)庫(kù)StuMagSys內(nèi)的student表中。輸入:學(xué)生姓名、性別、年齡、出生日期、民族、籍貫、入學(xué)日期、班級(jí)、政治面貌、身份證號(hào)、職位和所學(xué)專(zhuān)業(yè)信息處理:〔1〕新生信息錄入窗體啟動(dòng)?!?〕在數(shù)據(jù)庫(kù)StuMagSys的class表檢索班級(jí)信息,并顯示在窗體的Class控件的下拉菜單內(nèi)。〔3〕用戶(hù)輸入新學(xué)生信息,檢驗(yàn)輸入是否完整,并核對(duì)是否符合標(biāo)準(zhǔn),如果不符合那么提示用戶(hù)錯(cuò)誤信息。〔4〕如果檢驗(yàn)通過(guò),在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的class表內(nèi)根據(jù)用戶(hù)輸入的班級(jí)信息查找相應(yīng)的班級(jí)號(hào)Class_id。以便于進(jìn)行student表中的數(shù)據(jù)插入?!?〕在數(shù)據(jù)庫(kù)StuMagSys內(nèi)的student表中查找輸入的學(xué)生姓名和班級(jí),如果存在該信息,那么說(shuō)明輸入重復(fù),給出提示信息?!?〕否那么,把用戶(hù)輸入要添加的學(xué)生信息錄入到數(shù)據(jù)庫(kù)StuMagSys內(nèi)的student表中,給出成功的提示信息。輸出:對(duì)學(xué)生表student進(jìn)行記錄修改 5.新生信息錄入模塊的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.SqlClient;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.TextBoxStu_name; privateSystem.Windows.Forms.TextBoxStu_sex; privateSystem.Windows.Forms.TextBoxStu_age; privateSystem.Windows.Forms.TextBoxStu_home; privateSystem.Windows.Forms.TextBoxStu_nation; privateSystem.Windows.Forms.TextBoxStu_specialty; privateSystem.Windows.Forms.TextBoxStu_position; privateSystem.Windows.Forms.TextBoxStu_idnum; privateSystem.Windows.Forms.TextBoxStu_politic; privateSystem.Windows.Forms.ButtonExitNStu; privateSystem.Windows.Forms.Buttondrawbackbutt; privateSystem.Windows.Forms.ButtonInputnewStu; privateSqlConnectionNewStuConn; privateSqlCommandNewStuComd; privatestringNewStuStrConn="workstationid=localhost;IntegratedSecurity=SSPI;database=StuMagSys"; privatestringNewStuStrComd; privateSqlDataAdapterNewStusqlda; privateSystem.Windows.Forms.ComboBoxClass; privateSystem.Windows.Forms.DateTimePickerERdateTime; privateSystem.Windows.Forms.DateTimePickerBirthdateTime; publicNewStu() { InitializeComponent(); this.NewStu_Load(); } /*此處省略程序自動(dòng)生成的代碼*/ privatevoidNewStu_Load() { DataSetNewStudClassset=newDataSet(); stringNewStuStrConnSql="selectClass_namefromclass"; this.NewStuConn=newSqlConnection(this.NewStuStrConn); this.NewStusqlda=newSqlDataAdapter(NewStuStrConnSql,this.NewStuConn); NewStudClassset.Clear(); this.NewStusqlda.Fill(NewStudClassset,"Class"); for(inti=0;i<NewStudClassset.Tables[0].Rows.Count;i++) { Class.Items.Add(NewStudClassset.Tables[0].Rows[i][0]); } Class.SelectedIndex=0; } //撤銷(xiāo)按鈕代碼 privatevoiddrawbackbutt_Click(objectsender,System.EventArgse) { Stu_name.Text=""; Stu_sex.Text=""; Stu_age.Text=""; Stu_home.Text=""; Stu_nation.Text=""; Stu_specialty.Text=""; Stu_position.Text=""; Stu_idnum.Text=""; Stu_politic.Text=""; } privatevoidExitNStu_Click(objectsender,System.EventArgse) { if(MessageBox.Show("您確認(rèn)要退出?","確認(rèn)",MessageBoxButtons.YesNo)==DialogResult.Yes) this.Close(); } //輸入新學(xué)生代碼 privatevoidInputnewStu_Click(objectsender,System.EventArgse) { try { stringdate=this.ERdateTime.Value.Date.ToString();; if(date==""||this.Stu_name.Text=="")//保證學(xué)生姓名和入學(xué)日期必須得到填寫(xiě) { MessageBox.Show("學(xué)生姓名、入學(xué)時(shí)間、班級(jí)必須填寫(xiě)!","提示"); } else { DataSetNewStudClassset=newDataSet(); //首先需要檢索出學(xué)生的班級(jí)號(hào)才可以在學(xué)生表中進(jìn)行插入新記錄 stringNewStuStrConnSql="selectClass_idfromclasswhereClass_name="+"'"+this.Class.SelectedItem.ToString().Trim()+"'"; this.NewStuConn=newSqlConnection(this.NewStuStrConn); this.NewStusqlda=newSqlDataAdapter(NewStuStrConnSql,this.NewStuConn); NewStudClassset.Clear(); this.NewStusqlda.Fill(NewStudClassset,"Class"); stringClassId=NewStudClassset.Tables[0].Rows[0][0].ToString().Trim(); //檢索數(shù)據(jù)庫(kù)內(nèi)是否已經(jīng)有同名的記錄 DataSetNewStu=newDataSet(); stringExStu="select*fromstudentwherestudent_name="+"'"+this.Stu_name.Text.ToString().Trim()+"'"+"andclass_id="+"'"+ClassId+"'"; this.NewStuConn=newSqlConnection(this.NewStuStrConn); this.NewStusqlda=newSqlDataAdapter(ExStu,this.NewStuConn); NewStu.Clear(); this.NewStusqlda.Fill(NewStu,"student1"); if(NewStu.Tables[0].Rows.Count==0) { //在學(xué)生表中插入新紀(jì)錄 NewStuStrComd="insertintostudent(student_name,sex,Entrance_date,Class_id,Birth,Nation,home,politic,ID,Job,specialty)values"+ "("+"'"+Stu_name.Text.ToString().Trim()+"'"+","+"'"+Stu_sex.Text.ToString().Trim()+"'"+ ","+"'"+date+"'"+","+"'"+ClassId+"'"+","+"'"+this.BirthdateTime.Value.Date.ToString()+"'"+","+"'"+ this.Stu_nation.Text.ToString().Trim()+"'"+","+"'"+this.Stu_home.Text.ToString().Trim()+"'"+","+"'"+ this.Stu_politic.Text.ToString().Trim()+"'"+","+"'"+this.Stu_idnum.Text.ToString().Trim()+"'"+","+"'"+this.Stu_position.Text.ToString().Trim()+"'"+","+"'"+this.Stu_specialty.Text.ToString().Trim()+"'"+")"; NewStuConn=newSqlConnection(NewStuStrConn); NewStuConn.Open(); NewStuComd=newSqlCommand(NewStuStrComd,NewStuConn); intSuccnum=NewStuComd.ExecuteNonQuery(); if(Succnum>0)MessageBox.Show("錄入成功"); } else { MessageBox.Show("錄入信息重復(fù)。","確認(rèn)"); } } } catch(ExceptionEx) { MessageBox.Show("該生已經(jīng)錄入或類(lèi)型不匹配。","確認(rèn)",MessageBoxButtons.YesNo); } } }}5.5學(xué)生信息查詢(xún)模塊的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生信息查詢(xún)模塊負(fù)責(zé)根據(jù)查詢(xún)條件查詢(xún)學(xué)生信息。1.學(xué)生信息查詢(xún)模塊實(shí)現(xiàn)的功能學(xué)生信息查詢(xún)模塊主要實(shí)現(xiàn)查詢(xún)學(xué)生信息,并顯示學(xué)生信息。2.學(xué)生信息查詢(xún)模塊實(shí)現(xiàn)的效果學(xué)生信息查詢(xún)模塊的窗體設(shè)計(jì)效果如圖2-17所示。圖2-17學(xué)生信息查詢(xún)模塊的窗體效果3.窗體和控件特殊屬性的設(shè)置:控件控件屬性設(shè)置ComboBoxNameClassListDataGridNameQryStuDg 4.學(xué)生信息查詢(xún)模塊的IPO圖功能:用戶(hù)輸入要檢索的條件,可以按照學(xué)生姓名檢索,也可以按照學(xué)生所在班級(jí)檢索,顯示檢索結(jié)果。輸入:學(xué)生姓名或?qū)W生所在班級(jí)處理:〔1〕學(xué)生信息查詢(xún)窗體啟動(dòng)?!?〕在數(shù)據(jù)庫(kù)StuMagSys的class表檢索班級(jí)信息,并顯示在窗體的ClassList控件的下拉菜單內(nèi)?!?〕如果用戶(hù)輸入學(xué)生姓名作為檢索條件,那么在數(shù)據(jù)庫(kù)StuMagSys的student表內(nèi)檢索學(xué)生姓名為給定條件的學(xué)生信息,顯示檢索結(jié)果?!?〕如果用戶(hù)輸入學(xué)生所在班級(jí)作為檢索條件,那么在數(shù)據(jù)庫(kù)StuMagSys的student表內(nèi)檢索學(xué)生班級(jí)號(hào)為給定條件的學(xué)生信息,顯示檢索結(jié)果。輸出:顯示檢索結(jié)果輸出到窗體的QryStuDg控件內(nèi)。 5.學(xué)生信息查詢(xún)模塊的主要代碼usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Data;usingSystem.Data.SqlClient;namespaceStudentManagementsystem{ { privateSystem.Windows.Forms.TextBoxQryStuName; privateSystem.Windows.Forms.ButtonExitQryStu; privateSystem.Windows.Forms.DataGridQryStuDg; privateSystem.Windows.Forms.ButtonQryStuN; privateSystem.Windows.Forms.ButtonQueryStuClass; privateSystem.Windows.Forms.ComboBoxClassList; privatestringQryStustrconn; privatestringQryStuconnstr="workstationid=localhost;IntegratedSecurity=SSPI;database=StuMagSys"; privateSqlDataAdapterQryStusqlda; privateSqlConnectionQrySconn; privateSystem.ComponentModel.Containercomponents=null; publicQueryStu() { InitializeComponent(); this.QueryStu_Load(); } /*此處省略程序自動(dòng)生成的代碼*/ //檢索數(shù)據(jù)庫(kù)表class,并把檢索結(jié)果填充到班級(jí)列表 privatevoidQueryStu_Load() { DataSetQryStudClassset=newDataSet(); QryStustrconn="selectClass_namefromclass"; this.QrySconn=newSqlConnection(this.QryStuconnstr); this.QryStusqlda=newSqlDataAdapter(this.QryStustrconn,this.QrySconn); QryStudClassset.Clear(); this.QryStusqlda.Fill(QryStudClassset,"Class"); for(inti=0;i<QryStudClassset.Tables[0].Rows.Count;i++) { ClassList.Items.Add(QryStudClassset.Tables[0].Rows[i][0]); } ClassList.SelectedIndex=0; } //按照學(xué)生姓名檢索學(xué)生信息 privatevoidQryStuN_Click(objectsender,System.EventArgse) { try { DataSetQryStudset=newDataSet(); QryStustrconn="select*fromstudentwherestudent_name="+"'"+this.QryStuName.Text.ToString().Trim()+"'"; QrySconn=newSqlConnection(QryStuconnstr); QryStusqlda=newSqlDataAdapter(QryStustrconn,QrySconn); QryStudset.Clear(); QryStusqlda.Fill(QryStudset,"Student"); QryStuDg.DataSource=QryStudset.Tables[0]; } catch { MessageBox.Show("檢索學(xué)生信息失敗。","信息"); } } privatevoidExitQryStu_Click(objectsender,System.EventArgse) { if(MessageBox.Show("您確認(rèn)要退出?","確認(rèn)",MessageBoxButtons.YesNo)==DialogResult.Yes) this.Close(); } //按照學(xué)生所在的班級(jí)檢索學(xué)生信息 privatevoidQueryStuClass_Click(objectsender,System.EventArgse) { try { DataSetQryStudset=newDataSet(); QryStustrconn="selectStudent_idas學(xué)號(hào),Student_nameas姓名,Sexas性別,Birthas出生年月,Nationas民族,student.Class_idas班級(jí),Entrance_dateas入學(xué)時(shí)間,homeas家庭地址,politicas政治面貌,IDas身份證號(hào),Jobas職位,specialtyas所學(xué)專(zhuān)業(yè)fromstudent,classwhereclass.class_id=student.class_idandclass.Class_name="+"'"+this.ClassList.SelectedItem.ToString().Trim()+"'"; QrySconn=newSqlConnection(QryStuconnstr); QryStusqlda=newSqlDataAdapter(QryStustrconn,QrySconn); QryStudset.Clear(); QryStusqlda.Fill(QryStudset,"Class_id"); QryStuDg.DataSource=QryStudset.Tables[0]; } catch { MessageBox.Show("檢索學(xué)生信息失敗。","信息"); } } }}5.6更新學(xué)生信息模塊的設(shè)計(jì)與實(shí)現(xiàn)更新學(xué)生信息模塊負(fù)責(zé)登陸用戶(hù)修改學(xué)生信息。1.更新學(xué)生信息模塊實(shí)現(xiàn)的功能更新學(xué)生
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度云南省高校教師資格證之高等教育法規(guī)真題練習(xí)試卷B卷附答案
- 2024年醫(yī)療、外科及獸醫(yī)用器械項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 贛南師范大學(xué)《鋼琴》2021-2022學(xué)年第一學(xué)期期末試卷
- 贛南師范大學(xué)《體育繪圖》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽(yáng)師范大學(xué)《通信工程制圖》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《油畫(huà)基礎(chǔ)》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《數(shù)字信號(hào)處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《環(huán)境資源法》2022-2023學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《光學(xué)實(shí)驗(yàn)》2022-2023學(xué)年第一學(xué)期期末試卷
- 中國(guó)手持衛(wèi)星通信終端市場(chǎng)發(fā)展現(xiàn)狀與投資價(jià)值分析報(bào)告2024-2030年
- 《埃隆·馬斯克傳》導(dǎo)讀
- 《第9課中西古典園林》教學(xué)設(shè)計(jì)(部級(jí)優(yōu)課)-美術(shù)教案
- 建設(shè)工程消防驗(yàn)收技術(shù)服務(wù)項(xiàng)目方案(技術(shù)標(biāo) )
- MOOC創(chuàng)新創(chuàng)業(yè)與管理基礎(chǔ)(東南大學(xué))
- 萊州市梁郭鎮(zhèn)大郎家金礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 人工成本對(duì)建筑工程造價(jià)影響因素分析
- XX醫(yī)院高警示藥品(高危藥品)目錄
- 拆除橋梁專(zhuān)項(xiàng)施工方案范本
- 新靂切割噴墨繪圖機(jī)說(shuō)明書(shū)
- 抗美援朝精神(教案)小學(xué)生主題班會(huì)通用版
- 集團(tuán)公司五年戰(zhàn)略發(fā)展規(guī)劃
評(píng)論
0/150
提交評(píng)論