版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)論文</b></p><p><b> 網(wǎng)上選課系統(tǒng)</b></p><p><b> ——管理員子系統(tǒng)</b></p><p> 作 者 xxx </p><p> 院 系
2、 xxx(計算機系) </p><p> 專 業(yè) 計算機科學(xué)與技術(shù) </p><p> 年 級 xxxx </p><p> 學(xué) 號 xxxxx </p><p> 指導(dǎo)教師 xxxx
3、</p><p> 職 稱 xxx </p><p> 答辯日期 xxxx年x月xx日 </p><p><b> 摘要</b></p><p> 隨著計算機和網(wǎng)絡(luò)的普及,高等學(xué)校里紛紛建立了C/S或者B/S結(jié)構(gòu)的網(wǎng)上選課系統(tǒng)。與傳統(tǒng)的選課方式相比,網(wǎng)
4、上選課系統(tǒng)利用局域網(wǎng)為學(xué)生選課帶來了便利。學(xué)生在學(xué)校的公共機房或者宿舍的個人電腦上通過網(wǎng)絡(luò)來選課,只要選課還沒有截止,學(xué)生能夠靈活的修改自己的選課情況,大大提高了學(xué)校選課工作的效率。教務(wù)處的教師則通過選課系統(tǒng)的管理員子系統(tǒng)來管理學(xué)生的選課情況,使得學(xué)生選課工作達(dá)到系統(tǒng)化和自動化,大大提高了學(xué)校的工作效率。</p><p> 本系統(tǒng)是C/S(客戶端/服務(wù)器)兩層結(jié)構(gòu)。采用C#數(shù)據(jù)庫編程語言。服務(wù)器部分是SQL S
5、erver2000 關(guān)系數(shù)據(jù)庫。客戶端分為學(xué)生選課子系統(tǒng)和管理員管理子系統(tǒng),它們通過存于后臺數(shù)據(jù)庫的數(shù)據(jù)產(chǎn)生聯(lián)系。</p><p> 無論是學(xué)生子系統(tǒng)還是管理員子系統(tǒng),都需要從數(shù)據(jù)庫中讀取院系的信息以及每個院系所開設(shè)的課程信息,將其存放在DataSet里面,然后把數(shù)據(jù)綁定到控件并顯示出來。由于每個院系都開設(shè)多門課程供學(xué)生選擇,院系信息和課程信息形成一個樹狀的結(jié)構(gòu),所以使用TreeViewer控件顯示這些信息比較
6、合適。</p><p> 關(guān)鍵字:網(wǎng)上選課系統(tǒng),、C#.NET、SQL Server2000關(guān)系數(shù)據(jù)庫。</p><p><b> Abstract</b></p><p> Along with the development of the computer and web, many universities have been bu
7、ild C/S or B/S structure of choose courses system on web. Compare with the traditional way of choose courses, this system use local area network. Students can choose courses at computer room or dormitory by web at the el
8、ective time also can change the courses that they have been chosen at the elective time. Teachers can examine the situation of choose courses and manage the system. </p><p> This system adopts the two layer
9、s structure of C/S (customer/service), and use C#. Net language and SQL Server 2000 Database. Customer end makes up by two system—Student System and Manager System. They get in touch with each other by the backstage Data
10、base.</p><p> No matter the Student System or the Manager System all need read data from the backstage Database, then put them on the Dataset and show them on the Tree view.</p><p> Keywords
11、Choose Course System 、C# .NET 、SQL Server 2000 Database</p><p><b> 目 錄</b></p><p> 前言…………………………………………………………………………………....5</p><p> 第一部分 關(guān)鍵技術(shù)概述…………...…………………………
12、…………………..6</p><p> 1.1XML文檔對象模型………………………………………………..6</p><p> 1.2 遍歷DataSet………………………………………………………6</p><p> 1.3 TreeView控件動態(tài)綁定數(shù)據(jù)……………………………………...7</p><p> 第二部分 軟件定義時
13、期………………………………………………………….8</p><p> 2.1問題定義…………………………………………………………...8</p><p> 2.2 需求分析…………………………………………………………..8</p><p> 第三部分 軟件開發(fā)時期………………………………………………………....11</p><p>
14、; 3.1總體設(shè)計…………………………………………………………..11</p><p> 3.2 詳細(xì)設(shè)計………………………………………………………….14</p><p> 3.3編碼………………………………………………………………..20</p><p> 3.4 軟件測試………………………………………………………….28</p><
15、p> 第四部分 體會……………………………………………………………………30</p><p> 第五部分 參考文獻………………………………………………………………31</p><p><b> 前言</b></p><p> 二十一世紀(jì)是知識經(jīng)濟的時代,同時也是科技高速發(fā)展、網(wǎng)絡(luò)信息迅速膨脹的年代,大量客觀事實表明,一個嶄
16、新的計算機時代必將到來。隨著知識經(jīng)濟革命的到來和信息技術(shù)的蓬勃發(fā)展,計算機技術(shù)和通訊技術(shù)成為了這個時代的主角,不僅改變了我們的世界,而且同時也吹響了我們邁向新生活的號角,正以日新月異的速度改變我們的人生。而兩者的結(jié)合產(chǎn)物---計算機網(wǎng)絡(luò),在最近的幾年更是異軍突起、迅猛地發(fā)展起來,它不僅提高我們的工作效率,而且還為我們提供了廣闊的資源利用空間和方便快捷的現(xiàn)代通訊手段,同時它還是衡量一個國家科技發(fā)展水平的重要的尺度。</p>
17、<p> 隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,各高校相繼建成了自己的校園網(wǎng),并充分利用校園網(wǎng)提供的新環(huán)境、新手段為校園的教學(xué)、科研和教務(wù)管理服務(wù)。近年來,學(xué)校的招生規(guī)模不斷擴大,在學(xué)校學(xué)生人數(shù)明顯增多,加之學(xué)生分校區(qū)管理,給原本繁雜的院級選修課工作增加了不少教務(wù)工作量。網(wǎng)上選課系統(tǒng)的推出,使得選修課程的設(shè)置維護、學(xué)生選/退課及成績查詢、管理員對選課情況的管理等工作均能在互聯(lián)網(wǎng)上完成。這不僅減輕了教務(wù)人員的工作負(fù)擔(dān),也大大方便了全
18、校師生對選課信息的維護、查詢。</p><p> 計算機語言是開發(fā)計算機軟件的一種高級軟件,它的掌握和使用是高級的計算機使用者必須的技能?,F(xiàn)在存在著大量的計算機語言,而且它們的發(fā)展速度讓世人矚目震驚。</p><p> 本系統(tǒng)采用C#數(shù)據(jù)庫編程。C#是一種重要的新語言,微軟將其設(shè)計和定位成.NET戰(zhàn)略的一部分,C#內(nèi)建了很多有用的庫,并由高級集成開發(fā)環(huán)境提供支持。它有效地支持目前占主導(dǎo)
19、地位的編程方法——面向?qū)ο缶幊?OOP) 。</p><p> C#問世于20世紀(jì)90年代,是繼C語言之后的一種功能強大的現(xiàn)代語言,它在C的基礎(chǔ)上增加了“類”的概念,類是提供用戶自定義類型的一種機制,這些用戶自定義類型也稱為抽象數(shù)據(jù)類型。C#通過這些方式和提供繼承及運行時類型綁定,來支持面向?qū)ο缶幊獭?lt;/p><p> 服務(wù)器端采用SQL Server2000關(guān)系數(shù)據(jù)庫,SQL語言是1
20、974年由Boyce和Chamberlin提出的。由于它功能豐富,語言簡捷倍受用戶及計算機工業(yè)界歡迎,被眾多計算機公司和軟件公司所采用。經(jīng)各公司的不斷修改、擴充和完善,SQL語言最終發(fā)展成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。</p><p> SQL Server2000是一項全面完整的數(shù)據(jù)庫與分析產(chǎn)品。從借助瀏覽器實現(xiàn)的數(shù)據(jù)庫查詢功能到內(nèi)容豐富的擴展標(biāo)記語言(XML)支持特性均可有力地證明,SQL Server2000無
21、謂為全面支持Web功能的數(shù)據(jù)庫解決方案。與此同時,SQL Server2000還在可伸縮性與可靠性方面保持著多項基準(zhǔn)測試記錄。</p><p> 第一部分 關(guān)鍵技術(shù)概述</p><p> 本網(wǎng)上選課系統(tǒng)分為客戶端和服務(wù)器兩層結(jié)構(gòu),服務(wù)器端安裝了SQL Server2000關(guān)系數(shù)據(jù)庫,客戶端通過校園的局域網(wǎng)連接服務(wù)器的數(shù)據(jù)庫存取數(shù)據(jù)??蛻舳朔譃楣W(xué)生使用的學(xué)生子系統(tǒng)和供教師使用的管理員
22、子系統(tǒng)。</p><p> 本系統(tǒng)設(shè)計主要用到以下幾個關(guān)鍵技術(shù):XML文檔處理技術(shù),遍歷DataSet的編程技術(shù),TreeView控件動態(tài)綁定數(shù)據(jù)的技術(shù)和遍歷TreeView控件的技術(shù)等。</p><p><b> XML文檔對象模型</b></p><p> 文檔對象模型(Document Object Model,簡稱DOM)是XML
23、文檔的內(nèi)存(緩存)中樹狀表示形式,允許對該文檔的導(dǎo)航和編輯。DOM是程序員能夠以編程方式讀取,操作和修改XML文檔。</p><p> Visual C#.NET中,.NET Framework SDK中的命名空間System.Xml中封裝的XmlNode類能夠很好的表示DOM樹的節(jié)點(Node)。XmlDocument類繼承和擴展于XmlNode類,而XmlNode是組成DOM樹的最基本的元素,因此使用Xml
24、Document類可以創(chuàng)建和訪問DOM。XmlDocument類主要有兩類成員方法:</p><p> 用于對整個文檔對象模型執(zhí)行操作,例如,將XML文檔加載到內(nèi)存中或?qū)ML文檔對象模型保存成一個XML文檔。</p><p> 查看和操作整個XML文檔中的節(jié)點。</p><p> 1.2 遍歷DataSet</p><p> Dat
25、aSet是ADO.NET中的核心對象,它支持?jǐn)嚅_式,分布式數(shù)據(jù)存取方案,功能非常強大。DataSet是數(shù)據(jù)在內(nèi)存中的表示形式。它可以用于多個不同的數(shù)據(jù)源,包括關(guān)系數(shù)據(jù)庫的數(shù)據(jù)集,本地的XML文檔等。無論數(shù)據(jù)源是什么,它都會提供一致的關(guān)系編程模型。DataSet中的方法和對象與關(guān)系數(shù)據(jù)庫模型中的方法和對象一致。</p><p> DataSet由DataRelation集合,ExtendedProperties和
26、DataTable三部分組成集合。數(shù)據(jù)都存放在DataTable集合中。DataTable集合包括零個或多個DataTable對象。DataTable對象的結(jié)構(gòu)對應(yīng)數(shù)據(jù)庫表的結(jié)構(gòu),從數(shù)據(jù)庫選擇出來的數(shù)據(jù)集可以放在DataTable對象里面。而DataTable對象又由DataRow集合組成,即每個DataTable里面由多個DataRow。DataRow集合包含表中的數(shù)據(jù)。DataRow相當(dāng)于多維數(shù)組,不斷改變下標(biāo)就可以訪問整個Data
27、Table里面的數(shù)據(jù),改變DataRow集合對象的下標(biāo)就可以訪問不同的DataTable里面的數(shù)據(jù),從而可以實現(xiàn)對整個DataSet的遍歷。</p><p> TreeView控件動態(tài)綁定數(shù)據(jù)</p><p> TreeView控件能夠以樹狀的層次結(jié)構(gòu)顯示它的節(jié)點。每個節(jié)點可能包含字節(jié)點。父節(jié)點或包含字節(jié)點的節(jié)點可以以展開或折疊的方式顯示。如果將TreeView控件的CheckBoxe
28、s屬性設(shè)置為ture,則在顯示TreeView時,節(jié)點旁邊還可帶有復(fù)選框。通過設(shè)置節(jié)點的Checked屬性值為true或false,就能以編程方式選定或清除節(jié)點。緊挨著節(jié)點文本的左側(cè)可以顯示圖標(biāo),這要通過設(shè)置TreeView控件的ImageList屬性與希望使用的現(xiàn)有ImageList控件相關(guān)聯(lián)才能給每個節(jié)點獲取圖象。</p><p> 為了實現(xiàn)數(shù)據(jù)的動態(tài)綁定,需要以編程方式添加節(jié)點和移除節(jié)點,具體方法如下:&
29、lt;/p><p> 使用樹視圖Nodes屬性的Add方法,代碼如下:</p><p> TreeNode new Node=newTreeNode(“Text”);</p><p> MytreeView1.SelectedNode.Nodes.Add(newNode);</p><p> (2 ) 使用樹視圖Nodes屬性的Rmo
30、ve方法移除某個節(jié)點,或者使用Clear方法清除所有節(jié)點,代碼如下:</p><p> MytreeView1.Nodes.Remove(MytreeView1.SelectedNode);</p><p> MyTreeView.Nodes.Clear();</p><p> 第二部分 軟件定義時期</p><p> 隨著計算機的廣
31、泛應(yīng)用,各行各業(yè)的信息管理都涉及到計算機中。在軟件定義這一階段我們明確了軟件開發(fā)的目的,并確定了“學(xué)生網(wǎng)上選課系統(tǒng)”開發(fā)的總目標(biāo)。確定了系統(tǒng)開發(fā)的可行性;導(dǎo)出了實現(xiàn)此系統(tǒng)總目標(biāo)應(yīng)采用的策略及系統(tǒng)需完成的各個功能。本系統(tǒng)開發(fā)的目的在于提高學(xué)校選課工作的效率,使學(xué)生可以靈活的在選課期限內(nèi)進行選課活動,同時減輕了負(fù)責(zé)監(jiān)督,統(tǒng)計學(xué)生選課情況的教師的負(fù)擔(dān)。</p><p><b> 2.1問題定義</b&
32、gt;</p><p> 1.從系統(tǒng)的性質(zhì)看,本系統(tǒng)屬于一個關(guān)于數(shù)據(jù)庫方面的應(yīng)用系統(tǒng)。</p><p> 2.從系統(tǒng)的功能看,本系統(tǒng)主要應(yīng)完成以下功能:學(xué)生可以查看課程信息,可以在限定時間內(nèi)選擇,退選,增選課程。管理員可以增加,修改,刪除學(xué)生信息和課程信息,可以查看選課情況,可以修改選課期限,可以修改選課限制人數(shù)。</p><p> 3.從系統(tǒng)的結(jié)構(gòu)看,本系統(tǒng)
33、分為客戶端和服務(wù)器端,服務(wù)器端安裝SQL Server2000關(guān)系數(shù)據(jù)庫,客戶端由學(xué)生子系統(tǒng)和管理員子系統(tǒng)組成。</p><p><b> 2.2需求分析</b></p><p> 通過詢問參與選課的學(xué)生及負(fù)責(zé)選課工作的老師具體總結(jié)出網(wǎng)上選課系統(tǒng)需要能夠?qū)崿F(xiàn)以下功能:</p><p> 學(xué)生和管理員必須通過認(rèn)證才能登錄系統(tǒng),管理員和學(xué)生的
34、權(quán)限不一樣;</p><p> 管理員可以添加,刪除和修改學(xué)生信息,可以添加,刪除和修改課程信息,可以查看選課情況,可以修改選課期限。</p><p> 學(xué)生可以查看課程信息,只能在限定時間內(nèi)選修課程,可以查詢自己選修課程的情況,在限定的時間之內(nèi)還可以退選課程或者增選課程。如果被選課程選修的人數(shù)已經(jīng)達(dá)到上限,則學(xué)生不能選修該課程。</p><p> 整個系統(tǒng)的
35、流程是在用戶的要求下進行的,學(xué)生子系統(tǒng)負(fù)責(zé)處理學(xué)生的選課,退選,增選等事務(wù),并向用戶顯示操作情況對話框,同時更新數(shù)據(jù)庫中相關(guān)表的數(shù)據(jù)。管理員子系統(tǒng)負(fù)責(zé)處理管理員對選課情況的管理,向管理員顯示操作情況對話框,同時更新數(shù)據(jù)庫中相關(guān)表的數(shù)據(jù)。</p><p> 系統(tǒng)的數(shù)據(jù)流圖如下:</p><p><b> 學(xué)生子系統(tǒng)</b></p><p>&
36、lt;b> 管理員子系統(tǒng)</b></p><p> 信號1(A):修改學(xué)生信息信號</p><p> 信號2(B):修改課程信息信號</p><p> 信號3(C):修改選課期限信號</p><p><b> 簡化的數(shù)據(jù)字典</b></p><p> (1)口令:
37、用戶身份驗證</p><p> (2)數(shù)據(jù)流:事務(wù) = [ 輸入 | 查詢 |選課|]</p><p> 事務(wù) = [ 輸入 | 查詢 |退選|]</p><p> 事務(wù) = [ 輸入 | 查詢 |增選|]</p><p> 事務(wù) = [ 輸入 | 查詢 |修改|]</p><p> (3)數(shù)據(jù)庫 =
38、 Courses表 + Student表 + Department表 + Elective表 + Admins表 + Period表 </p><p> 后臺數(shù)據(jù)庫據(jù)庫采用SQL Server 2000,各表完成如下功能:</p><p> Courses表:用于存放課程的詳細(xì)信息。</p><p> Student表:用于存放所有學(xué)生的資料。</p&g
39、t;<p> Department表:用于記錄開設(shè)課程所屬院系名稱。</p><p> Elective表:用于記錄學(xué)生選課情況。</p><p> Admins表:用于記錄所有管理員的信息。</p><p> Period表:用于設(shè)置選課的開始時間和選課的結(jié)束時間。</p><p> 通過對用戶提出要求的調(diào)查研究,明
40、確了系統(tǒng)設(shè)計的目標(biāo),確定了系統(tǒng)的基本功能,并分析出數(shù)據(jù)的流動方向,在此基礎(chǔ)之上可以開始著手設(shè)計系統(tǒng),勾畫出網(wǎng)上選課系統(tǒng)總體框架。</p><p> 第三部分 軟件開發(fā)時期</p><p> 經(jīng)過軟件定義時期以后,就步入了軟件的開發(fā)時期。在此過程中,要盡量尋求實現(xiàn)此系統(tǒng)的最佳方案,進而實現(xiàn)系統(tǒng)的要求。</p><p><b> 3.1總體設(shè)計</
41、b></p><p><b> 設(shè)計原理</b></p><p> 本系統(tǒng)是C/S(客戶端/服務(wù)器)兩層結(jié)構(gòu).</p><p> 服務(wù)器采用SQL Server2000關(guān)系數(shù)據(jù)庫.數(shù)據(jù)庫里存放著編譯好的存儲過程,主要負(fù)責(zé)數(shù)據(jù)的存取,也負(fù)責(zé)一些的業(yè)務(wù)邏輯的處理,例如判斷學(xué)生是否在允許時間段內(nèi)選課.</p><p&g
42、t; 客戶端包含兩個系統(tǒng):學(xué)生選課子系統(tǒng)和管理員管理子系統(tǒng).學(xué)生子系統(tǒng)安裝在學(xué)校公共機房,圖書館等場所的電腦上,供學(xué)生選課時使用,通過局域網(wǎng)訪問教務(wù)處辦公室的服務(wù)器;管理員子系統(tǒng)安裝在教務(wù)處辦公室的桌面型電腦上,供管理教務(wù)的教師使用.</p><p><b> 客戶端的設(shè)計</b></p><p> 學(xué)生選課子系統(tǒng)結(jié)構(gòu)圖:</p><p>
43、; 各模塊完成以下功能:</p><p> 查看課程信息:學(xué)生登錄后,查看可供選擇的課程信息。</p><p> 查看已選課程信息:學(xué)生登錄后,查看自己選擇了哪些課程。</p><p> 選修課程:學(xué)生登錄后,通過此模塊完成選課操作。</p><p> 退選課程:學(xué)生登錄后,通過此模塊完成退選操作。</p><p
44、> 管理員子系統(tǒng)結(jié)構(gòu)圖:</p><p> 各模塊完成以下功能:</p><p> 管理學(xué)生記錄:管理員登錄后,可以刪除,修改,增加學(xué)生信息。</p><p> 管理課程記錄:管理員登錄后,可以刪除,修改,增加可選課程信息。</p><p> 修改課程期限:管理員登錄后,可以修改選修課程的開始及結(jié)束日期。</p>
45、<p> 查看選課情況:管理員登錄后,可以查看某門選修課已選人數(shù)是否達(dá)到限選人數(shù),并可以查看總體選課情況。</p><p><b> 數(shù)據(jù)庫的設(shè)計</b></p><p> 本系統(tǒng)后臺數(shù)據(jù)庫建立6個表:Courses表,Students表Departments表,Elective表,Admins表,和Period表。</p><p
46、><b> Courses表</b></p><p> 2.Student表</p><p> 3.Departments表</p><p> 4.Elective表</p><p><b> 5.Admins表</b></p><p><b>
47、6.Period表</b></p><p><b> 3.2詳細(xì)設(shè)計</b></p><p> 到了確定應(yīng)該怎樣具體的實現(xiàn)所要求的系統(tǒng)的時候了,這個階段將得出學(xué)生選課系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成具體的程序設(shè)計語言書寫的程序,這一階段的結(jié)果直接決定了最終程序代碼的質(zhì)量。</p><p><b>
48、 1.人機界面設(shè)計</b></p><p> 本系統(tǒng)對每一層都設(shè)置了確保安全的障礙和入口,用戶只有進入了某一層才能獲得相應(yīng)那一層資源的訪問權(quán),這些措施保證了選課系統(tǒng)及具體數(shù)據(jù)的安全性。任何一位Web用戶在進入選課系統(tǒng)主頁面后,只有通過了系統(tǒng)的身份驗證才能進入到系統(tǒng)相應(yīng)的功能頁面完成所要進行的操作。</p><p> 本系統(tǒng)主要包含以下界面:</p><
49、p> 從此界面,可以分別進入管理員子系統(tǒng)、學(xué)生子系統(tǒng)登錄界面,單擊查詢可以查看課程信息并可以查看打印預(yù)覽。</p><p> 在該界面學(xué)生輸入學(xué)號、密碼,單擊登錄按鈕系統(tǒng)進行驗證身份,如學(xué)號、密碼與數(shù)據(jù)庫中的記錄吻合,則進入下一個界面,進行選課。 </p><p> 管理員登錄后,可以添加課程、查看選課情況、對學(xué)生記錄進行管理等,本界面為學(xué)生管理界面,管理員輸入學(xué)生學(xué)號,單擊
50、查找按鈕,在姓名和密碼欄中顯示該學(xué)生的信息,單擊修改按鈕或刪除按鈕,就可以完成相應(yīng)操作。</p><p> 在添加學(xué)生記錄一欄中填寫相應(yīng)信息,單擊添加按鈕,該學(xué)生信息就可以添加到數(shù)據(jù)庫中。</p><p> 用戶可以從主頁直接進入成績查詢界面,用戶可以通過此界面查看課程信息,分別可以按系、按課程名稱、按授課教師等查詢課程信息,這樣大大方便了各級用戶,使用戶可以更直接、更方便的了解各門課
51、程,有利于學(xué)生快速、準(zhǔn)確的選課,同時也有利于管理員對課程的管理。通過打印預(yù)覽子菜單,用戶可以將所需信息打印出來。</p><p> 本報表的制作采用Crystal Report Designer,Crystal Reports for Visual Studio.NET是內(nèi)置于Visual Studio.NET的報表設(shè)計工具,它能夠在.NET平臺上創(chuàng)建高復(fù)雜度且專業(yè)級的互動式報表,其以Crystal Repor
52、t8.0的架構(gòu)為基礎(chǔ),并且針對.NET平臺作更進一步的強化與發(fā)展,以確保能提供.NET開發(fā)人員最豐富且完整的報表功能。</p><p> 本系統(tǒng)利用此報表反饋出各系開設(shè)課程信息,既方便了學(xué)生選課,又減輕了管理員的管理負(fù)擔(dān),并同時提供打印功能,方便了管理員對局域網(wǎng)上各系開設(shè)課程總體情況的掌握。</p><p><b> 制作報表過程如下:</b></p>
53、<p> 首先在原有項目下創(chuàng)建新的窗體,從“工具箱”的Windows窗體選項卡中將CrystalReportViewer報表查看器控件拖放至窗體上,然后從“項目”菜單中選取“添加新項”指令,選擇添加Crystal Report項,接下來選擇作為空白報表一項,單擊確定,即可編輯具有自己獨特風(fēng)格的報表了。需要說明的是:報表的數(shù)據(jù)源可由窗口左側(cè)的數(shù)據(jù)庫文件直接設(shè)定。</p><p> 此界面為配置管理
54、界面,管理員通過相關(guān)操作,可以直接修改數(shù)據(jù)庫中的選課時間記錄。在文本區(qū)鍵入選課開始、結(jié)束時間,單擊生成按鈕,配置文件生成功,為更新數(shù)據(jù)庫作好第一步準(zhǔn)備。</p><p> 單擊讀取按鈕,將配置文件讀入內(nèi)存,以便通過函數(shù)調(diào)用UpdatePeriod存儲過程,更新數(shù)據(jù)庫。出現(xiàn)更新數(shù)據(jù)庫成功對話框,單擊確定按鈕,此時數(shù)據(jù)庫記錄被修改。學(xué)生必須按照新的選課時間進行選課,使管理員可以動態(tài)的、間接的管理數(shù)據(jù)庫,而無須登錄到
55、SQL Server2000企業(yè)管理器對數(shù)據(jù)庫進行修改。</p><p> 本網(wǎng)上選課系統(tǒng)共涉及到12個用戶界面,以上是具有代表性的幾個,單獨列出加以說明。為了提高代碼的重用性和封裝對存儲過程的調(diào)用,每個子系統(tǒng)都實現(xiàn)了一個存取數(shù)據(jù)的公共類,提供本系統(tǒng)使用。</p><p><b> 2.過程設(shè)計 </b></p><p> 本系統(tǒng)對每一層
56、都設(shè)置了確保安全的障礙和入口,用戶只有進入了某一層才能獲得相應(yīng)那一層資源的訪問權(quán),這些措施保證了選課系統(tǒng)及具體數(shù)據(jù)的安全性。 </p><p> 不同身份的用戶擁有對數(shù)據(jù)庫的不同訪問權(quán)限(具體到對庫中每個表的存取操作),學(xué)生用戶的選/退課權(quán)限通過系統(tǒng)應(yīng)用程序提供給教務(wù)管理人員動態(tài)設(shè)置。</p><p><b> 系統(tǒng)程序流程圖如下</b>&
57、lt;/p><p><b> 學(xué)生子系統(tǒng):</b></p><p><b> 管理員子系統(tǒng)</b></p><p><b> 3.3編碼</b></p><p> 源程序代碼的邏輯應(yīng)簡明清晰,易讀易懂,編碼必須嚴(yán)格遵循詳細(xì)設(shè)計階段的結(jié)果,編寫出嚴(yán)密、有邏輯性的代碼。<
58、/p><p> 本應(yīng)用程序為了提高服務(wù)器數(shù)據(jù)庫的訪問效率,加快整個系統(tǒng)的運行速度,存取數(shù)據(jù)全部使用存儲過程。同時對一些業(yè)務(wù)邏輯也使用了一些存儲過程。</p><p> 分別使用如下代碼進行數(shù)據(jù)庫連接:</p><p> private string m_strConnString;</p><p> private SqlConnecti
59、on m_connConnection;</p><p><b> 打開操作:</b></p><p> public void Open(string strDataSource,string strInitialCatalog,string strUserID,string strPwd)</p><p><b> {<
60、;/b></p><p> m_strConnString="Data Source="+strDataSource+";Initial Catalog="+strInitialCatalog+";User ID="+"sa"+";Password="+strPwd;</p><p>
61、; m_connConnection= new SqlConnection(m_strConnString);</p><p> m_connConnection.Open();</p><p><b> }</b></p><p><b> 關(guān)閉操作:</b></p><p> pub
62、lic void Close()</p><p><b> {</b></p><p> m_connConnection.Close();</p><p><b> }</b></p><p> 首先創(chuàng)建CSQL類,當(dāng)類中某一對象需要獲取數(shù)據(jù)庫中的數(shù)據(jù)時,用如下代碼調(diào)用Open()函數(shù)。&
63、lt;/p><p> CSQL mySQL=new CSQL();</p><p> mySQL.Open("localhost","electcourses","sa","2188");</p><p> 其中l(wèi)ocalhost表示本地訪問,electcourses為數(shù)據(jù)庫名,sa為
64、數(shù)據(jù)庫用戶名,2188為用戶口令。</p><p> MySQL.Close();</p><p> 使用該語句可以直接關(guān)閉數(shù)據(jù)庫。</p><p> 各模塊具體實現(xiàn)代碼如下:</p><p><b> 學(xué)生子系統(tǒng):</b></p><p><b> 查看課程信息模塊</
65、b></p><p> private void FillDirectoryTree()</p><p><b> {</b></p><p> CSQL mySQL =new CSQL();</p><p> mySQL.Open("localhost","electcou
66、rses","sa","2188");</p><p> DataSet DepartmentDS = mySQL.GetDataSet("select * from Departments","departments");</p><p> int myCount = DepartmentDS.
67、Tables["departments"].Rows.Count;</p><p> mySQL.Close();</p><p> for(int i=0;i<myCount;i++)</p><p><b> {</b></p><p> string DepartmentName
68、= DepartmentDS.Tables["departments"].Rows[i][1].ToString();</p><p> int DepartmentID = int.Parse(DepartmentDS.Tables["departments"].Rows[i][0].ToString());</p><p> TreeNode
69、 CRoot = new TreeNode(DepartmentName);</p><p> treeView1.Nodes.Add(CRoot);</p><p> AddDirectories(CRoot,DepartmentID);</p><p><b> }</b></p><p><b>
70、 }</b></p><p> private void AddDirectories(TreeNode node,int departmentid)</p><p><b> {</b></p><p> CSQL mySQL =new CSQL();</p><p> mySQL.Open(&
71、quot;localhost","electcourses","sa","2188");</p><p> DataSet ds = new DataSet();</p><p> string strsqltemp = "select * from Courses where DepartmentID=&
72、quot;+departmentid.ToString();</p><p> ds = mySQL.GetDataSet(strsqltemp,"courses");</p><p> int myCount = ds.Tables["courses"].Rows.Count;</p><p> for(int i=0
73、;i<myCount;i++)</p><p><b> {</b></p><p> string CourseName = ds.Tables["courses"].Rows[i][1].ToString();</p><p> node.Nodes.Add(new TreeNode(CourseName))
74、;</p><p><b> }</b></p><p> mySQL.Close();</p><p><b> }</b></p><p><b> 查看已選課程模塊</b></p><p> CREATE Procedure Electi
75、veList</p><p><b> (</b></p><p> @StudentID int</p><p><b> )</b></p><p><b> AS</b></p><p><b> SELECT</b&g
76、t;</p><p> Courses.CourseID,</p><p> Courses.CourseName,</p><p> Courses.CourseTeacher,</p><p> Courses.CourseScore,</p><p> Courses.CourseHours</p
77、><p><b> FROM</b></p><p><b> Elective</b></p><p> INNER JOIN Courses ON Courses.CourseID=Elective.CourseID</p><p><b> WHERE</b>&
78、lt;/p><p> Elective.StudentID=@StudentID</p><p><b> GO</b></p><p><b> 選課模塊</b></p><p> CREATE Procedure ElectCourse</p><p><b&g
79、t; (</b></p><p> @StudentID int,</p><p> @CourseID int,</p><p> @ElectiveID int OUTPUT</p><p><b> )</b></p><p><b> AS<
80、/b></p><p> INSERT INTO Elective</p><p><b> (</b></p><p> StudentID,</p><p><b> CourseID</b></p><p><b> )</b>&l
81、t;/p><p><b> VALUES</b></p><p><b> (</b></p><p> @StudentID,</p><p><b> @CourseID</b></p><p><b> )</b><
82、;/p><p><b> SELECT</b></p><p> @ElectiveID=@@Identity</p><p><b> GO</b></p><p><b> 退選模塊</b></p><p> CREATE Procedure
83、 CancelCourse</p><p><b> (</b></p><p> @StudentID int,</p><p> @CourseID int,</p><p> @ElectiveID int OUTPUT</p><p><b> )</b
84、></p><p><b> AS</b></p><p><b> SELECT</b></p><p> @ElectiveID=ElectiveID</p><p><b> FROM</b></p><p><b> E
85、lective</b></p><p><b> WHERE</b></p><p> @StudentID=StudentID</p><p><b> AND</b></p><p> @CourseID=CourseID</p><p> DELE
86、TE FROM</p><p><b> Elective</b></p><p><b> WHERE</b></p><p><b> (</b></p><p> @StudentID=StudentID</p><p><b>
87、; AND</b></p><p> @CourseID=CourseID</p><p><b> )</b></p><p><b> GO</b></p><p><b> 管理員子系統(tǒng)</b></p><p><b&g
88、t; 管理學(xué)生記錄模塊</b></p><p><b> 修改學(xué)生信息</b></p><p> CREATE Procedure ModifyStudentInfo</p><p><b> (</b></p><p> @StudentNumber nvarchar(50
89、),</p><p> @Name nvarchar(50),</p><p> @Password nvarchar(50)</p><p><b> )</b></p><p><b> AS</b></p><p> UPDATE Students<
90、/p><p><b> SET</b></p><p> Name=@Name,</p><p> Password=@Password</p><p><b> WHERE</b></p><p> StudentNumber=@StudentNumber</p
91、><p><b> GO</b></p><p><b> 添加學(xué)生信息</b></p><p> CREATE Procedure AddStudent</p><p><b> (</b></p><p> @StudentNumber nv
92、archar(50),</p><p> @Name nvarchar(50),</p><p> @Password nvarchar(50),</p><p> @StudentID int OUTPUT</p><p><b> )</b></p><p><b>
93、 AS</b></p><p> INSERT INTO Students</p><p><b> (</b></p><p> StudentNumber,</p><p><b> Name,</b></p><p><b> Pass
94、word</b></p><p><b> )</b></p><p><b> VALUES</b></p><p><b> (</b></p><p> @StudentNumber,</p><p><b> @N
95、ame,</b></p><p><b> @Password</b></p><p><b> )</b></p><p><b> SELECT</b></p><p> @StudentID=@@Identity</p><p>
96、;<b> GO</b></p><p><b> 刪除學(xué)生信息</b></p><p> CREATE Procedure DeleteStudent</p><p><b> (</b></p><p> @StudentNumber nvarchar(50),
97、</p><p> @Name nvarchar(50)</p><p><b> )</b></p><p><b> AS</b></p><p> DELETE Students</p><p><b> WHERE</b></p
98、><p> StudentNumber=@StudentNumber</p><p><b> AND</b></p><p> Name=@Name</p><p><b> GO</b></p><p><b> 管理課程信息模塊</b><
99、;/p><p><b> 修改課程信息</b></p><p> CREATE Procedure ModifyCourse</p><p><b> (</b></p><p> @CourseID int,</p><p> @CourseName nvarch
100、ar(50), </p><p> @CourseHours int,</p><p> @CourseScore int,</p><p> @CourseTeacher nvarchar(50),</p><p> @UpperLimitStudentNumber int</p><p><b
101、> )</b></p><p><b> AS</b></p><p> UPDATE Courses</p><p><b> SET</b></p><p> CourseName=@CourseName,</p><p> CourseH
102、ours=@CourseHours,</p><p> CourseScore=@CourseScore,</p><p> CourseTeacher=@CourseTeacher,</p><p> UpperLimitStudentNumber=@UpperLimitStudentNumber</p><p><b>
103、 WHERE</b></p><p> CourseID=@CourseID</p><p><b> GO</b></p><p><b> 添加課程信息</b></p><p> CREATE Procedure AddCourse</p><p>&
104、lt;b> (</b></p><p> @CourseID int,</p><p> @CourseName nvarchar(50),</p><p> @DepartmentID int,</p><p> @CourseHours int,</p><p> @Cours
105、eScore int,</p><p> @CourseTeacher nvarchar(50),</p><p> @UpperLimitStudentNumber int</p><p><b> )</b></p><p><b> As</b></p><p&
106、gt; INSERT INTO Courses</p><p><b> (</b></p><p><b> CourseID,</b></p><p> CourseName,</p><p> DepartmentID,</p><p> CourseHou
107、rs,</p><p> CourseScore,</p><p> CourseTeacher,</p><p> UpperLimitStudentNumber</p><p><b> )</b></p><p><b> VALUES</b></p&g
108、t;<p><b> (</b></p><p> @CourseID ,</p><p> @CourseName ,</p><p> @DepartmentID,</p><p> @CourseHours , </p><p> @CourseScore , &l
109、t;/p><p> @CourseTeacher,</p><p> @UpperLimitStudentNumber </p><p><b> )</b></p><p><b> SELECT</b></p><p> @CourseID=@@Identity&l
110、t;/p><p><b> GO</b></p><p><b> 刪除課程信息</b></p><p> CREATE Procedure RemoveCourse</p><p><b> (</b></p><p> @CourseID in
111、t</p><p><b> )</b></p><p><b> AS</b></p><p> BEGIN Transaction</p><p> DELETE FROM Courses</p><p><b> WHERE</b><
112、;/p><p> CourseID=@CourseID</p><p> DELETE FROM Elective</p><p><b> WHERE</b></p><p> CourseID=@CourseID</p><p> if @@rowcount>0</p>
113、<p> Commit Transaction</p><p><b> else</b></p><p> Rollback Transaction</p><p><b> GO</b></p><p><b> 修改選課期限模塊</b></
114、p><p> 通過讀取XML文件,調(diào)用UpdatePeriod存儲過程實現(xiàn)更新數(shù)據(jù)庫。</p><p><b> XML文件</b></p><p> <?xml version=”1.0”?></p><p> <configurations></p><p><
115、;b> <Time></b></p><p> <Begin>2005-5-25 12:00</Begin></p><p> </End>2005-6-25 12:00</End></p><p><b> </Time></b></p
116、><p> </configurations></p><p> UpdatePeriod存儲過程</p><p> CREATE Procedure UpdatePeriod</p><p><b> (</b></p><p> @BeginTime datetime,&
117、lt;/p><p> @EndTime datetime</p><p><b> )</b></p><p><b> AS</b></p><p> UPDATE Period</p><p><b> SET</b></p>
118、<p> BeginTime=@BeginTime,</p><p> EndTime=@EndTime</p><p><b> GO</b></p><p><b> 查看選課情況模塊</b></p><p> CREATE Procedure ElectiveTotal
119、List</p><p><b> AS</b></p><p><b> SELECT</b></p><p> Elective.StudentID,</p><p> Students.StudentNumber,</p><p> Students.Name
120、,</p><p> Courses.CourseID,</p><p> Courses.CourseName,</p><p> Courses.CourseTeacher,</p><p> Courses.CourseScore,</p><p> Courses.CourseHours</p&
121、gt;<p><b> FROM</b></p><p><b> Elective</b></p><p> INNER JOIN Courses ON Courses.CourseID=Elective.CourseID</p><p> INNER JOIN Students ON
122、 Students.StudentID=Elective.StudentID</p><p><b> ORDER BY</b></p><p> Elective.StudentID</p><p><b> GO</b></p><p><b> 4軟件測試</b&g
123、t;</p><p><b> 模塊測試</b></p><p><b> 測試方案:</b></p><p> 我采用了白盒測試(又稱結(jié)構(gòu)測試),即按照程序內(nèi)部的邏輯結(jié)構(gòu),檢驗程序中的每條通路是否能夠按照預(yù)定要求正常工作。</p><p> 由于設(shè)計過程當(dāng)中,不免會出現(xiàn)很多意想不到的結(jié)果發(fā)
124、生,為了減少不必的錯誤出現(xiàn),同時,為了能夠使不同的文件之間正確和有效的銜接,我在設(shè)計模塊的過程,對于每一個文件的執(zhí)行和模塊的執(zhí)行都做了認(rèn)真地測試,以求達(dá)到設(shè)計要求。</p><p><b> 測試過程:</b></p><p> 主要檢查模塊的兩個方面,一個是各個模塊之間的接口,另一個是模塊的運行是否正常。</p><p> 對于檢驗各個
125、模塊之間的接口,所做的測試工作有:</p><p> 每個被調(diào)用模塊之間是否能夠正常接受參數(shù)(包括系統(tǒng)變量);</p><p> 每個被調(diào)用模塊之間能否正常地而且有效地銜接上;</p><p> 對于檢驗?zāi)K的運行是否正常,所做的測試工作有:</p><p> 對每一個模塊中各個執(zhí)行過程嚴(yán)格地進行檢查與檢測;</p>&
126、lt;p> 對每一個模塊中各個文件內(nèi)所設(shè)計的函數(shù)逐個進行達(dá)標(biāo)測試;</p><p> 對每一個模塊在調(diào)用的過程中,時刻檢測系統(tǒng)變量的過程性變化;</p><p><b> 測試結(jié)果:</b></p><p> 測試結(jié)果表明,每一個模塊都能夠正常獨立地運行,各個模塊之間的接口亦能正確地吻合,同時每個模塊基本上達(dá)到了設(shè)計的要求。<
127、;/p><p><b> 系統(tǒng)測試</b></p><p><b> 測試方案</b></p><p> 在設(shè)計過程中和設(shè)計結(jié)束不斷地進行黑盒測試(又叫功能測試),即檢查程序功能是否按照規(guī)格說明書的規(guī)定正常使用,程序是否能夠適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息的完整性。</p><p
128、> 在這次的設(shè)計當(dāng)中,對于每一個模塊的功能實現(xiàn)上和設(shè)計風(fēng)格上,都做了細(xì)致的檢測,并且盡力去找出系統(tǒng)的紕漏之處。</p><p><b> 測試過程</b></p><p> 主要由我的導(dǎo)師在不同的時間、不同機器和不同的系統(tǒng)狀態(tài)下進行測試過程,利用特殊的參數(shù)和普通參數(shù)兩種方式進行測試。</p><p><b> 測試結(jié)果&
129、lt;/b></p><p> 測試結(jié)果表明,系統(tǒng)能夠按照設(shè)計的要求實現(xiàn)其內(nèi)部的各項功能,同時提前</p><p> 完成了設(shè)計的任務(wù)要求。</p><p><b> 驗收測試</b></p><p><b> 測試方案</b></p><p> 我采用黑盒測
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計----網(wǎng)上選課系統(tǒng)設(shè)計
- 網(wǎng)上選課系統(tǒng)畢業(yè)設(shè)計3
- 網(wǎng)上選課系統(tǒng)---畢業(yè)論文
- 學(xué)生網(wǎng)上選課系統(tǒng)畢業(yè)設(shè)計
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計(論文)+網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)論文——網(wǎng)上選課系統(tǒng)
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 畢業(yè)論文——網(wǎng)上選課管理系統(tǒng)
- 網(wǎng)上選課系統(tǒng)設(shè)計實現(xiàn)論文
- jsp網(wǎng)上選課系統(tǒng)畢業(yè)論文
- 網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)
- 學(xué)生網(wǎng)上選課系統(tǒng) 畢業(yè)論文
- 畢業(yè)論文——網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)
- 網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文
- 選課畢業(yè)論文---學(xué)生網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)
- 網(wǎng)上選課系統(tǒng)畢業(yè)論文(含外文翻譯)
評論
0/150
提交評論