基于機(jī)電學(xué)院選課系統(tǒng)畢業(yè)設(shè)計(jì)論文_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  基于機(jī)電學(xué)院選課系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  摘 要</b></p><p>  隨著在校大學(xué)生人數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)據(jù)量也不斷的上漲。以往的選課方法是隨堂報(bào)名。這種方法雖然直接,但是造成選課的盲目性和教務(wù)處處理數(shù)據(jù)的繁重性。為了減輕教務(wù)處工作,以及每個學(xué)生更好的選擇自己所喜歡的科目。針對學(xué)生選課這一環(huán)節(jié),本系統(tǒng)從學(xué)生網(wǎng)上

2、自主選課以及教師的課程發(fā)布兩個大方面進(jìn)行了設(shè)計(jì),基本實(shí)現(xiàn)了學(xué)生的在線信息查詢、選課功能以及教師對課程信息發(fā)布的管理等功能。</p><p>  本文通過分析瀏覽器/服務(wù)器結(jié)構(gòu)的特點(diǎn)并結(jié)合選課的實(shí)際情況,提出了基于瀏覽器/服務(wù)器結(jié)構(gòu)網(wǎng)上選課系統(tǒng)的基本設(shè)計(jì)思想,簡要介紹了系統(tǒng)各功能模塊及數(shù)據(jù)庫的設(shè)計(jì),著重討論了用 ASP.NET技術(shù)和SQL Server 2000開發(fā)網(wǎng)上選課系統(tǒng)時的數(shù)據(jù)庫訪問技術(shù)和動態(tài)網(wǎng)頁制作技術(shù),

3、并給出了部分實(shí)現(xiàn)代碼。通過該系統(tǒng),使學(xué)生可以方便地在校園網(wǎng)上進(jìn)行網(wǎng)上選課。該B/S結(jié)構(gòu)的系統(tǒng)在Windows XP系統(tǒng)和VS.NET平臺下開發(fā)完成,使用C#作為ASP.NET的開發(fā)語言,SQL Server 2000作為數(shù)據(jù)庫。系統(tǒng)有較高的安全性和較好的性能。其中連接數(shù)據(jù)庫的字符串可以隨時在web.config里修改,并經(jīng)過編碼加密,增加了靈活性,保護(hù)了數(shù)據(jù)庫的安全。代碼盡量使用存儲過程和盡量減少數(shù)據(jù)庫連接的打開時間等手段來提高性能。&

4、lt;/p><p>  本文中除了有對程序的系統(tǒng)分析、總體設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、功能實(shí)現(xiàn)等主體部分外,在這之前還介紹了與網(wǎng)上選課系統(tǒng)相關(guān)的信息、IIS介紹、IIS與ASP.NET的結(jié)合等的基本內(nèi)容及發(fā)展情況。</p><p>  關(guān)鍵詞:網(wǎng)上選課,瀏覽器/服務(wù)器結(jié)構(gòu),ASP.NET,數(shù)據(jù)庫管理系</p><p><b>  目錄</b></p&g

5、t;<p><b>  摘 要1</b></p><p><b>  1. 引言2</b></p><p>  1.1課題研究的目的4</p><p>  1.2 課題研究的意義4</p><p>  1.3 課題的可行性分析5</p><p> 

6、 2. 系統(tǒng)分析與總體設(shè)計(jì)6</p><p><b>  2.1系統(tǒng)分析6</b></p><p>  2.2 系統(tǒng)總體設(shè)計(jì)7</p><p>  3.數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)9</p><p>  3.1數(shù)據(jù)庫系統(tǒng)分析9</p><p>  3.2 數(shù)據(jù)庫邏輯設(shè)計(jì)12</p>

7、<p>  3.3數(shù)據(jù)庫物理實(shí)現(xiàn)13</p><p>  4. 公共類與公共頁面設(shè)計(jì)16</p><p>  4.1 Web.config頁面設(shè)計(jì)16</p><p>  4.2 數(shù)據(jù)庫連接操作類—Db類19</p><p>  4.3 工具類MyUtility類20</p><p>  4.4

8、錯誤信息類和錯誤顯示頁面21</p><p>  5. 系統(tǒng)說明書22</p><p>  5.1系統(tǒng)界面說明22</p><p>  5.2 系統(tǒng)管理說明27</p><p><b>  6. 總結(jié)34</b></p><p><b>  參考文獻(xiàn)35</b>&

9、lt;/p><p><b>  致 謝36</b></p><p><b>  1 引言</b></p><p>  1.1課題研究的目的</p><p>  1.掌握采用Internet的TCP/IP協(xié)議,以B/S方式,ASP.NET編程技術(shù),多媒體技術(shù)。</p><p>

10、;  2.掌握一種多任務(wù)多用戶操作系統(tǒng)</p><p>  3.ASP.NET的動態(tài)網(wǎng)頁和SQL Server大型的數(shù)據(jù)庫。</p><p>  4.學(xué)會使用某種開發(fā)工具。</p><p>  5.培養(yǎng)相互合作的精神。</p><p>  1.2 課題研究的意義 </p><p>  學(xué)生選課系統(tǒng)是一個學(xué)校不可缺少的

11、部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生選課系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄巍5恢币詠砣藗兪褂脗鹘y(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護(hù)都帶來了不少的困難。</p><p>  隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并

12、發(fā)揮著越來越重要的作用。</p><p>  作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對選課信息進(jìn)行管理,有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。</p><p>  因此,開發(fā)這樣一套軟件成為很有必要的事情,在下面的各章中我們將以開發(fā)一套

13、學(xué)生選課系統(tǒng)為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。</p><p>  本文中所做的主要工作如下:</p><p>  (1)介紹了個性化頁面的背景及Win2000server+IIS+ASP.NET系統(tǒng)的一般原理;</p><p>  (2) 闡述整個個性化頁面生成系統(tǒng)的系統(tǒng)結(jié)構(gòu)及工作原理;分析了系統(tǒng)實(shí)現(xiàn)中的特殊性、難點(diǎn)和重點(diǎn)。</p>&

14、lt;p>  (3) 設(shè)計(jì)實(shí)現(xiàn)用戶管理、課程管理、選課信息錄入管理、新生信息錄入管理、課程的瀏覽和查找、學(xué)生查找等ASP.NET頁面 。</p><p>  (4) 分析并解決實(shí)現(xiàn)中的若干技術(shù)問題。 </p><p>  (5) 建立完整的網(wǎng)上選課,進(jìn)行測試并分析結(jié)果。</p><p>  1.3 課題的可行性分析</p><p>  

15、1.3.1 課題調(diào)研</p><p>  (1)與實(shí)踐活動和相關(guān)的文件和資料由教師提供。</p><p>  (2)本課題要求學(xué)生有熟練的ASP.NET開發(fā)能力,有較強(qiáng)的自學(xué)能力以一定的關(guān)系數(shù)據(jù)庫理論開發(fā)功底。</p><p>  (3)具有對復(fù)雜表進(jìn)行處理的能力。</p><p>  (4)具體問題再做詳細(xì)調(diào)查研究并與指導(dǎo)老師面談。<

16、/p><p>  1.3.2 可行性分析</p><p>  (1)技術(shù)可行性-----本系統(tǒng)僅需要一臺裝有Office軟件的計(jì)算機(jī)即可,對機(jī)器本身沒有太高的要求,一般當(dāng)前學(xué)?;騻€人電腦完全可滿足要求。對于軟件技術(shù)要求,現(xiàn)在的程序設(shè)計(jì)語言已非常成熟,要運(yùn)用HTML樣式,圖形圖象制作工具來制作生動活潑的網(wǎng)頁及美觀的圖形文件或動畫文件,數(shù)據(jù)庫使用SQL Server 2000中提供的數(shù)據(jù)庫桌面工具

17、ODBC。</p><p>  (2) 經(jīng)濟(jì)可行性-----由于本系統(tǒng)是為學(xué)生選課管理使用的系統(tǒng),裝上該應(yīng)用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當(dāng)系統(tǒng)投入運(yùn)行后可以為學(xué)校節(jié)約大量的人力,物力。所帶來的效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟(jì)上完全可行。</p><p>  (3) 操作可行性-----界面設(shè)計(jì)時充分考慮管理人員的習(xí)慣,使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠

18、;統(tǒng)計(jì)準(zhǔn)確;制表靈活;適應(yīng)力強(qiáng);容易擴(kuò)充。第2章內(nèi)容主要是:系統(tǒng)需求分析包括,現(xiàn)有系統(tǒng)介紹;系統(tǒng)的實(shí)體分析,實(shí)體關(guān)系圖。</p><p>  2 系統(tǒng)分析與總體設(shè)計(jì)</p><p><b>  2.1系統(tǒng)分析</b></p><p>  在本系統(tǒng)中,有三類用戶:系統(tǒng)管理員,教師和學(xué)生。三種不同的用戶所具有的操作權(quán)限以及操作內(nèi)容均不一樣。<

19、/p><p>  本選課系統(tǒng)給予教師很大的自主權(quán),系統(tǒng)管理員只負(fù)責(zé)向系統(tǒng)中添加學(xué)生和教師的個人信息以及教學(xué)樓教室信息。系統(tǒng)管理員不參與開設(shè)課程、選擇課程等,一切均由教師、學(xué)生等錄網(wǎng)站自行完成。系統(tǒng)管理員設(shè)置一個選課時間段,在到達(dá)時間段以前,教師可以開設(shè)課程;到達(dá)時間段以后,學(xué)生可以登陸網(wǎng)站選擇課程。</p><p>  教師用戶登陸網(wǎng)站后可以開設(shè)課程,為自己的課程編輯上課時間和地點(diǎn),當(dāng)系統(tǒng)中出

20、現(xiàn)時間地點(diǎn)沖突的時候,系統(tǒng)向教師用戶報(bào)告并推薦一個時間地點(diǎn)。每門課程可以是必修或則選修,教師為每門課程設(shè)置一個學(xué)分,并可以在課程結(jié)束后給予分?jǐn)?shù),如果學(xué)生及格,學(xué)生將獲得該課程的學(xué)分。</p><p>  對于學(xué)生用戶,每個學(xué)生除了必須選擇必修課程外,至少還要選擇兩門選修課程,學(xué)生可以對自己選課信息鎖定,以免不小心被修改。當(dāng)時候超過選課時段后,系統(tǒng)自動鎖定學(xué)生的選課課程。系統(tǒng)可以根據(jù)學(xué)生的選課信息,生成一份學(xué)生自己

21、的課表。課程結(jié)束后學(xué)生可登錄網(wǎng)站查詢成績與學(xué)分。</p><p>  根據(jù)上面的要求,從操作功能上可以分為兩個類:一個是通用操作,主要實(shí)現(xiàn)用戶的登錄注銷和修改密碼等;另一種是為不同用戶定制不同操作。</p><p><b>  1.通用操作</b></p><p><b>  (1)登錄與注銷</b></p>

22、<p>  每個用戶都可以用自己的帳號登錄系統(tǒng)。用戶操作完成后推出系統(tǒng),注銷后可以重新登錄系統(tǒng)。</p><p><b>  (2)修改密碼</b></p><p>  每個用戶第一次登錄都用默認(rèn)密碼(教師和學(xué)生與帳號一樣)。</p><p><b>  2.用戶所具有功能</b></p><

23、;p><b>  (1)系統(tǒng)管理員</b></p><p>  設(shè)置選課時間段:系統(tǒng)管理員通過此項(xiàng)功能設(shè)置選課時段,只有在選課時間段里,學(xué)生才可以選擇課程,超過次時間段,學(xué)生選課信息被自動所定,不得修改。</p><p>  錄入學(xué)生與教師個人信息:通過此項(xiàng)功能可以實(shí)現(xiàn)對教師和學(xué)生的個人信息添加刪除。</p><p>  錄入教學(xué)樓教室信

24、息:通過此項(xiàng)功能可以把學(xué)校里所有的教學(xué)樓教室的信息錄入到系統(tǒng)中,以便教師在開設(shè)課程時候設(shè)置上課的教室。</p><p><b>  (1)教師用戶</b></p><p>  顯示和修改個人信息:教師用戶登錄系統(tǒng)后,可以查看和修改教師的個人信息,如姓名,電話,E-mail地址等。</p><p>  開設(shè)課程:教師用戶登錄系統(tǒng)后,可以開設(shè)課程,

25、可以設(shè)置該課程為必修課程或則選修課程,可以設(shè)置該課程的最大人數(shù)。教師還可以為該課程設(shè)置一個前導(dǎo)課程,若學(xué)生沒有學(xué)習(xí)或則選擇前導(dǎo)課程則不能選擇該課程。</p><p>  編輯課程上課時間:教師在開設(shè)了課程后,可以靈活地設(shè)置上課時間和地點(diǎn)。</p><p>  給學(xué)生分?jǐn)?shù):課程結(jié)束后,教師用戶登錄系統(tǒng),可以為學(xué)過課程的學(xué)生給予相應(yīng)的成績,若</p><p>  及格,

26、給予學(xué)生學(xué)分。</p><p><b>  (1)學(xué)生用戶</b></p><p>  顯示和修改個人信息:學(xué)生登錄系統(tǒng)后,可以查看和修改學(xué)生的個人信息,如姓名,性別,電話等。</p><p>  查看必修課程:學(xué)生登錄后,可以查看所有的必修課程。查看該課程的信息,上課時間地點(diǎn),開課教師信息等。</p><p>  選擇

27、選修課程:學(xué)生登錄系統(tǒng)后,在所有選修課程中可以選擇至少兩門選修課程。同時可以查看相關(guān)信息。</p><p>  鎖定選課信息:學(xué)生登錄系統(tǒng),確定了所選課程后,可以鎖定自己的選課信息,以防被別人或則自己不小心修改。</p><p>  查看最終選課信息:學(xué)生登錄系統(tǒng)后,可列出已選擇的課程,若選課信息未被鎖定,則可以退選,若所選課程少于兩門,系統(tǒng)會提示選擇的課程少于兩門。</p>

28、<p><b>  查看學(xué)分和成績</b></p><p>  課程結(jié)束后,學(xué)生登錄系統(tǒng)可查看自己學(xué)習(xí)課程的成績和已獲的學(xué)分。</p><p>  2.2 系統(tǒng)總體設(shè)計(jì)</p><p>  在前面的系統(tǒng)的系統(tǒng)功能分析中,將系統(tǒng)劃分成10個模塊,如圖:</p><p>  用戶登錄身份驗(yàn)證模塊驗(yàn)證用戶名和密碼,

29、并根據(jù)不同的用戶類型,跳轉(zhuǎn)到對應(yīng)的頁面中。設(shè)置選課時間模塊提供給系統(tǒng)管理員修改選課時間段。錄入信息模塊提供給系統(tǒng)管理員,用來錄入學(xué)生和教師信息,以及錄入教學(xué)樓教室等信息。開設(shè)課程模塊提供給教師用戶,用來開設(shè)一門必修課程或則選修課程。編輯課程時間地點(diǎn)模塊提供給教師用戶,編輯課程的上課時間地點(diǎn)友好的界面和操作。評分模塊用于教師用戶給選修該教師開設(shè)的課程的學(xué)生評分。查看課程模塊包括查看必修課程、查看選修課程、查看已選課程、查看課程成績單。選課

30、和鎖定模塊中實(shí)現(xiàn)選擇選修課程和鎖定選課信息的功能</p><p>  3 數(shù)據(jù)庫設(shè)計(jì)與實(shí)現(xiàn)</p><p>  數(shù)據(jù)庫是此類系統(tǒng)的核心,系統(tǒng)中所有的信息都存儲在數(shù)據(jù)庫中,在所有ASP.NET頁面中通過ADO.NET與數(shù)據(jù)庫連接,操作數(shù)據(jù)庫中的數(shù)據(jù),從而實(shí)現(xiàn)所有需要的功能。數(shù)據(jù)庫軟件有很多,如Microsoft SQL Server 2000等。本系統(tǒng)中數(shù)據(jù)庫采用Microsoft SQL

31、Server 2000作為數(shù)據(jù)庫工具。數(shù)據(jù)庫是網(wǎng)站的核心,數(shù)據(jù)庫設(shè)計(jì)的合理與否對網(wǎng)站的建設(shè)有著至關(guān)重要的影響。一個良好的數(shù)據(jù)庫開發(fā)過程一般是先系統(tǒng)分析,再邏輯設(shè)計(jì),然后物理實(shí)現(xiàn)。系統(tǒng)分析中分析數(shù)據(jù)庫用戶需求,并畫出E-R圖直觀地表示出數(shù)據(jù)庫系統(tǒng)的需求。邏輯設(shè)計(jì)中根據(jù)系統(tǒng)分析設(shè)計(jì)的一個關(guān)系模型。物理設(shè)計(jì)為邏輯設(shè)計(jì)中的數(shù)據(jù)模型選取一個最合理的應(yīng)用環(huán)境的物理結(jié)構(gòu),通常選取一個常用數(shù)據(jù)庫軟件,用數(shù)據(jù)庫軟件創(chuàng)建與邏輯設(shè)計(jì)中數(shù)據(jù)模型對應(yīng)的數(shù)據(jù)庫。&

32、lt;/p><p>  3.1數(shù)據(jù)庫系統(tǒng)分析</p><p>  本系統(tǒng)的數(shù)據(jù)庫實(shí)體主要有“學(xué)生”、“教師”、“教學(xué)樓”、“教室”、“課程”等。其中“教師”與“課程”存在“開設(shè)”聯(lián)系,并且一個教師可以開設(shè)N門課程,即“教師”與“課程”之間是一對多的關(guān)系。同樣“教學(xué)樓”與“教室”也存在一對多的關(guān)系。一個學(xué)生可以學(xué)習(xí)N門課程,一門課程可以有M個學(xué)生學(xué)習(xí),即“學(xué)生”與“課程”之間是多對多的關(guān)系。同樣

33、“課程”與“教室”之間也是多對多的關(guān)系。整個數(shù)據(jù)庫可以用一個E-R圖表示,如圖:</p><p>  E—R圖中的實(shí)體圖:</p><p>  3.2 數(shù)據(jù)庫邏輯設(shè)計(jì)</p><p>  數(shù)據(jù)庫邏輯設(shè)計(jì)就是將E—R圖轉(zhuǎn)換為關(guān)系模型的過程,即將所有實(shí)體和關(guān)系轉(zhuǎn)換成一系列的關(guān)系模式。轉(zhuǎn)換過程中常見規(guī)則有:</p><p>  (1)一個實(shí)體型轉(zhuǎn)換

34、為一個關(guān)系模式;</p><p>  (2)一個一對一的聯(lián)系可轉(zhuǎn)換成一個獨(dú)立的關(guān)系模式,也可與任意一端對應(yīng)的關(guān)系模式合并;</p><p>  (3)一個一對多的聯(lián)系可以轉(zhuǎn)換成一個獨(dú)立的關(guān)系模式,也可與多的那一端對應(yīng)的關(guān)系模式合并;</p><p>  (4)一個多對多的關(guān)系轉(zhuǎn)換成一個關(guān)系模式。</p><p>  根據(jù)以上四條規(guī)則,下面將E

35、—R圖轉(zhuǎn)換成關(guān)系模型。</p><p>  對于“教學(xué)樓”、“教室”和兩者之間的關(guān)系,就可以根據(jù)規(guī)則(3)轉(zhuǎn)換成兩個關(guān)系模式</p><p>  教學(xué)樓(教學(xué)樓ID,教學(xué)樓名稱)</p><p>  教室(教室ID,教學(xué)樓ID,教室名稱)</p><p>  對于“學(xué)生”、“課程”和它們之間的“選修”關(guān)系就可以規(guī)則(4)轉(zhuǎn)換成三個關(guān)系模式。&

36、lt;/p><p>  學(xué)生(學(xué)號,姓名,性別,年齡,登陸密碼,學(xué)分,地址,電話,電子郵件)</p><p>  課程(課程編碼,課程名稱,開課教師編號,學(xué)分,最大人數(shù),課程簡介,前導(dǎo)課程編號)</p><p>  選課(學(xué)號,課程編號,成績)</p><p>  依次類推,剩下的關(guān)系轉(zhuǎn)換成下面三個關(guān)系模式:</p><p&g

37、t;  教師(教師編號,姓名,性別,年齡,電話,電子郵件,個人簡介)</p><p>  課程時間地點(diǎn)(課程編號,開始周次,結(jié)束周次,上課時間,上課教室ID)</p><p>  管理員(帳號,密碼)</p><p>  3.3數(shù)據(jù)庫物理實(shí)現(xiàn)</p><p>  經(jīng)過數(shù)據(jù)庫系統(tǒng)分析和邏輯設(shè)計(jì)后,數(shù)據(jù)庫的結(jié)構(gòu)已經(jīng)非常清晰,剩下的就是用一種數(shù)據(jù)庫

38、軟件實(shí)現(xiàn)這樣的結(jié)構(gòu)。本系統(tǒng)中數(shù)據(jù)庫采用Microsoft SQL Server 2000作為數(shù)據(jù)庫。首先我們在Microsoft SQL Server 2000的“企業(yè)管理器”創(chuàng)建一個數(shù)據(jù)庫,我們命名為“SC”,如圖3-1:</p><p><b>  圖3-1</b></p><p>  選中SC數(shù)據(jù)庫,向數(shù)據(jù)庫中添加8個表:Student,Teacher,Cour

39、se,SC,CourseTime,Building,Room和Admin,每個表與邏輯設(shè)計(jì)中一種的關(guān)系模式相對應(yīng)。下面是每個數(shù)據(jù)表中的屬性,包括屬性列的名稱、數(shù)據(jù)類型、長度、是否可以為空和備注說明等內(nèi)容。</p><p>  (1)Student表。Student表用來存儲學(xué)生的個人信息,使用學(xué)號作為主鍵,如圖3-2:</p><p><b>  圖3-2</b>&l

40、t;/p><p>  (2)Teacher表。Teacher表用來存儲教師的個人信息,用學(xué)校分配給教師的教師編號作為主鍵,這樣可以避免重復(fù),如圖3-3:</p><p><b>  圖3-3</b></p><p>  (3)Course表。Course表用來存儲課程信息,Course表以課程編號為主鍵,設(shè)置課程編號自動增加1(通過建表的時候?qū)傩?/p>

41、列設(shè)置“標(biāo)識”,并設(shè)置“標(biāo)識遞增量”為1)。表中開課教師Id為外鍵,所有“TId”的值必須是Teacher表中的“TId”值。設(shè)置外鍵關(guān)系可以通過在建立表的窗口中單擊右鍵,在右鍵菜單中選擇“關(guān)系”,在彈出的對話框中設(shè)置外鍵關(guān)系。如圖3-4:</p><p><b>  圖3-4</b></p><p>  (4)SC表。SC表用于存儲學(xué)生的選課信息,在SC表中學(xué)號和課

42、程編號是主鍵,同時也是外鍵。如圖3-5:</p><p><b>  圖3-5</b></p><p>  (5)CourseTime表。CourseTime表用來存放課程的上課時間和上課地點(diǎn)信息,其中課程編號和教室編號為外鍵。如圖3-6:</p><p><b>  圖3-6</b></p><p&g

43、t;  (6)Building表。Building表用來存放教學(xué)樓信息,Building表中教學(xué)樓編號為主鍵,自動增加1。如圖3-7:</p><p><b>  圖3-7</b></p><p>  (7)Room表。Room表用來存放教室信息,在Room表中,教室編號為主鍵,自動增加1,教學(xué)編號為外鍵。如圖3-8:</p><p><

44、b>  圖3-8</b></p><p>  (8)Admin表。Admin表用來存放系統(tǒng)管理員信息,如圖3-9:</p><p><b>  圖3-9</b></p><p>  4公共類與公共頁面設(shè)計(jì)</p><p>  4.1 Web.config頁面設(shè)計(jì)</p><p>

45、  Web.Config文件是用來保存網(wǎng)站的很多全局設(shè)置,代碼是通過using Configuration引用,在Web.Config文件中添加數(shù)據(jù)庫連接字符串。在ADO.NET中用一個字符串來表示一個數(shù)據(jù)庫,一般都把這個字符串放到Web.Config文件中,在整個項(xiàng)目中均可使用。</p><p>  <?xml version="1.0" encoding="utf-8&qu

46、ot; ?></p><p>  <configuration></p><p>  <system.web></p><p>  <!-- 動態(tài)調(diào)試編譯設(shè)置 compilation debug="true" 以啟用 ASPX 調(diào)試。否則,將此值設(shè)置為</p><p>  false

47、將提高此應(yīng)用程序的運(yùn)行時性能。</p><p>  設(shè)置 compilation debug="true" 以將調(diào)試符號(.pdb 信息)</p><p>  插入到編譯頁中。因?yàn)檫@將創(chuàng)建執(zhí)行起來</p><p>  較慢的大文件,所以應(yīng)該只在調(diào)試時將此值設(shè)置為 true,而在所有其他時候都設(shè)置為false。有關(guān)更多信息,請參考有調(diào)試 ASP.N

48、ET 文件的文檔--></p><p>  <compilation </p><p>  defaultLanguage="c#"</p><p>  debug="true"</p><p><b>  /></b></p><p> 

49、 <!-- 自定義錯誤信息</p><p>  設(shè)置 customErrors mode="On" 或 "RemoteOnly" 以啟用自定義錯誤信息,或設(shè)置為 "Off" 以禁用自定義錯誤信息。 </p><p>  為每個要處理的錯誤添加 <error> 標(biāo)記。</p><p>  

50、"On" 始終顯示自定義(友好的)信息。</p><p>  "Off" 始終顯示詳細(xì)的 ASP.NET 錯誤信息。</p><p>  "RemoteOnly" 只對不在本地 Web 服務(wù)器上運(yùn)行的</p><p>  用戶顯示自定義(友好的)信息。出于安全目的,建議使用此設(shè)置,以便 </p>

51、<p>  不向遠(yuǎn)程客戶端顯示應(yīng)用程序的詳細(xì)信息。</p><p><b>  --></b></p><p>  <customErrors </p><p>  mode="RemoteOnly" </p><p><b>  /> </b>&

52、lt;/p><p>  <!-- 身份驗(yàn)證 </p><p>  此節(jié)設(shè)置應(yīng)用程序的身份驗(yàn)證策略。可能的模式是 "Windows"、 </p><p>  "Forms"、 "Passport" 和 "None"</p><p>  "None&qu

53、ot; 不執(zhí)行身份驗(yàn)證。 </p><p>  "Windows" IIS 根據(jù)應(yīng)用程序的設(shè)置執(zhí)行身份驗(yàn)證 </p><p>  (基本、簡要或集成 Windows)。在 IIS 中必須禁用匿名訪問。</p><p>  "Forms" 您為用戶提供一個輸入憑據(jù)的自定義窗體(Web 頁),然后 </p><

54、p>  在您的應(yīng)用程序中驗(yàn)證他們的身份。用戶憑據(jù)標(biāo)記存儲在 Cookie 中。</p><p>  "Passport" 身份驗(yàn)證是通過 Microsoft 的集中身份驗(yàn)證服務(wù)執(zhí)行的,</p><p>  它為成員站點(diǎn)提供單獨(dú)登錄和核心配置文件服務(wù)。</p><p><b>  --></b></p>

55、<p>  4.2 數(shù)據(jù)庫連接操作類—Db類</p><p>  在ASP.NET中通過ADO.NET技術(shù)對數(shù)據(jù)庫進(jìn)行操作。ADO.NET中有許多很方便的類可用來操作數(shù)據(jù)庫,例如SqlConnection類、SqlDataAdapter類、SqlCommand類、DataSet類等。由于在選課系統(tǒng)中,操作數(shù)據(jù)庫的地方非常多,為了避免很多重復(fù)代碼的編寫,所以對數(shù)據(jù)庫操作做了簡單的封裝—Db類。在Db類

56、中有三個靜態(tài)函數(shù)ExecuteSelectSql、ExecuteSql和ExecuteInsertSql,其中ExecuteSelectSql函數(shù)用來執(zhí)行查詢操作,ExecuteSql用來執(zhí)行修改、插入和刪除三類操作,ExecuteInsertSql執(zhí)行需要返回剛插入記錄的identity的insert語句。</p><p>  通過ADO.NET執(zhí)行SQL語句從而對數(shù)據(jù)庫進(jìn)行操作,一般順序?yàn)椋合韧ㄟ^SqlCon

57、nection的Open函數(shù)連接到數(shù)據(jù)庫,然后再通過Sqlcommand執(zhí)行指定的SQL語句,執(zhí)行結(jié)束后再調(diào)用SqlConnection的Close函數(shù)關(guān)閉數(shù)據(jù)庫連接。</p><p>  ExecuteSelectSql函數(shù)的代碼如下:</p><p>  /// <summary></p><p>  /// 執(zhí)行select類型的sql語句,返回s

58、elect得到的數(shù)據(jù)集</p><p>  /// </summary></p><p>  /// <param name="sqlSelect">select語句</param></p><p>  /// <returns>返回select得到的數(shù)據(jù)集</returns></

59、p><p>  public static DataSet ExecuteSelectSql( string sqlSelect </p><p><b>  {</b></p><p>  SqlConnection conn = new SqlConnection(connString);</p><p>  SqlD

60、ataAdapter sda = new SqlDataAdapter(sqlSelect,conn);</p><p>  DataSet ds = new DataSet();</p><p><b>  try</b></p><p><b>  {</b></p><p>  sda.Fil

61、l(ds);</p><p><b>  }</b></p><p>  catch(SqlException e)</p><p><b>  {</b></p><p>  throw new Exception(e.Message);</p><p><b>

62、  }</b></p><p>  return ds;</p><p><b>  } </b></p><p>  ExecuteSql函數(shù)代碼如下:</p><p>  public static int ExecuteSql( string sql )</p><p>  4.

63、3 工具類MyUtility類</p><p>  在網(wǎng)站的編寫過程中經(jīng)常會有很多公共函數(shù)調(diào)用,把它們都寫在一個工具類里:MyUtility類,每個函數(shù)作為工具類的一個靜態(tài)成員函數(shù)。其中包括MD5靜態(tài)成員函數(shù)以及Alert靜態(tài)成員函數(shù)。</p><p>  MD5靜態(tài)成員函數(shù):MD5算法。MD5算法是一個不可逆的加密算法,通常用于重要信息的加密,如登錄密碼,在ASP.NET中,提供有MD5

64、的算法實(shí)現(xiàn)函數(shù),調(diào)用MD5算法代碼如下:</p><p>  public static string MD5(string str)</p><p><b>  {</b></p><p>  string result = "";</p><p>  result = FormsAuthentic

65、ation.HashPasswordForStoringInConfigFile(str,"MD5");</p><p>  return result;</p><p><b>  }</b></p><p>  Alert靜態(tài)成員函數(shù)的功能是顯示一個提示對話框,在網(wǎng)站的運(yùn)行過程中,經(jīng)常需要給用戶一些即時反饋,比如修改密碼

66、成功,選課成功等提示框。代碼如</p><p><b>  下:</b></p><p>  public static string Alert(string s)</p><p><b>  {</b></p><p>  return "<script language=\&q

67、uot;javascript\">alert(\""+s+"\");</script>";</p><p><b>  }</b></p><p>  Back函數(shù)的功能是回退到某個網(wǎng)頁,i的取值通常為負(fù),當(dāng)為-1時表示回退到上一個網(wǎng)頁,為-2時表示回退到上上個網(wǎng)頁,依次類推。代碼如下:&l

68、t;/p><p>  public static string Back(int i)</p><p><b>  {</b></p><p>  return "<script language=\"javascript\">location.href=\"javascript:history.

69、go("+i+");\";</script>";</p><p><b>  }</b></p><p>  4.4 錯誤信息類和錯誤顯示頁面</p><p>  在用戶使用系統(tǒng)過程中,可能由于用戶操作失敗或則網(wǎng)絡(luò)原因等,系統(tǒng)運(yùn)行會出現(xiàn)一些錯誤,為了便于統(tǒng)一,本系統(tǒng)定義專用的錯誤信息類和錯誤顯

70、示頁面。在錯誤信息類ErrorInfo類中,定義了所有的本系統(tǒng)中所出現(xiàn)的錯誤情況和函數(shù)Message。函數(shù)Message根據(jù)錯誤情況得到相應(yīng)顯示字符串。錯誤顯示頁面根據(jù)URL中錯誤代碼參數(shù)顯示不同的錯誤信息。</p><p><b>  4.5登錄頁面</b></p><p>  登錄頁面是所有用戶公用的功能。不同的用戶登錄到系統(tǒng)中將轉(zhuǎn)向不同的頁面。解決方法運(yùn)用了AS

71、P.NET的內(nèi)置對象Session記錄用戶登錄信息,同樣也可以在網(wǎng)站里隨時判斷用戶是否已經(jīng)登錄。</p><p><b>  5 系統(tǒng)說明書</b></p><p><b>  5.1系統(tǒng)界面說明</b></p><p>  下面是在線選課系統(tǒng)的預(yù)覽,此處簡單介紹本系統(tǒng)的部分功能。</p><p>

72、  1.登錄頁面,如圖5-1:</p><p><b>  圖5-1</b></p><p>  在用戶名和密碼處輸入用戶名和密碼,在“用戶類型”下拉列表框中選擇“學(xué)生”,單擊“登錄”按鈕,登錄選課系統(tǒng)。</p><p><b>  主要代碼如下:</b></p><p>  private voi

73、d btnLogin_Click(object sender, System.EventArgs e)</p><p><b>  {</b></p><p>  int type = Int32.Parse(ddlType.SelectedItem.Value);</p><p>  string user = txtUser.Text.Tr

74、im();</p><p>  string inputkey = txtKey.Text.Trim();</p><p>  string key = "";</p><p>  string sql = "";</p><p>  DataSet ds;</p><p>  

75、switch( type )</p><p><b>  {</b></p><p>  case 1://學(xué)生</p><p>  //驗(yàn)證學(xué)生身份代碼 </p><p><b>  break;</b></p><p>  cas

76、e 2://教師</p><p>  //驗(yàn)證教師身份代碼</p><p><b>  break;</b></p><p>  case 3://系統(tǒng)管理員</p><p>  //驗(yàn)證管理員身份代碼</p><p><b>  break;</b></p

77、><p><b>  default;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  查看必修課程列表頁面,如圖5-2:&l

78、t;/p><p><b>  圖5-2</b></p><p>  登錄成功后,進(jìn)入學(xué)生主頁,點(diǎn)擊“必修課程”鏈接,得到所有必修課程的列表,在列表中可以看到所有必修課程及課程的簡單信息,如授課教師姓名、課程所占學(xué)分等。</p><p>  在列表中可以點(diǎn)課程名稱,如“計(jì)算機(jī)應(yīng)用基礎(chǔ)”鏈接,查看課程詳細(xì)信息;點(diǎn)教師姓名,如“李萍”鏈接,查看教師的詳細(xì)

79、信息;點(diǎn)擊“查看上課時間地點(diǎn)”鏈接,查看對應(yīng)課程的上課時間和地點(diǎn)。</p><p>  在頁面加載的時候從數(shù)據(jù)庫讀取所有必修課信息,代碼如下:</p><p>  string sql = "select Course.*,TName from Course,Teacher where CType like '必修' and Course.TId like Tea

80、cher.TId";//查詢處所有必修課程信息</p><p>  DataSet ds = Db.ExecuteSelectSql(sql);</p><p>  if ( ds != null && ds.Tables.Count > 0 )</p><p><b>  {</b></p>&l

81、t;p>  dgCourse.DataSource = ds.Tables[0];</p><p>  dgCourse.DataBind();//將查詢結(jié)果綁定到DataGrid中</p><p><b>  }</b></p><p>  查看選修課程列表頁面,如圖5-3:</p><p><b> 

82、 圖5-</b></p><p>  5.2 系統(tǒng)管理說明</p><p>  系統(tǒng)管理員主要有三個功能需要實(shí)現(xiàn):設(shè)置選課時間段、錄入學(xué)生和教師信息、錄入教學(xué)樓教室信息。</p><p>  設(shè)置開始選課時間段:選課時間段存儲在項(xiàng)目目錄下的time.txt文件中。文件中第一行表示開始時間,第二行表示結(jié)束時間。如圖5-5:</p><p

83、><b>  如圖5-5</b></p><p><b>  設(shè)置時間代碼如下:</b></p><p>  DateTime dtStart,dtEnd;</p><p><b>  Tr)</b></p><p>  dtStart = DateTime.Parse(

84、txttimeStart.Text);</p><p>  dtEnd = DateTime.Parse(txtTimeEnd.Text);</p><p><b>  }</b></p><p><b>  catch</b></p><p><b>  {</b></

85、p><p>  Response.Write(MyUtility.Alert("輸入錯誤"));</p><p><b>  return;</b></p><p><b>  }</b></p><p>  StreamWriter sw = new StreamWriter(&q

86、uot;http://localhost/sc/login.aspx",false);</p><p>  sw.WriteLine(dtStart.ToString());//寫入開始時間</p><p>  sw.WriteLine(dtEnd.ToString());//寫入結(jié)束時間</p><p>  sw.Close();</p>

87、<p>  lbTime.Text = "選課時間為:"+dtStart.ToString()+"到"+dtEnd.ToString(); //更新選課時間段顯示</p><p>  錄入學(xué)生和教師信息:在AdminUser.Aspx中,用與錄入學(xué)生和教師信息。如圖5-6:</p><p><b>  圖5-6</b>

88、;</p><p><b>  添加教師代碼如下:</b></p><p>  private void btnAddTearcher_Click(object sender, System.EventArgs e)</p><p><b>  {</b></p><p>  string sql

89、= "insert into Teacher(TId,TKey,TName) values('"+txtTId.Text.Trim()</p><p>  +"','"+MyUtility.MD5(txtTId.Text.Trim())+"','"+txtTName.Text.Trim()+"')

90、";</p><p><b>  try</b></p><p><b>  {</b></p><p>  if ( Db.ExecuteSql(sql) == 1 )</p><p><b>  {</b></p><p>  sql =

91、"select * from Teacher";</p><p>  DataSet ds1 = Db.ExecuteSelectSql(sql);</p><p>  if ( ds1 != null && ds1.Tables.Count > 0 )</p><p><b>  {</b></

92、p><p>  dgViewT.DataSource = ds1.Tables[0]</p><p>  dgViewT.DataBind();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else<

93、/b></p><p><b>  {</b></p><p>  Response.Write( MyUtility.Alert("添加失敗-_-,請檢查編號是否已經(jīng)存在!") );</p><p><b>  return;</b></p><p><b> 

94、 }</b></p><p><b>  }</b></p><p><b>  catch</b></p><p><b>  {</b></p><p>  Response.Write( MyUtility.Alert("添加失敗-_-,請檢查編號是

95、否已經(jīng)存在!") );</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  錄入教學(xué)樓教室信息:在AdminRoom.Aspx中,教學(xué)樓和教室的管理主要包括添加和刪除操

96、作,添加一個教室必須指定其所屬的教學(xué)樓。如圖5-7:</p><p><b>  圖5-7</b></p><p>  添加教學(xué)樓代碼如下:</p><p>  private void btnAddBuilding_Click(object sender, System.EventArgs e)</p><p><

97、;b>  {</b></p><p>  if ( txtBuilding.Text.Trim() == "" )</p><p><b>  {</b></p><p>  Response.Write(MyUtility.Alert("請輸入教學(xué)樓名稱!"));</p>

98、<p><b>  return;</b></p><p><b>  }</b></p><p>  string sql = "insert into Building(BuildingName) values('"+txtBuilding.Text.Trim()+"')";

99、</p><p>  Db.ExecuteSql(sql);</p><p><b>  }</b></p><p><b>  5.2教師管理說明</b></p><p>  教師用戶的功能需求有個人信息的管理、開設(shè)課程、課程時間地點(diǎn)編輯、設(shè)置學(xué)生成績。</p><p> 

100、 教師個人信息:在Teacher.Aspx中,在這里可以修改密碼和添寫教師個人信息。如圖5-10:</p><p><b>  如圖5-10 </b></p><p>  Response.Write(MyUtility.Alert("修改成功!"));</p><p><b>  else</b>&

101、lt;/p><p>  Response.Write(MyUtility.Alert("修改失??!"));</p><p>  開設(shè)課程:在NewCourse.Aspx中,在這里可以添加新課程,其中包括課程名稱、課程類型、 學(xué)分、前導(dǎo)課程、最大人數(shù)、課程介紹。如圖5-11:</p><p><b>  如圖5-11&l

102、t;/b></p><p>  從數(shù)據(jù)庫讀取所有課程編號和課程名稱代碼如下:</p><p>  ddlCPreCId.Items.Clear();</p><p>  ddlCPreCId.Items.Add("請選擇");</p><p>  string sql = "select CId,CName

103、 from Course";</p><p>  DataSet ds = Db.ExecuteSelectSql(sql);</p><p>  if ( ds != null && ds.Tables.Count > 0 )</p><p><b>  {</b></p><p>  

104、for ( int i = 0; i < ds.Tables[0].Rows.Count; i++ )</p><p>  ddlCPreCId.Items.Add( new </p><p>  ListItem( ds.Tables[0].Rows[i]["CName"].ToString(), ds.Tables[0].Rows[i]["CId&q

105、uot;].ToString() ) );</p><p><b>  }</b></p><p>  ddlCPreCId.SelectedIndex = 0;</p><p>  課程時間地點(diǎn)編輯:在TeacherMain.Aspx中,在這里可以編輯課程時間和地點(diǎn)。如圖5-12:</p><p><b> 

106、 6 總結(jié)</b></p><p>  經(jīng)過幾個月的學(xué)習(xí),研究和開發(fā),我選擇的課題學(xué)生選課系統(tǒng)基本完成。其功能基本符合網(wǎng)絡(luò)上的用戶要求,能夠在線選課,在線添加課程,在線查詢課程等。雖然由于自己知識上的不足,有些地方有少許錯誤和容錯性能比較低,但是還是可以基本完成選課系統(tǒng)應(yīng)有的功能。</p><p>  通過畢業(yè)設(shè)計(jì)過程我會到了許多知識,這也是在大學(xué)里第一次比較完整的完成一個小項(xiàng)

107、目,雖然過程中遇到了許多困難,在同學(xué)和老師的幫助下一一克服了。通過不斷的發(fā)現(xiàn)問題,總結(jié)問題和解決問題的過程,使我在此次畢業(yè)設(shè)計(jì)活動中不斷的提高,和得到了寶貴的經(jīng)驗(yàn)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]吳晨,《ASP.NET+SQL Server-數(shù)據(jù)庫開發(fā)與實(shí)例》,清華大學(xué)出版社,出版2006年7月</p><

108、p>  [2](美)內(nèi)格爾,《C#高級編程(第4版)》,清華大學(xué)出版社,出版2006年10月</p><p>  [3](美)solid,《SQLServer2005從入門與精通(應(yīng)用技術(shù)基礎(chǔ))》,清華大學(xué)出版社,出版2006年09月</p><p>  [4](美)保羅《ASP.NET 2.0經(jīng)典教程C#篇》人民郵電出版社,出版2007年5月</p><p>

109、;<b>  致 謝</b></p><p>  由于以前對ASP.NET的接觸并不是很多,對它的開發(fā)環(huán)境也不是非常了解,所以在程序的開發(fā)過程中遇到了很多的困難,但經(jīng)過同學(xué)和xxx老師的幫助,逐漸克服了困難,并從中學(xué)到</p><p>  了很多SQL數(shù)據(jù)庫編程方面的知識。但是由于經(jīng)驗(yàn)方面的原因,以及對物流配送方面的操作流程了解不夠深刻,該系統(tǒng)還有許多不盡如人意的

110、地方和功能上的缺陷,這些都有待于進(jìn)一步改善。</p><p>  論文完成的前提是xxx老師給我提供了舒適的工作、學(xué)習(xí)環(huán)境,并給予我悉心的關(guān)懷與指導(dǎo)。在些表示衷心地感謝。老師認(rèn)真負(fù)責(zé)的工作態(tài)度、嚴(yán)謹(jǐn)?shù)闹螌W(xué)風(fēng)格,使我深受啟發(fā);開發(fā)的同時,和同學(xué)們之間的相互探討也使我獲益匪淺。幾個月的時間內(nèi),我除基本學(xué)會開發(fā)SQL數(shù)據(jù)庫外更重要的是學(xué)到了兢兢業(yè)業(yè),奮發(fā)向上的精神,這種精神是我今后人生前進(jìn)道路上的一種力量。所以我再次感

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論