2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  數(shù)據(jù)庫系統(tǒng)開發(fā)與維護</p><p><b>  目錄</b></p><p><b>  1 序言1</b></p><p>  1.1 課題的來源與意義1</p><p>  1.1.1 課題的來源1</p><p>  1.1.2 課題的意義

2、1</p><p>  1.2 課題研究的主要內(nèi)容1</p><p>  2 開發(fā)技術(shù)與工具2</p><p>  2.1 Microsoft.NET 技術(shù)2</p><p>  2.2 ASP.NET 簡介2</p><p>  2.3 Visual Studio 20083</p><

3、;p><b>  3 需求分析4</b></p><p>  3.1 需求分析4</p><p>  3.1.1 功能需求4</p><p>  3.1.2 角色和工作流程5</p><p>  3.2 系統(tǒng)要實現(xiàn)的目標6</p><p><b>  4 總體設(shè)計8&l

4、t;/b></p><p>  4.1 三層結(jié)構(gòu)概述8</p><p>  4.1.1 三層結(jié)構(gòu)的概念8</p><p>  4.1.2 三層結(jié)構(gòu)的優(yōu)點8</p><p>  4.1.3 三層結(jié)構(gòu)的缺點9</p><p>  4.2 系統(tǒng)的分層設(shè)計9</p><p>  4.3

5、數(shù)據(jù)庫設(shè)計11</p><p>  4.3.1 數(shù)據(jù)表設(shè)計11</p><p>  4.3.2 存儲過程設(shè)計15</p><p>  4.4 公共層16</p><p><b>  5 詳細設(shè)計17</b></p><p>  5.1 管理員模塊的實現(xiàn)17</p><

6、;p>  5.2 教師模塊的實現(xiàn)17</p><p>  5.3 學(xué)生模塊的實現(xiàn)21</p><p><b>  附 錄22</b></p><p><b>  致 謝30</b></p><p><b>  參考文獻31</b></p><

7、p><b>  1 序言</b></p><p>  1.1 課題的來源與意義</p><p>  1.1.1 課題的來源</p><p>  本課題是“黃石理工學(xué)院計算機學(xué)院”立項項目,立項時間為 2011 年 9 月。</p><p>  1.1.2 課題的意義</p><p>  高校

8、畢業(yè)論文是高校本科人才培養(yǎng)方案的一個重要組成部分,也是學(xué)生畢業(yè)與學(xué)位資格認證的重要依據(jù)。2004 年教育部辦公廳下發(fā)的關(guān)于加強普通高等學(xué)校畢業(yè)設(shè)計(論文)工作的通知指出:要充分認識畢業(yè)設(shè)計(論文)環(huán)節(jié)的重要意義[1],加強畢業(yè)論文的管理工作,保障和不斷提高畢業(yè)論文的質(zhì)量。整個本科畢業(yè)論文的工作過程持續(xù)時間長,涉及人數(shù)多(學(xué)生,指導(dǎo)教師和教學(xué)管理人員),并且隨著高校擴招,學(xué)生人數(shù)的不斷增長,畢業(yè)論文工作過程中的工作量越來越大,使用傳統(tǒng)的管

9、理方式也變得越來越困難,在這樣的背景下</p><p>  如何加強畢業(yè)論文的管理工作,是一個亟待探討和研究的問題。</p><p>  目前,許多高校的本科畢業(yè)論文管理工作相對滯后,基本采用多年來一貫的操作模式:教師命題、學(xué)生選題,經(jīng)過開題、論文撰寫和論文答辯確定成績,最后由教學(xué)管理人員將論文歸檔保存,整個過程基本靠人工來完成。</p><p>  1.2 課題研

10、究的主要內(nèi)容</p><p>  高校本科畢業(yè)論文管理系統(tǒng)除對論文本身進行管理外,還應(yīng)考慮如何提供對畢業(yè)論文全過程的管理問題。</p><p>  如何實現(xiàn)一個高校畢業(yè)設(shè)計(論文)管理系統(tǒng),是本課題的主要研究問題。該系統(tǒng)如何與現(xiàn)有的教務(wù)管理系統(tǒng)整合,是本課題研究的重點問題。實現(xiàn)對外數(shù)據(jù)查詢接口,提供對外論文查詢服務(wù)是本課題的一個嘗試。</p><p><b&g

11、t;  2 開發(fā)技術(shù)與工具</b></p><p>  2.1 Microsoft.NET 技術(shù)</p><p>  .NET 框架包括用于創(chuàng)建和操作新一代服務(wù)的.NET 基礎(chǔ)結(jié)構(gòu)和工具,用于建立新一代高度分布式的數(shù)以百萬計的.NET 組件服務(wù),以及啟用新一代智能互聯(lián)網(wǎng)設(shè)備的.NET 設(shè)備軟件[12]。其完整的結(jié)構(gòu)如圖 2-1 所示:</p><p> 

12、 圖 2- 1 Microsoft.NET 框架</p><p>  2.2 ASP.NET 簡介</p><p>  ASP. NET 提供了一個 Web 應(yīng)用程序模型,該模型由一組控件和一個基本結(jié)構(gòu)組成。有了它,Web 應(yīng)用程序的構(gòu)建變得非常容易。開發(fā)人員可以直接使用 ASP.</p><p>  NET 控件集(諸如數(shù)據(jù)源控件、數(shù)據(jù)顯示控件等),這些控件運行在

13、 Web 服務(wù)器上,它們將用戶界面轉(zhuǎn)換成 HTML 格式后再發(fā)送給瀏覽器。在服務(wù)器上,控件負責(zé)將面向?qū)ο蟮木幊棠P统尸F(xiàn)給 Web 開發(fā)人員,這種編程模型能提供面向?qū)ο蟮木幊碳夹g(shù)擁有的豐富功能。ASP. NET 還提供一些基本結(jié)構(gòu)服務(wù)(諸如會話狀態(tài)管理和進程循環(huán)),這些服務(wù)進一步減少了開發(fā)人員要編寫的代碼量,并使應(yīng)用程序的可靠性得到了大幅度提高。ASP. NET 還允許開發(fā)人員將軟件作為一項服務(wù)進行傳送。通過使用 ASP. NET Web

14、 服務(wù)功能,ASP. NET 開發(fā)人員只需進行簡單的業(yè)務(wù)邏輯編程,而由 ASP. NET 基本結(jié)構(gòu)負責(zé)通過 SOAP 傳送服務(wù)[15]。</p><p>  .NET 開發(fā)平臺為開發(fā) WEB 應(yīng)用程序提供了強大的技術(shù)支持,使開發(fā)變得非常便捷,高效。ASP.NET 通過服務(wù)器控件解決了上述問題。服務(wù)器端控件會生成發(fā)送給瀏覽器的 HTML 代碼,還能生成隱藏的 HTML 元素來存儲它們當前的狀態(tài)。在提交頁面時,這些信

15、息就會傳送回服務(wù)器,控件將自動處理這些信息,改變 HTML 并顯示控件。</p><p>  2.3 Visual Studio 2008</p><p>  Visual Studio2008 是微軟提供的集成開發(fā)環(huán)境,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動應(yīng)用程序。在 Visual Studio2008中 Visual Basi

16、c、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境(IDE),該環(huán)境允許它們共享工具,并有助于創(chuàng)建混合語言解決方案[30]。另外,這些語言充分利用了.NET Framework 的功能,提供了對簡化 ASP.NET Web 應(yīng)用程序開發(fā)和 XML Web Service 開發(fā)的關(guān)鍵技術(shù)支持。</p><p>  Visual Studio 集成開發(fā)環(huán)境中為開發(fā)人員提供

17、了大量的實用工具以提高工作效率。這些工具包括了自動編譯、項目創(chuàng)建向?qū)?、?chuàng)建部署工程等等。</p><p><b>  3 需求分析</b></p><p><b>  3.1 需求分析</b></p><p>  3.1.1 功能需求</p><p>  通過與教務(wù)處負責(zé)全校畢業(yè)論文管理工作的老師充

18、分溝通,結(jié)合自己作為系一級畢業(yè)論文工作的管理者對畢業(yè)論文工作過程的了解,并在與部分教師和學(xué)生反復(fù)交流的基礎(chǔ)上,得出高校畢業(yè)設(shè)計(論文)管理系統(tǒng)的主要需求如下:</p><p>  1. 在每次論文工作開始時,系統(tǒng)應(yīng)提供教師、學(xué)生名單,以便系一級畢業(yè)論文管理者給學(xué)生安排指導(dǎo)教師。系統(tǒng)應(yīng)提供交互界界面,滿足給學(xué)生安排指導(dǎo)教師的要求。</p><p>  2. 系一級畢業(yè)論文管理者給學(xué)生安排指導(dǎo)

19、教師后,學(xué)生應(yīng)能在系統(tǒng)中看到自己指導(dǎo)教師和同組同學(xué)信息(同一指導(dǎo)教師指導(dǎo)的全部學(xué)生為一組),教師也應(yīng)能在系統(tǒng)中看到自己指導(dǎo)各學(xué)生的信息,特別應(yīng)能看到是聯(lián)系方式,以便學(xué)生和教師相互聯(lián)系。</p><p>  3. 學(xué)生和指導(dǎo)教師相互聯(lián)系,根據(jù)實際情況擬定論文題目,指導(dǎo)教師可通過系統(tǒng)在網(wǎng)上提交擬定的題目,等待教研室主任審核。在審核之前這些題目只是本次待選題目(簡稱選題),只有通過審核的選題才能最終確定為學(xué)生的正式題目

20、。</p><p>  教師和學(xué)生還應(yīng)能通過系統(tǒng)看到歷屆選題信息。</p><p>  4. 教研室主任可以在網(wǎng)上審核本教研室教師提交的選題,若審核未通過,可以輸入簡單未通過審核的原因,教師可以看到審核結(jié)果。</p><p>  5. 選題經(jīng)審核后,教師通過系統(tǒng)可以正式指派給學(xué)生。若審核未通過,教師需和學(xué)生重新討論確定選題,提交、等待審核直至通過。</p>

21、;<p>  在實際工作中,在系統(tǒng)中完成以上操作后,每個指導(dǎo)教師指導(dǎo)哪些學(xué)生確定了,每個學(xué)生的論文題目也確定了,此時用戶在系統(tǒng)可以看到本屆論文選題的全部結(jié)果。此后將進入論文撰寫階段。</p><p>  6. 在論文撰寫階段,系統(tǒng)應(yīng)提供交流平臺,以便學(xué)生和教師交流,并允許通過系統(tǒng)上傳下載文件。</p><p>  7. 在論文撰寫階段,學(xué)生可以隨時在系統(tǒng)中查詢和下載往屆學(xué)生畢

22、業(yè)論文,了解論文內(nèi)容、要求,格式等信息。</p><p>  8. 系一級管理員要求系統(tǒng)能夠根據(jù)指定條件生成答辯安排表,教師、學(xué)生可以看到答辯安排。</p><p>  9. 答辯結(jié)束后,學(xué)生要通過系統(tǒng)提交論文(包括論文相關(guān)信息和電子文檔)。</p><p>  10. 學(xué)生提交論文后,指導(dǎo)教師進入系統(tǒng),對學(xué)生提交的論文進行審核,審核合格者,教師提交該學(xué)生的論文成績

23、,否則該學(xué)生需重新提交,直至審核通過。期間學(xué)生可以在系統(tǒng)中查看審核結(jié)果和評分結(jié)果。</p><p>  11. 上述工作完成后,系管理員可以通過系統(tǒng)打印報表(如:選題結(jié)果一覽表、成績匯總表、成績分析表等)。</p><p>  12. 在整個論文工作過程中,系管理員可以在系統(tǒng)中看到本系各指導(dǎo)教師工作進度,校管理員可以在系統(tǒng)中看到各系工作進度。</p><p>  1

24、3. 在整個論文工作過程中,系管理員和校管理員可以在系統(tǒng)中發(fā)布公告,管理自己發(fā)布的公告,教師,學(xué)生可以查看公告。</p><p>  14. 用戶可以維護個人信息,包括修改電話,Email 等。</p><p>  3.1.2 角色和工作流程</p><p>  經(jīng)過以上功能需求分析,可以得出論文管理系統(tǒng)的用戶有:學(xué)生、教師、系管理員,不同用戶在系統(tǒng)中擔(dān)任不同角色,

25、具有不同權(quán)限,要完成不同操作。不同用戶的操作又有著相互依賴關(guān)系。</p><p>  有些操作是公共的,如查看公告、密碼修改,有些操作是特定角色才能進行的,如課題申報。</p><p>  按畢業(yè)論文工作的時間順序,及其不同角色在不同時間階段要參與的活動綜合分析后,得出畢業(yè)論文工作過程流程圖,如圖 3-1 所示:</p><p>  圖 3- 1 系統(tǒng)工作流程<

26、;/p><p>  從上圖可以看出,不同階段,有的用戶需要完成某項工作,而有的用戶處在等待狀態(tài),等其他用戶工作完成前面才能開始自己下面的工作。</p><p>  3.2 系統(tǒng)要實現(xiàn)的目標</p><p>  根據(jù)上面需求分析,最終確定系統(tǒng)要實現(xiàn)如圖 3-2 所示功能模塊,由于模塊劃分是從用戶角度出發(fā),而不是從功能角度考慮,所有一個功能模塊會涉及到多個用戶。</p

27、><p>  圖 3- 2 系統(tǒng)功能模塊圖</p><p>  下面對各模塊作簡要說明:</p><p><b>  1. 學(xué)生模塊</b></p><p>  基本功能:課題選擇、我的課題、我的任務(wù)書、開題材料、論文提交、通知公告、網(wǎng)上答疑、下載專區(qū)、個人信息維護、密碼修改。</p><p><

28、;b>  2. 教師模塊</b></p><p>  基本功能:課題申報、全院課題、選題管理、發(fā)布任務(wù)書、開題報告、通知公告、網(wǎng)上答疑、論文接收、歸檔材料、下載專區(qū)、本組學(xué)生信息、個人信息管理、密碼修改。</p><p><b>  3. 管理模塊</b></p><p>  基本功能:基礎(chǔ)數(shù)據(jù)維護、教師信息導(dǎo)入、學(xué)生信息導(dǎo)入

29、、教師信息管理、學(xué)生信息管理、教師申報課題管理、選題管理、賬戶管理、通知公告、歸檔材料、下載專區(qū)、數(shù)據(jù)庫維護、個人信息管理、密碼修改。</p><p><b>  4 總體設(shè)計</b></p><p>  4.1 三層結(jié)構(gòu)概述</p><p>  4.1.1 三層結(jié)構(gòu)的概念</p><p>  三層結(jié)構(gòu)是一種成熟、簡單并

30、得到普遍應(yīng)用的應(yīng)用程序架構(gòu),它將應(yīng)用程序結(jié)構(gòu)劃分為三個邏輯層:戶表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。其中將實現(xiàn)人機交互界面的所有表單和組件放在表示層,將所有業(yè)務(wù)規(guī)則和邏輯的實現(xiàn)封裝在負責(zé)業(yè)務(wù)邏輯組件中,將所有和數(shù)據(jù)庫的交互封裝在數(shù)據(jù)訪問組件中[33]。其結(jié)構(gòu)如圖 4-1 所示。</p><p>  圖 4- 1 三層結(jié)構(gòu)示意圖</p><p>  三層結(jié)構(gòu)十分有利于系統(tǒng)的開發(fā),維護、部署和擴展

31、。使用三層結(jié)構(gòu)的目的,是為了實現(xiàn)“高內(nèi)聚、低耦合”,采用“分而治之”的思想,把問題劃分開來各個解決,易于控制,易于延展,易于分配資源。</p><p>  三層結(jié)構(gòu)是一種嚴格分層方法,即數(shù)據(jù)訪問層只能被業(yè)務(wù)邏輯層訪問,業(yè)務(wù)邏輯層只能被表示層訪問,用戶通過表示層將請求傳送給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層完成相關(guān)業(yè)務(wù)規(guī)則和邏輯,并通過數(shù)據(jù)訪問層訪問數(shù)據(jù)庫獲得數(shù)據(jù),然后按照相反的順序依次返回將數(shù)據(jù)顯示在表示層。</p&g

32、t;<p>  4.1.2 三層結(jié)構(gòu)的優(yōu)點</p><p>  1. 從開發(fā)角度和應(yīng)用角度來看,三層架構(gòu)比雙層或單層結(jié)構(gòu)都有更大的優(yōu)勢</p><p>  三層結(jié)構(gòu)適合群體開發(fā),每人可以有不同的分工,協(xié)同工作使效率倍增。開發(fā)雙層或單層應(yīng)用時,每個開發(fā)人員都應(yīng)對系統(tǒng)有較深的理解,能力要求很高,開發(fā)三層應(yīng)用時,則可以結(jié)合多方面的人才,只需少數(shù)人對系統(tǒng)全面了解,從一定程度上降低了開

33、發(fā)的難度。</p><p>  2. 三層架構(gòu)可以更好地支持分布式計算環(huán)境</p><p>  邏輯層的應(yīng)用程序可以放在多個機器上運行,充分利用網(wǎng)絡(luò)的分布式特性。分布式計算的潛力巨大,遠比升級 CPU 有效。美國人曾利用分式計算解密,幾個月就破解了據(jù)稱永遠都破不了的密碼。</p><p>  3. 可適應(yīng)不斷的變化和新的業(yè)務(wù)需求</p><p&g

34、t;  對軟件進行分層可以達到結(jié)構(gòu)清晰、易于重用的目的。任何應(yīng)用系統(tǒng)實施的重點不在于需求確定以后能否實現(xiàn)這些需求,而是在系統(tǒng)實施后如何適應(yīng)變化的需求。三層結(jié)構(gòu)由于對系統(tǒng)分層設(shè)計,一旦日后需求發(fā)生變化,只需修改相應(yīng)層的部分代碼,對其他層沒有影響或影響很小。</p><p>  4. 能有效提高系統(tǒng)安全性</p><p>  多層體系結(jié)構(gòu)將數(shù)據(jù)與程序、數(shù)據(jù)控制與應(yīng)用邏輯分層獨立管理,能更嚴格地

35、控制信息訪問。用戶端只能通過邏輯層來訪問數(shù)據(jù)層,減少了入口點,把很多危險的系統(tǒng)功能都屏蔽了。</p><p>  4.1.3 三層結(jié)構(gòu)的缺點</p><p>  1. “三層結(jié)構(gòu)”開發(fā)模式一個非常明顯的缺點就是其執(zhí)行速度不夠快。當然這個“執(zhí)行速度”是相對于非分層的應(yīng)用程序來說的[34]。</p><p>  2. “三層結(jié)構(gòu)”開發(fā)模式,入門難度夠高,難于理解和學(xué)習(xí)。

36、以這種模式開發(fā)出來的軟件,代碼量通常要稍稍多一些。</p><p>  4.2 系統(tǒng)的分層設(shè)計</p><p>  上一節(jié)討論的三層結(jié)構(gòu)是一個總體的三層結(jié)構(gòu)模型,實際開發(fā)應(yīng)用系統(tǒng)時,每一層還可劃分成多個子層,層與層之間還可引入接口層,并且一般還加入業(yè)務(wù)實體層,以便各層簡傳遞業(yè)務(wù)數(shù)據(jù),加入公共層,用來封裝公用方法。本系統(tǒng)根據(jù)實際情況采用的分層結(jié)構(gòu)如圖 4-2 所示。</p>&

37、lt;p>  圖 4- 2 系統(tǒng)的分層結(jié)構(gòu)</p><p>  分層的思路和各層作用如下:</p><p>  公共層(Common Layer):本層包括自定義實體類型和自定義實體類型集合,還封裝一些常用的公共方法,供表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層調(diào)用。用于各層次之間數(shù)據(jù)交互的載體。</p><p>  表示層(Presentation Layer,簡稱 P

38、L):提供交互界面,供用戶操作。可采用 WinForm 方式,也可采用 Web 方式,本系統(tǒng)選擇的是 Web 方式。本層負責(zé)傳遞用戶的輸入給業(yè)務(wù)邏輯層,并把業(yè)務(wù)邏輯層的處理結(jié)果展示給用戶。</p><p>  業(yè)務(wù)邏輯層(Business Logic Layer,簡稱 BLL):主要是針對具體業(yè)務(wù)處理的操作,如對數(shù)據(jù)進行有效性驗證,操作約束判斷等。業(yè)務(wù)邏輯層接收表示層傳來的數(shù)據(jù)(簡單變量、業(yè)務(wù)實體類型對象或業(yè)務(wù)實

39、體集合類型對象),然后根據(jù)具體的業(yè)務(wù)邏輯調(diào)用數(shù)據(jù)訪問層的一個或多個方法進行處理,最后返回處理結(jié)果給表示層。</p><p>  數(shù)據(jù)訪問層(Data Access Layer,簡稱 DAL):封裝對數(shù)據(jù)庫的訪問操作。是對原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式)的操作層,而不是指原始數(shù)據(jù),也就是說,是對數(shù)據(jù)的操作,而不是數(shù)據(jù)庫。這里封裝所有訪問數(shù)據(jù)庫的相關(guān)代碼,包括 SQL 語句,存儲過程等。本層接收業(yè)務(wù)邏輯

40、層傳來的數(shù)據(jù)(簡單變量、業(yè)務(wù)實體類型對象或業(yè)務(wù)實體集合類型對象),執(zhí)行不同 SQL 語句或存儲過程,并把執(zhí)行結(jié)果返回給業(yè)務(wù)邏輯層。</p><p><b>  4.3 數(shù)據(jù)庫設(shè)計</b></p><p>  4.3.1 數(shù)據(jù)表設(shè)計</p><p>  本系統(tǒng)后臺使用 SQL 2000 數(shù)據(jù)庫, GDS 數(shù)據(jù)庫是本系統(tǒng)的數(shù)據(jù)庫,它用于存放權(quán)限表、

41、專業(yè)表、選題表、基礎(chǔ)數(shù)據(jù)表、管理員表、學(xué)生表、教師表、下載信息表、郵件信息表、通知公告表和課題信息表。GDS 數(shù)據(jù)庫包括11張表,各表名稱與表之間關(guān)系如圖 4-3 所示。</p><p>  圖 4- 3 實體關(guān)系圖</p><p>  上述11張表中,權(quán)限表(Authority 表)、專業(yè)表(Profession 表)和選題表(ChosenSubject 表)結(jié)構(gòu)比較簡單,分別用來存儲各

42、類用戶權(quán)限、專業(yè)名稱和選題信息,其它各表如下。</p><p><b>  1. 基礎(chǔ)數(shù)據(jù)表</b></p><p>  基礎(chǔ)數(shù)據(jù)表(BaseSystemData表)用來存放基礎(chǔ)數(shù)據(jù)配置信息,其結(jié)構(gòu)如表4-1所示。</p><p>  表 4- 1 BaseSystemData表</p><p>  2. 管理員表、學(xué)生

43、表和教師表</p><p>  管理員表(Admins表)、學(xué)生表(Student 表)和教師表(Teacher 表)分別用來存放內(nèi)置的管理員基本信息、學(xué)生和教師的基本信息,其結(jié)構(gòu)如表4-2 、表 4-3 和表 4-4所示。</p><p>  表 4- 2 Admins 表</p><p>  表 4- 3 Student 表</p><p&g

44、t;  表 4- 4 Teacher 表</p><p>  3. 下載信息表、郵件信息表和通知公告表</p><p>  下載信息表(DownloadZone表)、郵件信息表(MailInfo表)和通知公告表(PublicNotice 表)分別用來存放供下載的文件相關(guān)信息、郵件信息和通知公告信息。表結(jié)構(gòu)如表 4-5、表 4-6和表 4-7 所示。</p><p>

45、  表 4- 5 DownloadZone表</p><p>  表 4- 6 MailInfo表</p><p>  表 4- 7 PublicNotice 表</p><p><b>  4. 課題信息表</b></p><p>  課題信息表(Subjects 表)用于記錄教師申報的課題的詳細信息,結(jié)構(gòu)如表 4-8

46、 所示。</p><p>  表 4- 8 Subjects 表</p><p>  4.3.2 存儲過程設(shè)計</p><p>  本系統(tǒng)所有的數(shù)據(jù)庫操作都使用存儲過程,使用存儲過程主要是為了便于對SQL 語句進行集中管理。由于存儲過程是在服務(wù)器上編譯執(zhí)行的,在一定程度上也有利于提高系統(tǒng)性能。另外使用存儲過程對防止 SQL 注入攻擊也有一定作用。</p>

47、<p>  不使用存儲過程,SQL 語句將會出現(xiàn)在數(shù)據(jù)訪問層的各個方法中,將來修改時,需要打開多個文件查找修改,沒有放在數(shù)據(jù)庫存儲過程中方便。</p><p>  由于存儲過程較多,為了方便,截圖如下圖 4- 4。</p><p>  圖 4- 4 儲存過程概況</p><p><b>  4.4 公共層</b></p>

48、;<p>  為方便各層間傳遞數(shù)據(jù),一般應(yīng)用程序中都把數(shù)據(jù)表影射成實體類(Entity Class)和實體集合類,本系統(tǒng)也采用這樣的方法。還有部分方法,各層都會調(diào)用或與三層中的哪一層都沒有直接聯(lián)系問題,根據(jù)實體類、實體集合類和上述方法的性質(zhì),把他們封裝到一起,形成一個公共層,也即系統(tǒng)的公共層包括以下兩方面的內(nèi)容:</p><p>  1.實體類和實體集合類</p><p> 

49、 2.公用方法和獨立方法</p><p>  實體類中只有私有字段和公有的屬性,不存在對數(shù)據(jù)的操作,實體的定義有以單表定義的,還有部分以業(yè)務(wù)邏輯來定義。實體集合類可以從 DataSet 類派生,對于只讀數(shù)據(jù)集合,也可使用泛型。</p><p>  本系統(tǒng)中部分方法,沒有使用實體(集合)類進行傳遞,主要是部分操作靈活多變,用實體(集合)類去傳遞結(jié)果,顯得有些困難。而且結(jié)果集本身就是依靠多個實

50、體及實體間關(guān)系得出,也沒辦法用一個實體去傳遞。即使對于所有業(yè)務(wù)邏輯都全部建立實體,日后的改動也是很大的問題。對于上述情形,為方便期間,本系統(tǒng)直接使用了系統(tǒng)的數(shù)據(jù)庫相關(guān)集合類 DataSet 和 SqlDataReader。實際上使用三層結(jié)構(gòu)開發(fā)時,對于復(fù)雜程序, 經(jīng)常存在要么為性能犧牲架構(gòu), 要么為架構(gòu)犧牲性能的問題。。圖 4-5給出了公共層中的主要類。</p><p>  表 4- 5 公共層主要類</p

51、><p><b>  5 詳細設(shè)計</b></p><p>  本系統(tǒng)分為三大模塊:管理員模塊、教師模塊、學(xué)生模塊,由三個人獨立進行開發(fā)最終集成而來,以下是各模塊的運行效果:</p><p>  5.1 管理員模塊的實現(xiàn)</p><p>  畢業(yè)設(shè)施(論文)管理系統(tǒng)開始啟用時,必須先由管理員對系統(tǒng)進行初始配置,具體包括以下內(nèi)

52、容:</p><p><b>  1.基礎(chǔ)數(shù)據(jù)維護</b></p><p>  以管理員身份登錄(系統(tǒng)預(yù)先內(nèi)置了校管理員賬號,登錄后可修改),分別進行學(xué)院(系)設(shè)置,專業(yè)設(shè)置,時間設(shè)置,如下圖5 - 1、圖5 -2、圖5 - 3、圖5 -4 所示。</p><p><b>  圖5-1 主界面</b></p>

53、<p><b>  圖5-2 學(xué)院設(shè)置</b></p><p><b>  圖5-3 專業(yè)設(shè)置</b></p><p><b>  圖5-4 時間設(shè)置</b></p><p>  2 .導(dǎo)入學(xué)生、教師基本信息</p><p>  下載指定模板,按固定格式文件導(dǎo)入學(xué)生

54、和教師信息(主要是學(xué)號/教師編號、姓名等)。使學(xué)生和教師的賬戶和密碼都初始化為各自編號,如下圖5 - 5、圖5 -6 所示。</p><p>  圖5-5 學(xué)生信息導(dǎo)入</p><p>  圖5-6 教師信息導(dǎo)入</p><p><b>  3 .下載專區(qū)</b></p><p>  用來上傳、管理、下載畢業(yè)設(shè)計的相關(guān)文

55、件材料,如下圖5 - 7所示。</p><p><b>  圖5-7 下載專區(qū)</b></p><p>  4 .教師、學(xué)生管理</p><p>  用來管理使用本系統(tǒng)的相關(guān)教師和學(xué)生信息及其資格進行審核,如下圖5 - 8、圖5 -9 所示。</p><p><b>  圖5-8 教師管理</b>&

56、lt;/p><p><b>  圖5-9 學(xué)生管理</b></p><p><b>  5 .申報課題管理</b></p><p>  用來管理教師申報的課題信息及對其進行審核,如下圖5 - 10所示。</p><p>  圖5-10 課題管理</p><p><b>

57、  6 .選題管理</b></p><p>  用來對課題的選擇狀況,學(xué)生的選題情況進行監(jiān)測和管理(可針對專業(yè)),并能實現(xiàn)對監(jiān)測結(jié)果進行導(dǎo)出,如下圖5 - 11所示。</p><p>  圖5-11 選題管理</p><p><b>  7 .數(shù)據(jù)庫維護</b></p><p>  用來實現(xiàn)對數(shù)據(jù)庫進行備份及

58、還原操作,保障系統(tǒng)的安全性,如下圖5 - 12所示。</p><p>  圖5-12 數(shù)據(jù)庫維護</p><p>  5.2 教師模塊的實現(xiàn)</p><p>  1 .登錄及密碼修改</p><p>  用來實現(xiàn)不同用戶的登錄,根據(jù)用戶類型不同獲得不同權(quán)限,同時共用密碼修改功能。</p><p><b>  

59、2 .課題申報</b></p><p>  用來實現(xiàn)申報課題信息,并對自己申報的課題進行管理和維護。</p><p><b>  3 .全院課題查看</b></p><p>  用來查看全院的課題申報情況并能瀏覽課題詳細信息。</p><p><b>  4 .選題管理</b></

60、p><p>  用來查看自己的被選課題和未選課題情況,對被選課題可以查看選課的學(xué)生情況,并能對學(xué)生進行退選。</p><p><b>  5 .發(fā)布任務(wù)書</b></p><p>  用來給選擇了我的課題的學(xué)生發(fā)送相應(yīng)任務(wù)書,并接收學(xué)生提交的任務(wù)書,</p><p><b>  6 .網(wǎng)上答疑</b>&

61、lt;/p><p>  用來對選擇了我的課題的學(xué)生進行網(wǎng)上答疑。</p><p><b>  7 .本組學(xué)生信息</b></p><p>  用來查看所有選擇了我的課題的學(xué)生信息。</p><p>  5.3 學(xué)生模塊的實現(xiàn)</p><p><b>  1. 課題選擇</b>&l

62、t;/p><p>  查看所有自己可以選擇的課題并選擇一個課題。</p><p><b>  2. 我的課題</b></p><p>  顯示自己選擇的課題的基本信息,在時間允許范圍內(nèi)可以退定所選課題。</p><p><b>  3. 我的任務(wù)書</b></p><p>  接

63、收并回發(fā)我的任務(wù)書。</p><p><b>  4. 提交開題材料</b></p><p>  選擇要提交的開題資料及接收教師并上傳開題資料至教師端。</p><p><b>  5. 提交論文</b></p><p>  選擇要提交的正式論文及接收教師并上傳論文至教師端。</p>

64、<p><b>  6. 通知公告</b></p><p>  查看管理員發(fā)布的通知公告。</p><p><b>  7. 下載專區(qū)</b></p><p>  下載畢業(yè)設(shè)計相關(guān)材料。</p><p><b>  附 錄</b></p><p&g

65、t;<b>  專業(yè)設(shè)置后臺代碼</b></p><p>  public partial class Admin_InitMajor : System.Web.UI.Page</p><p><b>  {</b></p><p>  protected void Page_Load(object sender, Eve

66、ntArgs e)</p><p><b>  {</b></p><p>  if (!IsPostBack)</p><p>  { //獲取所有專業(yè)信息</p><p>  GetMajor();</p><p><b>  }</b></p><

67、;p><b>  }</b></p><p>  //獲取所有專業(yè)信息</p><p>  private void GetMajor()</p><p><b>  {</b></p><p>  Fannie.InitSystem init = new Fannie.InitSystem(

68、);</p><p>  DataSet ds = init.GetMajor();</p><p>  gvMajor.DataKeyNames = new string[] { "ProfessionID" };</p><p>  DataColumn dc = new DataColumn();</p><p> 

69、 dc.ColumnName = "AutoId";</p><p>  ds.Tables[0].Columns.Add(dc);</p><p>  for (int i = 0; i < ds.Tables[0].Rows.Count; i++)</p><p><b>  {</b></p>&l

70、t;p>  ds.Tables[0].Rows[i]["AutoId"]=i+1;</p><p><b>  }</b></p><p>  gvMajor.DataSource = ds;</p><p>  gvMajor.DataBind();</p><p><b>  }&

71、lt;/b></p><p>  //刪除某些專業(yè)后綁定所有專業(yè)信息</p><p>  protected void gvMajor_RowDeleting(object sender, GridViewDeleteEventArgs e)</p><p><b>  {</b></p><p>  int id

72、 = Convert.ToInt32(gvMajor.DataKeys[e.RowIndex].Value.ToString());</p><p>  Fannie.InitSystem init = new Fannie.InitSystem();</p><p>  if (init.DeleteMajor(id)> 0)</p><p><b&g

73、t;  {</b></p><p>  GetMajor();</p><p>  Response.Write("<script>alert('刪除成功')</script>");</p><p><b>  }</b></p><p><b

74、>  }</b></p><p><b>  //刪除專業(yè)信息</b></p><p>  protected void gvMajor_RowDataBound(object sender, GridViewRowEventArgs e)</p><p><b>  {</b></p>&

75、lt;p>  if (e.Row.RowIndex >= 0)</p><p><b>  {</b></p><p>  e.Row.Cells[4].Attributes.Add("onclick","return confirm('確定要刪除該行嗎?')");</p><p&

76、gt;<b>  }</b></p><p><b>  }</b></p><p>  //調(diào)整為編輯專業(yè)信息狀態(tài)</p><p>  protected void gvMajor_RowEditing(object sender, GridViewEditEventArgs e)</p><p>

77、;<b>  {</b></p><p>  gvMajor.EditIndex = e.NewEditIndex;</p><p>  GetMajor();</p><p>  ((TextBox)(gvMajor.Rows[e.NewEditIndex].Cells[1].Controls[0])).ReadOnly = true;<

78、;/p><p>  ((TextBox)(gvMajor.Rows[e.NewEditIndex].Cells[2].Controls[0])).ReadOnly = false;</p><p><b>  }</b></p><p><b>  //編輯專業(yè)信息</b></p><p>  prot

79、ected void btEdit_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  int j = 0;</p><p>  for (int i = 0; i < gvMajor.Rows.Count; i++)</p><p>&l

80、t;b>  {</b></p><p>  if (((CheckBox)(gvMajor.Rows[i].Cells[0].Controls[0])).Checked)</p><p><b>  {</b></p><p>  ((TextBox)gvMajor.Rows[i].FindControl("tbMa

81、jor")).ReadOnly = false;</p><p>  gvMajor.Rows[i].Cells[3].Controls[0].Visible = false;</p><p>  gvMajor.Rows[i].Cells[4].Controls[0].Visible = false;</p><p><b>  }</b

82、></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  j++;</b></p><p><b>  }</b></p><p><b>  }</

83、b></p><p>  if (j==gvMajor.Rows.Count)</p><p><b>  {</b></p><p>  Response.Write("<script>alert('請選擇需要編輯的記錄')</script>");</p><

84、;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  btnDelete.Enabled = false;</p><p>  btnNew.Enabled = false;</p&g

85、t;<p><b>  }</b></p><p><b>  }</b></p><p><b>  //修改專業(yè)信息</b></p><p>  protected void gvMajor_RowUpdating(object sender, GridViewUpdateEvent

86、Args e)</p><p><b>  {</b></p><p>  int id = Convert.ToInt32(gvMajor.DataKeys[e.RowIndex].Value.ToString());</p><p>  string name = ((TextBox)(gvMajor.Rows[e.RowIndex].Ce

87、lls[2].Controls[0])).Text;</p><p>  Fannie.InitSystem init = new Fannie.InitSystem();</p><p>  if (init.ModifyMajor(id, name) > 0)</p><p><b>  {</b></p><p&

88、gt;  gvMajor.EditIndex = -1;</p><p>  GetMajor();</p><p>  Response.Write("<script>alert('修改成功')</script>");</p><p><b>  }</b></p>&

89、lt;p><b>  }</b></p><p>  //取消編輯專業(yè)信息</p><p>  protected void gvMajor_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)</p><p><b>  {</b></p

90、><p>  gvMajor.EditIndex = -1;</p><p>  GetMajor();</p><p><b>  }</b></p><p><b>  //新增專業(yè)信息</b></p><p>  protected void btnNew_Click(ob

91、ject sender, EventArgs e)</p><p><b>  {</b></p><p>  bool isnull = true;</p><p>  for (int i = 0; i < gvMajor.Rows.Count;i++ )</p><p><b>  {</b&

92、gt;</p><p>  if (((TextBox)gvMajor.Rows[i].FindControl("tbMajor")).Text == tbNewMajor.Text)</p><p><b>  {</b></p><p>  isnull = false;</p><p><

93、b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (isnull)</p><p><b>  {</b></p><p>  Fannie.Init

94、System init = new Fannie.InitSystem();</p><p>  init.InsetMajor(tbNewMajor.Text);</p><p>  GetMajor();</p><p>  tbNewMajor.Text = "";</p><p><b>  }</

95、b></p><p><b>  else</b></p><p><b>  {</b></p><p>  tbNewMajor.Text = "";</p><p>  Response.Write("<script>alert('該專業(yè)

96、已經(jīng)存在,請重新輸入專業(yè)名稱')</script>");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //實現(xiàn)全選操作</b></p><p>  protected void cb2

97、_CheckedChanged(object sender, EventArgs e)</p><p><b>  {</b></p><p>  bool IsSelect = cb2.Checked;</p><p>  for (int i = 0; i < gvMajor.Rows.Count; i++)</p>&

98、lt;p><b>  {</b></p><p>  ((CheckBox)(gvMajor.Rows[i].FindControl("cbSelect"))).Checked = IsSelect;</p><p>  gvMajor.Rows[i].Cells[3].Controls[0].Visible =!IsSelect;</

99、p><p>  gvMajor.Rows[i].Cells[4].Controls[0].Visible = !IsSelect;</p><p><b>  }</b></p><p>  if (!IsSelect)</p><p><b>  {</b></p><p> 

100、 GetMajor();</p><p>  btnDelete.Enabled = !IsSelect;</p><p><b>  }</b></p><p>  btnNew.Enabled = !IsSelect;</p><p>  btnUpdate.Enabled = !IsSelect;</p>

101、;<p><b>  }</b></p><p><b>  //實現(xiàn)批量刪除</b></p><p>  protected void btnDelete_Click(object sender, EventArgs e)</p><p><b>  {</b></p>

102、<p>  int m = 0;</p><p>  Fannie.InitSystem init = new Fannie.InitSystem();</p><p>  for (int i = 0; i < gvMajor.Rows.Count; i++)</p><p><b>  {</b></p>&l

103、t;p>  if (((CheckBox)(gvMajor.Rows[i].FindControl("cbSelect"))).Checked)</p><p><b>  {</b></p><p>  int id = Convert.ToInt32(gvMajor.DataKeys[i].Value.ToString());</p

104、><p>  init.DeleteMajor(id);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  m++;</b><

105、/p><p><b>  }</b></p><p><b>  }</b></p><p>  if (m==gvMajor.Rows.Count)</p><p><b>  {</b></p><p>  Response.Write("&l

106、t;script>alert('請先選擇需要刪除的記錄')</script>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Ge

107、tMajor();</p><p><b>  }</b></p><p><b>  }</b></p><p>  //更新專業(yè)信息后綁定</p><p>  protected void btnUpdate_Click(object sender, EventArgs e)</p>

108、<p><b>  {</b></p><p>  Fannie.InitSystem init = new Fannie.InitSystem();</p><p><b>  int id;</b></p><p>  string name;</p><p>  for (int

109、 i = 0; i < gvMajor.Rows.Count; i++)</p><p><b>  {</b></p><p>  if (((CheckBox)(gvMajor.Rows[i].Cells[0].Controls[0])).Checked)</p><p><b>  {</b></p>

110、;<p>  id = Convert.ToInt32(gvMajor.DataKeys[i].Value.ToString());</p><p>  name = ((TextBox)gvMajor.Rows[i].FindControl("tbMajor")).Text;</p><p>  init.ModifyMajor(id, name);&l

111、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  GetMajor();</p><p>  btnDelete.Enabled = true;</p><p>  btnNew.Enabled = true;</p>

112、;<p><b>  }</b></p><p>  //取消并綁定專業(yè)信息</p><p>  protected void btnCancle_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  btnDe

113、lete.Enabled = true;</p><p>  btnNew.Enabled = true;</p><p>  btnUpdate.Enabled = true;</p><p>  btEdit.Enabled = true;</p><p>  GetMajor();</p><p><b&g

114、t;  }</b></p><p><b>  }</b></p><p><b>  致 謝</b></p><p>  本系統(tǒng)是在我系xx副教授的精心指導(dǎo)及開發(fā)小組成員密切協(xié)作下完成的。</p><p>  首先,要感謝xx副教授在我本科求學(xué)期間對我的幫助和指點,x老師淵博的專業(yè)知識

115、,嚴謹?shù)闹螌W(xué)態(tài)度使我受益匪淺,沒有x老師嚴格的要求,耐心細致的指導(dǎo),本系統(tǒng)是不會如此順利完成的。</p><p>  還要感謝教務(wù)處xx老師參與了需求分析,并給了我們一些其它方面的幫助和指點,祝存xx同學(xué)分別完成了教師模塊和學(xué)生模塊的開發(fā),還有很多參與了系統(tǒng)測試的同學(xué),在這里對他們表示我誠摯的謝意!</p><p><b>  參考文獻</b></p>

116、<p>  [1] 教育部辦公廳關(guān)于加強普通高等學(xué)校畢業(yè)設(shè)計(論文)工作的通知.教高廳[2004]14 號.</p><p>  [2] 樊崇藝,羅四維.畢業(yè)設(shè)計(論文)在線管理系統(tǒng)的設(shè)計與實現(xiàn)[J].教育技術(shù)導(dǎo)刊,2007,(4):36-37.</p><p>  [3] 李光亞.基于校園網(wǎng)的論文管理系統(tǒng)研究與實現(xiàn)[D].上海:華東師范大學(xué),2007.</p>&

117、lt;p>  [4] 鄭州輕工業(yè)學(xué)院畢業(yè)論文管理系統(tǒng)[Z/OL]. http://jszx.zzuli.edu.cn/lwgl/main_index.asp,2007.</p><p>  [5] 劉群艷,吳興春.B/S 模式的學(xué)位論文提交系統(tǒng)的設(shè)計與實現(xiàn)[J].西安文理學(xué)院學(xué)報, 2007,10(4):87-89.</p><p>  [6] 趙連朋.高校學(xué)位論文數(shù)字化管理系統(tǒng)的設(shè)

118、計開發(fā)[J].黑龍江工程學(xué)院學(xué)報, 2005,19(1):37-40.</p><p>  [7] 陳翔.基于 Web 的論文管理系統(tǒng)的設(shè)計和實現(xiàn)[J].杭州師范學(xué)院學(xué)報,2007,6(6):455-460.</p><p>  [8] 郭巍.基于網(wǎng)絡(luò)的高校畢業(yè)論文工作全程管理信息系統(tǒng)[J].重慶工商大學(xué)學(xué)報, 2005,22(6):587-591.</p><p>

119、;  [9] 汪洪波.NET 框架下基于 Web 服務(wù)架構(gòu)系統(tǒng)研究與應(yīng)用[D].成都:電子科技大學(xué),2007.</p><p>  [10] John Kauffman,Brian Matsik. ASP.NET 數(shù)據(jù)庫入門經(jīng)典—C#編程篇(張哲峰,黃翔宇,譯)[M].北京:清華大學(xué)出版社,2003.</p><p>  [11] FJZhou. 對.NET 平臺總體的理解[Z/OL].h

120、ttp://www.cnblogs.com/fjzhou/archive/2008/01/15/1039550.html,2008.</p><p>  [12] Reynolds. .NET Enterprise Development In C#:From Design To Deployment[M].WroxPress,2002.</p><p>  [13] 鄒勇.基于.NET

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論