版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于機電學院選課系統(tǒng)設計與實現(xiàn)</p><p><b> 摘 要</b></p><p> 隨著在校大學生人數(shù)的不斷增加,教務系統(tǒng)的數(shù)據(jù)量也不斷的上漲。以往的選課方法是隨堂報名。這種方法雖然直接,但是造成選課的盲目性和教務處處理數(shù)據(jù)的繁重性。為了減輕教務處工作,以及每個學生更好的選擇自己所喜歡的科目。針對學生選課這一環(huán)節(jié),本系統(tǒng)從學生網(wǎng)上
2、自主選課以及教師的課程發(fā)布兩個大方面進行了設計,基本實現(xiàn)了學生的在線信息查詢、選課功能以及教師對課程信息發(fā)布的管理等功能。</p><p> 本文通過分析瀏覽器/服務器結構的特點并結合選課的實際情況,提出了基于瀏覽器/服務器結構網(wǎng)上選課系統(tǒng)的基本設計思想,簡要介紹了系統(tǒng)各功能模塊及數(shù)據(jù)庫的設計,著重討論了用 ASP.NET技術和SQL Server 2000開發(fā)網(wǎng)上選課系統(tǒng)時的數(shù)據(jù)庫訪問技術和動態(tài)網(wǎng)頁制作技術,
3、并給出了部分實現(xiàn)代碼。通過該系統(tǒng),使學生可以方便地在校園網(wǎng)上進行網(wǎng)上選課。該B/S結構的系統(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)過編碼加密,增加了靈活性,保護了數(shù)據(jù)庫的安全。代碼盡量使用存儲過程和盡量減少數(shù)據(jù)庫連接的打開時間等手段來提高性能。&
4、lt;/p><p> 本文中除了有對程序的系統(tǒng)分析、總體設計、數(shù)據(jù)庫設計、功能實現(xiàn)等主體部分外,在這之前還介紹了與網(wǎng)上選課系統(tǒng)相關的信息、IIS介紹、IIS與ASP.NET的結合等的基本內容及發(fā)展情況。</p><p> 關鍵詞:網(wǎng)上選課,瀏覽器/服務器結構,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)分析與總體設計6</p><p><b> 2.1系統(tǒng)分析6</b></p><p> 2.2 系統(tǒng)總體設計7</p><p> 3.數(shù)據(jù)庫設計與實現(xiàn)9</p><p> 3.1數(shù)據(jù)庫系統(tǒng)分析9</p><p> 3.2 數(shù)據(jù)庫邏輯設計12</p>
7、<p> 3.3數(shù)據(jù)庫物理實現(xiàn)13</p><p> 4. 公共類與公共頁面設計16</p><p> 4.1 Web.config頁面設計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. 總結34</b></p><p><b> 參考文獻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編程技術,多媒體技術。</p><p>
10、; 2.掌握一種多任務多用戶操作系統(tǒng)</p><p> 3.ASP.NET的動態(tài)網(wǎng)頁和SQL Server大型的數(shù)據(jù)庫。</p><p> 4.學會使用某種開發(fā)工具。</p><p> 5.培養(yǎng)相互合作的精神。</p><p> 1.2 課題研究的意義 </p><p> 學生選課系統(tǒng)是一個學校不可缺少的
11、部分,它的內容對于學校的決策者和管理者來說都至關重要,所以學生選課系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。</p><p> 隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并
12、發(fā)揮著越來越重要的作用。</p><p> 作為計算機應用的一部分,使用計算機對選課信息進行管理,有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。</p><p> 因此,開發(fā)這樣一套軟件成為很有必要的事情,在下面的各章中我們將以開發(fā)一套
13、學生選課系統(tǒng)為例,談談其開發(fā)過程和所涉及到的問題及解決方法。</p><p> 本文中所做的主要工作如下:</p><p> (1)介紹了個性化頁面的背景及Win2000server+IIS+ASP.NET系統(tǒng)的一般原理;</p><p> (2) 闡述整個個性化頁面生成系統(tǒng)的系統(tǒng)結構及工作原理;分析了系統(tǒng)實現(xiàn)中的特殊性、難點和重點。</p>&
14、lt;p> (3) 設計實現(xiàn)用戶管理、課程管理、選課信息錄入管理、新生信息錄入管理、課程的瀏覽和查找、學生查找等ASP.NET頁面 。</p><p> (4) 分析并解決實現(xiàn)中的若干技術問題。 </p><p> (5) 建立完整的網(wǎng)上選課,進行測試并分析結果。</p><p> 1.3 課題的可行性分析</p><p>
15、1.3.1 課題調研</p><p> (1)與實踐活動和相關的文件和資料由教師提供。</p><p> (2)本課題要求學生有熟練的ASP.NET開發(fā)能力,有較強的自學能力以一定的關系數(shù)據(jù)庫理論開發(fā)功底。</p><p> (3)具有對復雜表進行處理的能力。</p><p> (4)具體問題再做詳細調查研究并與指導老師面談。<
16、/p><p> 1.3.2 可行性分析</p><p> (1)技術可行性-----本系統(tǒng)僅需要一臺裝有Office軟件的計算機即可,對機器本身沒有太高的要求,一般當前學校或個人電腦完全可滿足要求。對于軟件技術要求,現(xiàn)在的程序設計語言已非常成熟,要運用HTML樣式,圖形圖象制作工具來制作生動活潑的網(wǎng)頁及美觀的圖形文件或動畫文件,數(shù)據(jù)庫使用SQL Server 2000中提供的數(shù)據(jù)庫桌面工具
17、ODBC。</p><p> (2) 經(jīng)濟可行性-----由于本系統(tǒng)是為學生選課管理使用的系統(tǒng),裝上該應用軟件,即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當系統(tǒng)投入運行后可以為學校節(jié)約大量的人力,物力。所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟上完全可行。</p><p> (3) 操作可行性-----界面設計時充分考慮管理人員的習慣,使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠
18、;統(tǒng)計準確;制表靈活;適應力強;容易擴充。第2章內容主要是:系統(tǒng)需求分析包括,現(xiàn)有系統(tǒng)介紹;系統(tǒng)的實體分析,實體關系圖。</p><p> 2 系統(tǒng)分析與總體設計</p><p><b> 2.1系統(tǒng)分析</b></p><p> 在本系統(tǒng)中,有三類用戶:系統(tǒng)管理員,教師和學生。三種不同的用戶所具有的操作權限以及操作內容均不一樣。<
19、/p><p> 本選課系統(tǒng)給予教師很大的自主權,系統(tǒng)管理員只負責向系統(tǒng)中添加學生和教師的個人信息以及教學樓教室信息。系統(tǒng)管理員不參與開設課程、選擇課程等,一切均由教師、學生等錄網(wǎng)站自行完成。系統(tǒng)管理員設置一個選課時間段,在到達時間段以前,教師可以開設課程;到達時間段以后,學生可以登陸網(wǎng)站選擇課程。</p><p> 教師用戶登陸網(wǎng)站后可以開設課程,為自己的課程編輯上課時間和地點,當系統(tǒng)中出
20、現(xiàn)時間地點沖突的時候,系統(tǒng)向教師用戶報告并推薦一個時間地點。每門課程可以是必修或則選修,教師為每門課程設置一個學分,并可以在課程結束后給予分數(shù),如果學生及格,學生將獲得該課程的學分。</p><p> 對于學生用戶,每個學生除了必須選擇必修課程外,至少還要選擇兩門選修課程,學生可以對自己選課信息鎖定,以免不小心被修改。當時候超過選課時段后,系統(tǒng)自動鎖定學生的選課課程。系統(tǒng)可以根據(jù)學生的選課信息,生成一份學生自己
21、的課表。課程結束后學生可登錄網(wǎng)站查詢成績與學分。</p><p> 根據(jù)上面的要求,從操作功能上可以分為兩個類:一個是通用操作,主要實現(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> 每個用戶第一次登錄都用默認密碼(教師和學生與帳號一樣)。</p><p><b> 2.用戶所具有功能</b></p><
23、;p><b> (1)系統(tǒng)管理員</b></p><p> 設置選課時間段:系統(tǒng)管理員通過此項功能設置選課時段,只有在選課時間段里,學生才可以選擇課程,超過次時間段,學生選課信息被自動所定,不得修改。</p><p> 錄入學生與教師個人信息:通過此項功能可以實現(xiàn)對教師和學生的個人信息添加刪除。</p><p> 錄入教學樓教室信
24、息:通過此項功能可以把學校里所有的教學樓教室的信息錄入到系統(tǒng)中,以便教師在開設課程時候設置上課的教室。</p><p><b> (1)教師用戶</b></p><p> 顯示和修改個人信息:教師用戶登錄系統(tǒng)后,可以查看和修改教師的個人信息,如姓名,電話,E-mail地址等。</p><p> 開設課程:教師用戶登錄系統(tǒng)后,可以開設課程,
25、可以設置該課程為必修課程或則選修課程,可以設置該課程的最大人數(shù)。教師還可以為該課程設置一個前導課程,若學生沒有學習或則選擇前導課程則不能選擇該課程。</p><p> 編輯課程上課時間:教師在開設了課程后,可以靈活地設置上課時間和地點。</p><p> 給學生分數(shù):課程結束后,教師用戶登錄系統(tǒng),可以為學過課程的學生給予相應的成績,若</p><p> 及格,
26、給予學生學分。</p><p><b> (1)學生用戶</b></p><p> 顯示和修改個人信息:學生登錄系統(tǒng)后,可以查看和修改學生的個人信息,如姓名,性別,電話等。</p><p> 查看必修課程:學生登錄后,可以查看所有的必修課程。查看該課程的信息,上課時間地點,開課教師信息等。</p><p> 選擇
27、選修課程:學生登錄系統(tǒng)后,在所有選修課程中可以選擇至少兩門選修課程。同時可以查看相關信息。</p><p> 鎖定選課信息:學生登錄系統(tǒng),確定了所選課程后,可以鎖定自己的選課信息,以防被別人或則自己不小心修改。</p><p> 查看最終選課信息:學生登錄系統(tǒng)后,可列出已選擇的課程,若選課信息未被鎖定,則可以退選,若所選課程少于兩門,系統(tǒng)會提示選擇的課程少于兩門。</p>
28、<p><b> 查看學分和成績</b></p><p> 課程結束后,學生登錄系統(tǒng)可查看自己學習課程的成績和已獲的學分。</p><p> 2.2 系統(tǒng)總體設計</p><p> 在前面的系統(tǒng)的系統(tǒng)功能分析中,將系統(tǒng)劃分成10個模塊,如圖:</p><p> 用戶登錄身份驗證模塊驗證用戶名和密碼,
29、并根據(jù)不同的用戶類型,跳轉到對應的頁面中。設置選課時間模塊提供給系統(tǒng)管理員修改選課時間段。錄入信息模塊提供給系統(tǒng)管理員,用來錄入學生和教師信息,以及錄入教學樓教室等信息。開設課程模塊提供給教師用戶,用來開設一門必修課程或則選修課程。編輯課程時間地點模塊提供給教師用戶,編輯課程的上課時間地點友好的界面和操作。評分模塊用于教師用戶給選修該教師開設的課程的學生評分。查看課程模塊包括查看必修課程、查看選修課程、查看已選課程、查看課程成績單。選課
30、和鎖定模塊中實現(xiàn)選擇選修課程和鎖定選課信息的功能</p><p> 3 數(shù)據(jù)庫設計與實現(xiàn)</p><p> 數(shù)據(jù)庫是此類系統(tǒng)的核心,系統(tǒng)中所有的信息都存儲在數(shù)據(jù)庫中,在所有ASP.NET頁面中通過ADO.NET與數(shù)據(jù)庫連接,操作數(shù)據(jù)庫中的數(shù)據(jù),從而實現(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ù)庫設計的合理與否對網(wǎng)站的建設有著至關重要的影響。一個良好的數(shù)據(jù)庫開發(fā)過程一般是先系統(tǒng)分析,再邏輯設計,然后物理實現(xiàn)。系統(tǒng)分析中分析數(shù)據(jù)庫用戶需求,并畫出E-R圖直觀地表示出數(shù)據(jù)庫系統(tǒng)的需求。邏輯設計中根據(jù)系統(tǒng)分析設計的一個關系模型。物理設計為邏輯設計中的數(shù)據(jù)模型選取一個最合理的應用環(huán)境的物理結構,通常選取一個常用數(shù)據(jù)庫軟件,用數(shù)據(jù)庫軟件創(chuàng)建與邏輯設計中數(shù)據(jù)模型對應的數(shù)據(jù)庫。&
32、lt;/p><p> 3.1數(shù)據(jù)庫系統(tǒng)分析</p><p> 本系統(tǒng)的數(shù)據(jù)庫實體主要有“學生”、“教師”、“教學樓”、“教室”、“課程”等。其中“教師”與“課程”存在“開設”聯(lián)系,并且一個教師可以開設N門課程,即“教師”與“課程”之間是一對多的關系。同樣“教學樓”與“教室”也存在一對多的關系。一個學生可以學習N門課程,一門課程可以有M個學生學習,即“學生”與“課程”之間是多對多的關系。同樣
33、“課程”與“教室”之間也是多對多的關系。整個數(shù)據(jù)庫可以用一個E-R圖表示,如圖:</p><p> E—R圖中的實體圖:</p><p> 3.2 數(shù)據(jù)庫邏輯設計</p><p> 數(shù)據(jù)庫邏輯設計就是將E—R圖轉換為關系模型的過程,即將所有實體和關系轉換成一系列的關系模式。轉換過程中常見規(guī)則有:</p><p> (1)一個實體型轉換
34、為一個關系模式;</p><p> (2)一個一對一的聯(lián)系可轉換成一個獨立的關系模式,也可與任意一端對應的關系模式合并;</p><p> (3)一個一對多的聯(lián)系可以轉換成一個獨立的關系模式,也可與多的那一端對應的關系模式合并;</p><p> (4)一個多對多的關系轉換成一個關系模式。</p><p> 根據(jù)以上四條規(guī)則,下面將E
35、—R圖轉換成關系模型。</p><p> 對于“教學樓”、“教室”和兩者之間的關系,就可以根據(jù)規(guī)則(3)轉換成兩個關系模式</p><p> 教學樓(教學樓ID,教學樓名稱)</p><p> 教室(教室ID,教學樓ID,教室名稱)</p><p> 對于“學生”、“課程”和它們之間的“選修”關系就可以規(guī)則(4)轉換成三個關系模式。&
36、lt;/p><p> 學生(學號,姓名,性別,年齡,登陸密碼,學分,地址,電話,電子郵件)</p><p> 課程(課程編碼,課程名稱,開課教師編號,學分,最大人數(shù),課程簡介,前導課程編號)</p><p> 選課(學號,課程編號,成績)</p><p> 依次類推,剩下的關系轉換成下面三個關系模式:</p><p&g
37、t; 教師(教師編號,姓名,性別,年齡,電話,電子郵件,個人簡介)</p><p> 課程時間地點(課程編號,開始周次,結束周次,上課時間,上課教室ID)</p><p> 管理員(帳號,密碼)</p><p> 3.3數(shù)據(jù)庫物理實現(xiàn)</p><p> 經(jīng)過數(shù)據(jù)庫系統(tǒng)分析和邏輯設計后,數(shù)據(jù)庫的結構已經(jīng)非常清晰,剩下的就是用一種數(shù)據(jù)庫
38、軟件實現(xiàn)這樣的結構。本系統(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ù)表中的屬性,包括屬性列的名稱、數(shù)據(jù)類型、長度、是否可以為空和備注說明等內容。</p><p> (1)Student表。Student表用來存儲學生的個人信息,使用學號作為主鍵,如圖3-2:</p><p><b> 圖3-2</b>&l
40、t;/p><p> (2)Teacher表。Teacher表用來存儲教師的個人信息,用學校分配給教師的教師編號作為主鍵,這樣可以避免重復,如圖3-3:</p><p><b> 圖3-3</b></p><p> (3)Course表。Course表用來存儲課程信息,Course表以課程編號為主鍵,設置課程編號自動增加1(通過建表的時候對屬性
41、列設置“標識”,并設置“標識遞增量”為1)。表中開課教師Id為外鍵,所有“TId”的值必須是Teacher表中的“TId”值。設置外鍵關系可以通過在建立表的窗口中單擊右鍵,在右鍵菜單中選擇“關系”,在彈出的對話框中設置外鍵關系。如圖3-4:</p><p><b> 圖3-4</b></p><p> (4)SC表。SC表用于存儲學生的選課信息,在SC表中學號和課
42、程編號是主鍵,同時也是外鍵。如圖3-5:</p><p><b> 圖3-5</b></p><p> (5)CourseTime表。CourseTime表用來存放課程的上課時間和上課地點信息,其中課程編號和教室編號為外鍵。如圖3-6:</p><p><b> 圖3-6</b></p><p&g
43、t; (6)Building表。Building表用來存放教學樓信息,Building表中教學樓編號為主鍵,自動增加1。如圖3-7:</p><p><b> 圖3-7</b></p><p> (7)Room表。Room表用來存放教室信息,在Room表中,教室編號為主鍵,自動增加1,教學編號為外鍵。如圖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公共類與公共頁面設計</p><p> 4.1 Web.config頁面設計</p><p>
45、 Web.Config文件是用來保存網(wǎng)站的很多全局設置,代碼是通過using Configuration引用,在Web.Config文件中添加數(shù)據(jù)庫連接字符串。在ADO.NET中用一個字符串來表示一個數(shù)據(jù)庫,一般都把這個字符串放到Web.Config文件中,在整個項目中均可使用。</p><p> <?xml version="1.0" encoding="utf-8&qu
46、ot; ?></p><p> <configuration></p><p> <system.web></p><p> <!-- 動態(tài)調試編譯設置 compilation debug="true" 以啟用 ASPX 調試。否則,將此值設置為</p><p> false
47、將提高此應用程序的運行時性能。</p><p> 設置 compilation debug="true" 以將調試符號(.pdb 信息)</p><p> 插入到編譯頁中。因為這將創(chuàng)建執(zhí)行起來</p><p> 較慢的大文件,所以應該只在調試時將此值設置為 true,而在所有其他時候都設置為false。有關更多信息,請參考有調試 ASP.N
48、ET 文件的文檔--></p><p> <compilation </p><p> defaultLanguage="c#"</p><p> debug="true"</p><p><b> /></b></p><p>
49、 <!-- 自定義錯誤信息</p><p> 設置 customErrors mode="On" 或 "RemoteOnly" 以啟用自定義錯誤信息,或設置為 "Off" 以禁用自定義錯誤信息。 </p><p> 為每個要處理的錯誤添加 <error> 標記。</p><p>
50、"On" 始終顯示自定義(友好的)信息。</p><p> "Off" 始終顯示詳細的 ASP.NET 錯誤信息。</p><p> "RemoteOnly" 只對不在本地 Web 服務器上運行的</p><p> 用戶顯示自定義(友好的)信息。出于安全目的,建議使用此設置,以便 </p>
51、<p> 不向遠程客戶端顯示應用程序的詳細信息。</p><p><b> --></b></p><p> <customErrors </p><p> mode="RemoteOnly" </p><p><b> /> </b>&
52、lt;/p><p> <!-- 身份驗證 </p><p> 此節(jié)設置應用程序的身份驗證策略??赡艿哪J绞?"Windows"、 </p><p> "Forms"、 "Passport" 和 "None"</p><p> "None&qu
53、ot; 不執(zhí)行身份驗證。 </p><p> "Windows" IIS 根據(jù)應用程序的設置執(zhí)行身份驗證 </p><p> (基本、簡要或集成 Windows)。在 IIS 中必須禁用匿名訪問。</p><p> "Forms" 您為用戶提供一個輸入憑據(jù)的自定義窗體(Web 頁),然后 </p><
54、p> 在您的應用程序中驗證他們的身份。用戶憑據(jù)標記存儲在 Cookie 中。</p><p> "Passport" 身份驗證是通過 Microsoft 的集中身份驗證服務執(zhí)行的,</p><p> 它為成員站點提供單獨登錄和核心配置文件服務。</p><p><b> --></b></p>
55、<p> 4.2 數(shù)據(jù)庫連接操作類—Db類</p><p> 在ASP.NET中通過ADO.NET技術對數(shù)據(jù)庫進行操作。ADO.NET中有許多很方便的類可用來操作數(shù)據(jù)庫,例如SqlConnection類、SqlDataAdapter類、SqlCommand類、DataSet類等。由于在選課系統(tǒng)中,操作數(shù)據(jù)庫的地方非常多,為了避免很多重復代碼的編寫,所以對數(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ù)庫進行操作,一般順序為:先通過SqlCon
57、nection的Open函數(shù)連接到數(shù)據(jù)庫,然后再通過Sqlcommand執(zhí)行指定的SQL語句,執(zhí)行結束后再調用SqlConnection的Close函數(shù)關閉數(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ù)調用,把它們都寫在一個工具類里: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、的算法實現(xiàn)函數(shù),調用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)站的運行過程中,經(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的取值通常為負,當為-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)絡原因等,系統(tǒng)運行會出現(xiàn)一些錯誤,為了便于統(tǒng)一,本系統(tǒng)定義專用的錯誤信息類和錯誤顯
70、示頁面。在錯誤信息類ErrorInfo類中,定義了所有的本系統(tǒng)中所出現(xiàn)的錯誤情況和函數(shù)Message。函數(shù)Message根據(jù)錯誤情況得到相應顯示字符串。錯誤顯示頁面根據(jù)URL中錯誤代碼參數(shù)顯示不同的錯誤信息。</p><p><b> 4.5登錄頁面</b></p><p> 登錄頁面是所有用戶公用的功能。不同的用戶登錄到系統(tǒng)中將轉向不同的頁面。解決方法運用了AS
71、P.NET的內置對象Session記錄用戶登錄信息,同樣也可以在網(wǎng)站里隨時判斷用戶是否已經(jīng)登錄。</p><p><b> 5 系統(tǒng)說明書</b></p><p><b> 5.1系統(tǒng)界面說明</b></p><p> 下面是在線選課系統(tǒng)的預覽,此處簡單介紹本系統(tǒng)的部分功能。</p><p>
72、 1.登錄頁面,如圖5-1:</p><p><b> 圖5-1</b></p><p> 在用戶名和密碼處輸入用戶名和密碼,在“用戶類型”下拉列表框中選擇“學生”,單擊“登錄”按鈕,登錄選課系統(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://學生</p><p> //驗證學生身份代碼 </p><p><b> break;</b></p><p> cas
76、e 2://教師</p><p> //驗證教師身份代碼</p><p><b> break;</b></p><p> case 3://系統(tǒng)管理員</p><p> //驗證管理員身份代碼</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> 登錄成功后,進入學生主頁,點擊“必修課程”鏈接,得到所有必修課程的列表,在列表中可以看到所有必修課程及課程的簡單信息,如授課教師姓名、課程所占學分等。</p><p> 在列表中可以點課程名稱,如“計算機應用基礎”鏈接,查看課程詳細信息;點教師姓名,如“李萍”鏈接,查看教師的詳細
79、信息;點擊“查看上課時間地點”鏈接,查看對應課程的上課時間和地點。</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();//將查詢結果綁定到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)管理員主要有三個功能需要實現(xiàn):設置選課時間段、錄入學生和教師信息、錄入教學樓教室信息。</p><p> 設置開始選課時間段:選課時間段存儲在項目目錄下的time.txt文件中。文件中第一行表示開始時間,第二行表示結束時間。如圖5-5:</p><p
83、><b> 如圖5-5</b></p><p><b> 設置時間代碼如下:</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());//寫入結束時間</p><p> sw.Close();</p>
87、<p> lbTime.Text = "選課時間為:"+dtStart.ToString()+"到"+dtEnd.ToString(); //更新選課時間段顯示</p><p> 錄入學生和教師信息:在AdminUser.Aspx中,用與錄入學生和教師信息。如圖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> 錄入教學樓教室信息:在AdminRoom.Aspx中,教學樓和教室的管理主要包括添加和刪除操
96、作,添加一個教室必須指定其所屬的教學樓。如圖5-7:</p><p><b> 圖5-7</b></p><p> 添加教學樓代碼如下:</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("請輸入教學樓名稱!"));</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> 教師用戶的功能需求有個人信息的管理、開設課程、課程時間地點編輯、設置學生成績。</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> 開設課程:在NewCourse.Aspx中,在這里可以添加新課程,其中包括課程名稱、課程類型、 學分、前導課程、最大人數(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> 課程時間地點編輯:在TeacherMain.Aspx中,在這里可以編輯課程時間和地點。如圖5-12:</p><p><b>
106、 6 總結</b></p><p> 經(jīng)過幾個月的學習,研究和開發(fā),我選擇的課題學生選課系統(tǒng)基本完成。其功能基本符合網(wǎng)絡上的用戶要求,能夠在線選課,在線添加課程,在線查詢課程等。雖然由于自己知識上的不足,有些地方有少許錯誤和容錯性能比較低,但是還是可以基本完成選課系統(tǒng)應有的功能。</p><p> 通過畢業(yè)設計過程我會到了許多知識,這也是在大學里第一次比較完整的完成一個小項
107、目,雖然過程中遇到了許多困難,在同學和老師的幫助下一一克服了。通過不斷的發(fā)現(xiàn)問題,總結問題和解決問題的過程,使我在此次畢業(yè)設計活動中不斷的提高,和得到了寶貴的經(jīng)驗。</p><p><b> 參考文獻</b></p><p> [1]吳晨,《ASP.NET+SQL Server-數(shù)據(jù)庫開發(fā)與實例》,清華大學出版社,出版2006年7月</p><
108、p> [2](美)內格爾,《C#高級編程(第4版)》,清華大學出版社,出版2006年10月</p><p> [3](美)solid,《SQLServer2005從入門與精通(應用技術基礎)》,清華大學出版社,出版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)過同學和xxx老師的幫助,逐漸克服了困難,并從中學到</p><p> 了很多SQL數(shù)據(jù)庫編程方面的知識。但是由于經(jīng)驗方面的原因,以及對物流配送方面的操作流程了解不夠深刻,該系統(tǒng)還有許多不盡如人意的
110、地方和功能上的缺陷,這些都有待于進一步改善。</p><p> 論文完成的前提是xxx老師給我提供了舒適的工作、學習環(huán)境,并給予我悉心的關懷與指導。在些表示衷心地感謝。老師認真負責的工作態(tài)度、嚴謹?shù)闹螌W風格,使我深受啟發(fā);開發(fā)的同時,和同學們之間的相互探討也使我獲益匪淺。幾個月的時間內,我除基本學會開發(fā)SQL數(shù)據(jù)庫外更重要的是學到了兢兢業(yè)業(yè),奮發(fā)向上的精神,這種精神是我今后人生前進道路上的一種力量。所以我再次感
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機電學院畢業(yè)設計封面.doc
- 機電學院畢業(yè)設計封面.doc
- 機電學院畢業(yè)設計封面.doc
- 機電學院畢業(yè)設計(論文)說明書封面.doc
- 機電學院畢業(yè)設計(論文)說明書封面.doc
- 機電學院畢業(yè)設計(論文)說明書封面.doc
- 機電學院畢業(yè)設計(論文)說明書封面.doc
- 安徽機電學院畢業(yè)設計(論文)選題審批表
- 機電學院畢業(yè)設計(論文)說明書封面.doc
- 機電學院畢業(yè)設計(論文)說明書封面.doc
- 關于選課系統(tǒng)畢業(yè)設計論文
- 畢業(yè)設計(論文)-學生選課系統(tǒng)設計
- 湖北黃岡職業(yè)技術學院機電學院畢業(yè)設計
- 網(wǎng)上選課系統(tǒng)畢業(yè)設計論文
- 機電學院本科畢業(yè)論文.doc
- 河北工程大學機電學院畢業(yè)設計(論文)模板-第一版.doc
- 西安郵電學院畢業(yè)設計(論文)工作程序
- 學生選課系統(tǒng)畢業(yè)設計
- 基于jsp的學生選課系統(tǒng)畢業(yè)設計
- 西安郵電學院畢業(yè)設計(論文)檢查辦法
評論
0/150
提交評論