版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 學(xué) 士 學(xué) 位 論 文</p><p> THESIS OF BACHELOR</p><p> ?。?004 —2008 年)</p><p> 題 目: </p><p> 學(xué) 院: 系 </p><p>
2、; 專 業(yè): </p><p> 班 級(jí): </p><p> 學(xué) 號(hào): </p><p> 學(xué)生姓名: </p>
3、<p> 指導(dǎo)教師: </p><p> 起訖日期: 2007年11月-2008年5月 </p><p><b> 摘 要</b></p><p> 隨著在校大學(xué)生人數(shù)的不斷增加,教務(wù)系統(tǒng)的數(shù)據(jù)量也不斷的上漲。以往的選課方法是隨堂報(bào)名。這種方
4、法雖然直接,但是造成選課的盲目性和教務(wù)處處理數(shù)據(jù)的繁重性。為了減輕教務(wù)處工作,以及每個(gè)學(xué)生更好的選擇自己所喜歡的科目。針對(duì)學(xué)生選課這一環(huán)節(jié),本系統(tǒng)從學(xué)生網(wǎng)上自主選課以及教師的課程發(fā)布兩個(gè)大方面進(jìn)行了設(shè)計(jì),基本實(shí)現(xiàn)了學(xué)生的在線信息查詢、選課功能以及教師對(duì)課程信息發(fā)布的管理等功能。</p><p> 本文通過分析瀏覽器/服務(wù)器結(jié)構(gòu)的特點(diǎn)并結(jié)合選課的實(shí)際情況,提出了基于瀏覽器/服務(wù)器結(jié)構(gòu)網(wǎng)上選課系統(tǒng)的基本設(shè)計(jì)思想,簡
5、要介紹了系統(tǒng)各功能模塊及數(shù)據(jù)庫的設(shè)計(jì),著重討論了用 ASP.NET技術(shù)和SQL Server 2000開發(fā)網(wǎng)上選課系統(tǒng)時(shí)的數(shù)據(jù)庫訪問技術(shù)和動(dòng)態(tài)網(wǎng)頁制作技術(shù),并給出了部分實(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平臺(tái)下開發(fā)完成,使用C#作為ASP.NET的開發(fā)語言,SQL Server 2000作為數(shù)據(jù)庫。系統(tǒng)有較高的安全性和較好的性能。其中連接數(shù)據(jù)庫的字符串可
6、以隨時(shí)在web.config里修改,并經(jīng)過編碼加密,增加了靈活性,保護(hù)了數(shù)據(jù)庫的安全。代碼盡量使用存儲(chǔ)過程和盡量減少數(shù)據(jù)庫連接的打開時(shí)間等手段來提高性能。</p><p> 本文中除了有對(duì)程序的系統(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)上選
7、課,瀏覽器/服務(wù)器結(jié)構(gòu),ASP.NET,數(shù)據(jù)庫管理系統(tǒng)</p><p><b> Abstract</b></p><p> With the development of the enrolling number, the data for daily registry is increasing, too. And always we should goto
8、classroom to enroll. Although this method directly,but result in blindness of the course enrollment and registry data processing of the heavy .In order to reduce the work registry ,and better each student to choose their
9、 own favorite subjects .This system is special for the on-line course choosing to design both from the aspect of the student and the teacher. The student can ch</p><p> This paper gives the basic design ide
10、a of the Browser/Server structure based online course elect system by analyzing the characteristic of the Browser/Server structure and combining with the actual public elective courses conditions of our school.It introdu
11、ces the function module and database design briefly,followed by a discussion on database accessing technology and the active page technology of the course elect system based on ASP.NET and SQL Server 2000.By using this s
12、ystem,students can elec</p><p> This paper includes the system analysis ,the main designing ,the database designing, the function designing and , before this , some basic knowledge and present development o
13、f the programs mentioned above. </p><p> Keywords: online course elect, Browser/Server structure,ASP.NET, DBMS</p><p><b> 目錄</b></p><p><b> 摘 要1</b><
14、;/p><p> Abstract2</p><p><b> 第一章 引言4</b></p><p> 1.1課題研究的目的4</p><p> 1.2 課題研究的意義4</p><p> 1.3 課題的可行性分析5</p><p> 第二章 系統(tǒng)分析與
15、總體設(shè)計(jì)6</p><p><b> 2.1系統(tǒng)分析6</b></p><p> 2.2 系統(tǒng)總體設(shè)計(jì)7</p><p> 第三章數(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><p&g
16、t; 3.3數(shù)據(jù)庫物理實(shí)現(xiàn)13</p><p> 第四章 公共類與公共頁面設(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 錯(cuò)誤信息類和錯(cuò)
17、誤顯示頁面21</p><p> 第五章 系統(tǒng)說明書22</p><p> 5.1系統(tǒng)界面說明22</p><p> 5.2 系統(tǒng)管理說明27</p><p> 5.2教師管理說明30</p><p><b> 第6章 總結(jié)34</b></p><p>
18、;<b> 參考文獻(xiàn)35</b></p><p><b> 致 謝36</b></p><p><b> 第一章 引言</b></p><p> 1.1課題研究的目的</p><p> 1.掌握采用Internet的TCP/IP協(xié)議,以B/S方式,ASP.NE
19、T編程技術(shù),多媒體技術(shù)。</p><p> 2.掌握一種多任務(wù)多用戶操作系統(tǒng)</p><p> 3.ASP.NET的動(dòng)態(tài)網(wǎng)頁和SQL Server大型的數(shù)據(jù)庫。</p><p> 4.學(xué)會(huì)使用某種開發(fā)工具。</p><p> 5.培養(yǎng)相互合作的精神。</p><p> 1.2 課題研究的意義 </p&
20、gt;<p> 學(xué)生選課系統(tǒng)是一個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的決策者和管理者來說都至關(guān)重要,所以學(xué)生選課系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點(diǎn),如:效率低、保密性差,另外時(shí)間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來了不少的困難。</p><p> 隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸
21、成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。</p><p> 作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)選課信息進(jìn)行管理,有著手工管理所無法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。</p><p> 因此,開
22、發(fā)這樣一套軟件成為很有必要的事情,在下面的各章中我們將以開發(fā)一套學(xué)生選課系統(tǒng)為例,談?wù)勂溟_發(fā)過程和所涉及到的問題及解決方法。</p><p> 本文中所做的主要工作如下:</p><p> (1)介紹了個(gè)性化頁面的背景及Win2000server+IIS+ASP.NET系統(tǒng)的一般原理;(2) 闡述整個(gè)個(gè)性化頁面生成系統(tǒng)的系統(tǒng)結(jié)構(gòu)及工作原理;分析了系統(tǒng)實(shí)現(xiàn)中的特殊性、難點(diǎn)和重點(diǎn)。(3
23、) 設(shè)計(jì)實(shí)現(xiàn)用戶管理、課程管理、選課信息錄入管理、新生信息錄入管理、課程的瀏覽和查找、學(xué)生查找等ASP.NET頁面 。(4) 分析并解決實(shí)現(xiàn)中的若干技術(shù)問題。 (5) 建立完整的網(wǎng)上選課,進(jìn)行測(cè)試并分析結(jié)果。</p><p> 1.3 課題的可行性分析</p><p> 1.3.1 課題調(diào)研</p><p> ?。?)與實(shí)踐活動(dòng)和相關(guān)的文件和資料由教師提供。
24、</p><p> (2)本課題要求學(xué)生有熟練的ASP.NET開發(fā)能力,有較強(qiáng)的自學(xué)能力以及一定的關(guān)系數(shù)據(jù)庫理論開發(fā)功底。</p><p> ?。?)具有對(duì)復(fù)雜表進(jìn)行處理的能力。</p><p> ?。?)具體問題再做詳細(xì)調(diào)查研究并與指導(dǎo)老師面談。</p><p> 1.3.2 可行性分析</p><p> ?。?
25、)技術(shù)可行性-----本系統(tǒng)僅需要一臺(tái)裝有Office軟件的計(jì)算機(jī)即可,對(duì)機(jī)器本身沒有太高的要求,一般當(dāng)前學(xué)校或個(gè)人電腦完全可滿足要求。對(duì)于軟件技術(shù)要求,現(xiàn)在的程序設(shè)計(jì)語言已非常成熟,要運(yùn)用HTML樣式,圖形圖象制作工具來制作生動(dòng)活潑的網(wǎng)頁及美觀的圖形文件或動(dòng)畫文件,數(shù)據(jù)庫使用SQL Server 2000中提供的數(shù)據(jù)庫桌面工具ODBC。</p><p> ?。ǎ玻?經(jīng)濟(jì)可行性-----由于本系統(tǒng)是為學(xué)生選課管理
26、使用的系統(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ì)時(shí)充分考慮管理人員的習(xí)慣,使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠;統(tǒng)計(jì)準(zhǔn)確;制表靈活;適應(yīng)力強(qiáng);容易擴(kuò)充。第2章內(nèi)容主要是:系統(tǒng)需求分析包括,現(xiàn)有系統(tǒng)介紹;系統(tǒng)的實(shí)體分析,實(shí)
27、體關(guān)系圖。</p><p> 第二章 系統(tǒng)分析與總體設(shè)計(jì)</p><p><b> 2.1系統(tǒng)分析</b></p><p> 在本系統(tǒng)中,有三類用戶:系統(tǒng)管理員,教師和學(xué)生。三種不同的用戶所具有的操作權(quán)限以及操作內(nèi)容均不一樣。</p><p> 本選課系統(tǒng)給予教師很大的自主權(quán),系統(tǒng)管理員只負(fù)責(zé)向系統(tǒng)中添加學(xué)生和教
28、師的個(gè)人信息以及教學(xué)樓教室信息。系統(tǒng)管理員不參與開設(shè)課程、選擇課程等,一切均由教師、學(xué)生等錄網(wǎng)站自行完成。系統(tǒng)管理員設(shè)置一個(gè)選課時(shí)間段,在到達(dá)時(shí)間段以前,教師可以開設(shè)課程;到達(dá)時(shí)間段以后,學(xué)生可以登陸網(wǎng)站選擇課程。</p><p> 教師用戶登陸網(wǎng)站后可以開設(shè)課程,為自己的課程編輯上課時(shí)間和地點(diǎn),當(dāng)系統(tǒng)中出現(xiàn)時(shí)間地點(diǎn)沖突的時(shí)候,系統(tǒng)向教師用戶報(bào)告并推薦一個(gè)時(shí)間地點(diǎn)。每門課程可以是必修或則選修,教師為每門課程設(shè)置
29、一個(gè)學(xué)分,并可以在課程結(jié)束后給予分?jǐn)?shù),如果學(xué)生及格,學(xué)生將獲得該課程的學(xué)分。</p><p> 對(duì)于學(xué)生用戶,每個(gè)學(xué)生除了必須選擇必修課程外,至少還要選擇兩門選修課程,學(xué)生可以對(duì)自己選課信息鎖定,以免不小心被修改。當(dāng)時(shí)候超過選課時(shí)段后,系統(tǒng)自動(dòng)鎖定學(xué)生的選課課程。系統(tǒng)可以根據(jù)學(xué)生的選課信息,生成一份學(xué)生自己的課表。課程結(jié)束后學(xué)生可登錄網(wǎng)站查詢成績與學(xué)分。</p><p> 根據(jù)上面的要
30、求,從操作功能上可以分為兩個(gè)類:一個(gè)是通用操作,主要實(shí)現(xiàn)用戶的登錄注銷和修改密碼等;另一種是為不同用戶定制不同操作。</p><p><b> 1。通用操作</b></p><p><b> (1)登錄與注銷</b></p><p> 每個(gè)用戶都可以用自己的帳號(hào)登錄系統(tǒng)。用戶操作完成后推出系統(tǒng),注銷后可以重新登錄系統(tǒng)
31、。</p><p><b> (2)修改密碼</b></p><p> 每個(gè)用戶第一次登錄都用默認(rèn)密碼(教師和學(xué)生與帳號(hào)一樣)。</p><p><b> 2。用戶所具有功能</b></p><p><b> 系統(tǒng)管理員</b></p><p>
32、 設(shè)置選課時(shí)間段:系統(tǒng)管理員通過此項(xiàng)功能設(shè)置選課時(shí)段,只有在選課時(shí)間段里,學(xué)生才可以選擇課程,超過次時(shí)間段,學(xué)生選課信息被自動(dòng)所定,不得修改。</p><p> 錄入學(xué)生與教師個(gè)人信息:通過此項(xiàng)功能可以實(shí)現(xiàn)對(duì)教師和學(xué)生的個(gè)人信息添加刪除。</p><p> 錄入教學(xué)樓教室信息:通過此項(xiàng)功能可以把學(xué)校里所有的教學(xué)樓教室的信息錄入到系統(tǒng)中,以便教師在開設(shè)課程時(shí)候設(shè)置上課的教室。</
33、p><p><b> 教師用戶</b></p><p> 顯示和修改個(gè)人信息:教師用戶登錄系統(tǒng)后,可以查看和修改教師的個(gè)人信息,如姓名,電話,E-mail地址等。</p><p> 開設(shè)課程:教師用戶登錄系統(tǒng)后,可以開設(shè)課程,可以設(shè)置該課程為必修課程或則選修課程,可以設(shè)置該課程的最大人數(shù)。教師還可以為該課程設(shè)置一個(gè)前導(dǎo)課程,若學(xué)生沒有學(xué)習(xí)或則
34、選擇前導(dǎo)課程則不能選擇該課程。</p><p> 編輯課程上課時(shí)間:教師在開設(shè)了課程后,可以靈活地設(shè)置上課時(shí)間和地點(diǎn)。</p><p> 給學(xué)生分?jǐn)?shù):課程結(jié)束后,教師用戶登錄系統(tǒng),可以為學(xué)過課程的學(xué)生給予相應(yīng)的成績,若</p><p> 及格,給予學(xué)生學(xué)分。</p><p><b> 學(xué)生用戶</b></p
35、><p> 顯示和修改個(gè)人信息:學(xué)生登錄系統(tǒng)后,可以查看和修改學(xué)生的個(gè)人信息,如姓名,性別,電話等。</p><p> 查看必修課程:學(xué)生登錄后,可以查看所有的必修課程。查看該課程的信息,上課時(shí)間地點(diǎn),開課教師信息等。</p><p> 選擇選修課程:學(xué)生登錄系統(tǒng)后,在所有選修課程中可以選擇至少兩門選修課程。同時(shí)可以查看相關(guān)信息。</p><p
36、> 鎖定選課信息:學(xué)生登錄系統(tǒng),確定了所選課程后,可以鎖定自己的選課信息,以防被別人或則自己不小心修改。</p><p> 查看最終選課信息:學(xué)生登錄系統(tǒng)后,可列出已選擇的課程,若選課信息未被鎖定,則可以退選,若所選課程少于兩門,系統(tǒng)會(huì)提示選擇的課程少于兩門。</p><p><b> 查看學(xué)分和成績</b></p><p> 課
37、程結(jié)束后,學(xué)生登錄系統(tǒng)可查看自己學(xué)習(xí)課程的成績和已獲的學(xué)分。</p><p> 2.2 系統(tǒng)總體設(shè)計(jì)</p><p> 在前面的系統(tǒng)的系統(tǒng)功能分析中,將系統(tǒng)劃分成10個(gè)模塊,如圖:</p><p> 用戶登錄身份驗(yàn)證模塊驗(yàn)證用戶名和密碼,并根據(jù)不同的用戶類型,跳轉(zhuǎn)到對(duì)應(yīng)的頁面中。設(shè)置選課時(shí)間模塊提供給系統(tǒng)管理員修改選課時(shí)間段。錄入信息模塊提供給系統(tǒng)管理員,用來
38、錄入學(xué)生和教師信息,以及錄入教學(xué)樓教室等信息。開設(shè)課程模塊提供給教師用戶,用來開設(shè)一門必修課程或則選修課程。編輯課程時(shí)間地點(diǎn)模塊提供給教師用戶,編輯課程的上課時(shí)間地點(diǎn)友好的界面和操作。評(píng)分模塊用于教師用戶給選修該教師開設(shè)的課程的學(xué)生評(píng)分。查看課程模塊包括查看必修課程、查看選修課程、查看已選課程、查看課程成績單。選課和鎖定模塊中實(shí)現(xiàn)選擇選修課程和鎖定選課信息的功能。</p><p><b> 數(shù)據(jù)庫設(shè)計(jì)
39、與實(shí)現(xiàn)</b></p><p> 數(shù)據(jù)庫是此類系統(tǒng)的核心,系統(tǒng)中所有的信息都存儲(chǔ)在數(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 Server 2000作為數(shù)據(jù)庫工具。數(shù)據(jù)庫是網(wǎng)站的核心,數(shù)據(jù)庫設(shè)計(jì)的合理與否對(duì)網(wǎng)站的建
40、設(shè)有著至關(guān)重要的影響。一個(gè)良好的數(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ì)的一個(gè)關(guān)系模型。物理設(shè)計(jì)為邏輯設(shè)計(jì)中的數(shù)據(jù)模型選取一個(gè)最合理的應(yīng)用環(huán)境的物理結(jié)構(gòu),通常選取一個(gè)常用數(shù)據(jù)庫軟件,用數(shù)據(jù)庫軟件創(chuàng)建與邏輯設(shè)計(jì)中數(shù)據(jù)模型對(duì)應(yīng)的數(shù)據(jù)庫。</p><p> 3.1數(shù)據(jù)庫系統(tǒng)分析</p>
41、<p> 本系統(tǒng)的數(shù)據(jù)庫實(shí)體主要有“學(xué)生”、“教師”、“教學(xué)樓”、“教室”、“課程”等。其中“教師”與“課程”存在“開設(shè)”聯(lián)系,并且一個(gè)教師可以開設(shè)N門課程,即“教師”與“課程”之間是一對(duì)多的關(guān)系。同樣“教學(xué)樓”與“教室”也存在一對(duì)多的關(guān)系。一個(gè)學(xué)生可以學(xué)習(xí)N門課程,一門課程可以有M個(gè)學(xué)生學(xué)習(xí),即“學(xué)生”與“課程”之間是多對(duì)多的關(guān)系。同樣“課程”與“教室”之間也是多對(duì)多的關(guān)系。整個(gè)數(shù)據(jù)庫可以用一個(gè)E-R圖表示,如圖:<
42、/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> ?。?)一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式;</p><p> ?。?)一個(gè)一對(duì)一的聯(lián)系可轉(zhuǎn)
43、換成一個(gè)獨(dú)立的關(guān)系模式,也可與任意一端對(duì)應(yīng)的關(guān)系模式合并;</p><p> (3)一個(gè)一對(duì)多的聯(lián)系可以轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式,也可與多的那一端對(duì)應(yīng)的關(guān)系模式合并;</p><p> ?。?)一個(gè)多對(duì)多的關(guān)系轉(zhuǎn)換成一個(gè)關(guān)系模式。</p><p> 根據(jù)以上四條規(guī)則,下面將E—R圖轉(zhuǎn)換成關(guān)系模型。</p><p> 對(duì)于“教學(xué)樓”、“教
44、室”和兩者之間的關(guān)系,就可以根據(jù)規(guī)則(3)轉(zhuǎn)換成兩個(gè)關(guān)系模式</p><p> 教學(xué)樓(教學(xué)樓ID,教學(xué)樓名稱)</p><p> 教室(教室ID,教學(xué)樓ID,教室名稱)</p><p> 對(duì)于“學(xué)生”、“課程”和它們之間的“選修”關(guān)系就可以規(guī)則(4)轉(zhuǎn)換成三個(gè)關(guān)系模式。</p><p> 學(xué)生(學(xué)號(hào),姓名,性別,年齡,登陸密碼,學(xué)分
45、,地址,電話,電子郵件)</p><p> 課程(課程編碼,課程名稱,開課教師編號(hào),學(xué)分,最大人數(shù),課程簡介,前導(dǎo)課程編號(hào))</p><p> 選課(學(xué)號(hào),課程編號(hào),成績)</p><p> 依次類推,剩下的關(guān)系轉(zhuǎn)換成下面三個(gè)關(guān)系模式:</p><p> 教師(教師編號(hào),姓名,性別,年齡,電話,電子郵件,個(gè)人簡介)</p>
46、<p> 課程時(shí)間地點(diǎn)(課程編號(hào),開始周次,結(jié)束周次,上課時(shí)間,上課教室ID)</p><p> 管理員(帳號(hào),密碼)</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ù)庫軟件實(shí)現(xiàn)這樣的結(jié)構(gòu)。本系統(tǒng)中數(shù)據(jù)庫采用Microsoft SQL Server 2000
47、作為數(shù)據(jù)庫。首先我們?cè)贛icrosoft SQL Server 2000的“企業(yè)管理器”創(chuàng)建一個(gè)數(shù)據(jù)庫,我們命名為“SC”,如圖3-1:</p><p><b> 圖3-1</b></p><p> 選中SC數(shù)據(jù)庫,向數(shù)據(jù)庫中添加8個(gè)表:Student,Teacher,Course,SC,CourseTime,Building,Room和Admin,每個(gè)表與邏輯設(shè)
48、計(jì)中一種的關(guān)系模式相對(duì)應(yīng)。下面是每個(gè)數(shù)據(jù)表中的屬性,包括屬性列的名稱、數(shù)據(jù)類型、長度、是否可以為空和備注說明等內(nèi)容。</p><p> (1)Student表。Student表用來存儲(chǔ)學(xué)生的個(gè)人信息,使用學(xué)號(hào)作為主鍵,如圖3-2:</p><p><b> 圖3-2</b></p><p> ?。?)Teacher表。Teacher表用來存
49、儲(chǔ)教師的個(gè)人信息,用學(xué)校分配給教師的教師編號(hào)作為主鍵,這樣可以避免重復(fù),如圖3-3:</p><p><b> 圖3-3</b></p><p> ?。?)Course表。Course表用來存儲(chǔ)課程信息,Course表以課程編號(hào)為主鍵,設(shè)置課程編號(hào)自動(dòng)增加1(通過建表的時(shí)候?qū)傩粤性O(shè)置“標(biāo)識(shí)”,并設(shè)置“標(biāo)識(shí)遞增量”為1)。表中開課教師Id為外鍵,所有“TId”的值必
50、須是Teacher表中的“TId”值。設(shè)置外鍵關(guān)系可以通過在建立表的窗口中單擊右鍵,在右鍵菜單中選擇“關(guān)系”,在彈出的對(duì)話框中設(shè)置外鍵關(guān)系。如圖3-4:</p><p><b> 圖3-4</b></p><p> (4)SC表。SC表用于存儲(chǔ)學(xué)生的選課信息,在SC表中學(xué)號(hào)和課程編號(hào)是主鍵,同時(shí)也是外鍵。如圖3-5:</p><p><
51、;b> 圖3-5</b></p><p> (5)CourseTime表。CourseTime表用來存放課程的上課時(shí)間和上課地點(diǎn)信息,其中課程編號(hào)和教室編號(hào)為外鍵。如圖3-6:</p><p><b> 圖3-6</b></p><p> ?。?)Building表。Building表用來存放教學(xué)樓信息,Building
52、表中教學(xué)樓編號(hào)為主鍵,自動(dòng)增加1。如圖3-7:</p><p><b> 圖3-7</b></p><p> ?。?)Room表。Room表用來存放教室信息,在Room表中,教室編號(hào)為主鍵,自動(dòng)增加1,教學(xué)編號(hào)為外鍵。如圖3-8:</p><p><b> 圖3-8</b></p><p>
53、(8)Admin表。Admin表用來存放系統(tǒng)管理員信息,如圖3-9:</p><p><b> 圖3-9</b></p><p> 公共類與公共頁面設(shè)計(jì)</p><p> 4.1 Web.config頁面設(shè)計(jì)</p><p><b> Web.Confi</b></p><
54、;p> g文件是用來保存網(wǎng)站的很多全局設(shè)置,代碼是通過using Configuration引用,在Web.Config文件中添加數(shù)據(jù)庫連接字符串。在ADO.NET中用一個(gè)字符串來表示一個(gè)數(shù)據(jù)庫,一般都把這個(gè)字符串放到Web.Config文件中,在整個(gè)項(xiàng)目中均可使用。</p><p> <?xml version="1.0" encoding="utf-8"
55、 ?></p><p> <configuration></p><p> <system.web></p><p> <!-- 動(dòng)態(tài)調(diào)試編譯</p><p> 設(shè)置 compilation debug="true" 以啟用 ASPX 調(diào)試。否則,將此值設(shè)置為</p>
56、;<p> false 將提高此應(yīng)用程序的運(yùn)行時(shí)性能。</p><p> 設(shè)置 compilation debug="true" 以將調(diào)試符號(hào)(.pdb 信息)</p><p> 插入到編譯頁中。因?yàn)檫@將創(chuàng)建執(zhí)行起來</p><p> 較慢的大文件,所以應(yīng)該只在調(diào)試時(shí)將此值設(shè)置為 true,而在所有其他時(shí)候都設(shè)置為</
57、p><p> false。有關(guān)更多信息,請(qǐng)參考有關(guān)</p><p> 調(diào)試 ASP.NET 文件的文檔。</p><p><b> --></b></p><p> <compilation </p><p> defaultLanguage="c#"<
58、/p><p> debug="true"</p><p><b> /></b></p><p> <!-- 自定義錯(cuò)誤信息</p><p> 設(shè)置 customErrors mode="On" 或 "RemoteOnly" 以啟用自定義錯(cuò)誤信
59、息,或設(shè)置為 "Off" 以禁用自定義錯(cuò)誤信息。 </p><p> 為每個(gè)要處理的錯(cuò)誤添加 <error> 標(biāo)記。</p><p> "On" 始終顯示自定義(友好的)信息。</p><p> "Off" 始終顯示詳細(xì)的 ASP.NET 錯(cuò)誤信息。</p><p>
60、; "RemoteOnly" 只對(duì)不在本地 Web 服務(wù)器上運(yùn)行的</p><p> 用戶顯示自定義(友好的)信息。出于安全目的,建議使用此設(shè)置,以便 </p><p> 不向遠(yuǎn)程客戶端顯示應(yīng)用程序的詳細(xì)信息。</p><p><b> --></b></p><p> <cus
61、tomErrors </p><p> mode="RemoteOnly" </p><p><b> /> </b></p><p> <!-- 身份驗(yàn)證 </p><p> 此節(jié)設(shè)置應(yīng)用程序的身份驗(yàn)證策略??赡艿哪J绞?"Windows"、 </p&
62、gt;<p> "Forms"、 "Passport" 和 "None"</p><p> "None" 不執(zhí)行身份驗(yàn)證。 </p><p> "Windows" IIS 根據(jù)應(yīng)用程序的設(shè)置執(zhí)行身份驗(yàn)證 </p><p> (基本、簡要或集成 W
63、indows)。在 IIS 中必須禁用匿名訪問。</p><p> "Forms" 您為用戶提供一個(gè)輸入憑據(jù)的自定義窗體(Web 頁),然后 </p><p> 在您的應(yīng)用程序中驗(yàn)證他們的身份。用戶憑據(jù)標(biāo)記存儲(chǔ)在 Cookie 中。</p><p> "Passport" 身份驗(yàn)證是通過 Microsoft 的集中身份驗(yàn)
64、證服務(wù)執(zhí)行的,</p><p> 它為成員站點(diǎn)提供單獨(dú)登錄和核心配置文件服務(wù)。</p><p><b> --></b></p><p> <authentication mode="Windows" /> </p><p><b> <!-- 授權(quán) <
65、;/b></p><p> 此節(jié)設(shè)置應(yīng)用程序的授權(quán)策略。可以允許或拒絕不同的用戶或角色訪問</p><p> 應(yīng)用程序資源。通配符: "*" 表示任何人,"?" 表示匿名</p><p> (未經(jīng)身份驗(yàn)證的)用戶。</p><p><b> --></b><
66、;/p><p> <authorization></p><p> <allow users="*" /> <!-- 允許所有用戶 --></p><p> <!-- <allow users="[逗號(hào)分隔的用戶列表]"</p><p> r
67、oles="[逗號(hào)分隔的角色列表]"/></p><p> <deny users="[逗號(hào)分隔的用戶列表]"</p><p> roles="[逗號(hào)分隔的角色列表]"/></p><p><b> --></b></p><
68、p> </authorization></p><p> <!-- 應(yīng)用程序級(jí)別跟蹤記錄</p><p> 應(yīng)用程序級(jí)別跟蹤為應(yīng)用程序中的每一頁啟用跟蹤日志輸出。</p><p> 設(shè)置 trace enabled="true" 可以啟用應(yīng)用程序跟蹤記錄。如果 pageOutput="true"
69、;,則</p><p> 在每一頁的底部顯示跟蹤信息。否則,可以通過瀏覽 Web 應(yīng)用程序</p><p> 根目錄中的 "trace.axd" 頁來查看</p><p><b> 應(yīng)用程序跟蹤日志。</b></p><p><b> --></b></p&g
70、t;<p><b> <trace</b></p><p> enabled="false"</p><p> requestLimit="10"</p><p> pageOutput="false"</p><p> trace
71、Mode="SortByTime"</p><p> localOnly="true"</p><p><b> /></b></p><p> <!-- 會(huì)話狀態(tài)設(shè)置</p><p> 默認(rèn)情況下,ASP.NET 使用 Cookie 來標(biāo)識(shí)哪些請(qǐng)求屬于特定的
72、會(huì)話。</p><p> 如果 Cookie 不可用,則可以通過將會(huì)話標(biāo)識(shí)符添加到 URL 來跟蹤會(huì)話。</p><p> 若要禁用 Cookie,請(qǐng)?jiān)O(shè)置 sessionState cookieless="true"。</p><p><b> --></b></p><p> <
73、sessionState </p><p> mode="InProc"</p><p> stateConnectionString="tcpip=127.0.0.1:42424"</p><p> sqlConnectionString="data source=127.0.0.1;Trusted_Conn
74、ection=yes"</p><p> cookieless="false" </p><p> timeout="20" </p><p><b> /></b></p><p><b> <!-- 全球化</b></
75、p><p> 此節(jié)設(shè)置應(yīng)用程序的全球化設(shè)置。</p><p><b> --></b></p><p> <globalization </p><p> requestEncoding="utf-8" </p><p> responseEncoding=&
76、quot;utf-8" </p><p><b> /></b></p><p> </system.web></p><p> <appSettings></p><p> <!-- 數(shù)據(jù)庫連接字符串</p><p><b>
77、 --></b></p><p> <add key="ConnectionString" value="data source=(local);initial catalog=sc;persist security info=True;user id=sa;pwd=sa;packet size=4096" /></p><
78、;p> <!-- 選課時(shí)間段</p><p><b> --></b></p><p> <add key="SCDateTime" value="2005-06-01 00:00:00 / 2005-06-15 00:00:00" /></p><p> <
79、;add key="time.txt" value="E:\\選課系統(tǒng)\\time.txt" /></p><p> </appSettings></p><p> </configuration></p><p> 在上面的代碼中部分解釋:</p><p> Da
80、ta source:表示數(shù)據(jù)庫服務(wù)器地址,可以填I(lǐng)P地址,若為本機(jī)數(shù)據(jù)庫,則填(local)</p><p> Initial catalog:表示數(shù)據(jù)庫名稱。</p><p> Persist security info:表示數(shù)據(jù)庫登錄驗(yàn)證模式。SQL Server支持用戶名登錄驗(yàn)證和Windows身份驗(yàn)證兩種模式。一般選用前一種,故這里Persist security info的值
81、署為True。</p><p> User id:表示登錄數(shù)據(jù)庫的用戶名。</p><p> Pwe:表示登錄數(shù)據(jù)庫的用戶名的密碼。</p><p> Packet size:表示包的大小值,此項(xiàng)默認(rèn)配置為4096即可。</p><p> 4.2 數(shù)據(jù)庫連接操作類—Db類</p><p> 在ASP.NET中
82、通過ADO.NET技術(shù)對(duì)數(shù)據(jù)庫進(jìn)行操作。ADO.NET中有許多很方便的類可用來操作數(shù)據(jù)庫,例如SqlConnection類、SqlDataAdapter類、SqlCommand類、DataSet類等。由于在選課系統(tǒng)中,操作數(shù)據(jù)庫的地方非常多,為了避免很多重復(fù)代碼的編寫,所以對(duì)數(shù)據(jù)庫操作做了簡單的封裝—Db類。在Db類中有三個(gè)靜態(tài)函數(shù)ExecuteSelectSql、ExecuteSql和ExecuteInsertSql,其中Execut
83、eSelectSql函數(shù)用來執(zhí)行查詢操作,ExecuteSql用來執(zhí)行修改、插入和刪除三類操作,ExecuteInsertSql執(zhí)行需要返回剛插入記錄的identity的insert語句。</p><p> 通過ADO.NET執(zhí)行SQL語句從而對(duì)數(shù)據(jù)庫進(jìn)行操作,一般順序?yàn)椋合韧ㄟ^SqlConnection的Open函數(shù)連接到數(shù)據(jù)庫,然后再通過Sqlcommand執(zhí)行指定的SQL語句,執(zhí)行結(jié)束后再調(diào)用SqlCon
84、nection的Close函數(shù)關(guān)閉數(shù)據(jù)庫連接。</p><p> ExecuteSelectSql函數(shù)的代碼如下:</p><p> /// <summary></p><p> /// 執(zhí)行select類型的sql語句,返回select得到的數(shù)據(jù)集</p><p> /// </summary></p&
85、gt;<p> /// <param name="sqlSelect">select語句</param></p><p> /// <returns>返回select得到的數(shù)據(jù)集</returns></p><p> public static DataSet ExecuteSelectSql( str
86、ing sqlSelect )</p><p><b> {</b></p><p> SqlConnection conn = new SqlConnection(connString);</p><p> SqlDataAdapter sda = new SqlDataAdapter(sqlSelect,conn);</p>
87、;<p> DataSet ds = new DataSet();</p><p><b> try</b></p><p><b> {</b></p><p> sda.Fill(ds);</p><p><b> }</b></p>
88、<p> catch(SqlException e)</p><p><b> {</b></p><p> throw new Exception(e.Message);</p><p><b> }</b></p><p> return ds;</p><
89、;p><b> } </b></p><p> ExecuteSql函數(shù)代碼如下:</p><p> public static int ExecuteSql( string sql )</p><p><b> {</b></p><p> int rows = -1;</p
90、><p> SqlConnection conn = new SqlConnection(connString);</p><p> SqlCommand cmd = new SqlCommand(sql,conn);</p><p><b> try</b></p><p><b> {</b>
91、;</p><p> conn.Open();</p><p> rows = cmd.ExecuteNonQuery();</p><p><b> }</b></p><p> catch(SqlException e)</p><p><b> {</b>&l
92、t;/p><p> throw new Exception(e.Message);</p><p><b> }</b></p><p><b> finally</b></p><p><b> {</b></p><p> cmd.Dispos
93、e();</p><p> conn.Close();</p><p><b> } </b></p><p> return rows;</p><p><b> }</b></p><p> 4.3 工具類MyUtility類</p><
94、;p> 在網(wǎng)站的編寫過程中經(jīng)常會(huì)有很多公共函數(shù)調(diào)用,把它們都寫在一個(gè)工具類里:MyUtility類,每個(gè)函數(shù)作為工具類的一個(gè)靜態(tài)成員函數(shù)。其中包括MD5靜態(tài)成員函數(shù)以及Alert靜態(tài)成員函數(shù)。</p><p> MD5靜態(tài)成員函數(shù):MD5算法。MD5算法是一個(gè)不可逆的加密算法,通常用于重要信息的加密,如登錄密碼,在ASP.NET中,提供有MD5的算法實(shí)現(xiàn)函數(shù),調(diào)用MD5算法代碼如下:</p>
95、<p> public static string MD5(string str)</p><p><b> {</b></p><p> string result = "";</p><p> result = FormsAuthentication.HashPasswordForStoringIn
96、ConfigFile(str,"MD5");</p><p> return result;</p><p><b> }</b></p><p> Alert靜態(tài)成員函數(shù)的功能是顯示一個(gè)提示對(duì)話框,在網(wǎng)站的運(yùn)行過程中,經(jīng)常需要給用戶一些即時(shí)反饋,比如修改密碼成功,選課成功等提示框。代碼如下:</p>&
97、lt;p> public static string Alert(string s)</p><p><b> {</b></p><p> return "<script language=\"javascript\">alert(\""+s+"\");</scrip
98、t>";</p><p><b> }</b></p><p> Back函數(shù)的功能是回退到某個(gè)網(wǎng)頁,i的取值通常為負(fù),當(dāng)為-1時(shí)表示回退到上一個(gè)網(wǎng)頁,為-2時(shí)表示回退到上上個(gè)網(wǎng)頁,依次類推。代碼如下:</p><p> public static string Back(int i)</p><p&g
99、t;<b> {</b></p><p> return "<script language=\"javascript\">location.href=\"javascript:history.go("+i+");\";</script>";</p><p>&
100、lt;b> }</b></p><p> 4.4 錯(cuò)誤信息類和錯(cuò)誤顯示頁面</p><p> 在用戶使用系統(tǒng)過程中,可能由于用戶操作失敗或則網(wǎng)絡(luò)原因等,系統(tǒng)運(yùn)行會(huì)出現(xiàn)一些錯(cuò)誤,為了便于統(tǒng)一,本系統(tǒng)定義專用的錯(cuò)誤信息類和錯(cuò)誤顯示頁面。在錯(cuò)誤信息類ErrorInfo類中,定義了所有的本系統(tǒng)中所出現(xiàn)的錯(cuò)誤情況和函數(shù)Message。函數(shù)Message根據(jù)錯(cuò)誤情況得到相應(yīng)顯示
101、字符串。錯(cuò)誤顯示頁面根據(jù)URL中錯(cuò)誤代碼參數(shù)顯示不同的錯(cuò)誤信息。</p><p><b> 4.5登錄頁面</b></p><p> 登錄頁面是所有用戶公用的功能。不同的用戶登錄到系統(tǒng)中將轉(zhuǎn)向不同的頁面。解決方法運(yùn)用了ASP.NET的內(nèi)置對(duì)象Session記錄用戶登錄信息,同樣也可以在網(wǎng)站里隨時(shí)判斷用戶是否已經(jīng)登錄。</p><p><
102、;b> 第五章 系統(tǒng)說明書</b></p><p><b> 5.1系統(tǒng)界面說明</b></p><p> 下面是在線選課系統(tǒng)的預(yù)覽,此處簡單介紹本系統(tǒng)的部分功能。</p><p> 1.登錄頁面,如圖5-1:</p><p><b> 圖5-1</b></p>
103、;<p> 在用戶名和密碼處輸入用戶名和密碼,在“用戶類型”下拉列表框中選擇“學(xué)生”,單擊“登錄”按鈕,登錄選課系統(tǒng)。</p><p><b> 主要代碼如下:</b></p><p> private void btnLogin_Click(object sender, System.EventArgs e)</p><p&g
104、t;<b> {</b></p><p> int type = Int32.Parse(ddlType.SelectedItem.Value);</p><p> string user = txtUser.Text.Trim();</p><p> string inputkey = txtKey.Text.Trim();</
105、p><p> string key = "";</p><p> string sql = "";</p><p> DataSet ds;</p><p> switch( type )</p><p><b> {</b></p>&
106、lt;p> case 1://學(xué)生</p><p> //驗(yàn)證學(xué)生身份代碼 </p><p><b> break;</b></p><p> case 2://教師</p><p> //驗(yàn)證教師身份代碼</p><p><b
107、> break;</b></p><p> case 3://系統(tǒng)管理員</p><p> //驗(yàn)證管理員身份代碼</p><p><b> break;</b></p><p><b> default;</b></p><p><b
108、> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> 查看必修課程列表頁面,如圖5-2:</p><p><b> 圖5-2</b></p><p> 登錄成
109、功后,進(jìn)入學(xué)生主頁,點(diǎn)擊“必修課程”鏈接,得到所有必修課程的列表,在列表中可以看到所有必修課程及課程的簡單信息,如授課教師姓名、課程所占學(xué)分等。</p><p> 在列表中可以點(diǎn)課程名稱,如“計(jì)算機(jī)應(yīng)用基礎(chǔ)”鏈接,查看課程詳細(xì)信息;點(diǎn)教師姓名,如“李萍”鏈接,查看教師的詳細(xì)信息;點(diǎn)擊“查看上課時(shí)間地點(diǎn)”鏈接,查看對(duì)應(yīng)課程的上課時(shí)間和地點(diǎn)。</p><p> 在頁面加載的時(shí)候從數(shù)據(jù)庫讀取
110、所有必修課信息,代碼如下:</p><p> string sql = "select Course.*,TName from Course,Teacher where CType like '必修' and Course.TId like Teacher.TId";//查詢處所有必修課程信息</p><p> DataSet ds = Db.Exe
111、cuteSelectSql(sql);</p><p> if ( ds != null && ds.Tables.Count > 0 )</p><p><b> {</b></p><p> dgCourse.DataSource = ds.Tables[0];</p><p> dgC
112、ourse.DataBind();//將查詢結(jié)果綁定到DataGrid中</p><p><b> }</b></p><p> 查看選修課程列表頁面,如圖5-3:</p><p><b> 圖5-3</b></p><p> 單擊“選修課程”鏈接,查看所有選修課程列表,在列表中給出了比必修
113、課程更多的信息,比如多了對(duì)應(yīng)選修課程的前導(dǎo)課程、最大人數(shù)、當(dāng)前已選人數(shù)等,對(duì)每個(gè)選修課程均有一個(gè)“選修該課程”的按鈕,單擊此按鈕方可選擇對(duì)應(yīng)課程。</p><p> 源碼下載地址是http://www.4sbylw.com,開發(fā)工具可以上這里下載的。</p><p> 主要代碼如下: </p><p> string sql = "select
114、 x.*,TName,(select CName from Course as y where y.CId = x.CPreCId) as CPreCName from Course as x,Teacher where x.CType like '選修' and x.TId like Teacher.TId";</p><p> //查詢?cè)搶W(xué)生已選修的課程</p>&l
115、t;p> DataSet ds = Db.ExecuteSelectSql(sql);</p><p> if ( ds != null && ds.Tables.Count > 0 )</p><p><b> {</b></p><p> dgCourse.DataSource = ds.Tables[0
116、];</p><p> dgCourse.DataBind();</p><p> for ( int i = 0; i < ds.Tables[0].Rows.Count; i++ )</p><p><b> {</b></p><p> sql = "select count(*) from
117、 SC where CId = "+ds.Tables[0].Rows[i]["CId"].ToString();</p><p> DataSet ds1 = Db.ExecuteSelectSql(sql);</p><p> if ( ds1 != null && ds1.Tables.Count > 0 &&
118、ds1.Tables[0].Rows.Count > 0 )</p><p> dgCourse.Items[i].Cells[6].Text = ds1.Tables[0].Rows[0][0].ToString();</p><p><b> }</b></p><p><b> }</b></p&g
119、t;<p> bool locked= bool.Parse(Session["Locked"].ToString());</p><p> if ( ! locked )</p><p><b> {</b></p><p> lbLock.Text = "您尚未鎖定選課信息!";
120、</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> lbLock.Text = "選課信息已被鎖定!";</p><p> dgCour
121、se.Columns[9].Visible = false;</p><p><b> }</b></p><p> 查看已選課程頁面,如圖5-4:</p><p><b> 圖5-4</b></p><p> 在上一步查看選修課程的列表中,選擇“計(jì)算機(jī)密碼學(xué)”、“計(jì)算機(jī)圖形學(xué)”、“線性代數(shù)
122、”三門課程后,點(diǎn)擊“已選課程”鏈接查看已經(jīng)選擇的課程列表,在列表中除了可以看到與上一步中相同的信息外,還可以查看到課程成績。剛才選擇的三門課程的成績均為0,當(dāng)課程結(jié)束后,教師登錄本系統(tǒng)給所有學(xué)生評(píng)分,學(xué)生再次瀏覽此頁面可查看到課程的成績,若成績合格,學(xué)生可獲得對(duì)應(yīng)課程的學(xué)分。</p><p><b> 鎖定課程代碼如下:</b></p><p> string s
123、ql = "select count(*) from SC where SId like '"+Session["Id"].ToString()+"'";</p><p> DataSet ds = Db.ExecuteSelectSql(sql);</p><p> int nCourse=0;</p&
124、gt;<p> if ( ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0 )</p><p><b> {</b></p><p> nCourse = Int32.Parse(ds.Tables[0].Rows[0][0]
125、.ToString());</p><p><b> }</b></p><p> if ( nCourse < 2 )</p><p><b> {</b></p><p> Response.Write(MyUtility.Alert("您必須選擇至少兩門選修課程!&qu
126、ot;));</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> //先將所有必修課程
127、加入到選課表中再鎖定</p><p> sql = "select CId from Course where CType = '必修'";</p><p> DataSet ds2 = Db.ExecuteSelectSql(sql);</p><p> if ( ds2 != null && ds2.Ta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生選課系統(tǒng)畢業(yè)論文
- 畢業(yè)論文---學(xué)生選課系統(tǒng)
- 學(xué)生選課系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-高校選課系統(tǒng)
- 在線選課系統(tǒng)畢業(yè)論文
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 網(wǎng)上選課系統(tǒng)---畢業(yè)論文
- 學(xué)生選課系統(tǒng)畢業(yè)論文 (2)
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 學(xué)生選課管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——網(wǎng)上選課系統(tǒng)
- 南昌大學(xué)選課系統(tǒng)——畢業(yè)論文
- jsp網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——網(wǎng)上選課管理系統(tǒng)
- 大學(xué)選課系統(tǒng)開發(fā)---畢業(yè)論文
- 大學(xué)選課系統(tǒng)開發(fā)---畢業(yè)論文
- 學(xué)生網(wǎng)上選課系統(tǒng) 畢業(yè)論文
- bs結(jié)構(gòu)畢業(yè)論文--學(xué)生自動(dòng)選課系統(tǒng)
評(píng)論
0/150
提交評(píng)論