版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于ASP.net的學(xué)生網(wǎng)上選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:隨著在校大學(xué)生人數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)據(jù)量也不斷的上漲。針對(duì)學(xué)生選課這一環(huán)節(jié),本系統(tǒng)從學(xué)生網(wǎng)上自主選課以及教師的課程發(fā)布兩個(gè)大方面進(jìn)行了設(shè)計(jì),基本實(shí)現(xiàn)了學(xué)生的在線信息查詢、選課功能以及教師對(duì)課程信息發(fā)布的管理等功能。本程序由SQL Server數(shù)據(jù)庫(kù)支持,通過(guò)使用ASP語(yǔ)言實(shí)現(xiàn)。本文對(duì)學(xué)生網(wǎng)上選課系統(tǒng)進(jìn)行了系統(tǒng)分析,詳細(xì)講述了系統(tǒng)功能,并對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)等方面加以說(shuō)明。關(guān)鍵詞:選課;課程信息發(fā)布;MySQL;ASP 1緒論1.1課題背景隨著教學(xué)體制的不斷改革,尤其是學(xué)分制、選課制的展開(kāi)和深入,教務(wù)日常管理工作日趨繁
2、重、復(fù)雜。如何把教務(wù)工作信息化,模塊化,便捷化是現(xiàn)代大學(xué)發(fā)展的重點(diǎn),所以迫切需要研制開(kāi)發(fā)一種綜合教務(wù)管理軟件。在數(shù)字校園理論逐步應(yīng)用的過(guò)程中,各校一方面不斷投資購(gòu)建各種硬件、系統(tǒng)軟件和網(wǎng)絡(luò),另一方面也不斷開(kāi)發(fā)實(shí)施了各類(lèi)教學(xué)、科研、辦公管理等應(yīng)用系統(tǒng),形成了一定規(guī)模的信息化建設(shè)體系。但是,由于整體信息化程度相對(duì)落后,經(jīng)費(fèi)短缺,理論體系不健全等原因,國(guó)內(nèi)各校教務(wù)管理系統(tǒng)在機(jī)構(gòu)設(shè)置、服務(wù)范圍、服務(wù)質(zhì)量及人員要求上與國(guó)外高校相比都有一定的差距。目前國(guó)家的教育體制也正處在不斷改革、創(chuàng)新的階段,教育部門(mén)充分吸取國(guó)外優(yōu)秀的教學(xué)模式,結(jié)合國(guó)內(nèi)多年的辦學(xué)經(jīng)驗(yàn),逐步探索出適合中國(guó)特色的教學(xué)形式,國(guó)家教育部面向各級(jí)
3、各類(lèi)學(xué)校開(kāi)展了全面學(xué)分制改革。隨著無(wú)紙化辦公的一步步實(shí)現(xiàn),信息的自動(dòng)處理以及網(wǎng)絡(luò)式的信息交互方式越來(lái)越被人們認(rèn)可和應(yīng)用。讓計(jì)算機(jī)來(lái)管理學(xué)生的信息是現(xiàn)在各個(gè)高校都在積極進(jìn)行的工作之一,也是高校教學(xué)管理工作的重要內(nèi)容之一。網(wǎng)上選課與傳統(tǒng)的選課方式相比更加節(jié)約資源,同時(shí),隨著學(xué)生選課自主權(quán)的增加,網(wǎng)上選課有效的避免了“走關(guān)系”等不良現(xiàn)象,使教學(xué)更加透明,為進(jìn)一步實(shí)現(xiàn)完善的計(jì)算機(jī)教務(wù)管理系統(tǒng)和全校信息系統(tǒng)打下良好的基礎(chǔ)。1.2所用軟件的基本知識(shí)1.2.1MySQLMySQL有關(guān)數(shù)據(jù)庫(kù)方面的操作。注意:必須首先登錄到mysql中,以下操作都是在mysql的提示符下進(jìn)行的,而且每個(gè)命令以分號(hào)結(jié)束。操作技巧
4、:如果你打命令時(shí),回車(chē)后發(fā)現(xiàn)忘記加分號(hào),你無(wú)須重打一遍命令,只要打個(gè)分號(hào)回車(chē)就可以了。也就是說(shuō)你可以把一個(gè)完整的命令分成幾行來(lái)打,完后用分號(hào)作結(jié)束標(biāo)志就OK?;久?列出數(shù)據(jù)庫(kù)show databases;選擇數(shù)據(jù)庫(kù)use 庫(kù)名;列出表格show tables;顯示數(shù)據(jù)表的結(jié)構(gòu)describe 表名;建庫(kù)create database 庫(kù)名;建表use 庫(kù)名;create table 表名(字段設(shè)定列表);刪庫(kù)和刪表drop database 庫(kù)名;drop table 表名;將表中記錄清空delete from 表名;顯示表中的記錄select * from 表名;將文本數(shù)據(jù)轉(zhuǎn)到數(shù)據(jù)庫(kù)中l(wèi)
5、oad data local infile "文件名" into table 表名;(注意:文本數(shù)據(jù)應(yīng)符合的格式:字段數(shù)據(jù)之間用tab鍵隔開(kāi))1.2.2ASP(Active Server Page)Active Server Pages (ASP) 是服務(wù)器端腳本編寫(xiě)環(huán)境,是由Server端腳本、對(duì)象以及組件拓展過(guò)的標(biāo)準(zhǔn)主頁(yè)使用它可以創(chuàng)建和運(yùn)行動(dòng)態(tài)、交互的Web 頁(yè)和基于 Web 的功能強(qiáng)大的應(yīng)用程序ASP采用的工作模型是典型的B/S過(guò)程:()一個(gè)用戶在瀏覽器的網(wǎng)址欄中添入Active Server Pages文件名稱(chēng),并回車(chē)觸發(fā)這個(gè)Active Server Pages的
6、申請(qǐng)。()瀏覽器將這個(gè)Active Server Pages的求發(fā)送給IIS()Web Server接收這個(gè)申請(qǐng)要求并由于其asp的后綴意識(shí)到這是個(gè)Active Server Pag的對(duì)象來(lái)實(shí)現(xiàn)服務(wù)器與客戶端間的交互;可擴(kuò)充服務(wù)器端功能ASP與瀏覽器無(wú)關(guān),ASP可以將運(yùn)行結(jié)果一HTML的格式傳送到客戶端瀏覽器,因而可以使用于各種瀏覽器。2系統(tǒng)分析2.1可行性分析可行性分析是指在當(dāng)前組織內(nèi)外的具體條件下,系統(tǒng)開(kāi)發(fā)工作必須具備資源和條件,看其是否滿足系統(tǒng)目標(biāo)的要求。在系統(tǒng)開(kāi)發(fā)過(guò)程中進(jìn)行可行性分析,對(duì)于保證資源的合理使用,避免浪費(fèi)和一些不必要的失敗,都是十分重要的。()目標(biāo)和方案的可行性:如果采用人
7、工操作的方式,不僅操作不方便,耗費(fèi)人力、物力、財(cái)力,而且還容易出現(xiàn)錯(cuò)誤。所以當(dāng)前迫切需要一個(gè)計(jì)算機(jī)化的管理信息系統(tǒng)。有了這個(gè)系統(tǒng),就能用較少的人力去管理完成較大的工作量,而各種管理的效率也會(huì)大大提高。開(kāi)發(fā)這個(gè)系統(tǒng),能更好地滿足學(xué)校要求,使學(xué)校的各種信息管理實(shí)現(xiàn)無(wú)紙化,高效化。()技術(shù)方面的可行性:本系統(tǒng)是用ASP結(jié)合MySql數(shù)據(jù)庫(kù)來(lái)開(kāi)發(fā)的一個(gè)信息管理軟件。ASP在數(shù)據(jù)庫(kù)方面的特長(zhǎng)顯得尤為突出:適用于多種數(shù)據(jù)庫(kù)結(jié)構(gòu),通過(guò)訪問(wèn)各種數(shù)據(jù)庫(kù)通用組件,結(jié)合客戶端能夠創(chuàng)建出完美漂亮且高效的各種軟件系統(tǒng)。()經(jīng)濟(jì)方面的可行性:系統(tǒng)結(jié)構(gòu)采用當(dāng)前流行的B/S結(jié)構(gòu),對(duì)客戶的配置要求低,客戶端只需要有瀏覽器可以上
8、網(wǎng)就可以登錄服務(wù)器進(jìn)行各種信息的管理。而服務(wù)器端也不需要太高的配置,只要有可以運(yùn)行asp程序的解釋器,可以說(shuō)整個(gè)系統(tǒng)是以最少的投入完成最好的功能,這就保證了系統(tǒng)的經(jīng)濟(jì)可行性。()管理方面的可行性:作為學(xué)校教務(wù)信息管理系統(tǒng)之一的選課系統(tǒng),對(duì)它的管理也是很方便的,只需要先將系統(tǒng)配置運(yùn)行起來(lái),然后分配好系統(tǒng)的三個(gè)主要角色,就可以投入實(shí)際使用,作為系統(tǒng)使用者如管理員,教師和學(xué)生基本都是會(huì)知道如何進(jìn)行電腦操作的。根據(jù)以上幾方面的可行性分析,可以得出結(jié)論:學(xué)生網(wǎng)上選課系統(tǒng)的開(kāi)發(fā)可行。2.2功能分析本系統(tǒng)的使用是面向大學(xué)院校,系統(tǒng)的使用對(duì)象包括系統(tǒng)管理員,教師和學(xué)生三種身份,系統(tǒng)管理員登錄系統(tǒng)后可以管理學(xué)生
9、的信息,管理教師的信息,管理每學(xué)期各個(gè)班級(jí)的必修課程信息,各個(gè)專(zhuān)業(yè)每個(gè)學(xué)期的選修課程信息,可以為這些課程進(jìn)行排課;而教師用戶登錄系統(tǒng)后可以查詢?nèi)我鈱W(xué)生的信息,可以查詢自己的授課信息,可以登記自己所教學(xué)生的成績(jī)信息,可以修改自己的登錄密碼和個(gè)人信息;學(xué)生用戶登錄系統(tǒng)后可以查詢?nèi)我粚W(xué)期自己的成績(jī)信息,如果系統(tǒng)開(kāi)放了選課功能,可以在指定的日期內(nèi)登錄系統(tǒng)后選修該學(xué)期的選修課,可以生成某個(gè)學(xué)期的課程上課信息表,可以修改自己的個(gè)人信息和登錄密碼。本系統(tǒng)一共有4個(gè)主模塊(身份驗(yàn)證學(xué)生管理教師管理管理員管理),其中每個(gè)管理部分又包含了幾個(gè)子???,主要功能可概括為為瀏覽、查詢、修改、添加。2.3系統(tǒng)程序流程圖主
10、界面登錄界面用戶權(quán)限結(jié)束學(xué)生教師管理員登錄驗(yàn)證操作圖31系統(tǒng)程序流程圖3系統(tǒng)總體設(shè)計(jì)3.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)3.1.1主要功能本系統(tǒng)主要功能。()身份驗(yàn)證:通過(guò)登錄才可進(jìn)入選課系統(tǒng),登錄信息提交后檢驗(yàn)登錄者的身份是否合法,合法,則轉(zhuǎn)入對(duì)應(yīng)的操作界面。在本系統(tǒng)中,只有三種身份:學(xué)生、教師、管理員。()信息瀏覽:信息瀏覽包括已選課程瀏覽、已發(fā)布課程信息瀏覽。已選課程瀏覽是為學(xué)生提供的查看自己已經(jīng)選擇的課程信息以及刪除選擇課程。已發(fā)布課程信息瀏覽用于各代課老師查詢自己已經(jīng)發(fā)布的課程信息,主要用于瀏覽、核對(duì)。()信息查詢:信息查詢包括教師個(gè)人信息查詢、課程查詢、選課查詢。課程查詢即查詢?cè)撜n程的相關(guān)介紹,包括
11、課程內(nèi)容、開(kāi)課地點(diǎn)等內(nèi)容。教師個(gè)人信息是查看及修改對(duì)應(yīng)的老師個(gè)人信息。通過(guò)選課查詢可以查看要選擇的課程情況。()信息修改:信息修改包括密碼的修改,學(xué)生信息的修改,教師信息的修改。(5)信息添加:信息添加包括學(xué)生選課、教師課程發(fā)布、管理員。學(xué)生選課即通過(guò)選擇選修的課程,添加到學(xué)生已選課程中,完成選課任務(wù)。教師課程發(fā)布即教師添加新的課程信息,新信息發(fā)布后,學(xué)生可看到發(fā)布的信息。管理員添加學(xué)生、教師、課程的基本信息。3.1.2系統(tǒng)模塊功能圖學(xué)生網(wǎng)上選課系統(tǒng)登錄功能學(xué)生管理功能教師管理功能管理員管理功能登錄密碼修改已選課程必修課程選修課程學(xué)生信息密碼修改已發(fā)課程教師信息發(fā)布課程課程信息教師信息學(xué)生信息
12、圖32系統(tǒng)功能圖3.2數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)系統(tǒng)功能設(shè)計(jì)的要求以及功能模塊的劃分,可以列出以下主要數(shù)據(jù)項(xiàng)和數(shù)據(jù)庫(kù),主要分為6個(gè)表:表Course、表Student、表Teacher、表Admin、表Selected、表Published表3.1 課程信息表(Course)名稱(chēng)字段名稱(chēng)類(lèi)別主鍵非空課程編碼CIdintYesYes教師編號(hào)TIdvarcharNoNo課程名稱(chēng)CNamevarcharNoNo課程類(lèi)別CTypevarcharNoNo供選學(xué)院CCollegevarcharNoNo供選專(zhuān)業(yè)CProfessionalvarcharNoNo學(xué)分CCreditvarcharNoNo最多人數(shù)CMaxvar
13、charNoNo上課地點(diǎn)CRoomvarcharNoNo課程介紹CIntroductiontextNoNo表3.2 學(xué)生信息表(Student)名稱(chēng)字段名稱(chēng)類(lèi)別主鍵非空學(xué)號(hào)SIdvarcharYesYes姓名SNamevarcharNoNo性別SSexcharNoNo所屬學(xué)院SCollegevarcharNoNo所在專(zhuān)業(yè)SProfessionalvarcharNoNo班級(jí)SClassvarcharNoNo密碼SKeyvarcharNoNo表3.3 教師信息表(Teacher)名稱(chēng)字段名稱(chēng)類(lèi)別主鍵非空身份證號(hào)TIdvarcharYesYes姓名TNamevarcharNoNo性別TSexchar
14、NoNo所屬學(xué)院TCollegevarcharNoNo所屬專(zhuān)業(yè)TProfessionalvarcharNoNo密碼TKeyvarcharNoNo表3.4 管理員信息表(Admin)名稱(chēng)字段名稱(chēng)類(lèi)別主鍵非空登錄號(hào)AIdvarcharYesYes密碼AKeyvarcharNoNo表3.5 學(xué)生選課信息表(Selected)名稱(chēng)字段名稱(chēng)類(lèi)別主鍵非空學(xué)號(hào)SIdvarcharNoNo課程編碼CIdintNoNo表3.6 教師發(fā)布課程信息表(Published)名稱(chēng)字段名稱(chēng)類(lèi)別主鍵非空教師證件號(hào)TIdvarcharNoNo課程編碼CIdintNoNo4系統(tǒng)詳細(xì)設(shè)計(jì)4.1身份驗(yàn)證4.1.1登錄功能在登錄頁(yè)面
15、對(duì)應(yīng)的地方輸入用戶名(學(xué)號(hào)或身份證號(hào)或其它有效證件),密碼;確認(rèn)后登錄。在提交后,首先通過(guò)學(xué)號(hào)身份證號(hào)或其它有效證件對(duì)數(shù)據(jù)庫(kù)中的Student/Teacher/Admin表進(jìn)行檢索,若檢索到的記錄集為空,則說(shuō)明學(xué)號(hào)/身份證號(hào)或其它有效證件錯(cuò)誤,從而轉(zhuǎn)到相應(yīng)的出錯(cuò)處理程序,若記錄集不為空,再進(jìn)行密碼判斷,檢查密碼是否相等,不相等,作出錯(cuò)處理,相等則轉(zhuǎn)入學(xué)生老師管理員登錄成功的操作頁(yè)面,并將姓名,密碼,學(xué)號(hào)身份證號(hào)或其它有效證件以session對(duì)象保存起來(lái)。出錯(cuò)及系統(tǒng)提示如下:()學(xué)號(hào)或身份證號(hào)或其它有效證件錯(cuò)誤,系統(tǒng)這時(shí)會(huì)提醒“沒(méi)有該學(xué)生!”或“沒(méi)有該老師!”或“沒(méi)有該系統(tǒng)管理員!”;()密碼錯(cuò)
16、誤,系統(tǒng)提示“密碼錯(cuò)誤”。4.1.2密碼修改功能密碼的修改的前提是用戶成功登錄,選擇密碼修改后,按照頁(yè)面上的提示,在相應(yīng)的文本框中輸入新密碼(兩次),確定后提交。轉(zhuǎn)入執(zhí)行的asp文件后,判斷兩次輸入的新密碼是否相等,若不等,出錯(cuò);否則,用新密碼代替舊密碼,更新數(shù)據(jù)庫(kù)表Student/Teacher中的“密碼”字段。本系統(tǒng)密碼采用MD5加密。出錯(cuò)及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不相符合”。4.2學(xué)生信息管理功能4.2.1選課信息查詢及選課登錄成功后,點(diǎn)擊菜單“選修課程”,確定后進(jìn)入瀏覽頁(yè)面。進(jìn)入頁(yè)面后,可以對(duì)頁(yè)面上表格內(nèi)帶鏈接的信息進(jìn)行查詢,例如點(diǎn)擊“教師”可查詢教師信息。
17、要選擇課程,點(diǎn)擊“選修該課程”后,該課程就會(huì)出現(xiàn)在“已選課程”的表格中。若已選過(guò)該課程,系統(tǒng)提示“您已經(jīng)選了該課程!”。4.2.2必修課程信息查詢點(diǎn)擊菜單“必修課程”,可看到學(xué)生所在專(zhuān)業(yè)所開(kāi)設(shè)的必修課程。其中查詢數(shù)據(jù)庫(kù)所需要的參數(shù)是學(xué)生的專(zhuān)業(yè)信息傳遞來(lái)的。專(zhuān)業(yè)信息的獲得是通過(guò)session(SId)對(duì)數(shù)據(jù)表Student查詢得到的。進(jìn)入頁(yè)面后,可以對(duì)頁(yè)面上表格內(nèi)帶鏈接的信息進(jìn)行查詢,例如點(diǎn)擊“課程名稱(chēng)”可查詢課程信息。4.2.3已選課程信息查詢點(diǎn)擊菜單“已選課程”,在選課信息瀏覽頁(yè)面中可以查詢已經(jīng)選的課程。課程信息的查詢是通過(guò)條件對(duì)數(shù)據(jù)表Course,表Selected,表Teacher等進(jìn)行
18、查詢,將符合條件的信息列出。想要退選課程,點(diǎn)擊“取消該課程”按鈕即可。4.2.4學(xué)生個(gè)人信息點(diǎn)擊菜單“學(xué)生信息”,進(jìn)入選課信息瀏覽頁(yè)面查詢即可。學(xué)生信息的修改首先是通過(guò)條件對(duì)數(shù)據(jù)表Student進(jìn)行查詢,符合條件后在文本框中輸入完整信息后進(jìn)行覆蓋寫(xiě)入,就可以進(jìn)行信息修改。4.2.5密碼修改點(diǎn)擊菜單“學(xué)生信息”,進(jìn)入選課信息瀏覽頁(yè)面。按照頁(yè)面上的提示,在相應(yīng)的文本框中輸入新密碼(兩次),確定后提交。轉(zhuǎn)入執(zhí)行的asp文件后,判斷兩次輸入的新密碼是否相等,若不等,出錯(cuò);否則,用新密碼代替舊密碼,更新數(shù)據(jù)庫(kù)表Student中的“SKey”字段。出錯(cuò)及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼
19、不相符合”。4.3教師課程信息管理功能4.3.1課程信息發(fā)布登錄成功后,點(diǎn)擊菜單“發(fā)布課程”,進(jìn)入選課信息瀏覽頁(yè)面。如果想要單獨(dú)查看某專(zhuān)業(yè)該教師可發(fā)布課程,在查詢條件“課程專(zhuān)業(yè)”對(duì)應(yīng)的文本框內(nèi)輸入查詢信息(不輸入信息時(shí),表中顯示該教師可發(fā)布課程的所有課程信息),點(diǎn)擊“查詢”按鈕,即可查詢。若要發(fā)布課程,按要求輸入完整信息(課程名稱(chēng)與課程專(zhuān)業(yè)不能改變),點(diǎn)擊“開(kāi)設(shè)課程”按鈕。若輸入信息不完整,系統(tǒng)會(huì)提示“請(qǐng)輸入!”;當(dāng)發(fā)布的課程的記錄已經(jīng)存在時(shí),系統(tǒng)提示“您已經(jīng)發(fā)布了該課程!”。當(dāng)輸入的課程名稱(chēng)或課程專(zhuān)業(yè)有誤,系統(tǒng)提示“發(fā)布失?。 ?。4.3.2對(duì)已發(fā)布信息查詢對(duì)數(shù)據(jù)表Course,表Publis
20、hed等進(jìn)行檢索,將其中符合條件的信息全部輸出;查詢需要的參數(shù)是由session對(duì)象獲得的身份證號(hào)來(lái)確定的,由這二者確定出的即是該老師所發(fā)布過(guò)的課程信息。想要取消發(fā)布課程,點(diǎn)擊“取消發(fā)布課程”按鈕即可。4.3.3教師個(gè)人信息點(diǎn)擊菜單“教師信息”,進(jìn)入選課信息瀏覽頁(yè)面查詢即可。教師信息的修改首先是通過(guò)條件對(duì)數(shù)據(jù)表Teacher進(jìn)行查詢,符合條件后在文本框中輸入完整信息后進(jìn)行覆蓋寫(xiě)入,就可以進(jìn)行信息修改。4.3.4密碼修改點(diǎn)擊菜單“教師信息”,進(jìn)入選課信息瀏覽頁(yè)面。按照頁(yè)面上的提示,在相應(yīng)的文本框中輸入新密碼(兩次),確定后提交。轉(zhuǎn)入執(zhí)行的asp文件后,判斷兩次輸入的新密碼是否相等,若不等,出錯(cuò);
21、否則,用新密碼代替舊密碼,更新數(shù)據(jù)庫(kù)表Teacher中的“TKey”字段。出錯(cuò)及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不相符合”。4.4系統(tǒng)管理員信息管理功能4.4.1管理教師功能教師信息的添加、修改、刪除、查詢由管理員完成,教師無(wú)權(quán)使用。()添加:對(duì)數(shù)據(jù)表“Teacher”進(jìn)行添加操作,生成新記錄。在管理員登錄成功后,選擇“教師信息”即進(jìn)入教師信息添加頁(yè)面,輸入要添加的教師身份證號(hào)、教師姓名等教師信息后(初始密碼admin),點(diǎn)擊添加按鈕即可。出錯(cuò)及系統(tǒng)提示:輸入的教師的身份證號(hào)已存在,系統(tǒng)則提示“添加失敗,請(qǐng)檢查教師證件號(hào)是否已經(jīng)存在!”。()修改:在管理員登錄成功后,選擇“
22、教師信息”即進(jìn)入教師信息頁(yè)面。對(duì)數(shù)據(jù)庫(kù)中的表“Teacher”查詢,在網(wǎng)頁(yè)相應(yīng)的的地方顯示所要的信息。列出教師信息表后,在表中查詢要修改的教師身份證號(hào)后,點(diǎn)擊“修改”按鈕,修改所要修改的教師的信息,點(diǎn)擊“更新”按鈕,若不修改,則點(diǎn)擊“取消”按鈕。()刪除:在管理員登錄成功后,選擇“教師信息”即進(jìn)入教師信息頁(yè)面。查詢要?jiǎng)h除的教師身份證號(hào),點(diǎn)擊“刪除”按鈕進(jìn)行刪除。()查詢:在教師信息頁(yè)面,輸入要查詢專(zhuān)業(yè),點(diǎn)擊“查詢”按鈕即可查詢?cè)搶?zhuān)業(yè)的教師情況。4.4.2管理學(xué)生功能學(xué)生信息的添加、修改、刪除、查詢功能與管理教師信息基本相同,不再贅述。4.4.3管理課程功能課程信息的添加、修改、刪除查詢功能與管
23、理教師信息基本相同,不再贅述。5設(shè)計(jì)過(guò)程中的問(wèn)題及解決方法5.1數(shù)據(jù)庫(kù)的連接MySQL與SQL server的連接方式大致相同,當(dāng)MySQL與VS連接時(shí),需要組件mysql-connector-net,通過(guò)查找及實(shí)踐,完成了數(shù)據(jù)庫(kù)的建立和連接。如圖51:圖51 mysql數(shù)據(jù)庫(kù)的連接數(shù)據(jù)庫(kù)連接操作類(lèi)主要代碼:/數(shù)據(jù)庫(kù)連接字符串private const String connString ="Server=localhost;Database=ChooseCourse;Uid=root;Pwd=sa"/返回select得到的數(shù)據(jù)集public static DataSet
24、ExecuteSelectSql( string sqlSelect ) MySqlConnection conn = new MySqlConnection(connString); MySqlDataAdapter sda = new MySqlDataAdapter(sqlSelect,conn); DataSet ds = new DataSet(); try sda.Fill(ds); catch(MySqlException e) throw new Exception(e.Message); return ds; /執(zhí)行insert,update,delete等語(yǔ)句,返回改變的行
25、數(shù)public static int ExecuteSql( string sql ) int rows = -1; MySqlConnection conn = new MySqlConnection(connString); MySqlCommand cmd = new MySqlCommand(sql,conn); try conn.Open(); rows = cmd.ExecuteNonQuery(); catch(MySqlException e) throw new Exception(e.Message); finally cmd.Dispose(); conn.Close()
26、; return rows; 5.2參數(shù)的傳遞在模塊的建立時(shí),很多時(shí)候發(fā)現(xiàn)功能不能正常運(yùn)行,在檢查完程序語(yǔ)句的結(jié)構(gòu)之后,發(fā)現(xiàn)并沒(méi)有錯(cuò)誤,于是在檢查頁(yè)面與頁(yè)面交互時(shí)發(fā)現(xiàn)了問(wèn)題,很多地方傳遞的參數(shù)并沒(méi)有真正的執(zhí)行,還有些地方?jīng)]有進(jìn)行參數(shù)的設(shè)置,才導(dǎo)致了程序的錯(cuò)誤。5.3公共數(shù)據(jù)由于一開(kāi)始沒(méi)有使用session對(duì)象,致使很多功能無(wú)法實(shí)現(xiàn),在學(xué)習(xí)了session的相關(guān)內(nèi)容后才解決了一些具體的問(wèn)題,包括網(wǎng)頁(yè)間的參數(shù)的傳遞,公共信息的保存及提取等。6系統(tǒng)的實(shí)現(xiàn)6.1登錄模塊6.1.1登錄模塊簡(jiǎn)介登錄模塊在本系統(tǒng)中用于區(qū)別學(xué)生、教師、管理員。出于保密性和方便管理等方面的考慮,不同身份在登錄本系統(tǒng)后有不同權(quán)限
27、。例如:學(xué)生登錄系統(tǒng)后可查詢及選課,教師登錄系統(tǒng)后可發(fā)布課程。管理員登錄系統(tǒng)后可添加教師、學(xué)生及課程信息。通過(guò)用戶權(quán)限,選擇正確身份,然后輸入用戶名(學(xué)號(hào)或身份證號(hào)或其它有效證件)、密碼,登錄信息提交后檢驗(yàn)登錄者的身份是否合法,合法,則轉(zhuǎn)入對(duì)應(yīng)的操作界面。(初始密碼均為admin,管理員登錄用戶名admin)操作主界面登錄界面選擇用戶類(lèi)型登錄驗(yàn)證NY輸入用戶名密碼圖61 登錄模塊流程圖6.1.2登錄模塊關(guān)鍵代碼主要代碼如下:protected void btnLogin_Click(object sender, EventArgs e) / 登錄代碼 int type = Int32.Pars
28、e(ddlLogin.SelectedItem.Value);/用戶類(lèi)型選擇分三種,用switch (type)來(lái)區(qū)分 string user = txtUser.Text.Trim();/用戶證件號(hào),文本框內(nèi)容賦值給user string inputkey = txtKey.Text.Trim();/用戶密碼,文本框內(nèi)容賦值給inputkey string key = "" string sql = "" DataSet ds; switch (type) /選擇學(xué)生,即type值為1,執(zhí)行case 1;選擇教師,即type值為2,執(zhí)行case 2;選
29、擇系統(tǒng)管理員,即type值為3,執(zhí)行case 3 case 1:/ 驗(yàn)證學(xué)生身份代碼 sql = "select SKey from Student where SId like '" + user + "'"/從表Student中查詢學(xué)號(hào)SId為輸入證件號(hào)user的學(xué)生密碼 ds = Db.ExecuteSelectSql(sql);/ 執(zhí)行select類(lèi)型的sql語(yǔ)句,返回select得到的數(shù)據(jù)集 if (ds != null && ds.Tables.Count > 0 && ds.Tables
30、0.Rows.Count > 0 && !ds.Tables0.Rows0.IsNull(0)/判斷select得到的數(shù)據(jù)集是否為空,若為空,執(zhí)行else key = ds.Tables0.Rows00.ToString();/將查詢到的密碼賦值給keyif (MyUtility.MD5(inputkey) = key)/輸入密碼經(jīng)過(guò)MD5加密,并與key相比較 /相等,便可成功登陸學(xué)生選課管理主頁(yè)面 Session"Id" = user;/ 內(nèi)置對(duì)象Session記錄用戶登錄學(xué)號(hào) Session"Type" = type; / 內(nèi)
31、置對(duì)象Session記錄用戶登錄類(lèi)型 Response.Redirect("StudentMain.aspx");/進(jìn)入學(xué)生選課管理主頁(yè)面 else/密碼錯(cuò)誤 Response.Redirect("Error.aspx?code=" + ErrorInfo.ERR_KEYERROR.ToString();/系統(tǒng)提示:密碼錯(cuò)誤 else/不存在該學(xué)生 Response.Redirect("Error.aspx?code=" + ErrorInfo.ERR_NOSTUDENT.ToString();/系統(tǒng)提示:不存在該學(xué)生 break;
32、case 2:/ 驗(yàn)證教師身份代碼 /與驗(yàn)證學(xué)生身份代碼類(lèi)似 break; case 3:/ 驗(yàn)證管理員身份代碼 /與驗(yàn)證學(xué)生身份代碼類(lèi)似 break; 6.1.3登錄模塊截圖圖62 登錄頁(yè)面圖63 學(xué)生登錄錯(cuò)誤頁(yè)面6.2學(xué)生選課模塊6.2.1學(xué)生選課模塊簡(jiǎn)介學(xué)生選課模塊是系統(tǒng)主要模塊之一,主要用于學(xué)生的網(wǎng)上選課,不同專(zhuān)業(yè)學(xué)生通過(guò)登錄選課系統(tǒng),選擇本專(zhuān)業(yè)的課程,完成選課任務(wù)。菜單:學(xué)生信息|必修課程|選修課程|已選課程,包括選課信息查詢及選課、必修課程信息查詢、已選課程信息查詢、學(xué)生個(gè)人信息修改、密碼修改等。6.2.2學(xué)生選課模塊關(guān)鍵代碼學(xué)生個(gè)人信息:protected void Page_L
33、oad(object sender, EventArgs e) / 顯示學(xué)生信息代碼 if (!IsPostBack) /表示第一次訪問(wèn)頁(yè)面時(shí)要執(zhí)行的程序,有點(diǎn)像初始化頁(yè)面,當(dāng)你點(diǎn)擊了當(dāng)前頁(yè)面的一些按鈕后,將不會(huì)再執(zhí)行這些程序 string sql = "select * from Student where SId like '" + Session"Id".ToString() + "'"/從表Student查詢學(xué)生的所有信息,條件是:學(xué)號(hào)SId為內(nèi)置對(duì)象Session記錄的用戶登錄學(xué)號(hào) DataSet ds =
34、Db.ExecuteSelectSql(sql); / 執(zhí)行select類(lèi)型的sql語(yǔ)句,返回select得到的數(shù)據(jù)集 if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0)/判斷select得到的數(shù)據(jù)集是否為空 lbSId.Text = Session"Id".ToString();/將Session記錄的用戶登錄學(xué)號(hào)在Label控件lbSId上顯示出來(lái) txtSName.Text = ds.Tables0.Rows0"SName"
35、;.ToString();/在TextBox控件txtSName中顯示select得到的學(xué)生姓名 if (ds.Tables0.Rows0"SSex".ToString() = "女") ddlSSex.SelectedIndex = 0; else ddlSSex.SelectedIndex = 1; /在DropDownList控件ddlSSex中顯示select得到的學(xué)生性別 txtSCollege.Text = ds.Tables0.Rows0"SCollege".ToString();/在TextBox控件txtSColle
36、ge中顯示select得到的學(xué)生學(xué)院 txtSProfessional.Text = ds.Tables0.Rows0"SProfessional".ToString();/在TextBox控件txtSProfessional中顯示select得到的學(xué)生專(zhuān)業(yè) txtSClass.Text = ds.Tables0.Rows0"SClass".ToString();/在TextBox控件txtSClass中顯示select得到的學(xué)生班級(jí) 密碼修改: protected void btnUpdateKey_Click(object sender, Event
37、Args e) /密碼修改代碼 if (txtKey.Text.Trim() != txtKeyOk.Text.Trim()/判斷輸入的新密碼與密碼確認(rèn)輸入的密碼是否相等,若不相等,執(zhí)行if語(yǔ)句;相等,不執(zhí)行if語(yǔ)句 Response.Write(MyUtility.Alert("兩次輸入密碼不相符合");/系統(tǒng)提示:兩次輸入密碼不相符合 return; /返回密碼修改頁(yè)面 string sql = "update Student set SKey = '" + MyUtility.MD5(txtKey.Text.Trim() + "&
38、#39; where SId = '" + Session"Id" + "'"/將表Studen中學(xué)號(hào)SId為內(nèi)置對(duì)象Session記錄的用戶登錄學(xué)號(hào)的學(xué)生密碼更新為修改的密碼 if (Db.ExecuteSql(sql) = 1) /判斷執(zhí)行update語(yǔ)句,改變的行數(shù)是否為1(即表Studen中只有該登錄學(xué)生的那一行密碼信息改變),若為1,則修改成功;否則,則修改失敗 Response.Write(MyUtility.Alert("修改成功!"); else Response.Write(MyUtilit
39、y.Alert("修改失??!"); 學(xué)生信息修改: protected void btnUpdateInfo_Click(object sender, EventArgs e) /學(xué)生信息修改代碼 string sql = "update Student set SName = '" + txtSName.Text.Trim() + "'" + ",SSex = '" + ddlSSex.SelectedItem.Text + "'" + ",SColl
40、ege = '" + txtSCollege.Text.Trim() + "'" + ",SProfessional= '" + txtSProfessional.Text.Trim() + "'" + ",SClass = '" + txtSClass.Text.Trim() + "'" + " where SId like '" + Session"Id".ToString() + &q
41、uot;'"/將表Studen中學(xué)號(hào)SId為內(nèi)置對(duì)象Session記錄的用戶登錄學(xué)號(hào)的學(xué)生信息更新為修改后的信息 if (Db.ExecuteSql(sql) = 1)/判斷執(zhí)行update語(yǔ)句,改變的行數(shù)是否為1(即表Studen中只有該登錄學(xué)生的那一行信息改變),若為1,則修改成功;否則,則修改失敗 Response.Write(MyUtility.Alert("修改成功!"); else Response.Write(MyUtility.Alert("修改失敗!"); 選課:protected void Page_Load(obj
42、ect sender, EventArgs e) / 可選課程顯示代碼 if ( ! IsPostBack ) string sql = "select Course.CId,Course.CName,Course.CProfessional, Teacher.TName, Teacher.TId,Course.CCredit, Course.CMax, Course.CRoom from Teacher inner join Course on Teacher.TId = Course.TId inner join Published on Course.CId = Publish
43、ed.CId inner join Student on Student.SProfessional = Course.CProfessional where CType like '選修' and Student.SId = '" + Session"Id" + "'"/從表Teacher、表Course中查詢要在GridView控件表格中顯示的內(nèi)容,要求課程類(lèi)型CType為選修,課程編號(hào)CId為教師已發(fā)布課程表Published中已存在課程編號(hào),教師編號(hào)TId為課程信息表Course中已存在的教師編號(hào),課程專(zhuān)
44、業(yè)Cprofessional為Session記錄的用戶登錄學(xué)號(hào)的學(xué)生的專(zhuān)業(yè)(即GridView控件表格中顯示的內(nèi)容為教師已發(fā)布的本專(zhuān)業(yè)的選修課程) DataSet ds = Db.ExecuteSelectSql(sql); if (ds != null && ds.Tables.Count > 0) gvXxCourse.DataSource = ds.Tables0; gvXxCourse.DataBind();/將查詢結(jié)果綁定到GridView控件gvXxCourse(選修課程表)中 for (int i = 0; i < ds.Tables0.Rows.Co
45、unt; i+)/循環(huán)條件:查詢所得的表(選修課程表)的數(shù)據(jù)總行數(shù) sql = "select count(*) from Selected where CId = " + ds.Tables0.Rowsi"CId".ToString();/查詢表Selected中的記錄數(shù),條件:課程編號(hào)CId等于GridView控件gvXxCourse中第i+1行的課程編號(hào) DataSet ds1 = Db.ExecuteSelectSql(sql); if (ds1 != null && ds1.Tables.Count > 0 &&a
46、mp; ds1.Tables0.Rows.Count > 0) gvXxCourse.Rowsi.Cells6.Text = ds1.Tables0.Rows00.ToString();/將從表Selected中返回的記錄數(shù)(即已選該課程人數(shù))在gvXxCourse中第i+1行、第7列(即已選人數(shù)那一列)顯示 protected void gvXxCourse_RowCommand(object sender, GridViewCommandEventArgs e) /判斷是否已選課代碼 if (e.CommandName = "Select") /控件的Comman
47、dName 屬性 gvXxCourse.DataKeyNames = new string "CId" ;/主鍵 int index = Convert.ToInt32(e.CommandArgument); string cid = gvXxCourse.DataKeysindex.Values0.ToString();/獲取要選擇的課程的課程編號(hào)cid string sql = "select * from Selected where CId = " + cid + " and SId like '" +Session&
48、quot;Id".ToString() + "'"/從表Selected中查詢登錄學(xué)生的學(xué)號(hào)及選擇的課程的課程編號(hào) Db.ExecuteSelectSql(sql); DataSet ds = Db.ExecuteSelectSql(sql); bool flag = false; /選修課程判斷標(biāo)志 if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0) flag = true; if (flag)/已選修過(guò) Response.Wr
49、ite(MyUtility.Alert("您已經(jīng)選了該課程了!"); return; else/未選修過(guò) SelectCourse(Int32.Parse(cid); /選課 private void SelectCourse(int cid) /選課代碼 int max=0,current=0; string sql = "select CMax from Course where CId = "+cid;/查詢所選課程允許的最大人數(shù) DataSet ds = Db.ExecuteSelectSql(sql); if ( ds != null &
50、;& ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0 ) max = Int32.Parse(ds.Tables0.Rows00.ToString();/最大人數(shù)賦值給max else return; sql = "select count(*) from Selected where CId = "+cid; /查詢表Selected中所選擇課程的課程編號(hào)的記錄數(shù)(即已選該課程人數(shù)) DataSet ds1 = Db.ExecuteSelectSql(sql); if ( ds1 != null && ds1.Tables.Count > 0 && ds1.Tables0.Rows.Count > 0 ) current = Int3
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版智能電網(wǎng)建設(shè)承包經(jīng)營(yíng)合同3篇
- 二零二五年度木飾面產(chǎn)品認(rèn)證與檢測(cè)服務(wù)合同3篇
- 2025版學(xué)校醫(yī)務(wù)室與保險(xiǎn)公司合作學(xué)生意外傷害保險(xiǎn)合同5篇
- 2025合同簽訂注意事項(xiàng)
- 二零二五年度酒店裝修專(zhuān)用地板磚采購(gòu)合同4篇
- 2025年度綠色建筑項(xiàng)目產(chǎn)權(quán)歸屬與節(jié)能環(huán)保標(biāo)準(zhǔn)合同4篇
- 2025生產(chǎn)責(zé)任承包合同范本
- 二零二四年商業(yè)地產(chǎn)項(xiàng)目商鋪裝修施工合同規(guī)范3篇
- 2025年度個(gè)人果園果樹(shù)種植與農(nóng)業(yè)觀光旅游合作合同4篇
- 二零二五版出租車(chē)公司投資入股及客運(yùn)市場(chǎng)拓展合同3篇
- 化學(xué)-河南省TOP二十名校2025屆高三調(diào)研考試(三)試題和答案
- 智慧農(nóng)貿(mào)批發(fā)市場(chǎng)平臺(tái)規(guī)劃建設(shè)方案
- 林下野雞養(yǎng)殖建設(shè)項(xiàng)目可行性研究報(bào)告
- 2023年水利部黃河水利委員會(huì)招聘考試真題
- Python編程基礎(chǔ)(項(xiàng)目式微課版)教案22
- 建筑施工中常見(jiàn)的安全問(wèn)題及解決方法
- 近五年重慶中考物理試題及答案2023
- 乳腺導(dǎo)管原位癌
- 冷庫(kù)管道應(yīng)急預(yù)案
- 《學(xué)習(xí)教育重要論述》考試復(fù)習(xí)題庫(kù)(共250余題)
- 網(wǎng)易云音樂(lè)用戶情感畫(huà)像研究
評(píng)論
0/150
提交評(píng)論