2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(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>&l

3、t;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&

4、lt;/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>&l

6、t;p>  5.2 教師模塊的實現(xiàn)18</p><p>  5.3 學(xué)生模塊的實現(xiàn)21</p><p><b>  附 錄22</b></p><p><b>  致 謝27</b></p><p><b>  參考文獻28</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è)論文全過程的管理,同時亦需考慮與教務(wù)系統(tǒng)如何連接,包括使用相同帳號問題、成績自動反饋問題。</p><p>  如何實現(xiàn)一個高校畢業(yè)設(shè)計(論文)管理系統(tǒng),是本課題的主要研究問題。該系統(tǒng)如何與現(xiàn)有的教務(wù)管理系統(tǒng)整合,是本課題研究的重點問題。實現(xiàn)對外數(shù)據(jù)查詢接口,提供對外論文查詢服務(wù)是本

11、課題的一個嘗試。</p><p><b>  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]。其完

12、整的結(jié)構(gòu)如圖 2-1 所示:</p><p>  圖 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&g

13、t;  NET 控件集(諸如數(shù)據(jù)源控件、數(shù)據(jù)顯示控件等),這些控件運行在 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 還允

14、許開發(fā)人員將軟件作為一項服務(wù)進行傳送。通過使用 ASP. NET Web 服務(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 代碼,

15、還能生成隱藏的 HTML 元素來存儲它們當前的狀態(tài)。在提交頁面時,這些信息就會傳送回服務(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)

16、用程序。在 Visual Studio2008中 Visual Basic、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><

17、;p>  Visual Studio 集成開發(fā)環(huán)境中為開發(fā)人員提供了大量的實用工具以提高工作效率。這些工具包括了自動編譯、項目創(chuàng)建向?qū)?、?chuàng)建部署工程等等。</p><p><b>  3 需求分析</b></p><p><b>  3.1 需求分析</b></p><p>  3.1.1 功能需求</p>

18、;<p>  通過與教務(wù)處負責(zé)全校畢業(yè)論文管理工作的老師充分溝通,結(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&

19、gt;<p>  2. 系一級畢業(yè)論文管理者給學(xué)生安排指導(dǎo)教師后,學(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)上提交擬定的題目,等待教研室主任審核。在審核之前這些題目只是

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

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

22、gt;  7. 在論文撰寫階段,學(xué)生可以隨時在系統(tǒng)中查詢和下載往屆學(xué)生畢業(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)教師

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

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

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

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

27、發(fā),而不是從功能角度考慮,所有一個功能模塊會涉及到多個用戶。</p><p>  圖 3- 2 系統(tǒng)功能模塊圖</p><p>  下面對各模塊作簡要說明:</p><p><b>  1. 學(xué)生模塊</b></p><p>  基本功能:課題選擇、我的課題、我的任務(wù)書、開題材料、論文提交、通知公告、網(wǎng)上答疑、下載專區(qū)、

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

29、<p>  基本功能:基礎(chǔ)數(shù)據(jù)維護、教師信息導(dǎo)入、學(xué)生信息導(dǎo)入、教師信息管理、學(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)的概念

30、</p><p>  三層結(jié)構(gòu)是一種成熟、簡單并得到普遍應(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>

31、<p>  三層結(jié)構(gòu)十分有利于系統(tǒng)的開發(fā),維護、部署和擴展。使用三層結(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ù)庫

32、獲得數(shù)據(jù),然后按照相反的順序依次返回將數(shù)據(jù)顯示在表示層。</p><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)用時

33、,則可以結(jié)合多方面的人才,只需少數(shù)人對系統(tǒng)全面了解,從一定程度上降低了開發(fā)的難度。</p><p>  2. 三層架構(gòu)可以更好地支持分布式計算環(huán)境</p><p>  邏輯層的應(yīng)用程序可以放在多個機器上運行,充分利用網(wǎng)絡(luò)的分布式特性。分布式計算的潛力巨大,遠比升級 CPU 有效。美國人曾利用分式計算解密,幾個月就破解了據(jù)稱永遠都破不了的密碼。</p><p>  3

34、. 可適應(yīng)不斷的變化和新的業(yè)務(wù)需求</p><p>  對軟件進行分層可以達到結(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>

35、  多層體系結(jié)構(gòu)將數(shù)據(jù)與程序、數(shù)據(jù)控制與應(yīng)用邏輯分層獨立管理,能更嚴格地控制信息訪問。用戶端只能通過邏輯層來訪問數(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><

36、p>  2. “三層結(jié)構(gòu)”開發(fā)模式,入門難度夠高,難于理解和學(xué)習(xí)。以這種模式開發(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)

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

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

39、斷等。業(yè)務(wù)邏輯層接收表示層傳來的數(shù)據(jù)(簡單變量、業(yè)務(wù)實體類型對象或業(yè)務(wù)實體集合類型對象),然后根據(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ù)庫。這里封裝所

40、有訪問數(shù)據(jù)庫的相關(guān)代碼,包括 SQL 語句,存儲過程等。本層接收業(yè)務(wù)邏輯層傳來的數(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

41、 2000 數(shù)據(jù)庫, GDS 數(shù)據(jù)庫是本系統(tǒng)的數(shù)據(jù)庫,它用于存放權(quán)限表、專業(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 表

42、)和選題表(ChosenSubject 表)結(jié)構(gòu)比較簡單,分別用來存儲各類用戶權(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 BaseSystemDa

43、ta表</p><p>  2. 管理員表、學(xué)生表和教師表</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> 

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

45、表 4-6和表 4-7 所示。</p><p>  表 4- 5 DownloadZone表</p><p>  表 4- 6 MailInfo表</p><p>  表 4- 7 PublicNotice 表</p><p><b>  4. 課題信息表</b></p><p>  課題信息表(

46、Subjects 表)用于記錄教師申報的課題的詳細信息,結(jié)構(gòu)如表 4-8 所示。</p><p>  表 4- 8 Subjects 表</p><p>  4.3.2 存儲過程設(shè)計</p><p>  本系統(tǒng)所有的數(shù)據(jù)庫操作都使用存儲過程,使用存儲過程主要是為了便于對SQL 語句進行集中管理。由于存儲過程是在服務(wù)器上編譯執(zhí)行的,在一定程度上也有利于提高系統(tǒng)性能。另

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

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

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

50、,用實體(集合)類去傳遞結(jié)果,顯得有些困難。而且結(jié)果集本身就是依靠多個實體及實體間關(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

51、><p>  表 4- 5 公共層主要類</p><p><b>  5 詳細設(shè)計</b></p><p>  本系統(tǒng)分為三大模塊:管理員模塊、教師模塊、學(xué)生模塊,由三個人獨立進行開發(fā)最終集成而來,以下是各模塊的運行效果:</p><p>  5.1 管理員模塊的實現(xiàn)</p><p>  畢業(yè)設(shè)施(論

52、文)管理系統(tǒng)開始啟用時,必須先由管理員對系統(tǒng)進行初始配置,具體包括以下內(nèi)容:</p><p><b>  1.基礎(chǔ)數(shù)據(jù)維護</b></p><p>  以管理員身份登錄(系統(tǒng)預(yù)先內(nèi)置了校管理員賬號,登錄后可修改),分別進行學(xué)院(系)設(shè)置,專業(yè)設(shè)置,時間設(shè)置。</p><p>  2 .導(dǎo)入學(xué)生、教師基本信息</p><p&g

53、t;  下載指定模板,按固定格式文件導(dǎo)入學(xué)生和教師信息(主要是學(xué)號/教師編號、姓名等)。使學(xué)生和教師的賬戶和密碼都初始化為各自編號。</p><p><b>  3 .下載專區(qū)</b></p><p>  用來上傳、管理、下載畢業(yè)設(shè)計的相關(guān)文件材料。</p><p>  4 .教師、學(xué)生管理</p><p>  用來管理

54、使用本系統(tǒng)的相關(guān)教師和學(xué)生信息及其資格進行審核。</p><p><b>  5 .申報課題管理</b></p><p>  用來管理教師申報的課題信息及對其進行審核。</p><p><b>  6 .選題管理</b></p><p>  用來對課題的選擇狀況,學(xué)生的選題情況進行監(jiān)測和管理(可針對

55、專業(yè)),并能實現(xiàn)對監(jiān)測結(jié)果進行導(dǎo)出。</p><p><b>  7 .數(shù)據(jù)庫維護</b></p><p>  用來實現(xiàn)對數(shù)據(jù)庫進行備份及還原操作,保障系統(tǒng)的安全性。</p><p>  5.2 教師模塊的實現(xiàn)</p><p>  1 .登錄及密碼修改</p><p>  用來實現(xiàn)不同用戶的登錄,

56、根據(jù)用戶類型不同獲得不同權(quán)限,同時共用密碼修改功能,如下圖5-1、圖5-2所示。</p><p><b>  圖5-1 主界面</b></p><p><b>  圖5-2 密碼修改</b></p><p><b>  2 .課題申報</b></p><p>  用來實現(xiàn)申報課

57、題信息,并對自己申報的課題進行管理和維護,如下圖 5 - 3、圖 5 - 4所示。</p><p><b>  圖5-3 課題申報</b></p><p>  圖5-4 課題管理維護</p><p><b>  3 .全院課題查看</b></p><p>  用來查看全院的課題申報情況并能瀏覽課題詳

58、細信息,如下圖 5 - 5所示。</p><p><b>  圖5-5 全院課題</b></p><p><b>  4 .選題管理</b></p><p>  用來查看自己的被選課題和未選課題情況,對被選課題可以查看選課的學(xué)生情況,并能對學(xué)生進行退選,如下圖 5 - 6、圖 5 - 7所示。</p><

59、;p><b>  圖5-6 全院課題</b></p><p>  圖5-7 學(xué)生選課信息</p><p><b>  5 .發(fā)布任務(wù)書</b></p><p>  用來給選擇了我的課題的學(xué)生發(fā)送相應(yīng)任務(wù)書,并接收學(xué)生提交的任務(wù)書,如下圖 5 - 8所示。</p><p>  圖5-8 發(fā)布任務(wù)

60、書</p><p><b>  6 .網(wǎng)上答疑</b></p><p>  用來對選擇了我的課題的學(xué)生進行網(wǎng)上答疑,如下圖 5 - 9所示。</p><p><b>  圖5-9 網(wǎng)上答疑</b></p><p><b>  7 .本組學(xué)生信息</b></p>&

61、lt;p>  用來查看所有選擇了我的課題的學(xué)生信息,如下圖 5 - 10所示。</p><p>  圖5-10 本組學(xué)生信息</p><p><b>  8 .個人信息維護</b></p><p>  用來對個人信息及聯(lián)系方式進行維護,如下圖 5 - 11所示。</p><p>  圖5-11 個人信息維護<

62、/p><p>  5.3 學(xué)生模塊的實現(xiàn)</p><p><b>  1. 課題選擇</b></p><p>  查看所有自己可以選擇的課題并選擇一個課題。</p><p><b>  2. 我的課題</b></p><p>  顯示自己選擇的課題的基本信息,在時間允許范圍內(nèi)可以

63、退定所選課題。</p><p><b>  3. 我的任務(wù)書</b></p><p>  接收并回發(fā)我的任務(wù)書。</p><p><b>  4. 提交開題材料</b></p><p>  選擇要提交的開題資料及接收教師并上傳開題資料至教師端。</p><p><b&g

64、t;  5. 提交論文</b></p><p>  選擇要提交的正式論文及接收教師并上傳論文至教師端。</p><p><b>  6. 通知公告</b></p><p>  查看管理員發(fā)布的通知公告。</p><p><b>  7. 下載專區(qū)</b></p><p

65、>  下載畢業(yè)設(shè)計相關(guān)材料。</p><p><b>  8. 個人信息維護</b></p><p>  對本人基本信息及聯(lián)系方式進行維護。</p><p><b>  附 錄</b></p><p>  教師申報課題后臺代碼:</p><p>  public par

66、tial class Teacher_PublicSubject : System.Web.UI.Page</p><p><b>  {</b></p><p>  static DataTable dtTea; //存放教師信息</p><p>  static string t2ID = ""; //存放

67、教師2的ID號</p><p>  protected void Page_Load(object sender, EventArgs e)</p><p>  { //頁面載入</p><p>  if (!IsPostBack)</p><p>  { //判斷是否申報課題時間內(nèi)</p><p>  if

68、(!IsTime())</p><p><b>  { </b></p><p>  Response.Write("<script> alert('不在申報課題有效時間內(nèi),不能申報課題!');window.location.href='MySubjects.aspx'</script>"

69、);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if (Response.Cookies["user"] != null)</p><

70、p><b>  {</b></p><p>  tbT1Name.Text = Session["user"].ToString(); //獲取當前登錄教師姓名</p><p>  //HttpCookie cookie = new HttpCookie("login");</p><p>

71、  //System.Text.Encoding enc = System.Text.Encoding.GetEncoding("utf-8");</p><p>  //tbT1Name.Text = HttpUtility.UrlDecode(cookie["user"].ToString(),enc);//獲取用戶姓名</p><p>  tb

72、T1Name.Enabled = false;</p><p>  GetPost(); //獲取當前登錄教師職稱</p><p><b>  }</b></p><p>  tbSubName.Focus(); //獲得焦點</p><p>  GetProfession(); //獲取所有專業(yè)

73、名稱</p><p>  GetAnotherTeacher(); //獲取第二個教師姓名</p><p>  SuitYear(); //獲取可選畢業(yè)設(shè)計年份</p><p><b>  }</b></p><p><b>  }</b></p><p>&l

74、t;b>  }</b></p><p>  //獲取可選畢業(yè)設(shè)計年份</p><p>  private void SuitYear()</p><p><b>  {</b></p><p>  int year = int.Parse(DateTime.Now.Year.ToString());&l

75、t;/p><p>  for (int i = year; i <= year + 10; i++)</p><p><b>  {</b></p><p>  ListItem li = new ListItem();</p><p>  li.Text = i.ToString();</p><

76、p>  ddlSuitYear.Items.Add(li);</p><p>  li = null;</p><p><b>  }</b></p><p><b>  }</b></p><p>  //獲取第二個教師姓名</p><p>  private voi

77、d GetAnotherTeacher()</p><p><b>  {</b></p><p>  Fannie.Subjects sub = new Fannie.Subjects();</p><p>  DataTable dt = sub.GetAnotherTeacher(Request.Cookies["id"

78、;].Value.ToString());</p><p>  dtTea = dt;</p><p>  for (int i = 0; i < dt.Rows.Count; i++)</p><p><b>  {</b></p><p>  ListItem li = new ListItem();</

79、p><p>  li.Text = dt.Rows[i][1].ToString();</p><p>  ddlT2Name.Items.Add(li);</p><p>  li = null;</p><p><b>  }</b></p><p><b>  }</b>&

80、lt;/p><p><b>  //獲取專業(yè)名稱</b></p><p>  private void GetProfession()</p><p><b>  {</b></p><p>  Fannie.Subjects sub = new Fannie.Subjects();</p>

81、<p>  DataTable dt = sub.GetProfession();</p><p>  for (int i = 0; i < dt.Rows.Count; i++)</p><p><b>  {</b></p><p>  ListItem li = new ListItem();</p>

82、<p>  li.Text = dt.Rows[i][0].ToString();</p><p>  ddlMajor.Items.Add(li);</p><p>  li = null;</p><p><b>  }</b></p><p><b>  }</b></p>

83、;<p>  //根據(jù)登錄id獲取教師職稱</p><p>  private void GetPost()</p><p><b>  {</b></p><p>  if (tbT1Name.Text.Trim() != "")</p><p><b>  {</b&

84、gt;</p><p>  Fannie.Teacher teacher = new Fannie.Teacher();</p><p>  DataTable dt = teacher.GetTeacherPost(Request.Cookies["id"].Value.ToString());</p><p>  tbPost1.Text =

85、 dt.Rows[0][0].ToString();</p><p>  tbPost1.Enabled=false;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //選擇適用專業(yè)</b></p>&

86、lt;p>  protected void ddlMajor_SelectedIndexChanged(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (ddlMajor.SelectedIndex != 0)</p><p><b>  {</b&

87、gt;</p><p>  if (tbMajor.Text == "")</p><p><b>  {</b></p><p>  tbMajor.Text = ddlMajor.SelectedValue;</p><p><b>  }</b></p>&l

88、t;p><b>  else</b></p><p><b>  {</b></p><p>  if (!tbMajor.Text.Contains(ddlMajor.SelectedValue))</p><p><b>  {</b></p><p>  tbMaj

89、or.Text += "," + ddlMajor.SelectedValue;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</

90、b></p><p>  tbMajor.Text = "";</p><p><b>  }</b></p><p>  //提交申報課題信息</p><p>  protected void btnSubmit_Click(object sender, EventArgs e)</p&

91、gt;<p><b>  {</b></p><p>  if (IsTime())</p><p><b>  {</b></p><p>  string title = tbSubName.Text.Trim();//課題名稱</p><p>  string level = d

92、dlLevel.Text;</p><p>  string major = tbMajor.Text.Trim();//專業(yè)</p><p>  string type = rblType.SelectedValue.Trim();//課題類型</p><p>  string origin = rblOrigin.SelectedValue.Trim();//課

93、題來源</p><p>  string isNew = rblIsNew.SelectedValue.Trim();//課題的新舊等等</p><p>  int isRight;//是否適中</p><p>  if (rblWorkLoad.SelectedValue == "是")</p><p>  isRigh

94、t = 1;</p><p><b>  else</b></p><p>  isRight = 0;</p><p>  int isOk;//是否能達到訓(xùn)練要求</p><p>  if (rblIsOK.SelectedValue == "是")</p><p><

95、;b>  isOk = 1;</b></p><p><b>  else</b></p><p><b>  isOk = 0;</b></p><p>  string t1 = Request.Cookies["id"].Value.ToString();//教師編號1</

96、p><p>  string t2 = t2ID;</p><p>  string about = tbAbout.Text.Trim();//課題內(nèi)容</p><p>  int maxPeople = Convert.ToInt32(ddlMax.Text);//最大人數(shù)</p><p>  string year = ddlSuitYea

97、r.Text.Trim();</p><p>  object[] pt = new object[13] { title, major, level, type, origin, isNew, isRight, isOk, t1, t2, about, maxPeople, year };</p><p>  if (ddlLevel.SelectedIndex == 0 || ddlS

98、uitYear.SelectedIndex == 0)</p><p><b>  {</b></p><p>  Response.Write("<script>alert('請檢查是否選擇了正確的適用層次或適用年份!')</script>");</p><p><b> 

99、 }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Fannie.Subjects sub = new Fannie.Subjects();</p><p>  if (sub.InsertSubject(pt) >

100、; 0)</p><p><b>  {</b></p><p>  Response.Write("<script>alert('課題申報成功!');location='PublicSub.aspx'</script>");</p><p><b>  }&

101、lt;/b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Response.Write("<script>alert('課題申報失敗,請重新申報!')</script>");</p>

102、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>&

103、lt;p>  Response.Write("<script> alert('不在申報課題有效時間內(nèi),不能申報!');history.go(-1)</script>");</p><p><b>  }</b></p><p><b>  }</b></p><

104、p>  //重置申報課題信息</p><p>  protected void btnReset_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  tbSubName.Text = "";</p><p>  tbMa

105、jor.Text = "";</p><p>  rblType.SelectedIndex = 0;</p><p>  rblOrigin.SelectedIndex = 0;</p><p>  rblIsNew.SelectedIndex = 0;</p><p>  rblWorkLoad.SelectedInd

106、ex = 0;</p><p>  rblIsOK.SelectedIndex = 0;</p><p>  ddlT2Name.SelectedIndex = 0;</p><p>  ddlLevel.SelectedIndex = 0;</p><p>  ddlMajor.SelectedIndex = 0;</p>&

107、lt;p>  ddlMax.SelectedIndex = 0;</p><p>  ddlSuitYear.SelectedIndex = 0;</p><p>  tbPost2.Text = "";</p><p>  tbAbout.Text = "";</p><p><b>

108、  }</b></p><p>  //選擇教師名稱返回職稱和編號</p><p>  protected void ddlT2Name_SelectedIndexChanged(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (ddl

109、T2Name.SelectedIndex != 0)</p><p><b>  {</b></p><p>  tbPost2.Text = dtTea.Rows[ddlT2Name.SelectedIndex - 1][2].ToString();</p><p>  t2ID = dtTea.Rows[ddlT2Name.Selected

110、Index - 1][0].ToString();</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  tbPost2.Text = "";</p>

111、<p>  t2ID = "";</p><p><b>  }</b></p><p><b>  }</b></p><p>  //判斷是否申報課題時間內(nèi)</p><p>  private bool IsTime()</p><p>&l

112、t;b>  {</b></p><p>  DateTime dtm = DateTime.Now;</p><p>  DataTable dt = new DataTable();</p><p>  Fannie.Teacher tea = new Fannie.Teacher();</p><p>  dt = te

113、a.GetChooseTime().Tables[0];</p><p>  DateTime begin = Convert.ToDateTime(dt.Rows[0]["SubjectBegin"].ToString());</p><p>  DateTime end = Convert.ToDateTime(dt.Rows[0]["SubjectEnd

114、"].ToString());</p><p>  if (dtm < begin || dtm > end)</p><p><b>  {</b></p><p>  return false;</p><p><b>  }</b></p><p>

115、;<b>  else</b></p><p><b>  {</b></p><p>  return true;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

116、  }</b></p><p><b>  致 謝</b></p><p>  本系統(tǒng)是在我系xx副教授的精心指導(dǎo)及開發(fā)小組成員密切協(xié)作下完成的。</p><p>  首先,要感謝xx副教授在我本科求學(xué)期間對我的幫助和指點,x老師淵博的專業(yè)知識,嚴謹?shù)闹螌W(xué)態(tài)度使我受益匪淺,沒有x老師嚴格的要求,耐心細致的指導(dǎo),本系統(tǒng)是不會如此順利完

117、成的。</p><p>  還要感謝教務(wù)處xx老師參與了需求分析,并給了我們一些其它方面的幫助和指點,xx同學(xué)分別完成了管理員模塊和學(xué)生模塊的開發(fā),還有很多參與了系統(tǒng)測試的同學(xué),在這里對他們表示我誠摯的謝意!</p><p><b>  參考文獻</b></p><p>  [1] 教育部辦公廳關(guān)于加強普通高等學(xué)校畢業(yè)設(shè)計(論文)工作的通知.教

118、高廳[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><p>  [4] 鄭州輕工業(yè)學(xué)院畢業(yè)論文管理系統(tǒng)[Z/OL]. </p>

119、;<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è)計開發(fā)[J].黑龍江工程學(xué)院學(xué)報, 2005,19(1):37-40.</p><p>  [7] 陳翔.基于 Web 的論文管理系統(tǒng)的設(shè)計和實現(xiàn)[J].杭州師范學(xué)院學(xué)

120、報,2007,6(6):455-460.</p><p>  [8] 郭巍.基于網(wǎng)絡(luò)的高校畢業(yè)論文工作全程管理信息系統(tǒng)[J].重慶工商大學(xué)學(xué)報, 2005,22(6):587-591.</p><p>  [9] 汪洪波.NET 框架下基于 Web 服務(wù)架構(gòu)系統(tǒng)研究與應(yīng)用[D].成都:電子科技大學(xué),2007.</p><p>  [10] John Kauffman

121、,Brian Matsik. ASP.NET 數(shù)據(jù)庫入門經(jīng)典—C#編程篇(張哲峰,黃翔宇,譯)[M].北京:清華大學(xué)出版社,2003.</p><p>  [11] FJZhou. 對.NET 平臺總體的理解[Z/OL].</p><p>  [12] Reynolds. .NET Enterprise Development In C#:From Design To Deployment

122、[M].WroxPress,2002.</p><p>  [13] 鄒勇.基于.NET 的 WEB 在線考試系統(tǒng)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2007.</p><p>  [14] Dong Weihua, Liu Jiping,Guo Qingsheng.Construction of E-Government GIS Based on.Net platform and We

123、b Service[C].IEEE,2006,915-917.</p><p>  [15] 陳忠睿.基于 ASP_NET 的辦公自動化系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:四川大學(xué),2005.</p><p>  [16] 陳冠軍.精通 ASP.NET 2.0 企業(yè)級項目開發(fā)[M].北京:人民郵電出版社,2007.</p><p>  [17] 岳昆,王曉玲,周傲英.We

124、b 服務(wù)核心支撐技術(shù):研究綜述[J].軟件學(xué)報,2004, 15(3):428-442.</p><p>  [18] 祝建江.基于.NET Web Service 的多層分布式體系結(jié)構(gòu)的研究與應(yīng)用[D]. 杭州:浙江工業(yè)大學(xué),2006.</p><p>  數(shù)據(jù)庫系統(tǒng)開發(fā)與維護 課程設(shè)計成績評定表</p><p>  指導(dǎo)教師簽字:

溫馨提示

  • 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

提交評論