




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于 ASP.net 的學(xué)生網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)摘要: 隨著在校大學(xué)生人數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)據(jù)量也不斷的上漲。針對學(xué)生選課這一 環(huán)節(jié),本系統(tǒng)從學(xué)生網(wǎng)上自主選課以及教師的課程發(fā)布兩個大方面進行了設(shè)計,基本實現(xiàn)了學(xué)生的在 線信息查詢、 選課功能以及教師對課程信息發(fā)布的管理等功能。 本程序由 SQL Server 數(shù)據(jù)庫支持, 通 過使用 ASP 語言實現(xiàn)。本文對學(xué)生網(wǎng)上選課系統(tǒng)進行了系統(tǒng)分析,詳細講述了系統(tǒng)功能,并對數(shù)據(jù) 庫設(shè)計等方面加以說明。關(guān)鍵詞 :選課;課程信息發(fā)布; MySQL ; ASP1 緒論1.1 課題背景隨著教學(xué)體制的不斷改革,尤其是學(xué)分制、選課制的展開和深入,教務(wù)日常管
2、理工作 日趨繁重、復(fù)雜。如何把教務(wù)工作信息化,模塊化,便捷化是現(xiàn)代大學(xué)發(fā)展的重點,所以迫 切需要研制開發(fā)一種綜合教務(wù)管理軟件。 在數(shù)字校園理論逐步應(yīng)用的過程中, 各校一方面不 斷投資購建各種硬件、系統(tǒng)軟件和網(wǎng)絡(luò), 另一方面也不斷開發(fā)實施了各類教學(xué)、科研、 辦公 管理等應(yīng)用系統(tǒng), 形成了一定規(guī)模的信息化建設(shè)體系。 但是,由于整體信息化程度相對落后, 經(jīng)費短缺, 理論體系不健全等原因, 國內(nèi)各校教務(wù)管理系統(tǒng)在機構(gòu)設(shè)置、服務(wù)范圍、服務(wù)質(zhì) 量及人員要求上與國外高校相比都有一定的差距。目前國家的教育體制也正處在不斷改革、創(chuàng)新的階段,教育部門充分吸取國外優(yōu)秀的 教學(xué)模式, 結(jié)合國內(nèi)多年的辦學(xué)經(jīng)驗, 逐步探
3、索出適合中國特色的教學(xué)形式, 國家教育部面 向各級各類學(xué)校開展了全面學(xué)分制改革。 隨著無紙化辦公的一步步實現(xiàn), 信息的自動處理以 及網(wǎng)絡(luò)式的信息交互方式越來越被人們認可和應(yīng)用。 讓計算機來管理學(xué)生的信息是現(xiàn)在各個 高校都在積極進行的工作之一, 也是高校教學(xué)管理工作的重要內(nèi)容之一。 網(wǎng)上選課與傳統(tǒng)的 選課方式相比更加節(jié)約資源, 同時,隨著學(xué)生選課自主權(quán)的增加, 網(wǎng)上選課有效的避免了 “走 關(guān)系” 等不良現(xiàn)象, 使教學(xué)更加透明, 為進一步實現(xiàn)完善的計算機教務(wù)管理系統(tǒng)和全校信息 系統(tǒng)打下良好的基礎(chǔ)。1.2 所用軟件的基本知識1.2.1 MySQLMySQL 有關(guān)數(shù)據(jù)庫方面的操作。 注意:必須首先登錄
4、到 mysql 中,以下操作都是在 mysql 的提示符下進行的, 而且每個命令以分號結(jié)束。操作技巧:如果你打命令時,回車后發(fā)現(xiàn)忘 記加分號, 你無須重打一遍命令, 只要打個分號回車就可以了。 也就是說你可以把一個完整的命令分成幾行來打,完后用分號作結(jié)束標志就OK ?;久?: 列出數(shù)據(jù)庫 show databases;選擇數(shù)據(jù)庫 use 庫名 ; 列出表格 show tables;顯示數(shù)據(jù)表的結(jié)構(gòu) describe 表名 ;建庫 create database 庫名 ;建表 use 庫名 ;create table 表名( 字段設(shè)定列表 ); 刪庫和刪表 drop database 庫名
5、;drop table 表名 ;將表中記錄清空 delete from 表名 ;顯示表中的記錄 select * from 表名 ;將文本數(shù)據(jù)轉(zhuǎn)到數(shù)據(jù)庫中l(wèi)oad data local infile " 文件名 " into table 表名 ;(注意 : 文本數(shù)據(jù)應(yīng)符合的格式:字段數(shù)據(jù)之間用tab 鍵隔開)1.2.2 ASP( Active Server Page )Active Server Pages (ASP) 是服務(wù)器端腳本編寫環(huán)境, 是由 Server 端腳本、 對象以及組件 拓展過的標準主頁使用它可以創(chuàng)建和運行動態(tài)、交互的 Web 頁和基于 Web 的功能強大
6、的 應(yīng)用程序 ASP 采用的工作模型是典型的 B/S 過程:(1) 一個用戶在瀏覽器的網(wǎng)址欄中添入Active Server Pages文件名稱,并回車觸發(fā)這個Active Server Pages 的申請。(2) 瀏覽器將這個 Active Server Pages的求發(fā)送給IIS(3) Web Server接收這個申請要求并由于其. asp的后綴意識到這是個 Active Server Pag的對象來實現(xiàn)服務(wù)器與客戶端間的交互;可擴充服務(wù)器端功能ASP 與瀏覽器無關(guān), ASP可以將運行結(jié)果一 HTML 的格式傳送到客戶端瀏覽器,因而可以使用于各種瀏覽器。2 系統(tǒng)分析2.1 可行性分析可行性
7、分析是指在當前組織內(nèi)外的具體條件下,系統(tǒng)開發(fā)工作必須具備資源和條件, 看其是否滿足系統(tǒng)目標的要求。 在系統(tǒng)開發(fā)過程中進行可行性分析, 對于保證資源的合理使 用,避免浪費和一些不必要的失敗,都是十分重要的。(1) 目標和方案的可行性:如果采用人工操作的方式,不僅操作不方便,耗費人力、物力、 財力,而且還容易出現(xiàn)錯誤。 所以當前迫切需要一個計算機化的管理信息系統(tǒng)。 有了 這個系統(tǒng),就能用較少的人力去管理完成較大的工作量,而各種管理的效率也會大大提高。 開發(fā)這個系統(tǒng),能更好地滿足學(xué)校要求,使學(xué)校的各種信息管理實現(xiàn)無紙化,高效化。(2) 技術(shù)方面的可行性:本系統(tǒng)是用ASP結(jié)合MySql數(shù)據(jù)庫來開發(fā)的一
8、個信息管理軟件。 ASP 在數(shù)據(jù)庫方面的特長顯得尤為突出:適用于多種數(shù)據(jù)庫結(jié)構(gòu),通過訪問各種數(shù) 據(jù)庫通用組件 , 結(jié)合客戶端能夠創(chuàng)建出完美漂亮且高效的各種軟件系統(tǒng)。(3) 經(jīng)濟方面的可行性:系統(tǒng)結(jié)構(gòu)采用當前流行的B/S結(jié)構(gòu),對客戶的配置要求低,客戶端只需要有瀏覽器可以上網(wǎng)就可以登錄服務(wù)器進行各種信息的管理。 而服務(wù)器端也不需 要太高的配置,只要有可以運行asp程序的解釋器,可以說整個系統(tǒng)是以最少的投入完成最 好的功能,這就保證了系統(tǒng)的經(jīng)濟可行性。(4) 管理方面的可行性: 作為學(xué)校教務(wù)信息管理系統(tǒng)之一的選課系統(tǒng), 對它的管理也 是很方便的, 只需要先將系統(tǒng)配置運行起來, 然后分配好系統(tǒng)的三個主
9、要角色, 就可以投入 實際使用,作為系統(tǒng)使用者如管理員,教師和學(xué)生基本都是會知道如何進行電腦操作的。根據(jù)以上幾方面的可行性分析,可以得出結(jié)論:學(xué)生網(wǎng)上選課系統(tǒng)的開發(fā)可行。2.2 功能分析本系統(tǒng)的使用是面向大學(xué)院校, 系統(tǒng)的使用對象包括系統(tǒng)管理員, 教師和學(xué)生三種身份, 系統(tǒng)管理員登錄系統(tǒng)后可以管理學(xué)生的信息, 管理教師的信息, 管理每學(xué)期各個班級的必修 課程信息, 各個專業(yè)每個學(xué)期的選修課程信息, 可以為這些課程進行排課; 而教師用戶登錄 系統(tǒng)后可以查詢?nèi)我鈱W(xué)生的信息, 可以查詢自己的授課信息, 可以登記自己所教學(xué)生的成績 信息 , 可以修改自己的登錄密碼和個人信息;學(xué)生用戶登錄系統(tǒng)后可以查詢
10、任一學(xué)期自己的 成績信息,如果系統(tǒng)開放了選課功能, 可以在指定的日期內(nèi)登錄系統(tǒng)后選修該學(xué)期的選修課, 可以生成某個學(xué)期的課程上課信息表, 可以修改自己的個人信息和登錄密碼。 本系統(tǒng)一共有 4個主模塊(身份驗證丨學(xué)生管理丨教師管理丨管理員管理),其中每個管理部分又包含了幾個子???,主要功能可概括為為瀏覽、查詢、修改、添加。2.3 系統(tǒng)程序流程圖圖3- 1系統(tǒng)程序流程圖3系統(tǒng)總體設(shè)計3.1系統(tǒng)結(jié)構(gòu)設(shè)計3.1.1主要功能本系統(tǒng)主要功能。(1) 身份驗證:通過登錄才可進入選課系統(tǒng),登錄信息提交后檢驗登錄者的身份是 否合法,合法,則轉(zhuǎn)入對應(yīng)的操作界面。在本系統(tǒng)中,只有三種身份:學(xué)生、 教師、管理員。(2
11、) 信息瀏覽:信息瀏覽包括已選課程瀏覽、已發(fā)布課程信息瀏覽。已選課程瀏覽核對。是為學(xué)生提供的查看自己已經(jīng)選擇的課程信息以及刪除選擇課程。已發(fā)布課程 信息瀏覽用于各代課老師查詢自己已經(jīng)發(fā)布的課程信息,主要用于瀏覽、(3) 信息查詢:信息查詢包括教師個人信息查詢、課程查詢、選課查詢。課程查詢即查詢該課程的相關(guān)介紹,包括課程內(nèi)容、開課地點等內(nèi)容。教師個人信息是查看及修改對應(yīng)的老師個人信息。通過選課查詢可以查看要選擇的課程情況。(4) 信息修改:信息修改包括密碼的修改,學(xué)生信息的修改,教師信息的修改。(5) 信息添加:信息添加包括學(xué)生選課、教師課程發(fā)布、管理員。學(xué)生選課即通過選擇選修的課程,添加到學(xué)生
12、已選課程中,完成選課任務(wù)。教師課程發(fā)布即教 師添加新的課程信息,新信息發(fā)布后,學(xué)生可看到發(fā)布的信息。管理員添加學(xué) 生、教師、課程的基本信息。3.1.2系統(tǒng)模塊功能圖圖3-2系統(tǒng)功能圖3.2數(shù)據(jù)庫設(shè)計根據(jù)系統(tǒng)功能設(shè)計的要求以及功能模塊的劃分,可以列出以下主要數(shù)據(jù)項和數(shù)據(jù)庫,主要分為 6 個表:表 Course、表 Student、表 Teacher、表 Admin、表 Selected、表 Published表3.1課程信息表(Course)名稱字段名稱類別主鍵非空課程編碼CIdintYesYes教師編號TIdvarcharNoNo課程名稱CNamevarcharNoNo課程類別CTypevar
13、charNoNo供選學(xué)院CCollegevarcharNoNo供選專業(yè)CProfessionalvarcharNoNo學(xué)分CCreditvarcharNoNo最多人數(shù)CMaxvarcharNoNo上課地點CRoomvarcharNoNo課程介紹introductiontextNoNo表3.2 學(xué)生信息表(Student)名稱字段名稱類別主鍵非空學(xué)號SIdvarcharYesYes姓名SNamevarcharNoNo性別SSexcharNoNo所屬學(xué)院SCollegevarcharNoNo所在專業(yè)SProfessionalvarcharNoNo班級SClassvarcharNoNo密碼SKeyv
14、archarNoNo表3.3 教師信息表(Teacher)名稱字段名稱類別主鍵非空身份證號TIdvarcharYesYes姓名TNamevarcharNoNo性別TSexcharNoNo所屬學(xué)院TCollegevarcharNoNo所屬專業(yè)TProfessionalvarcharNoNo密碼TKeyvarcharNoNo表3.4 管理員信息表(Admin)名稱字段名稱類別主鍵非空登錄號AIdvarcharYesYes密碼AKeyvarcharNoNo表3.5學(xué)生選課信息表(Selected )名稱字段名稱類別主鍵非空學(xué)號SIdvarcharNoNo課程編碼CIdintNoNo表3.6教師發(fā)布課
15、程信息表(Published )名稱字段名稱類別主鍵非空教師證件號TIdvarcharNoNo課程編碼CIdintNoNo4系統(tǒng)詳細設(shè)計4.1身份驗證4.1.1登錄功能在登錄頁面對應(yīng)的地方輸入用戶名(學(xué)號或身份證號或其它有效證件),密碼;確認后登錄。在提交后,首先通過學(xué)號身份證號或其它有效證件對數(shù)據(jù)庫中的 Student/Teacher/Admin表進行檢索,若檢索到的記錄集為空,則說明學(xué)號/身份證號或其它有效證件錯誤,從而轉(zhuǎn)到相應(yīng)的出錯處理程序,若記錄集不為空,再進行密碼判斷,檢查密碼是否相等,不相等,作出錯處理,相等則轉(zhuǎn)入學(xué)生老師管理員登錄成功的操作頁面, 并將姓名,密碼,學(xué)號身份證號或其
16、它有效證件以session對象保存起來。出錯及系統(tǒng)提示如下:(1) 學(xué)號或身份證號或其它有效證件錯誤,系統(tǒng)這時會提醒“沒有該學(xué)生!”或“沒有該老師! ”或“沒有該系統(tǒng)管理員! ”;(2) 密碼錯誤,系統(tǒng)提示“密碼錯誤”。4.1.2密碼修改功能密碼的修改的前提是用戶成功登錄,選擇密碼修改后,按照頁面上的提示, 在相應(yīng)的文本框中輸入新密碼(兩次),確定后提交。轉(zhuǎn)入執(zhí)行的asp文件后,判斷兩次輸入的新密碼是否相等,若不等,出錯;否則,用新密碼代替舊密碼,更新數(shù)據(jù)庫表Stude nt/Teacher中的“密碼”字段。本系統(tǒng)密碼采用MD5加密。出錯及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不
17、相符合”4.2 學(xué)生信息管理功能4.2.1 選課信息查詢及選課登錄成功后,點擊菜單“選修課程” ,確定后進入瀏覽頁面。進入頁面后,可以對頁面 上表格內(nèi)帶鏈接的信息進行查詢, 例如點擊“教師”可查詢教師信息。 要選擇課程, 點擊“選 修該課程”后,該課程就會出現(xiàn)在“已選課程”的表格中。若已選過該課程,系統(tǒng)提示“您 已經(jīng)選了該課程!” 。4.2.2 必修課程信息查詢點擊菜單“必修課程” ,可看到學(xué)生所在專業(yè)所開設(shè)的必修課程。其中查詢數(shù)據(jù)庫所需 要的參數(shù)是學(xué)生的專業(yè)信息傳遞來的。專業(yè)信息的獲得是通過session(Sld)對數(shù)據(jù)表Student查詢得到的。進入頁面后,可以對頁面上表格內(nèi)帶鏈接的信息進
18、行查詢,例如點擊“課程名稱”可查詢課程信息。4.2.3 已選課程信息查詢點擊菜單“已選課程” ,在選課信息瀏覽頁面中可以查詢已經(jīng)選的課程。課程信息的查 詢是通過條件對數(shù)據(jù)表Course,表Selected,表Teacher等進行查詢,將符合條件的信息列出。想要退選課程,點擊“取消該課程”按鈕即可。4.2.4 學(xué)生個人信息點擊菜單“學(xué)生信息” ,進入選課信息瀏覽頁面查詢即可。學(xué)生信息的修改首先是通過 條件對數(shù)據(jù)表Stude nt進行查詢,符合條件后在文本框中輸入完整信息后進行覆蓋寫入,就 可以進行信息修改。4.2.5 密碼修改點擊菜單“學(xué)生信息” ,進入選課信息瀏覽頁面。按照頁面上的提示,在相應(yīng)
19、的文本框 中輸入新密碼(兩次) ,確定后提交。轉(zhuǎn)入執(zhí)行的 asp 文件后,判斷兩次輸入的新密碼是否 相等,若不等,出錯;否則,用新密碼代替舊密碼,更新數(shù)據(jù)庫表Student中的“ SKey”字 段。出錯及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不相符合” 。4.3 教師課程信息管理功能4.3.1 課程信息發(fā)布登錄成功后,點擊菜單“發(fā)布課程” ,進入選課信息瀏覽頁面。如果想要單獨查看某專 業(yè)該教師可發(fā)布課程,在查詢條件“課程專業(yè)”對應(yīng)的文本框內(nèi)輸入查詢信息(不輸入信息 時,表中顯示該教師可發(fā)布課程的所有課程信息) ,點擊“查詢”按鈕,即可查詢。若要發(fā) 布課程,按要求輸入完整信息(課程
20、名稱與課程專業(yè)不能改變) ,點擊“開設(shè)課程”按鈕。 若輸入信息不完整,系統(tǒng)會提示“請輸入 , !” ;當發(fā)布的課程的記錄已經(jīng)存在時,系統(tǒng) 提示“您已經(jīng)發(fā)布了該課程! ”。當輸入的課程名稱或課程專業(yè)有誤, 系統(tǒng)提示“發(fā)布失?。?”。4.3.2 對已發(fā)布信息查詢對數(shù)據(jù)表Course,表Published等進行檢索,將其中符合條件的信息全部輸出;查詢需 要的參數(shù)是由 session 對象獲得的身份證號來確定的,由這二者確定出的即是該老師所發(fā)布 過的課程信息。想要取消發(fā)布課程,點擊“取消發(fā)布課程”按鈕即可。4.3.3 教師個人信息點擊菜單“教師信息” ,進入選課信息瀏覽頁面查詢即可。教師信息的修改首先
21、是通過 條件對數(shù)據(jù)表Teacher進行查詢,符合條件后在文本框中輸入完整信息后進行覆蓋寫入,就 可以進行信息修改。4.3.4 密碼修改點擊菜單“教師信息” ,進入選課信息瀏覽頁面。按照頁面上的提示,在相應(yīng)的文本框 中輸入新密碼(兩次) ,確定后提交。轉(zhuǎn)入執(zhí)行的 asp 文件后,判斷兩次輸入的新密碼是否 相等,若不等,出錯;否則,用新密碼代替舊密碼,更新數(shù)據(jù)庫表Teacher中的“TKey”字段。出錯及系統(tǒng)提示:新密碼兩次輸入不同,系統(tǒng)提示“兩次輸入密碼不相符合”。4.4 系統(tǒng)管理員信息管理功能4.4.1 管理教師功能教師信息的添加、修改、刪除、查詢由管理員完成,教師無權(quán)使用。(1) 添加:對數(shù)
22、據(jù)表“ Teacher'進行添加操作,生成新記錄。在管理員登錄成功后, 選擇“教師信息”即進入教師信息添加頁面, 輸入要添加的教師身份證號、 教師姓名等教師 信息后(初始密碼 admin),點擊添加按鈕即可。出錯及系統(tǒng)提示: 輸入的教師的身份證號已存在,系統(tǒng)則提示“添加失敗 , 請檢查教師證件號是否已經(jīng)存 在!'。(2) 修改:在管理員登錄成功后,選擇“教師信息”即進入教師信息頁面。對數(shù)據(jù)庫 中的表“ Teacher'查詢,在網(wǎng)頁相應(yīng)的的地方顯示所要的信息。列出教師信息表后,在表 中查詢要修改的教師身份證號后, 點擊“修改' 按鈕, 修改所要修改的教師的信息,
23、點擊“更 新'按鈕,若不修改,則點擊“取消'按鈕。(3) 刪除:在管理員登錄成功后,選擇“教師信息”即進入教師信息頁面。查詢要刪 除的教師身份證號,點擊“刪除'按鈕進行刪除。(4) 查詢:在教師信息頁面,輸入要查詢專業(yè),點擊“查詢”按鈕即可查詢該專業(yè)的 教師情況。4.4.2 管理學(xué)生功能學(xué)生信息的添加、修改、刪除、查詢功能與管理教師信息基本相同,不再贅述。4.4.3 管理課程功能課程信息的添加、修改、刪除查詢功能與管理教師信息基本相同,不再贅述。5 設(shè)計過程中的問題及解決方法5.1 數(shù)據(jù)庫的連接MySQL 與 SQL server 的連接方式大致相同 , 當 MySQL
24、 與 VS 連接時,需要組件 mysql-connector-net, 通過查找及實踐,完成了數(shù)據(jù)庫的建立和連接。如圖51:輸入信息以連接到選定餡數(shù)據(jù)源,或單擊“更改W蜂另-個數(shù)站逓和/或捉拱程序.數(shù)據(jù)濾:SET Fr«jnavcrk Providar for 呼 更改 ©. . _ms 鈦localVs er血剖n亡:rootij測試連接成功,Save ftiy 衛(wèi)魚!確運J* 1 ft®®.L確定二IL取梢圖5 - 1 mysql數(shù)據(jù)庫的連接數(shù)據(jù)庫連接操作類主要代碼:conn Stri ng數(shù)據(jù)庫連接字符串privateconstString=&qu
25、ot;Server=localhost;Database=ChooseCourse;Uid=root;Pwd=sa"返回select得到的數(shù)據(jù)集public static DataSetExecuteSelectSql( string sqlSelect )MySqlC onn ectio n conn = new MySqlC onn ecti on(conn Stri ng); MySqlDataAd aptersda = new MySqlDataAdapter(sqlSelect,co nn); DataSet ds = new DataSet();try sda.Fill(
26、ds); catch(MySqlExcepti on e) throw new Excepti on( e.Message);return ds;/執(zhí)行insert, update, delete等語句,返回改變的行數(shù) public static intExecuteSql( string sql )int rows = -1;MySqlC onn ectio n conn = new MySqlC onn ectio n(connStrin g);MySqlComma ndcmd = new MySqlComma nd(sql,c onn);tryconn.Open();rows = cmd
27、.ExecuteNonQuery();catch(MySqlException e)throw new Exception(e.Message);finallycmd.Dispose();conn.Close();return rows;5.2 參數(shù)的傳遞在模塊的建立時, 很多時候發(fā)現(xiàn)功能不能正常運行, 在檢查完程序語句的結(jié)構(gòu)之后, 發(fā) 現(xiàn)并沒有錯誤, 于是在檢查頁面與頁面交互時發(fā)現(xiàn)了問題, 很多地方傳遞的參數(shù)并沒有真正 的執(zhí)行,還有些地方?jīng)]有進行參數(shù)的設(shè)置,才導(dǎo)致了程序的錯誤。5.3 公共數(shù)據(jù)由于一開始沒有使用 session對象,致使很多功能無法實現(xiàn), 在學(xué)習(xí)了 session的相關(guān)內(nèi) 容
28、后才解決了一些具體的問題,包括網(wǎng)頁間的參數(shù)的傳遞,公共信息的保存及提取等。6 系統(tǒng)的實現(xiàn)6.1 登錄模塊6.1.1 登錄模塊簡介登錄模塊在本系統(tǒng)中用于區(qū)別學(xué)生、教師、管理員。出于保密性和方便管理等方面的考慮,不同身份在登錄本系統(tǒng)后有不同權(quán)限。例如:學(xué)生登錄系統(tǒng)后可查詢及選課,教師登錄系統(tǒng)后可發(fā)布課程。管理員登錄系統(tǒng)后可添加教師、學(xué)生及課程信息。通過用戶權(quán)限,選擇正確身份,然后輸入用戶名(學(xué)號或身份證號或其它有效證件)、密碼,登錄信息提交后檢驗登錄者的身份是否合法,合法,則轉(zhuǎn)入對應(yīng)的操作界面。(初始密碼均為 admin,管理員登錄用戶名admin)6.1.2登錄模塊關(guān)鍵代碼主要代碼如下:prot
29、ected void btn Logi n_Click(object sen der. Even tArgs e)/登錄代碼int type = Int32.Parse(ddlLogin.Selectedltem.Value);/ 用戶類型選擇分三種,用switch(type)來區(qū)分string user = txtUser.Text.Trim(); 用戶證件號,文本框內(nèi)容賦值給userstri ng in putkey = txtKey.Text.Trim();/ 用戶密碼,文本框內(nèi)容賦值給in putkeystri ng key =""stri ng sql =&quo
30、t;"DataSet ds;switch (type)/選擇學(xué)生,即type值為1,執(zhí)行case 1;選擇教師,即type值為2,執(zhí)行case 2;選擇系統(tǒng)管理員,即type值為3,執(zhí)行case 3case 1:/驗證學(xué)生身份代碼sql = "select SKey from Student where Sid like '" + user + ""'/ 從表 Student中 查詢學(xué)號Sid為輸入證件號"user"的學(xué)生密碼ds = Db.ExecuteSelectSql(sql);/ 執(zhí)行 select類
31、型的 sql語句,返回 selec得到的 數(shù)據(jù)集if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0&& !ds.Tables0.Rows0.lsNull(0) 判斷 select得到的數(shù)據(jù)集是否 為空,若為空,執(zhí)行 elsekey = ds.Tables0.Rows00.ToString();/ 將查詢到的密碼賦值給 key if (MyUtility.MD5(inputkey) = key)/輸入密碼經(jīng)過 MD5 加密,并與key相比較/ 相等,便可成
32、功登陸學(xué)生選課管理主頁面Sessi on "Id" = user;/內(nèi)置對象SessioraE錄用戶登錄學(xué)號 Session"Type" = type; / 內(nèi)置對象Sessior記錄用戶登錄類型 Response.Redirect("StudentMain.aspx");/ 進入學(xué)生選課管理主頁 面else/密碼錯誤Response.Redirect("Error.aspx?code=" + Errorinfo.ERR_KEYERROR.ToString();/ 系統(tǒng)提示: 密碼錯 誤else/不存在該學(xué)生Res
33、ponse.Redirect("Error.aspx?code=" + Errorinfo.ERR_NOSTUDENT.ToString();/系統(tǒng)提示:不存在該學(xué)生break;case 2:/驗證教師身份代碼與驗證學(xué)生身份代碼類似break;case 3:/驗證管理員身份代碼與驗證學(xué)生身份代碼類似break;6.1.3登錄模塊截圖1. F令邁(9 v>f, I ML(*)v | . localhostw 擔索-M- 3S0安全瀏覽踣3兒g請豊錄 if4(E)査制里)收藏 帳戶x賽成二切換瀏盟複式©igjff筍 電Q B 下載+報b -I 100% *cas
34、e 3:/驗證管理員身份代碼case 3:/驗證管理員身份代碼圖6-2登錄頁面HBM7 lH* *!«V|iUtf 畔血 *WJI £«WWr疫舟覆學(xué)生!圖6-3學(xué)生登錄錯誤頁面6.2學(xué)生選課模塊6.2.1學(xué)生選課模塊簡介學(xué)生選課模塊是系統(tǒng)主要模塊之一,主要用于學(xué)生的網(wǎng)上選課,不同專業(yè)學(xué)生通過登錄選課系統(tǒng),選擇本專業(yè)的課程,完成選課任務(wù)。菜單:學(xué)生信息|必修課程|選修課程已選課程,包括選課信息查詢及選課、必修課程信息查詢、已選課程信息查詢、學(xué)生個人信息修改、 密碼修改等。622學(xué)生選課模塊關(guān)鍵代碼學(xué)生個人信息:protected void Page_Load(ob
35、ject sen der. Even tArgs e)/顯示學(xué)生信息代碼if (!lsPostBack)/表示第一次訪問頁面時要執(zhí)行的程序,有點像初始化頁面, 當你點擊了當前頁面的一些按鈕后,將不會再執(zhí)行這些程序string sql = "select * from Student where Sld like '" + Session"ld".ToString() + "“'/從表Student查詢學(xué)生的所有信息,條件是:學(xué)號 Sld為內(nèi)置對象 Sessio n記錄的用戶登錄學(xué)號DataSet ds = Db.ExecuteS
36、electSql(sql); / 執(zhí)行 select 類型的 sql 語句,返回 select得到的數(shù)據(jù)集if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0)/ 判斷select得到的數(shù)據(jù)集是否為空IbSId.Text = Session"ld".ToString(); 將Sessior記錄的用戶登錄學(xué)號在 Label控件 IbSId上顯示 出來txtSName.Text = ds.Tables0.Rows0"SName".ToS
37、trirg();/ 在 TextBox控件txtSName中顯示select得到的學(xué)生姓名if (ds.Tables0.Rows0"SSex".ToStrirg() = "女")ddlSSex.SelectedIrdex = 0;elseddlSSex.SelectedIrdex = 1;在DropDownList控件ddlSSex中顯示select得到的學(xué)生性別 txtSCollege.Text = ds.Tables0.Rows0"SCollege".ToStrirg();/ 在 TextBox控件txtSCollege中顯示se
38、lect得到的學(xué)生學(xué)院 txtSProfessioral.Text =ds.Tables0.Rows0SProfessio naF.ToStri ng(); 在 TextBox 控件 txtSProfessional中顯示selec得到的學(xué)生專業(yè)txtSClass.Text = ds.Tables0.Rows0"SClass".ToStrirg();/ 在 TextBox控件txtSClass中顯示selec得到的學(xué)生班級密碼修改:protected void btnUpdateKey_Click(object sender, EventArgs e)/密碼修改代碼if (
39、txtKey.Text.Trim() != txtKeyOk.Text.Trim()/ 判斷輸入的新密碼與密碼確認 輸入的密碼是否相等,若不相等,執(zhí)行if語句;相等,不執(zhí)行if語句Response.Write(MyUtility.Alert(" 兩次輸入密碼不相符合 ");/系統(tǒng)提示:兩 次輸入密碼不相符合return; /返回密碼修改頁面string sql = "update Student set SKey = '" + MyUtility.MD5(txtKey.Text.Trim() +"'where SId =
40、9;" + Session"ld" + "”'/ 將表 Studen中學(xué)號 SId為內(nèi)置 對象Session記錄的用戶登錄學(xué)號的學(xué)生密碼更新為修改的密碼if (Db.ExecuteSql(sql) = 1) /判斷執(zhí)行update語句,改變的行數(shù)是否為1 (即表 Stude n中只有該登錄學(xué)生的那一行密碼信息改變),若為 1,則修改成功;否 則,則修改失敗Response.Write(MyUtility.Alert(" 修改成功! ");elseResponse.Write(MyUtility.Alert(" 修改失
41、??! ");學(xué)生信息修改:protected void btnUpdateInfo_Click(object sender, EventArgs e)/學(xué)生信息修改代碼string sql = "update Student set SName = '" + txtSName.Text.Trim() + "'" +",SSex = '" + ddlSSex.SelectedItem.Text + "'" +",SCollege = '" + tx
42、tSCollege.Text.Trim() + "'" +",SProfessional= '" + txtSProfessional.Text.Trim() + "'" +",SClass = '" + txtSClass.Text.Trim() + "'" +"where SId like '" + Session"ld".ToString() + "”'/將表 Studen中學(xué)號 SI
43、d為內(nèi)置對象Session記錄的用戶登錄學(xué)號的學(xué)生信息更新為修改后的信息if (Db.ExecuteSql(sql) = 1)/判斷執(zhí)行update語句,改變的行數(shù)是否為1 (即表 Stude n中只有該登錄學(xué)生的那一行信息改變),若為 1,則修改成功;否則, 則修改失敗Response.Write(MyUtility.Alert(" 修改成功! ");elseResponse.Write(MyUtility.Alert(" 修改失??! ");選課:protected void Page_Load(object sender, EventArgs e)/
44、 可選課程顯示代碼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 = Published.CId inner join Student on
45、Student.SProfessional = Course.CProfessional where CType like ' 選修 ' and Student.SId = '" + Session"Id" + "'"/ 從表 Teacher、表 Course 中查詢要在 GridView 控件表格中顯示的內(nèi)容,要求課程類型 CType為選修,課程編號Cid為教師已發(fā)布課程表 Published中已存在課程編 號,教師編號TId為課程信息表Course中已存在的教師編號,課程專業(yè)Cprofessional為Ses
46、sion記錄的用戶登錄學(xué)號的學(xué)生的專業(yè)(即 GridView控 件表格中顯示的內(nèi)容為教師已發(fā)布的本專業(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.Count; i+)/ 循環(huán)條件:
47、 查詢所得的 表(選修課程表)的數(shù)據(jù)總行數(shù)sql = "select count(*) from Selected where CId = " + ds.Tables0.Rowsi"CId".ToString();/ 查詢表 Selected 中的記錄數(shù),條件:課程編號CId等于GridView控件gvXxCourse中第i+1行的課程編 號DataSet ds1 = Db.ExecuteSelectSql(sql); if (ds1 != null && ds1.Tables.Count > 0 && ds1.Ta
48、bles0.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") / 控件的 CommandName 屬性 g
49、vXxCourse.DataKeyNames = new string "CId" ;/ 主鍵 int index = Convert.ToInt32(e.CommandArgument);string cid = gvXxCourse.DataKeysindex.Values0.ToString();/ 獲取要選擇 的課程的課程編號 cidstring sql = "select * from Selected where CId = " + cid + " and SId like '"+Session"ld&q
50、uot;.ToString() + ""/ 從表 Selected中查詢登錄學(xué)生的學(xué) 號及選擇的課程的課程編號Db.ExecuteSelectSql(sql); DataSet ds = Db.ExecuteSelectSql(sql);bool flag = false; / 選修課程判斷標志if (ds != null && ds.Tables.Count > 0 && ds.Tables0.Rows.Count > 0) flag = true;if (flag)/ 已選修過Response.Write(MyUtility.
51、Alert(" 您已經(jīng)選了該課程了! "); return;else/未選修過SelectCourse(lnt32.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 && ds.Tables.Co
52、unt > 0 && ds.Tables0.Rows.Count > 0 )max = Int32.Parse(ds.Tables0.Rows00.ToString();/ 最大人數(shù)賦值給 maxelsereturn;sql = "select count(*) from Selected where Cid = "+cid; / 查詢表 Selected中所選擇課程的課程編號的記錄數(shù)(即已選該課程人數(shù))DataSet ds1 = Db.ExecuteSelectSql(sql);值給 currentif ( ds1 != null &&
53、amp; ds1.Tables.Count > 0 && ds1.Tables0.Rows.Count > 0 )current = int32.Parse(ds1.Tables0.Rows00.ToString();/ 將記錄數(shù)賦elsereturn;if ( current > max )/ 判斷已選該課程人數(shù)是否超出允許的最大人數(shù)/ 超出Response.Write(MyUtility.Alert(" 人數(shù)已滿! ");return;sql = "insert into Selected values('"
54、 + Session"id".ToString() + "'," + cid + ")" /符合條件,將登錄學(xué)生學(xué)號及所選課程插入表Selected中if ( Db.ExecuteSql(sql) = 1 )/判斷執(zhí)行insert語句,改變的行數(shù)是否為1 (即表Selected中只有該登錄學(xué)生的所選的課程的課程編號那一行信息改變),若為1,則選課成功;否則,則選課失敗Response.Write(MyUtility.Alert(" 選課成功 ");sql = "select count(*) fr
55、om Selected where Cid = " + cid;DataSet ds2 = Db.ExecuteSelectSql(sql);if (ds2 != null && ds2.Tables.Count > 0 && ds2.Tables0.Rows.Count > 0)gvXxCourse.Rowsindex.Cells6.Text =ds2.Tables0.Rows00.ToString(); 更新已選人數(shù)elseResponse.Write(MyUtility.Alert(” 選課失敗");6.2.3學(xué)生選課模塊截
56、圖圖6-4學(xué)生信息修改頁面圖6-5選課頁面圖6-6課程信息查詢頁面6.3教師課程管理模塊6.3.1 教師課程管理模塊簡介教師課程管理模塊主要用于教師發(fā)布新的課程信息, 新信息發(fā)布后, 不同專業(yè)的學(xué)生可 看到發(fā)布的關(guān)于本專業(yè)的課程信息。 菜單: 教師信息 | 發(fā)布課程 | 已發(fā)課程, 包括課程信息發(fā) 布、對已發(fā)布信息查詢、教師個人信息、密碼修改等。6.3.2教師課程管理模塊關(guān)鍵代碼開設(shè)課程:protected void Page_Load(object sender, EventArgs e)/ 在此處放置用戶代碼以初始化頁面 , 顯示登錄教師可以發(fā)布的課程if (!IsPostBack)str
57、ing sql = "select * from Course where TId like '" + Session"Id".ToString() + "'or Tld like '0”:從表Course中查詢教師證件號 Tld為登錄教師證件號或 為'0'( 管理員設(shè)置的教師證件號初始值,表示沒有教師發(fā)布該課程) 的所有信息DataSet ds = Db.ExecuteSelectSql(sql);if (ds != null && ds.Tables.Count > 0)gvNe
58、wCourse.DataSource = ds.Tables0;gvNewCourse.DataBind();/課程類別分為選修和必修ddlCType.ltems.Clear(); ddlCType.ltems.Add(" 請選擇 ");ddlCType.ltems.Add(" 必修 "); ddlCType.ltems.Add(" 選修 ");ddlCType.Selectedlndex = 0; /課程學(xué)分從 1-6共分為 12種ddlCCredit.ltems.Clear(); ddlCCredit.ltems.Add(" 請選擇 ");ddlCCredit.ltems.Add("1"); ddlCCredit.ltems.Add("1.5");ddlCCredit.Items.Add("6");ddlCType.SelectedIndex = 0;/課程最大人數(shù)分為 4種: 50、100、 150、 200ddlCMax.Items.Clear();ddlCMax.Items.Add(" 請選擇
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45715.2-2025車輛多媒體系統(tǒng)和設(shè)備環(huán)視系統(tǒng)第2部分:環(huán)視系統(tǒng)的記錄方法
- 電子產(chǎn)品檢測技術(shù)專業(yè)教學(xué)標準(高等職業(yè)教育??疲?025修訂
- 2024-2025學(xué)年吉林省通化市梅河口五中高二下學(xué)期4月月考英語試題及答案
- 智能交通技術(shù)專業(yè)教學(xué)標準(高等職業(yè)教育??疲?025修訂
- 2025年中國卷巾紙巾行業(yè)市場全景分析及前景機遇研判報告
- 稅務(wù)師考試東奧課件下載
- 稅務(wù)師考試2021課件
- 2025年中國站式減壓器行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 中國潔凈環(huán)境測試儀組合套件儀器箱行業(yè)市場調(diào)查研究及投資前景展望報告
- 智能控制器培訓(xùn)課件
- 自主招生試題及答案網(wǎng)
- 2025年高考江蘇卷物理真題(解析版)
- 2025年重慶市中考化學(xué)試卷真題(含標準答案)
- 2024年北京市初中學(xué)業(yè)水平考試語文試卷及答案
- 電力行業(yè)電力運行維護與故障處理知識題庫
- 科學(xué)技術(shù)普及法解讀
- 西山煤電招聘筆試題庫2025
- 醫(yī)院院感每月培訓(xùn)管理規(guī)范
- T-SCSTA001-2025《四川省好住房評價標準》
- 廣西常見中草藥知到智慧樹期末考試答案題庫2025年廣西中醫(yī)藥大學(xué)
- 嶺南建筑介紹課件
評論
0/150
提交評論