




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué) 號(hào): 202140410109 數(shù)據(jù)庫系統(tǒng)開發(fā)與維護(hù)題 目畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)教 學(xué) 院計(jì)算機(jī)學(xué)院專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí)08計(jì)科(1)班姓 名 指導(dǎo)教師 2021年12月28日 目錄1 序言11.1 課題的來源與意義11.1.1 課題的來源11.1.2 課題的意義11.2 課題研究的主要內(nèi)容12 開發(fā)技術(shù)與工具22.1 Microsoft.NET 技術(shù)22.2 ASP.NET 簡(jiǎn)介22.3 Visual Studio 202133 需求分析43.1 需求分析43.1.1 功能需求43.1.2 角色和工作流程53.2 系統(tǒng)要實(shí)現(xiàn)的目標(biāo)64 總體設(shè)計(jì)84.1 三層結(jié)構(gòu)概述84.1.1
2、 三層結(jié)構(gòu)的概念84.1.2 三層結(jié)構(gòu)的優(yōu)點(diǎn)84.1.3 三層結(jié)構(gòu)的缺點(diǎn)94.2 系統(tǒng)的分層設(shè)計(jì)94.3 數(shù)據(jù)庫設(shè)計(jì)114.3.1 數(shù)據(jù)表設(shè)計(jì)114.3.2 存儲(chǔ)過程設(shè)計(jì)154.4 公共層165 詳細(xì)設(shè)計(jì)175.1 管理員模塊的實(shí)現(xiàn)175.2 教師模塊的實(shí)現(xiàn)175.3 學(xué)生模塊的實(shí)現(xiàn)21附 錄22致 謝30參考文獻(xiàn)315數(shù)據(jù)庫系統(tǒng)開發(fā)與維護(hù)1 序言1.1 課題的來源與意義1.1.1 課題的來源本課題是“黃石理工學(xué)院計(jì)算機(jī)學(xué)院”立項(xiàng)項(xiàng)目,立項(xiàng)時(shí)間為 2021 年 9 月。1.1.2 課題的意義高校畢業(yè)論文是高校本科人才培養(yǎng)方案的一個(gè)重要組成部分,也是學(xué)生畢業(yè)與學(xué)位資格認(rèn)證的重要依據(jù)。2021 年
3、教育部辦公廳下發(fā)的關(guān)于加強(qiáng)普通高等學(xué)校畢業(yè)設(shè)計(jì)(論文)工作的通知指出:要充分認(rèn)識(shí)畢業(yè)設(shè)計(jì)(論文)環(huán)節(jié)的重要意義1,加強(qiáng)畢業(yè)論文的管理工作,保障和不斷提高畢業(yè)論文的質(zhì)量。整個(gè)本科畢業(yè)論文的工作過程持續(xù)時(shí)間長(zhǎng),涉及人數(shù)多(學(xué)生,指導(dǎo)教師和教學(xué)管理人員),并且隨著高校擴(kuò)招,學(xué)生人數(shù)的不斷增長(zhǎng),畢業(yè)論文工作過程中的工作量越來越大,使用傳統(tǒng)的管理方式也變得越來越困難,在這樣的背景下如何加強(qiáng)畢業(yè)論文的管理工作,是一個(gè)亟待探討和研究的問題。目前,許多高校的本科畢業(yè)論文管理工作相對(duì)滯后,基本采用多年來一貫的操作模式:教師命題、學(xué)生選題,經(jīng)過開題、論文撰寫和論文答辯確定成績(jī),最后由教學(xué)管理人員將論文歸檔保存,整
4、個(gè)過程基本靠人工來完成。1.2 課題研究的主要內(nèi)容高校本科畢業(yè)論文管理系統(tǒng)除對(duì)論文本身進(jìn)行管理外,還應(yīng)考慮如何提供對(duì)畢業(yè)論文全過程的管理問題。如何實(shí)現(xiàn)一個(gè)高校畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng),是本課題的主要研究問題。該系統(tǒng)如何與現(xiàn)有的教務(wù)管理系統(tǒng)整合,是本課題研究的重點(diǎn)問題。實(shí)現(xiàn)對(duì)外數(shù)據(jù)查詢接口,提供對(duì)外論文查詢服務(wù)是本課題的一個(gè)嘗試。2 開發(fā)技術(shù)與工具2.1 Microsoft.NET 技術(shù).NET 框架包括用于創(chuàng)建和操作新一代服務(wù)的.NET 基礎(chǔ)結(jié)構(gòu)和工具,用于建立新一代高度分布式的數(shù)以百萬計(jì)的.NET 組件服務(wù),以及啟用新一代智能互聯(lián)網(wǎng)設(shè)備的.NET 設(shè)備軟件12。其完整的結(jié)構(gòu)如圖 2-1 所示
5、:圖 2- 1 Microsoft.NET 框架2.2 ASP.NET 簡(jiǎn)介ASP. NET 提供了一個(gè) Web 應(yīng)用程序模型,該模型由一組控件和一個(gè)基本結(jié)構(gòu)組成。有了它,Web 應(yīng)用程序的構(gòu)建變得非常容易。開發(fā)人員可以直接使用 ASP.NET 控件集(諸如數(shù)據(jù)源控件、數(shù)據(jù)顯示控件等),這些控件運(yùn)行在 Web 服務(wù)器上,它們將用戶界面轉(zhuǎn)換成 HTML 格式后再發(fā)送給瀏覽器。在服務(wù)器上,控件負(fù)責(zé)將面向?qū)ο蟮木幊棠P统尸F(xiàn)給 Web 開發(fā)人員,這種編程模型能提供面向?qū)ο蟮木幊碳夹g(shù)擁有的豐富功能。ASP. NET 還提供一些基本結(jié)構(gòu)服務(wù)(諸如會(huì)話狀態(tài)管理和進(jìn)程循環(huán)),這些服務(wù)進(jìn)一步減少了開發(fā)人員要編寫
6、的代碼量,并使應(yīng)用程序的可靠性得到了大幅度提高。ASP. NET 還允許開發(fā)人員將軟件作為一項(xiàng)服務(wù)進(jìn)行傳送。通過使用 ASP. NET Web 服務(wù)功能,ASP. NET 開發(fā)人員只需進(jìn)行簡(jiǎn)單的業(yè)務(wù)邏輯編程,而由 ASP. NET 基本結(jié)構(gòu)負(fù)責(zé)通過 SOAP 傳送服務(wù)15。.NET 開發(fā)平臺(tái)為開發(fā) WEB 應(yīng)用程序提供了強(qiáng)大的技術(shù)支持,使開發(fā)變得非常便捷,高效。ASP.NET 通過服務(wù)器控件解決了上述問題。服務(wù)器端控件會(huì)生成發(fā)送給瀏覽器的 HTML 代碼,還能生成隱藏的 HTML 元素來存儲(chǔ)它們當(dāng)前的狀態(tài)。在提交頁面時(shí),這些信息就會(huì)傳送回服務(wù)器,控件將自動(dòng)處理這些信息,改變 HTML 并顯示控
7、件。2.3 Visual Studio 2021Visual Studio2021 是微軟提供的集成開發(fā)環(huán)境,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。在 Visual Studio2021中 Visual Basic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境(IDE),該環(huán)境允許它們共享工具,并有助于創(chuàng)建混合語言解決方案30。另外,這些語言充分利用了.NET Framework 的功能,提供了對(duì)簡(jiǎn)化 ASP.NET Web 應(yīng)用程序開發(fā)和 XML Web Service 開發(fā)的關(guān)
8、鍵技術(shù)支持。Visual Studio 集成開發(fā)環(huán)境中為開發(fā)人員提供了大量的實(shí)用工具以提高工作效率。這些工具包括了自動(dòng)編譯、項(xiàng)目創(chuàng)建向?qū)А?chuàng)建部署工程等等。3 需求分析3.1 需求分析3.1.1 功能需求通過與教務(wù)處負(fù)責(zé)全校畢業(yè)論文管理工作的老師充分溝通,結(jié)合自己作為系一級(jí)畢業(yè)論文工作的管理者對(duì)畢業(yè)論文工作過程的了解,并在與部分教師和學(xué)生反復(fù)交流的基礎(chǔ)上,得出高校畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)的主要需求如下:1 在每次論文工作開始時(shí),系統(tǒng)應(yīng)提供教師、學(xué)生名單,以便系一級(jí)畢業(yè)論文管理者給學(xué)生安排指導(dǎo)教師。系統(tǒng)應(yīng)提供交互界界面,滿足給學(xué)生安排指導(dǎo)教師的要求。2 系一級(jí)畢業(yè)論文管理者給學(xué)生安排指導(dǎo)教師后,
9、學(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)系。3 學(xué)生和指導(dǎo)教師相互聯(lián)系,根據(jù)實(shí)際情況擬定論文題目,指導(dǎo)教師可通過系統(tǒng)在網(wǎng)上提交擬定的題目,等待教研室主任審核。在審核之前這些題目只是本次待選題目(簡(jiǎn)稱選題),只有通過審核的選題才能最終確定為學(xué)生的正式題目。教師和學(xué)生還應(yīng)能通過系統(tǒng)看到歷屆選題信息。4 教研室主任可以在網(wǎng)上審核本教研室教師提交的選題,若審核未通過,可以輸入簡(jiǎn)單未通過審核的原因,教師可以看到審核結(jié)果。5 選題經(jīng)審核后,教師通過系統(tǒng)可以正式指派給學(xué)生。若審
10、核未通過,教師需和學(xué)生重新討論確定選題,提交、等待審核直至通過。在實(shí)際工作中,在系統(tǒng)中完成以上操作后,每個(gè)指導(dǎo)教師指導(dǎo)哪些學(xué)生確定了,每個(gè)學(xué)生的論文題目也確定了,此時(shí)用戶在系統(tǒng)可以看到本屆論文選題的全部結(jié)果。此后將進(jìn)入論文撰寫階段。6 在論文撰寫階段,系統(tǒng)應(yīng)提供交流平臺(tái),以便學(xué)生和教師交流,并允許通過系統(tǒng)上傳下載文件。7 在論文撰寫階段,學(xué)生可以隨時(shí)在系統(tǒng)中查詢和下載往屆學(xué)生畢業(yè)論文,了解論文內(nèi)容、要求,格式等信息。8 系一級(jí)管理員要求系統(tǒng)能夠根據(jù)指定條件生成答辯安排表,教師、學(xué)生可以看到答辯安排。9 答辯結(jié)束后,學(xué)生要通過系統(tǒng)提交論文(包括論文相關(guān)信息和電子文檔)。10 學(xué)生提交論文后,指導(dǎo)
11、教師進(jìn)入系統(tǒng),對(duì)學(xué)生提交的論文進(jìn)行審核,審核合格者,教師提交該學(xué)生的論文成績(jī),否則該學(xué)生需重新提交,直至審核通過。期間學(xué)生可以在系統(tǒng)中查看審核結(jié)果和評(píng)分結(jié)果。11 上述工作完成后,系管理員可以通過系統(tǒng)打印報(bào)表(如:選題結(jié)果一覽表、成績(jī)匯總表、成績(jī)分析表等)。12 在整個(gè)論文工作過程中,系管理員可以在系統(tǒng)中看到本系各指導(dǎo)教師工作進(jìn)度,校管理員可以在系統(tǒng)中看到各系工作進(jìn)度。13 在整個(gè)論文工作過程中,系管理員和校管理員可以在系統(tǒng)中發(fā)布公告,管理自己發(fā)布的公告,教師,學(xué)生可以查看公告。14 用戶可以維護(hù)個(gè)人信息,包括修改 ,Email 等。3.1.2 角色和工作流程經(jīng)過以上功能需求分析,可以得出論文
12、管理系統(tǒng)的用戶有:學(xué)生、教師、系管理員,不同用戶在系統(tǒng)中擔(dān)任不同角色,具有不同權(quán)限,要完成不同操作。不同用戶的操作又有著相互依賴關(guān)系。有些操作是公共的,如查看公告、密碼修改,有些操作是特定角色才能進(jìn)行的,如課題申報(bào)。按畢業(yè)論文工作的時(shí)間順序,及其不同角色在不同時(shí)間階段要參與的活動(dòng)綜合分析后,得出畢業(yè)論文工作過程流程圖,如圖 3-1 所示: 圖 3- 1 系統(tǒng)工作流程從上圖可以看出,不同階段,有的用戶需要完成某項(xiàng)工作,而有的用戶處在等待狀態(tài),等其他用戶工作完成前面才能開始自己下面的工作。3.2 系統(tǒng)要實(shí)現(xiàn)的目標(biāo)根據(jù)上面需求分析,最終確定系統(tǒng)要實(shí)現(xiàn)如圖 3-2 所示功能模塊,由于模塊劃分是從用戶角
13、度出發(fā),而不是從功能角度考慮,所有一個(gè)功能模塊會(huì)涉及到多個(gè)用戶。圖 3- 2 系統(tǒng)功能模塊圖下面對(duì)各模塊作簡(jiǎn)要說明:1. 學(xué)生模塊基本功能:課題選擇、我的課題、我的任務(wù)書、開題材料、論文提交、通知公告、網(wǎng)上答疑、下載專區(qū)、個(gè)人信息維護(hù)、密碼修改。2. 教師模塊基本功能:課題申報(bào)、全院課題、選題管理、發(fā)布任務(wù)書、開題報(bào)告、通知公告、網(wǎng)上答疑、論文接收、歸檔材料、下載專區(qū)、本組學(xué)生信息、個(gè)人信息管理、密碼修改。3. 管理模塊基本功能:基礎(chǔ)數(shù)據(jù)維護(hù)、教師信息導(dǎo)入、學(xué)生信息導(dǎo)入、教師信息管理、學(xué)生信息管理、教師申報(bào)課題管理、選題管理、賬戶管理、通知公告、歸檔材料、下載專區(qū)、數(shù)據(jù)庫維護(hù)、個(gè)人信息管理、密
14、碼修改。4 總體設(shè)計(jì)4.1 三層結(jié)構(gòu)概述4.1.1 三層結(jié)構(gòu)的概念三層結(jié)構(gòu)是一種成熟、簡(jiǎn)單并得到普遍應(yīng)用的應(yīng)用程序架構(gòu),它將應(yīng)用程序結(jié)構(gòu)劃分為三個(gè)邏輯層:戶表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。其中將實(shí)現(xiàn)人機(jī)交互界面的所有表單和組件放在表示層,將所有業(yè)務(wù)規(guī)則和邏輯的實(shí)現(xiàn)封裝在負(fù)責(zé)業(yè)務(wù)邏輯組件中,將所有和數(shù)據(jù)庫的交互封裝在數(shù)據(jù)訪問組件中33。其結(jié)構(gòu)如圖 4-1 所示。圖 4- 1 三層結(jié)構(gòu)示意圖三層結(jié)構(gòu)十分有利于系統(tǒng)的開發(fā),維護(hù)、部署和擴(kuò)展。使用三層結(jié)構(gòu)的目的,是為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”,采用“分而治之”的思想,把問題劃分開來各個(gè)解決,易于控制,易于延展,易于分配資源。三層結(jié)構(gòu)是一種嚴(yán)格分層方法,即
15、數(shù)據(jù)訪問層只能被業(yè)務(wù)邏輯層訪問,業(yè)務(wù)邏輯層只能被表示層訪問,用戶通過表示層將請(qǐng)求傳送給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層完成相關(guān)業(yè)務(wù)規(guī)則和邏輯,并通過數(shù)據(jù)訪問層訪問數(shù)據(jù)庫獲得數(shù)據(jù),然后按照相反的順序依次返回將數(shù)據(jù)顯示在表示層。4.1.2 三層結(jié)構(gòu)的優(yōu)點(diǎn)1 從開發(fā)角度和應(yīng)用角度來看,三層架構(gòu)比雙層或單層結(jié)構(gòu)都有更大的優(yōu)勢(shì)三層結(jié)構(gòu)適合群體開發(fā),每人可以有不同的分工,協(xié)同工作使效率倍增。開發(fā)雙層或單層應(yīng)用時(shí),每個(gè)開發(fā)人員都應(yīng)對(duì)系統(tǒng)有較深的理解,能力要求很高,開發(fā)三層應(yīng)用時(shí),則可以結(jié)合多方面的人才,只需少數(shù)人對(duì)系統(tǒng)全面了解,從一定程度上降低了開發(fā)的難度。2 三層架構(gòu)可以更好地支持分布式計(jì)算環(huán)境邏輯層的應(yīng)用程序可以
16、放在多個(gè)機(jī)器上運(yùn)行,充分利用網(wǎng)絡(luò)的分布式特性。分布式計(jì)算的潛力巨大,遠(yuǎn)比升級(jí) CPU 有效。美國人曾利用分式計(jì)算解密,幾個(gè)月就破解了據(jù)稱永遠(yuǎn)都破不了的密碼。3 可適應(yīng)不斷的變化和新的業(yè)務(wù)需求對(duì)軟件進(jìn)行分層可以達(dá)到結(jié)構(gòu)清晰、易于重用的目的。任何應(yīng)用系統(tǒng)實(shí)施的重點(diǎn)不在于需求確定以后能否實(shí)現(xiàn)這些需求,而是在系統(tǒng)實(shí)施后如何適應(yīng)變化的需求。三層結(jié)構(gòu)由于對(duì)系統(tǒng)分層設(shè)計(jì),一旦日后需求發(fā)生變化,只需修改相應(yīng)層的部分代碼,對(duì)其他層沒有影響或影響很小。4 能有效提高系統(tǒng)安全性多層體系結(jié)構(gòu)將數(shù)據(jù)與程序、數(shù)據(jù)控制與應(yīng)用邏輯分層獨(dú)立管理,能更嚴(yán)格地控制信息訪問。用戶端只能通過邏輯層來訪問數(shù)據(jù)層,減少了入口點(diǎn),把很多危險(xiǎn)
17、的系統(tǒng)功能都屏蔽了。4.1.3 三層結(jié)構(gòu)的缺點(diǎn)1 “三層結(jié)構(gòu)”開發(fā)模式一個(gè)非常明顯的缺點(diǎn)就是其執(zhí)行速度不夠快。當(dāng)然這個(gè)“執(zhí)行速度”是相對(duì)于非分層的應(yīng)用程序來說的34。2 “三層結(jié)構(gòu)”開發(fā)模式,入門難度夠高,難于理解和學(xué)習(xí)。以這種模式開發(fā)出來的軟件,代碼量通常要稍稍多一些。4.2 系統(tǒng)的分層設(shè)計(jì)上一節(jié)討論的三層結(jié)構(gòu)是一個(gè)總體的三層結(jié)構(gòu)模型,實(shí)際開發(fā)應(yīng)用系統(tǒng)時(shí),每一層還可劃分成多個(gè)子層,層與層之間還可引入接口層,并且一般還加入業(yè)務(wù)實(shí)體層,以便各層簡(jiǎn)傳遞業(yè)務(wù)數(shù)據(jù),加入公共層,用來封裝公用方法。本系統(tǒng)根據(jù)實(shí)際情況采用的分層結(jié)構(gòu)如圖 4-2 所示。圖 4- 2 系統(tǒng)的分層結(jié)構(gòu)分層的思路和各層作用如下:公
18、共層(Common Layer):本層包括自定義實(shí)體類型和自定義實(shí)體類型集合,還封裝一些常用的公共方法,供表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層調(diào)用。用于各層次之間數(shù)據(jù)交互的載體。表示層(Presentation Layer,簡(jiǎn)稱 PL):提供交互界面,供用戶操作??刹捎?WinForm 方式,也可采用 Web 方式,本系統(tǒng)選擇的是 Web 方式。本層負(fù)責(zé)傳遞用戶的輸入給業(yè)務(wù)邏輯層,并把業(yè)務(wù)邏輯層的處理結(jié)果展示給用戶。業(yè)務(wù)邏輯層(Business Logic Layer,簡(jiǎn)稱 BLL):主要是針對(duì)具體業(yè)務(wù)處理的操作,如對(duì)數(shù)據(jù)進(jìn)行有效性驗(yàn)證,操作約束判斷等。業(yè)務(wù)邏輯層接收表示層傳來的數(shù)據(jù)(簡(jiǎn)單變量、業(yè)務(wù)
19、實(shí)體類型對(duì)象或業(yè)務(wù)實(shí)體集合類型對(duì)象),然后根據(jù)具體的業(yè)務(wù)邏輯調(diào)用數(shù)據(jù)訪問層的一個(gè)或多個(gè)方法進(jìn)行處理,最后返回處理結(jié)果給表示層。數(shù)據(jù)訪問層(Data Access Layer,簡(jiǎn)稱 DAL):封裝對(duì)數(shù)據(jù)庫的訪問操作。是對(duì)原始數(shù)據(jù)(數(shù)據(jù)庫或者文本文件等存放數(shù)據(jù)的形式)的操作層,而不是指原始數(shù)據(jù),也就是說,是對(duì)數(shù)據(jù)的操作,而不是數(shù)據(jù)庫。這里封裝所有訪問數(shù)據(jù)庫的相關(guān)代碼,包括 SQL 語句,存儲(chǔ)過程等。本層接收業(yè)務(wù)邏輯層傳來的數(shù)據(jù)(簡(jiǎn)單變量、業(yè)務(wù)實(shí)體類型對(duì)象或業(yè)務(wù)實(shí)體集合類型對(duì)象),執(zhí)行不同 SQL 語句或存儲(chǔ)過程,并把執(zhí)行結(jié)果返回給業(yè)務(wù)邏輯層。4.3 數(shù)據(jù)庫設(shè)計(jì)4.3.1 數(shù)據(jù)表設(shè)計(jì)本系統(tǒng)后臺(tái)使用
20、SQL 2021 數(shù)據(jù)庫, GDS 數(shù)據(jù)庫是本系統(tǒng)的數(shù)據(jù)庫,它用于存放權(quán)限表、專業(yè)表、選題表、基礎(chǔ)數(shù)據(jù)表、管理員表、學(xué)生表、教師表、下載信息表、郵件信息表、通知公告表和課題信息表。GDS 數(shù)據(jù)庫包括11張表,各表名稱與表之間關(guān)系如圖 4-3 所示。圖 4- 3 實(shí)體關(guān)系圖上述11張表中,權(quán)限表(Authority 表)、專業(yè)表(Profession 表)和選題表(ChosenSubject 表)結(jié)構(gòu)比較簡(jiǎn)單,分別用來存儲(chǔ)各類用戶權(quán)限、專業(yè)名稱和選題信息,其它各表如下。1. 基礎(chǔ)數(shù)據(jù)表基礎(chǔ)數(shù)據(jù)表(BaseSystemData表)用來存放基礎(chǔ)數(shù)據(jù)配置信息,其結(jié)構(gòu)如表4-1所示。列名數(shù)據(jù)類型長(zhǎng)度說明
21、AcademyNamevarchar20學(xué)院名稱SubjectTimechar4畢業(yè)設(shè)計(jì)年份SubjectBegindatetime申報(bào)課題開始時(shí)間SubjectEnddatetime申報(bào)課題結(jié)束時(shí)間ChooseBegindatetime選題開始時(shí)間ChooseEnddatetime選題結(jié)束時(shí)間表 4- 1 BaseSystemData表2. 管理員表、學(xué)生表和教師表管理員表(Admins表)、學(xué)生表(Student 表)和教師表(Teacher 表)分別用來存放內(nèi)置的管理員基本信息、學(xué)生和教師的基本信息,其結(jié)構(gòu)如表4-2 、表 4-3 和表 4-4所示。列名數(shù)據(jù)類型長(zhǎng)度說明AdminIDva
22、rchar15管理員編號(hào)(主鍵)AdminPWDvarchar20管理員密碼AdminNamevarchar15管理員姓名Sexchar2性別Phonechar15 Telephonechar15 Emailvarchar50郵箱表 4- 2 Admins 表列名數(shù)據(jù)類型長(zhǎng)度說明StudentIDchar13學(xué)生編號(hào)(主鍵)StudentPWDvarchar20學(xué)生密碼StudentNamevarchar15學(xué)生姓名StudentLevelchar6學(xué)生層次ProfessionNamevarchar30專業(yè)名稱Classvarchar30班級(jí)SubjectTimechar4畢業(yè)選題年份Sexc
23、har2性別Phonechar15 Telephonechar15 Emailvarchar50郵箱IsAcceptbit1選題資格表 4- 3 Student 表列名數(shù)據(jù)類型長(zhǎng)度說明TeacherIDchar7教師編號(hào)(主鍵)TeacherPWDvarchar20教師密碼TeacherNamevarchar15教師姓名Postchar10職稱Sexchar2性別Phonechar15 Telephonechar15 Emailvarchar50郵箱表 4- 4 Teacher 表3 下載信息表、郵件信息表和通知公告表下載信息表(DownloadZone表)、郵件信息表(MailInfo表)和
24、通知公告表(PublicNotice 表)分別用來存放供下載的文件相關(guān)信息、郵件信息和通知公告信息。表結(jié)構(gòu)如表 4-5、表 4-6和表 4-7 所示。列名數(shù)據(jù)類型長(zhǎng)度說明DataNoint文件編號(hào)(主鍵)Titlevarchar50文件名Describetext文件描述UploadTimedatetime10上傳時(shí)間FilePathvarchar100文件路徑表 4- 5 DownloadZone表列名數(shù)據(jù)類型長(zhǎng)度說明MailNoint郵件編號(hào)(主鍵)SenderNovarchar15發(fā)送者編號(hào)ReceiverNovarchar15接收者編號(hào)SenderTimedatetime發(fā)送時(shí)間Them
25、evarchar50主題Contentstext內(nèi)容IsReadBit1是否已讀MailTypechar15郵件類型AccessoryPathvarchar100附件路徑表 4- 6 MailInfo表列名數(shù)據(jù)類型長(zhǎng)度說明NoticeNoint通知公告編號(hào)(主鍵)Titlevarchar100主題SenderNamevarchar15發(fā)送者姓名Contentstext內(nèi)容SenderTimedatetime發(fā)送時(shí)間SubjectTimechar4畢業(yè)設(shè)計(jì)年份表 4- 7 PublicNotice 表4 課題信息表課題信息表(Subjects 表)用于記錄教師申報(bào)的課題的詳細(xì)信息,結(jié)構(gòu)如表 4-
26、8 所示。列名數(shù)據(jù)類型長(zhǎng)度說明SubjectIDint課題編號(hào)(主鍵)SubjectNamevarchar100課題名稱SuitProfessionvarchar100適用專業(yè)SuitLevelchar6適用層次SubjectTypevarchar20課題類型SubjectOriginvarchar30課題來源SubjectNewOldvarchar30課題新舊SubjectWorkloadbit1課題工作量是否適中SubjectRequirebit1課題是否合要求TeacherID1char7主指導(dǎo)教師編號(hào)TeacherID2char7次指導(dǎo)教師編號(hào)Memotext內(nèi)容簡(jiǎn)介MaxPeople
27、int最大選題人數(shù)NowPeopleint已選題人數(shù)SuitYearchar4適用畢業(yè)設(shè)計(jì)年份IsCheckbit1是否通過審核表 4- 8 Subjects 表4.3.2 存儲(chǔ)過程設(shè)計(jì)本系統(tǒng)所有的數(shù)據(jù)庫操作都使用存儲(chǔ)過程,使用存儲(chǔ)過程主要是為了便于對(duì)SQL 語句進(jìn)行集中管理。由于存儲(chǔ)過程是在服務(wù)器上編譯執(zhí)行的,在一定程度上也有利于提高系統(tǒng)性能。另外使用存儲(chǔ)過程對(duì)防止 SQL 注入攻擊也有一定作用。不使用存儲(chǔ)過程,SQL 語句將會(huì)出現(xiàn)在數(shù)據(jù)訪問層的各個(gè)方法中,將來修改時(shí),需要打開多個(gè)文件查找修改,沒有放在數(shù)據(jù)庫存儲(chǔ)過程中方便。由于存儲(chǔ)過程較多,為了方便,截圖如下圖 4- 4。圖 4- 4 儲(chǔ)存
28、過程概況4.4 公共層為方便各層間傳遞數(shù)據(jù),一般應(yīng)用程序中都把數(shù)據(jù)表影射成實(shí)體類(Entity Class)和實(shí)體集合類,本系統(tǒng)也采用這樣的方法。還有部分方法,各層都會(huì)調(diào)用或與三層中的哪一層都沒有直接聯(lián)系問題,根據(jù)實(shí)體類、實(shí)體集合類和上述方法的性質(zhì),把他們封裝到一起,形成一個(gè)公共層,也即系統(tǒng)的公共層包括以下兩方面的內(nèi)容:1.實(shí)體類和實(shí)體集合類2.公用方法和獨(dú)立方法實(shí)體類中只有私有字段和公有的屬性,不存在對(duì)數(shù)據(jù)的操作,實(shí)體的定義有以單表定義的,還有部分以業(yè)務(wù)邏輯來定義。實(shí)體集合類可以從 DataSet 類派生,對(duì)于只讀數(shù)據(jù)集合,也可使用泛型。本系統(tǒng)中部分方法,沒有使用實(shí)體(集合)類進(jìn)行傳遞,主要
29、是部分操作靈活多變,用實(shí)體(集合)類去傳遞結(jié)果,顯得有些困難。而且結(jié)果集本身就是依靠多個(gè)實(shí)體及實(shí)體間關(guān)系得出,也沒辦法用一個(gè)實(shí)體去傳遞。即使對(duì)于所有業(yè)務(wù)邏輯都全部建立實(shí)體,日后的改動(dòng)也是很大的問題。對(duì)于上述情形,為方便期間,本系統(tǒng)直接使用了系統(tǒng)的數(shù)據(jù)庫相關(guān)集合類 DataSet 和 SqlDataReader。實(shí)際上使用三層結(jié)構(gòu)開發(fā)時(shí),對(duì)于復(fù)雜程序, 經(jīng)常存在要么為性能犧牲架構(gòu), 要么為架構(gòu)犧牲性能的問題。圖 4-5給出了公共層中的主要類。表 4- 5 公共層主要類5 詳細(xì)設(shè)計(jì)本系統(tǒng)分為三大模塊:管理員模塊、教師模塊、學(xué)生模塊,由三個(gè)人獨(dú)立進(jìn)行開發(fā)最終集成而來,以下是各模塊的運(yùn)行效果:5.1
30、管理員模塊的實(shí)現(xiàn)畢業(yè)設(shè)施(論文)管理系統(tǒng)開始啟用時(shí),必須先由管理員對(duì)系統(tǒng)進(jìn)行初始配置,具體包括以下內(nèi)容:1基礎(chǔ)數(shù)據(jù)維護(hù)以管理員身份登錄(系統(tǒng)預(yù)先內(nèi)置了校管理員賬號(hào),登錄后可修改),分別進(jìn)行學(xué)院(系)設(shè)置,專業(yè)設(shè)置,時(shí)間設(shè)置,如下圖5 - 1、圖5 -2、圖5 - 3、圖5 -4 所示。圖5-1 主界面圖5-2 學(xué)院設(shè)置圖5-3 專業(yè)設(shè)置圖5-4 時(shí)間設(shè)置2 .導(dǎo)入學(xué)生、教師基本信息下載指定模板,按固定格式文件導(dǎo)入學(xué)生和教師信息(主要是學(xué)號(hào)教師編號(hào)、姓名等)。使學(xué)生和教師的賬戶和密碼都初始化為各自編號(hào),如下圖5 - 5、圖5 -6 所示。圖5-5 學(xué)生信息導(dǎo)入圖5-6 教師信息導(dǎo)入3 .下載專區(qū)
31、用來上傳、管理、下載畢業(yè)設(shè)計(jì)的相關(guān)文件材料,如下圖5 - 7所示。圖5-7 下載專區(qū)4 .教師、學(xué)生管理用來管理使用本系統(tǒng)的相關(guān)教師和學(xué)生信息及其資格進(jìn)行審核,如下圖5 - 8、圖5 -9 所示。圖5-8 教師管理圖5-9 學(xué)生管理5 .申報(bào)課題管理用來管理教師申報(bào)的課題信息及對(duì)其進(jìn)行審核,如下圖5 - 10所示。圖5-10 課題管理6 .選題管理用來對(duì)課題的選擇狀況,學(xué)生的選題情況進(jìn)行監(jiān)測(cè)和管理(可針對(duì)專業(yè)),并能實(shí)現(xiàn)對(duì)監(jiān)測(cè)結(jié)果進(jìn)行導(dǎo)出,如下圖5 - 11所示。圖5-11 選題管理7 .數(shù)據(jù)庫維護(hù)用來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫進(jìn)行備份及還原操作,保障系統(tǒng)的安全性,如下圖5 - 12所示。圖5-12 數(shù)據(jù)庫
32、維護(hù)5.2 教師模塊的實(shí)現(xiàn)1 .登錄及密碼修改用來實(shí)現(xiàn)不同用戶的登錄,根據(jù)用戶類型不同獲得不同權(quán)限,同時(shí)共用密碼修改功能。2 .課題申報(bào)用來實(shí)現(xiàn)申報(bào)課題信息,并對(duì)自己申報(bào)的課題進(jìn)行管理和維護(hù)。3 .全院課題查看用來查看全院的課題申報(bào)情況并能瀏覽課題詳細(xì)信息。4 .選題管理用來查看自己的被選課題和未選課題情況,對(duì)被選課題可以查看選課的學(xué)生情況,并能對(duì)學(xué)生進(jìn)行退選。5 .發(fā)布任務(wù)書用來給選擇了我的課題的學(xué)生發(fā)送相應(yīng)任務(wù)書,并接收學(xué)生提交的任務(wù)書,6 .網(wǎng)上答疑用來對(duì)選擇了我的課題的學(xué)生進(jìn)行網(wǎng)上答疑。7 .本組學(xué)生信息用來查看所有選擇了我的課題的學(xué)生信息。5.3 學(xué)生模塊的實(shí)現(xiàn)1. 課題選擇查看所有
33、自己可以選擇的課題并選擇一個(gè)課題。2. 我的課題顯示自己選擇的課題的基本信息,在時(shí)間允許范圍內(nèi)可以退定所選課題。3. 我的任務(wù)書接收并回發(fā)我的任務(wù)書。4. 提交開題材料選擇要提交的開題資料及接收教師并上傳開題資料至教師端。5. 提交論文選擇要提交的正式論文及接收教師并上傳論文至教師端。6. 通知公告查看管理員發(fā)布的通知公告。7. 下載專區(qū)下載畢業(yè)設(shè)計(jì)相關(guān)材料。附 錄專業(yè)設(shè)置后臺(tái)代碼public partial class Admin_InitMajor : System.Web.UI.Page protected void Page_Load(object sender, EventArgs
34、e) if (!IsPostBack) /獲取所有專業(yè)信息 GetMajor(); /獲取所有專業(yè)信息 private void GetMajor() Fannie.InitSystem init = new Fannie.InitSystem(); DataSet ds = init.GetMajor(); gvMajor.DataKeyNames = new string "ProfessionID" ; DataColumn dc = new DataColumn(); dc.ColumnName = "AutoId" ds.Tables0.Col
35、umns.Add(dc); for (int i = 0; i < ds.Tables0.Rows.Count; i+) ds.Tables0.Rowsi"AutoId"=i+1; gvMajor.DataSource = ds; gvMajor.DataBind(); /刪除某些專業(yè)后綁定所有專業(yè)信息 protected void gvMajor_RowDeleting(object sender, GridViewDeleteEventArgs e) int id = Convert.ToInt32(gvMajor.DataKeyse.RowIndex.Value
36、.ToString(); Fannie.InitSystem init = new Fannie.InitSystem(); if (init.DeleteMajor(id)> 0) GetMajor(); Response.Write("<script>alert('刪除成功')</script>"); /刪除專業(yè)信息 protected void gvMajor_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowIndex >= 0) e.
37、Row.Cells4.Attributes.Add("onclick","return confirm('確定要?jiǎng)h除該行嗎?')"); /調(diào)整為編輯專業(yè)信息狀態(tài) protected void gvMajor_RowEditing(object sender, GridViewEditEventArgs e) gvMajor.EditIndex = e.NewEditIndex; GetMajor(); (TextBox)(gvMajor.Rowse.NewEditIndex.Cells1.Controls0).ReadOnly = tru
38、e; (TextBox)(gvMajor.Rowse.NewEditIndex.Cells2.Controls0).ReadOnly = false; /編輯專業(yè)信息 protected void btEdit_Click(object sender, EventArgs e) int j = 0; for (int i = 0; i < gvMajor.Rows.Count; i+) if (CheckBox)(gvMajor.Rowsi.Cells0.Controls0).Checked) (TextBox)gvMajor.Rowsi.FindControl("tbMajo
39、r").ReadOnly = false; gvMajor.Rowsi.Cells3.Controls0.Visible = false; gvMajor.Rowsi.Cells4.Controls0.Visible = false; else j+; if (j=gvMajor.Rows.Count) Response.Write("<script>alert('請(qǐng)選擇需要編輯的記錄')</script>"); else btnDelete.Enabled = false; btnNew.Enabled = false;
40、/修改專業(yè)信息 protected void gvMajor_RowUpdating(object sender, GridViewUpdateEventArgs e) int id = Convert.ToInt32(gvMajor.DataKeyse.RowIndex.Value.ToString(); string name = (TextBox)(gvMajor.Rowse.RowIndex.Cells2.Controls0).Text; Fannie.InitSystem init = new Fannie.InitSystem(); if (init.ModifyMajor(id,
41、 name) > 0) gvMajor.EditIndex = -1; GetMajor(); Response.Write("<script>alert('修改成功')</script>"); /取消編輯專業(yè)信息 protected void gvMajor_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) gvMajor.EditIndex = -1; GetMajor(); /新增專業(yè)信息 protected void btnNew_Click(o
42、bject sender, EventArgs e) bool isnull = true; for (int i = 0; i < gvMajor.Rows.Count;i+ ) if (TextBox)gvMajor.Rowsi.FindControl("tbMajor").Text = tbNewMajor.Text) isnull = false; break; if (isnull) Fannie.InitSystem init = new Fannie.InitSystem(); init.InsetMajor(tbNewMajor.Text); GetM
43、ajor(); tbNewMajor.Text = "" else tbNewMajor.Text = "" Response.Write("<script>alert('該專業(yè)已經(jīng)存在,請(qǐng)重新輸入專業(yè)名稱')</script>"); /實(shí)現(xiàn)全選操作 protected void cb2_CheckedChanged(object sender, EventArgs e) bool IsSelect = cb2.Checked; for (int i = 0; i < gvMajor.Ro
44、ws.Count; i+) (CheckBox)(gvMajor.Rowsi.FindControl("cbSelect").Checked = IsSelect; gvMajor.Rowsi.Cells3.Controls0.Visible =!IsSelect; gvMajor.Rowsi.Cells4.Controls0.Visible = !IsSelect; if (!IsSelect) GetMajor(); btnDelete.Enabled = !IsSelect; btnNew.Enabled = !IsSelect; btnUpdate.Enabled
45、= !IsSelect; /實(shí)現(xiàn)批量刪除 protected void btnDelete_Click(object sender, EventArgs e) int m = 0; Fannie.InitSystem init = new Fannie.InitSystem(); for (int i = 0; i < gvMajor.Rows.Count; i+) if (CheckBox)(gvMajor.Rowsi.FindControl("cbSelect").Checked) int id = Convert.ToInt32(gvMajor.DataKeys
46、i.Value.ToString(); init.DeleteMajor(id); else m+; if (m=gvMajor.Rows.Count) Response.Write("<script>alert('請(qǐng)先選擇需要?jiǎng)h除的記錄')</script>"); else GetMajor(); /更新專業(yè)信息后綁定 protected void btnUpdate_Click(object sender, EventArgs e) Fannie.InitSystem init = new Fannie.InitSystem();
47、 int id; string name; for (int i = 0; i < gvMajor.Rows.Count; i+) if (CheckBox)(gvMajor.Rowsi.Cells0.Controls0).Checked) id = Convert.ToInt32(gvMajor.DataKeysi.Value.ToString(); name = (TextBox)gvMajor.Rowsi.FindControl("tbMajor").Text; init.ModifyMajor(id, name); GetMajor(); btnDelete.
48、Enabled = true; btnNew.Enabled = true; /取消并綁定專業(yè)信息 protected void btnCancle_Click(object sender, EventArgs e) btnDelete.Enabled = true; btnNew.Enabled = true; btnUpdate.Enabled = true; btEdit.Enabled = true; GetMajor(); 致 謝本系統(tǒng)是在我系張國軍副教授的精心指導(dǎo)及開發(fā)小組成員密切協(xié)作下完成的。首先,要感謝張國軍副教授在我本科求學(xué)期間對(duì)我的幫助和指點(diǎn),張老師淵博的專業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度使我受益匪淺,沒有張老師嚴(yán)格的要求,耐心細(xì)致的指導(dǎo),本系統(tǒng)是不會(huì)如此順利完成的。還要感謝教務(wù)處繆賢浩老師參與了需求分析,并給了我們一些其它方面的幫助和指點(diǎn),祝存曾同學(xué)和盧璟祥同學(xué)分別完成了教師模塊和學(xué)生模塊的開發(fā),還有很多參與了系統(tǒng)測(cè)試的同學(xué),在這里對(duì)他們表示我誠摯的謝意!參考文獻(xiàn)1 教育部辦公廳關(guān)于加強(qiáng)普通高等學(xué)校畢業(yè)設(shè)計(jì)(論文)工作的通知.教高廳2021 14 號(hào).2 樊崇藝,羅四維.畢業(yè)設(shè)計(jì)(論文)在線管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)J.教育技術(shù)導(dǎo)刊,2021 ,(4)
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年玉林市福綿區(qū)石和鎮(zhèn)招聘村級(jí)防貧監(jiān)測(cè)信息員考試真題
- 科技助力下的班級(jí)管理與思政教育新模式
- 2024年荊州市荊州區(qū)事業(yè)單位統(tǒng)一招聘考試真題
- 油漆保養(yǎng)合同范本
- 2025至2030年中國數(shù)碼SPA水療蒸汽艙數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 動(dòng)物模型定制與行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 體育用品再生塑料配件行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 醇酸樹脂類型公路非水性涂料企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 照相輔助器材企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 鋼渣磷肥企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 特種設(shè)備安全技術(shù)檔案(附表格)
- 國網(wǎng)新聞宣傳與企業(yè)文化管理專責(zé)考試題庫及答案
- 氫氣儲(chǔ)存和運(yùn)輸 課件 第1、2章 氫氣存儲(chǔ)與運(yùn)輸概述、高壓氣態(tài)儲(chǔ)運(yùn)氫
- 三年級(jí)地方課教案
- 涉外法律文書寫作
- 2022-2023學(xué)年湖南省長(zhǎng)沙市統(tǒng)招專升本語文模擬練習(xí)題三及答案
- 社會(huì)救助法課件
- 第七講+漢字字音
- 新零件的成熟保障MLA
- 【基于杜邦分析法的企業(yè)盈利能力研究國內(nèi)外文獻(xiàn)綜述4000字】
- 初中語文七下-上下句默寫
評(píng)論
0/150
提交評(píng)論