版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 應(yīng)用本科論文</b></p><p> 題 目:基于Web技術(shù)的考試管理系統(tǒng)</p><p><b> 姓 名:</b></p><p> 專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p><b> 班 級(jí):</b><
2、/p><p> 院 系:信息科學(xué)與工程學(xué)院</p><p><b> 入學(xué)年度:</b></p><p><b> 指導(dǎo)教師: </b></p><p> 日 期: 2008年5月25日</p><p> 基于Web技術(shù)的考試管理系統(tǒng)</p>
3、<p><b> 摘要: </b></p><p> 隨著教育信息化的發(fā)展,在線考試系統(tǒng)作為一種新型的考核手段和考試方式,在實(shí)際教學(xué)中得到了廣泛的應(yīng)用,并成為當(dāng)前計(jì)算機(jī)信息系統(tǒng)研究與應(yīng)用的熱點(diǎn)領(lǐng)域。本考試系統(tǒng)在綜合分析了當(dāng)前考試系統(tǒng)研究成果的基礎(chǔ)上,采用B/S和C/S兩種結(jié)構(gòu)相結(jié)合的模式開發(fā),利用IE瀏覽器作為界面設(shè)計(jì),使用戶可利用瀏覽器直接訪問(wèn)本平臺(tái),完成考試和測(cè)評(píng)。.NET
4、技術(shù)和SQL數(shù)據(jù)庫(kù)以及其他網(wǎng)絡(luò)程序設(shè)計(jì)開發(fā)平臺(tái)為本系統(tǒng)主要開發(fā)技術(shù),本論文對(duì)在線考試系統(tǒng)的最重要功能,包括用戶登錄、身份驗(yàn)證、新用戶注冊(cè)、教師學(xué)生信息管理、在線考試、管理員登錄及管理等模塊,以減輕教師的工作負(fù)擔(dān)、提高工作效率和考試質(zhì)量為設(shè)計(jì)目標(biāo)進(jìn)行了較深入的研究與分析。 本論文研究的重點(diǎn)在于考試系統(tǒng)的隨機(jī)組卷策略,由于考核對(duì)象的不同,要求試卷內(nèi)容也不一樣,運(yùn)用隨機(jī)組卷策略才能解決這個(gè)問(wèn)題。本文重點(diǎn)研究遺傳組卷算法,分析了遺傳算法的基本理
5、論,對(duì)隨機(jī)組卷問(wèn)題進(jìn)行了比較詳細(xì)的闡述, 形成了本考試系統(tǒng)隨機(jī)組卷的數(shù)學(xué)模型,并在此基礎(chǔ)上給出了算法的實(shí)現(xiàn)原理和 代碼描述。</p><p><b> 關(guān)鍵字:</b></p><p> 在線考試系統(tǒng);B/S模式;.NET;組卷</p><p> Examination Management System Based on Web<
6、/p><p><b> Abstrct:</b></p><p> With the development of the education,Test―online becomes a new way of the examination,which iS used more and more widely at the education and becomes
7、the hotspot of research.This system is designed by using the B/S and the C/S,and we use the IE browser as the interface.The user can access this system by the IE browser to test or study.The main technique of this system
8、 is.Net and Database,SQL and other program operating platform of the network.In this dissertation,an important part of the Test-o</p><p> ?。甂ey words: </p><p> Test―online system;Browser/Server
9、;.NET;test paper composition;genetic algorithm</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p><b> 前 言1</b></p><p> 第1章開發(fā)工
10、具選擇2</p><p> 1.1前臺(tái)開發(fā)工具2</p><p> 1.2后臺(tái)開發(fā)工具2</p><p> 1.3 開發(fā)語(yǔ)言介紹4</p><p> 1.4 工程架構(gòu)、配置文件4</p><p><b> 1.4工程框架6</b></p><p>
11、1.5數(shù)據(jù)庫(kù)的選擇7</p><p> 1.6數(shù)據(jù)庫(kù)的連接7</p><p> 第2章在線考試管理系統(tǒng)的開發(fā)與設(shè)計(jì)10</p><p> 2.1系統(tǒng)開發(fā)思想10</p><p> 2.2 需求分析 (試卷管理模塊)10</p><p> 2.3 系統(tǒng)功能模塊劃分11</p><
12、;p> 2.4系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)11</p><p> 2.5系統(tǒng)界面風(fēng)格設(shè)計(jì)15</p><p> 第3章在線考試管理系統(tǒng)的具體實(shí)現(xiàn)17</p><p> 3.試卷管理功能的實(shí)現(xiàn)17</p><p> 3.1 試卷管理的后臺(tái)具體實(shí)現(xiàn)(服務(wù)層)17</p><p> 3.2試卷管理的前臺(tái)具體實(shí)
13、現(xiàn)(視圖層)20</p><p> 第4章 結(jié)論24</p><p><b> 參考文獻(xiàn)25</b></p><p><b> 前 言</b></p><p> 當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于
14、利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對(duì)于復(fù)雜的信息管理,計(jì)算機(jī)能夠充分發(fā)揮它的優(yōu)越性。計(jì)算機(jī)進(jìn)行信息管理與信息管理系統(tǒng)的開發(fā)密切相關(guān),系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好在線考試信息而設(shè)計(jì)的。</p><p> 在線考試作為一種信息資源的大集合,包含很多的信息數(shù)據(jù)的管理,諸如對(duì)考試資料情況(如考試日期、考試時(shí)間)的統(tǒng)計(jì)和核實(shí),對(duì)考生的審閱
15、試卷權(quán)限設(shè)置,以及考卷信息和讀者信息的檢索等。這些數(shù)據(jù)信息處理工作量大,若采用手工操作工作,出錯(cuò)率高,出錯(cuò)后不易查找更改,而考試信息的管理工作混亂而又復(fù)雜;一般考試情況是記錄在準(zhǔn)考證上,考卷的修改和審計(jì)工作時(shí)間較長(zhǎng),而改卷老師也只是當(dāng)時(shí)對(duì)它比較清楚,時(shí)間一長(zhǎng),如再要進(jìn)行查詢,就得在眾多的資料中翻閱、查找了,造成查詢費(fèi)時(shí)、費(fèi)力,而考生更不能在第一時(shí)間知道自己的成績(jī)。基于這些問(wèn)題,有必要建立一個(gè)在線考試管理系統(tǒng),使在線考試管理工作規(guī)范化,系
16、統(tǒng)化,程序化,避免考試管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢考試情況。本系統(tǒng)是一個(gè)典型的基于WEB的信息管理系統(tǒng),實(shí)現(xiàn)在線考試管理,從而提高處理效率、簡(jiǎn)化處理步驟、加快處理速度。本系統(tǒng)是基于B/S(瀏覽器/服務(wù)器)模式的系統(tǒng),數(shù)據(jù)集中存放于服務(wù)器中,用戶只通過(guò)瀏覽器就能完成所有管理功能。通過(guò)在線考試管理系統(tǒng)進(jìn)行試卷上傳處理,試卷審閱與考生信息的管理、并提供強(qiáng)大的信息查詢及報(bào)表打印功能及數(shù)據(jù)備份恢復(fù)和<
17、/p><p><b> 第一章開發(fā)工具選擇</b></p><p><b> 1.1前臺(tái)開發(fā)工具</b></p><p> 隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站技術(shù)也成為了一門重要且熱門的技術(shù),而網(wǎng)頁(yè)是整個(gè)網(wǎng)站的組成元素,是用HTML語(yǔ)言來(lái)表示的。HTML代碼編輯工具很多,由最簡(jiǎn)單的記事本、寫字板,到現(xiàn)在出現(xiàn)的許多功能強(qiáng)大的網(wǎng)頁(yè)編輯工
18、具Dreamweaver、FrontPage等。記事本、寫字板相對(duì)于編輯HTML代碼來(lái)說(shuō)是最原始的編輯工具了,這樣做需要開發(fā)人員對(duì)HTML語(yǔ)言非常的熟練,而且工作繁瑣,用它作為開發(fā)工具是極不理想的選擇。而目前最流行并被廣泛使用的工具就是FrontPage和Dreamweaver。本系統(tǒng)的開發(fā)采用的是Dreamweaver。</p><p> Dreamweaver是Macromedia公司開發(fā)的,也是一種功能強(qiáng)
19、大、所見即所得的網(wǎng)頁(yè)編輯工具,而且它支持最新的DHTML和CSS標(biāo)準(zhǔn),具有完善的站點(diǎn)管理機(jī)制。從功能上來(lái)看,它比FrontPage要多,而且用戶無(wú)需熟悉HTML語(yǔ)言就可以用它做出很不錯(cuò)的網(wǎng)頁(yè)??梢哉f(shuō),它是一種傻瓜式的編輯工具。</p><p> FrontPage是Microsoft公司開發(fā)的一種用于創(chuàng)建網(wǎng)頁(yè)、組織和管理WEB站點(diǎn)的網(wǎng)頁(yè)設(shè)計(jì)軟件。它由許多不同的元素組成。FrontPage的網(wǎng)頁(yè)視圖提供給了一種簡(jiǎn)
20、單、實(shí)用的工具,用于Web網(wǎng)頁(yè)的編輯和格式化。其他視圖提供了用于管理Web站點(diǎn)中文件集合的復(fù)雜工具。另外,F(xiàn)rontPage帶有內(nèi)置的工具可產(chǎn)生動(dòng)畫(移動(dòng)的圖形)、交互性(對(duì)象代表訪問(wèn)者的動(dòng)作)甚至在線數(shù)據(jù)收集和數(shù)據(jù)管理。簡(jiǎn)而言之,它是一種所見即所得、簡(jiǎn)單實(shí)用、功能強(qiáng)大的網(wǎng)頁(yè)編輯工具。</p><p> 也許有人會(huì)置疑,因?yàn)镈reamweaver比FrontPage功能要多,所以我們選擇Dreamweaver作
21、為本系統(tǒng)的開發(fā)工具。對(duì)于一位專業(yè)的開發(fā)者來(lái)說(shuō),需要的是一個(gè)簡(jiǎn)單易用的傻瓜式的編輯工具,而是一種能讓程序運(yùn)行穩(wěn)定、操作界面簡(jiǎn)潔的編輯工具。而Dreamweaver有比FrontPage那么多的附加功能,但它在網(wǎng)頁(yè)的編輯方面更具專業(yè)性、穩(wěn)定性、可見性和易修改性,是開發(fā)本系統(tǒng)的理想工具。</p><p> 1.2后臺(tái)開發(fā)工具 </p><p> 在這個(gè)系統(tǒng)的后臺(tái)部分我們選擇JSP作為后臺(tái)開發(fā)
22、工具。盡管當(dāng)前的后臺(tái)開發(fā)工具有很多,像還有ASP,PHP等,但是根據(jù)現(xiàn)階段的我們開發(fā)系統(tǒng)的實(shí)際情況,</p><p> 相對(duì)其他工具而言,我們對(duì)于JSP更為熟悉,而且,利用JSP完全可以實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的各項(xiàng)需要。</p><p> Wsb服務(wù)器是Web應(yīng)用程序的心臟。Tomcat作為JAVA的擴(kuò)展,自推出以來(lái)已經(jīng)有了很大發(fā)展,其體系結(jié)構(gòu)是當(dāng)今市場(chǎng)上最受關(guān)注的Web服務(wù)器之一。新推出的TO
23、MCAT6.0版本增強(qiáng)了系統(tǒng)安全性,具有服務(wù)器端腳本開發(fā)調(diào)試,內(nèi)容管理和站點(diǎn)分析,崩潰防護(hù),內(nèi)置JAVA虛擬機(jī)及全面支持JSP等強(qiáng)大功能。</p><p> 此外,在過(guò)去,客戶機(jī)/服務(wù)器結(jié)構(gòu)的設(shè)計(jì)與Web的相關(guān)技術(shù)幾乎處于平行線上,兩者相互獨(dú)立并無(wú)法作出集成性的設(shè)計(jì)。現(xiàn)在我們利用TOMCAT+JSP構(gòu)成三層式Web結(jié)構(gòu)(如圖2.1所示)的中間一層,將客戶機(jī)/服務(wù)器結(jié)構(gòu)與Web密切結(jié)合,完成前后端兩者的集成輸出功
24、能,使得Web站點(diǎn)的開發(fā)更方便,實(shí)現(xiàn)的功能更強(qiáng)大。</p><p> 利用TOMCAT+JSP技術(shù)來(lái)集成Web前后端所帶來(lái)的強(qiáng)大效益可歸結(jié)為以下幾個(gè)方面:</p><p><b> 減少構(gòu)建和維護(hù)成本</b></p><p><b> 加快聯(lián)機(jī)過(guò)程</b></p><p> 應(yīng)用軟件集中在服
25、務(wù)器端開發(fā)管理</p><p> 前端可使用任何瀏覽器(IE、Netscape…..)</p><p> 后端可存取任何數(shù)據(jù)庫(kù) (SQL、Access…..)</p><p> 可使用任何腳本語(yǔ)言開發(fā) (JavaScript、PERL…..)</p><p><b> 后端數(shù)據(jù)庫(kù)</b></p>&
26、lt;p> ActiveX Server組件</p><p><b> 程序和計(jì)算邏輯</b></p><p> ActiveX Server組件</p><p><b> 前端瀏覽器</b></p><p> 圖1.1 三層式Web結(jié)構(gòu)示意圖</p><p>
27、; 1.3 開發(fā)語(yǔ)言介紹</p><p> Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語(yǔ)言(以下簡(jiǎn)稱Java語(yǔ)言)和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Java applet。另一
28、方面,Java技術(shù)也不斷更新。</p><p> Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface、簡(jiǎn)稱API)構(gòu)成。Java 應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序就可運(yùn)行。現(xiàn)在Ja
29、va平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣Java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。Java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的Java平臺(tái)基于Java1.4,最近版本為Java1.7。</p><p> Java分為三個(gè)體系JavaSE(Java2 Platform Standard Edition,java平臺(tái)標(biāo)準(zhǔn)版),JavaEE(Java 2 Platform,Enterpr
30、ise Edition,java平臺(tái)企業(yè)版),JavaME(Java 2 Platform Micro Edition,java平臺(tái)微型版)。</p><p> Java語(yǔ)言的優(yōu)良特性使得Java應(yīng)用具有無(wú)比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護(hù)費(fèi)用。Java對(duì)對(duì)象技術(shù)的全面支持和Java平臺(tái)內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時(shí)間并降低成本。Java的編譯一次,到處可運(yùn)行的特性使得它能夠提供一個(gè)隨處可用的開放
31、結(jié)構(gòu)和在多平臺(tái)之間傳遞信息的低成本方式。特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise APIs)為企業(yè)計(jì)算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫(kù)。</p><p> 1.4 工程架構(gòu)、配置文件</p><p> 工程架構(gòu)對(duì)于一個(gè)工程來(lái)說(shuō)是非常重要的,它決定了一個(gè)工程的整體開發(fā)思路,一個(gè)架構(gòu)的好壞,決定了一個(gè)工程的質(zhì)量,選擇了一個(gè)最符合工程需求的架構(gòu),可以非常有效
32、地提高工程的效率,安全程度以及方便開發(fā)人員的編碼。而在java web中我們常用的架構(gòu)是EJB和SSH架構(gòu)。因?yàn)镋JB是重量級(jí)架構(gòu),對(duì)于我們這樣的需求的工程是不實(shí)用的,而在WEB開發(fā)中最常用的輕量級(jí)架構(gòu)是struts,spring,以及hibernate,我們通稱為SSH架構(gòu)。</p><p> 本項(xiàng)目工程是使用了hibernate以及struts2為核心架構(gòu),未使用spring進(jìn)行整合,因?yàn)閟pring本身在
33、整合了工程之后,并不能提高工程運(yùn)行效率,且spring整合過(guò)于繁瑣麻煩,本項(xiàng)目模塊實(shí)現(xiàn)功能也較為簡(jiǎn)單,并不需要spring進(jìn)行工程整體的管理。故只使用了hibernate以及struts架構(gòu)作為核心架構(gòu)。</p><p> 對(duì)于struts架構(gòu)我們這里使用了struts2.0并沒有使用struts1.X,是因?yàn)橐韵滤狞c(diǎn):</p><p> 1.struts2.0把FORM層與actio
34、n層合并,沒有了FORM-BEAN 使程序可以把FORM層的屬性在ACTION層中直接調(diào)用</p><p> 2.STRUTS2的ACTION不用繼承父類,而STRUTS1的ACTION必須繼承父類例如ACTION dispatcherACTION</p><p> 3.STRUTS2的配置文件更簡(jiǎn)單,把原有的STRUTS1中的ACTION的一些屬性分離出來(lái)形成了PACKAGE標(biāo)簽&l
35、t;/p><p> 4.struts2的標(biāo)簽比struts1更實(shí)用,例如表單回填、checkbox提交的BUG解決、對(duì)于AJAX的支持</p><p> 故由于以上這些優(yōu)點(diǎn)我們選擇了struts2.0</p><p> 對(duì)于工程的配置,因?yàn)槲覀兪褂昧薓ySQL,struts、hibernate架構(gòu),以及我們需要讀入一個(gè)EXCEL文件(需要第三方的包)。故我們使用了
36、以下這些包:</p><p><b> 1.5工程框架</b></p><p> 為了方便對(duì)工程進(jìn)行管理,也為了使代碼的查閱更為直觀簡(jiǎn)明,將包結(jié)構(gòu)分為5層,分別為action,entity,service,serviceimpl,util。</p><p> Action層:視圖層,其中包括頁(yè)面跳轉(zhuǎn),以及關(guān)于頁(yè)面的數(shù)據(jù)流的代碼部分。<
37、;/p><p> Entity層:包括工程中的所有實(shí)體,以及hibernate配置文件。</p><p> Service層:是serviceimpl的接口層,為的是方便調(diào)用service方法。</p><p> Serviceimpl層:具體到數(shù)據(jù)如去執(zhí)行一個(gè)事務(wù),從數(shù)據(jù)庫(kù)中存儲(chǔ)并取出的具體代碼部分。</p><p> Util層:包括
38、小組公用代碼部分,方便小組其他成員的調(diào)用。</p><p><b> 1.6數(shù)據(jù)庫(kù)的選擇</b></p><p> 當(dāng)前流行的數(shù)據(jù)庫(kù)有很多,如Oracle,My SQL,SQL Server,Access等。在本系統(tǒng)中,我們選用My SQL進(jìn)行數(shù)據(jù)管理。My SQL是一個(gè)后臺(tái)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它功能強(qiáng)大操作簡(jiǎn)便、處理的數(shù)據(jù)量大且數(shù)據(jù)安全性強(qiáng),適用于中型數(shù)據(jù)庫(kù)使用
39、者,其內(nèi)嵌的My SQL 企業(yè)管理器為用戶提供了方便全面的服務(wù)。My SQL不但可以應(yīng)用于大中型數(shù)據(jù)庫(kù)管理中,建立分布式關(guān)系數(shù)據(jù)庫(kù),并且也可以開發(fā)桌面數(shù)據(jù)庫(kù)。</p><p> 對(duì)比其它的數(shù)據(jù)庫(kù)而言,Oracle一般用于非常大型的數(shù)據(jù)庫(kù)管理,對(duì)我們的系統(tǒng)而言,使用Oracle一方面沒有My SQL方便,另一方面根據(jù)系統(tǒng)的數(shù)據(jù)量沒有必要使用Oracle。而Access 數(shù)據(jù)庫(kù)對(duì)于小型的數(shù)據(jù)庫(kù)當(dāng)然也可以實(shí)現(xiàn),但是由
40、于公司的其它系統(tǒng)由于數(shù)據(jù)量較大,都采用My SQL 數(shù)據(jù)庫(kù),況且本系統(tǒng)的中的圖書量和讀者信息量隨著公司規(guī)模的擴(kuò)大可能不斷增加,Access 數(shù)據(jù)庫(kù)很有可能不能滿足需求,而且My SQL在操作上比Access要更加直觀和方便,功能也更加強(qiáng)大。</p><p> 從以上各項(xiàng)功能顯示,My SQL 的操作相當(dāng)方便,使用起來(lái)也很容易上手,對(duì)于初學(xué)者來(lái)說(shuō)是一個(gè)很好的選擇,再加上本系統(tǒng)是針對(duì)企業(yè)開發(fā)的,非常適合采用My S
41、QL數(shù)據(jù)庫(kù)管理系統(tǒng)。</p><p><b> 1.7數(shù)據(jù)庫(kù)的連接</b></p><p> hibernate是一種操作SUN所支持的數(shù)據(jù)庫(kù)的新技術(shù)。在JSP中,hibernate可以看作是一個(gè)服務(wù)器組件(Server Component),更簡(jiǎn)單點(diǎn)說(shuō),是一系列的對(duì)象,應(yīng)用這些功能強(qiáng)大的對(duì)象,即可輕松完成對(duì)數(shù)據(jù)庫(kù)復(fù)雜的操作。本文中個(gè)性化頁(yè)面的實(shí)現(xiàn)便大量地用到了h
42、ibernate技術(shù)。具體的操作步驟可以歸納為以下幾步:</p><p><b> 創(chuàng)作公用的代碼塊</b></p><p> 創(chuàng)建數(shù)據(jù)庫(kù)鏈接(Connection)</p><p> 創(chuàng)建并提交事務(wù)(create/commit transaction)</p><p><b> 數(shù)據(jù)出錯(cuò)</b&
43、gt;</p><p><b> 關(guān)閉數(shù)據(jù)對(duì)象和鏈接</b></p><p><b> 每一步的作法如下:</b></p><p> 1. 創(chuàng)作公用的代碼塊</p><p> 我們知道,在編碼過(guò)程中有大量重復(fù)編輯的代碼,由于這部分代碼的多次重復(fù)編輯,,所以把這類代碼建為一個(gè)共有類,可以大大的
44、降低了開發(fā)人員的開發(fā)效率。其語(yǔ)法如下:</p><p> package com.fc.util; </p><p> import org.hibernate.Session;</p><p> import org.hibernate.SessionFactory;</p><p> import org.hi
45、bernate.cfg.Configuration; //我們導(dǎo)入hibernate的如下這些包可以利用其創(chuàng)建session</p><p> public class HibernateUtil { //建立一個(gè)公有類方便其他人調(diào)用</p><p> private static SessionFactory factory = null;//每個(gè)代碼塊
46、建立成一個(gè)靜態(tài)代塊,讓程序在編譯時(shí)就已經(jīng)運(yùn)行完畢</p><p> //創(chuàng)建sessionfactory</p><p><b> static {</b></p><p><b> try {</b></p><p> /*Configuration cft = new Configura
47、tion().configure();</p><p> factory = cft.buildSessionFactory();*/</p><p> factory = new Configuration().configure().buildSessionFactory();</p><p> } catch (Exception e){</p&g
48、t;<p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> //得到sessionfactory</p><p> public static SessionFactory getSes
49、sionFactory() {</p><p> return factory;</p><p><b> }</b></p><p> //創(chuàng)建session</p><p> public static Session getSession() {</p><p> Session
50、session = null;</p><p><b> try {</b></p><p> session = factory.openSession();//因?yàn)殪o態(tài)代碼塊已經(jīng)建立,故factory</p><p><b> 已經(jīng)被實(shí)例化。</b></p><p> } catch (
51、Exception e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> return session;</p><p><b> }</b></p><p> //關(guān)閉session</
52、p><p> public static void closeSession(Session session) { //每次用完后都要關(guān)閉</p><p><b> session</b></p><p> if (session != null) {</p><p> if (session.isOpen()) {
53、</p><p> session.close();</p><p> } 2. 創(chuàng)建數(shù)據(jù)庫(kù)鏈接(Connection)</p><p> 鏈接用以保持一些關(guān)于正在訪問(wèn)的數(shù)據(jù)的一些狀態(tài)信息,以及鏈接者信息。JSP如果要訪問(wèn)數(shù)據(jù),必須創(chuàng)建與數(shù)據(jù)庫(kù)的鏈接,其語(yǔ)法如下:</p><p> Session session = null;//我
54、們要?jiǎng)?chuàng)建session,也就是讓session實(shí)例化,但付值為空,為的是與之前的靜態(tài)代碼塊相呼應(yīng)。</p><p><b> try {</b></p><p> session = HibernateUtil.getSession();// 利用靜態(tài)代碼塊可以直接使用類名調(diào)用方法。</p><p> 通過(guò)之前的靜待代碼塊實(shí)例化sessi
55、on</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p> session.getTransaction().rollback();// 提交失敗回滾到提交前</p><p> } finally {</p><p>
56、HibernateUtil.closeSession(session);// 關(guān)閉SESSION</p><p><b> } </b></p><p> 3. 創(chuàng)建并提交事務(wù)(create/commit transaction)</p><p> session中的數(shù)據(jù)對(duì)象通常通過(guò)save方法保存。我們利用一個(gè)事務(wù)就完成事務(wù)的操作。以下
57、是創(chuàng)建方法:</p><p> session.beginTransaction();// 實(shí)例化session后,打開事務(wù)</p><p> session.save(answer);// 每次foreach持久化answer對(duì)象 </p><p> 通過(guò)此方法完成了對(duì)數(shù)據(jù)對(duì)象在數(shù)據(jù)庫(kù)中的存儲(chǔ)。</p><p> session.g
58、etTransaction().commit();// 提交事務(wù)</p><p><b> 4.數(shù)據(jù)出錯(cuò)</b></p><p> 我們?cè)谡麄€(gè)事務(wù)中經(jīng)行增刪改查,有可能出現(xiàn)一些錯(cuò)誤,如果出現(xiàn)這類錯(cuò)誤,需要對(duì)上部錯(cuò)誤進(jìn)行操作,這時(shí)我們需要數(shù)據(jù)的回滾,例如:</p><p> Session. GetTransaction().rollbac
59、k();//回滾到提交事務(wù)之前</p><p> 5. 關(guān)閉數(shù)據(jù)對(duì)象和鏈接對(duì)象</p><p> 在使用了session對(duì)象之后要關(guān)閉它,因?yàn)樗褂昧艘欢ǖ姆?wù)器資源。通過(guò)調(diào)用方法close實(shí)現(xiàn)關(guān)閉,然后再釋放它。</p><p> HibernateUtil.closeSession(session); //關(guān)閉session</p><
60、p> 第二章在線考試管理系統(tǒng)的開發(fā)與設(shè)計(jì)</p><p><b> 2.1系統(tǒng)開發(fā)思想</b></p><p> 在線考試系統(tǒng)中,一個(gè)面向管理員的后臺(tái)部分是必不可少的。但是,后臺(tái)的管理與操作不是一個(gè)簡(jiǎn)單的過(guò)程,管理員會(huì)要在多個(gè)項(xiàng)目之間進(jìn)行交替操作,倘若每進(jìn)行一步操作就在前臺(tái)與后臺(tái)之間進(jìn)行切換,特別像借書還書這樣的日常操作是相當(dāng)頻繁的,不但容易造成許多操作失
61、誤,而且也會(huì)造成不可想象的安全隱患。因此,為了既能方便的對(duì)前臺(tái)的數(shù)據(jù)進(jìn)行更新和控制,同時(shí)實(shí)現(xiàn)在線考試管理系統(tǒng)的完善性等諸多功能,又能讓所有相關(guān)操作集中,便捷,最大程度的方便工作人員對(duì)考試信息的管理,我們考慮應(yīng)該把所有要完成的這些功能獨(dú)立為一個(gè)系統(tǒng)進(jìn)行管理。在這個(gè)系統(tǒng)中,所有的功能都模塊化,在分工上相對(duì)獨(dú)立,這樣就更便于操作和維護(hù)。當(dāng)被賦予權(quán)限的管理員進(jìn)入后臺(tái)的在線考試管理系統(tǒng)后,可以很方便的進(jìn)行試卷的錄入、出卷、閱卷等一系列操作,如果是
62、最高權(quán)限的管理員,則還可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份,更改管理員密碼等,這樣整個(gè)后臺(tái)的在線考試管理系統(tǒng)就實(shí)現(xiàn)了管理模塊化和操作集中化,針對(duì)性強(qiáng)等.由于這是一個(gè)面向管理員的系統(tǒng),所以,不需要網(wǎng)站中諸多花樣的界面,只需要讓使用者以最快,最方便,最安全的方式進(jìn)行管理,所以,我們采用框架式界面,這樣可以隨時(shí)選擇需要進(jìn)行操作的功能,而</p><p> 總之,一個(gè)框架式的在線考試管理系統(tǒng),在它里面的各項(xiàng)功能在形式上應(yīng)相互獨(dú)立,但在
63、內(nèi)容上是互相關(guān)聯(lián)的.</p><p> 2.2 需求分析 (試卷管理模塊)</p><p> 在線考試管理系統(tǒng)需要滿足試卷管理人員和考生的需求。</p><p> 1.管理人員在試卷管理模塊的需求是:</p><p> 可以利用現(xiàn)成的EXCEL添加試卷</p><p><b> 可以進(jìn)行試卷的刪除&
64、lt;/b></p><p> 可以瀏覽所添加進(jìn)去的試卷</p><p> 2.3 系統(tǒng)功能模塊劃分</p><p> 在這個(gè)在線考試管理系統(tǒng)中,本人所完成的工作是試卷管理系統(tǒng)內(nèi)容:</p><p> 1.單選試題的錄入具體實(shí)現(xiàn)</p><p> 2.多選試題的錄入具體實(shí)現(xiàn)</p><
65、;p> 3.簡(jiǎn)答試題的錄入具體實(shí)現(xiàn)。</p><p> 4.以及相應(yīng)的試題的刪除</p><p> 5.以及相應(yīng)的前臺(tái)頁(yè)面</p><p> 2.4系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)</p><p> 本系統(tǒng)所有數(shù)據(jù)均存放于一個(gè)數(shù)據(jù)庫(kù)(user用戶中),在此數(shù)據(jù)庫(kù)基礎(chǔ)上建立了如下表:</p><p> ·單選題
66、信息表 SUBJECT</p><p> ·多選題信息表 MULTSUBJECT</p><p> ·簡(jiǎn)答題信息表 ESSAYSUBJECT</p><p> 各表的詳細(xì)說(shuō)明如下:</p><p> ·單選題信息表 SUBJECT</p><p> 表2.1 單選題信息表
67、</p><p> ·多選題信息表 MULTSUBJECT</p><p> 表2.2 多選題信息表</p><p> ·簡(jiǎn)答題信息表 ESSAYSUBJECT</p><p> 表2.3 簡(jiǎn)答題信息表</p><p> 接下來(lái)就是試卷錄入的數(shù)據(jù)庫(kù)設(shè)計(jì):</p><
68、p> 我將hibernate配置文件存放到entity下</p><p> Question實(shí)體:</p><p> <!-- 建立類于數(shù)據(jù)庫(kù)中表的映射關(guān)系 --></p><p> <hibernate-mapping package="com.fc.entity"></p><p>
69、; <!-- 類名和表名的映射 --></p><p> <class name="Question" table="SUBJECT"></p><p> <!-- 屬性和字段的映射 --></p><p> <id name="id" column=&qu
70、ot;ID"><!--主鍵生成策略-->//題號(hào)</p><p> <generator class="native" /><!-- 主鍵產(chǎn)生方式:自動(dòng)產(chǎn)生 因?yàn)閿?shù)據(jù)庫(kù)底層支持autoincrement主鍵生成方式 例如MYSQL SQL SEVER--></p><p><b> </id>
71、</b></p><p> <property name="content" column="CONTENT" /><!-- NAME是實(shí)體類中的屬性 column是表單里的字段名--></p><p> <property name="answerA" column="A
72、NSWERA" />//A選擇</p><p> <property name="answerB" column="ANSWERB" />//B選擇</p><p> <property name="answerC" column="ANSWERC" />//C選擇&
73、lt;/p><p> <property name="answerD" column="ANSWERD" />//D選擇</p><p> <property name="rightanswer" column="RIGHTANSWER" />//正確答案</p><
74、p> <property name="subject" column="SUBJECT" />//科目名</p><p> <property name="difficulty" column="DIFFICULTY" />//難度</p><p><b> <
75、;/class></b></p><p> </hibernate-mapping> </p><p> public class Question {</p><p> private Integer id;</p><p> private String content;</p><
76、;p> private String answerA;</p><p> private String answerB;</p><p> private String answerC;</p><p> private String answerD;</p><p> private String rightanswer;&
77、lt;/p><p> private String subject;</p><p> private String difficulty;</p><p> public Question(String id, String content, String answerA, String answerB,</p><p> String
78、 answerC, String answerD, String rightanswer, String subject, String difficulty) {</p><p><b> super();</b></p><p> this.id = Integer.valueOf(id);</p><p> this.content
79、 = content;</p><p> this.answerA = answerA;</p><p> this.answerB = answerB;</p><p> this.answerC = answerC;</p><p> this.answerD = answerD;</p><p> th
80、is.rightanswer = rightanswer;</p><p> this.subject = subject;</p><p> this.difficulty = difficulty;</p><p><b> }</b></p><p> public String getContent()
81、{</p><p> return content;</p><p><b> }</b></p><p> public void setContent(String content) {</p><p> this.content = content;</p><p><b>
82、; }</b></p><p> public String getAnswerA() {</p><p> return answerA;</p><p><b> }</b></p><p> public void setAnswerA(String answerA) {</p>
83、<p> this.answerA = answerA;</p><p><b> }</b></p><p> public String getAnswerB() {</p><p> return answerB;</p><p><b> }</b></p>
84、<p> public void setAnswerB(String answerB) {</p><p> this.answerB = answerB;</p><p><b> }</b></p><p> public String getAnswerC() {</p><p> retu
85、rn answerC;</p><p><b> }</b></p><p> public void setAnswerC(String answerC) {</p><p> this.answerC = answerC;</p><p><b> }</b></p>&l
86、t;p> public String getAnswerD() {</p><p> return answerD;</p><p><b> }</b></p><p> public void setAnswerD(String answerD) {</p><p> this.answerD = a
87、nswerD;</p><p><b> }</b></p><p> public String getRightanswer() {</p><p> return rightanswer;</p><p><b> }</b></p><p> public
88、void setRightanswer(String rightanswer) {</p><p> this.rightanswer = rightanswer;</p><p><b> }</b></p><p> public Integer getId() {</p><p> return id;&l
89、t;/p><p><b> }</b></p><p> public void setId(Integer id) {</p><p> this.id = id;</p><p><b> }</b></p><p> public String getSubjec
90、t() {</p><p> return subject;</p><p><b> }</b></p><p> public void setSubject(String subject) {</p><p> this.subject = subject;</p><p><
91、b> }</b></p><p> public String getDifficulty() {</p><p> return difficulty;</p><p><b> }</b></p><p> public void setDifficulty(String difficul
92、ty) {</p><p> this.difficulty = difficulty;</p><p><b> }</b></p><p> PS:注意ID,這個(gè)屬性定義為integer,但是我們?cè)诖嫒?,或讀出時(shí)候卻需要string,因?yàn)槲覀兪菍⒁粋€(gè)anlist存入的數(shù)據(jù)庫(kù)或顯示到頁(yè)面,而anlist不能存integer,所以必須用s
93、tring,靠this.id = Integer.valueOf(id);將integer轉(zhuǎn)為String。</p><p> 2.5系統(tǒng)界面風(fēng)格設(shè)計(jì)</p><p> 在線考試系統(tǒng)試卷管理界面(開始登陸界面)</p><p> 在線考試系統(tǒng)試卷管理界面(進(jìn)入到試卷管理界面<單選題錄入部分>)</p><p> 第2章圖書
94、借閱管理的設(shè)計(jì)</p><p> 在線考試系統(tǒng)試卷管理界面(進(jìn)入到試卷管理界面<多選題錄入部分>)</p><p> 在線考試系統(tǒng)試卷管理界面(進(jìn)入到試卷管理界面<簡(jiǎn)答題錄入部分>)</p><p> 第三章在線考試管理系統(tǒng)的具體實(shí)現(xiàn)</p><p> 3.試卷管理功能的實(shí)現(xiàn)</p><p&
95、gt; 試卷管理是在線考試管理系統(tǒng)的一個(gè)最重要也是最基本功能。它在管理工作人員的操作下,對(duì)試卷進(jìn)行錄入、修改、查詢等一系列的過(guò)程。在程序中,利用JAVA script 腳本語(yǔ)言實(shí)現(xiàn)畫面的控制,利用Jsp語(yǔ)言來(lái)實(shí)現(xiàn)對(duì)庫(kù)的操作和算法流程的控制。</p><p> 3.1 試卷管理的后臺(tái)具體實(shí)現(xiàn)(服務(wù)層)</p><p> 試卷管理工作人員根據(jù)所給的EXCEL(是由出題組提供的,格式必須按
96、需求所統(tǒng)一)將該EXCEL中的題目錄入到數(shù)據(jù)庫(kù)中,并將所加入的題目顯示到成功跳轉(zhuǎn)后的JSP上。因?yàn)樵撃K是管理員的試卷的錄入,所以只對(duì)據(jù)有管理權(quán)限的人員開放,所以借閱者必須根據(jù)自己的工號(hào)(工作證編號(hào))經(jīng)行驗(yàn)證后,工作人員根據(jù)EXCEL所在的路徑進(jìn)行文件的瀏覽和載入,提交之后若成功進(jìn)入數(shù)據(jù)庫(kù),則跳轉(zhuǎn)到成功頁(yè)面,若不成功則報(bào)錯(cuò)。一般來(lái)說(shuō),只要該文件復(fù)合所提的標(biāo)準(zhǔn)類型,就可以進(jìn)行數(shù)據(jù)的錄入,但為了有效控制上傳的有效秩序,對(duì)于上傳的數(shù)據(jù)額超過(guò)最
97、大限制,不能進(jìn)行數(shù)據(jù)錄入,此外,若操作人員沒有相應(yīng)的權(quán)限,則無(wú)法訪問(wèn)此頁(yè)面。</p><p><b> 算法描述如下:</b></p><p> 為了方便以后,使編碼時(shí)候調(diào)用更為清晰,所以使用了接口。</p><p> 我在service層中定義了個(gè)QuestionService接口其中包括的方法為:</p><p&g
98、t; public List<Question> getAnswer(String path); //在每次錄入一個(gè)只有單選題的EXCEL后,將錄入的EXCEL的內(nèi)容提取出來(lái),并顯示在頁(yè)面上。</p><p> public void addQuestions(File file);//向數(shù)據(jù)庫(kù)中添加想要添加的那個(gè)單選EXCEL,逐行讀出,并將每行封裝成為一個(gè)對(duì)象存入數(shù)據(jù)庫(kù)中。</p>
99、<p> public List<MultQuestion> getMultAnswer(String path);//在每次錄入一個(gè)只有多選題的EXCEL后,將錄入的EXCEL的內(nèi)容提取出來(lái),并顯示在頁(yè)面上。</p><p> public void addMultQuestions(File file); 向數(shù)據(jù)庫(kù)中添加想要添加的那個(gè)多選EXCEL,逐行讀出,并將每行封裝成為一個(gè)
100、對(duì)象存入數(shù)據(jù)庫(kù)中。</p><p> public List<EssayQuestion> getEssayAnswer(String path);在每次錄入一個(gè)只有簡(jiǎn)單題的EXCEL后,將錄入的EXCEL的內(nèi)容提取出來(lái),并顯示在頁(yè)面上。</p><p> public void addEssayQuestions(File file); 向數(shù)據(jù)庫(kù)中添加想要添加的那個(gè)簡(jiǎn)單
101、EXCEL,逐行讀出,并將每行封裝成為一個(gè)對(duì)象存入數(shù)據(jù)庫(kù)中。</p><p> 我們具體介紹一下單選錄入的具體方法</p><p> package com.fc.serviceimpl;</p><p> import java.io.File;</p><p> import java.util.ArrayList;</p&
102、gt;<p> import java.util.List;</p><p> import org.hibernate.Session;</p><p> import com.fc.entity.EssayQuestion;</p><p> import com.fc.entity.Question;</p><p&g
103、t; import com.fc.service.QuestionService;</p><p> import com.fc.util.HibernateUtil;</p><p> import com.fc.entity.MultQuestion;</p><p> import jxl.Sheet;</p><p> im
104、port jxl.Workbook;</p><p> public class QuestionServiceImpl implements QuestionService {</p><p> public List<Question> getAnswer(String path) {</p><p> Workbook workbook =
105、null;</p><p><b> try {</b></p><p> workbook = Workbook.getWorkbook(new File(path));</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p&g
106、t;<p> Sheet sheet = workbook.getSheet(0);</p><p> int columns = sheet.getColumns();</p><p> int rows = sheet.getRows();</p><p> int j = 0;</p><p> List<
107、Question> anlist = new ArrayList<Question>();</p><p> for (int i = 1; i < rows; i++) {</p><p> Question answer = new Question(sheet.getCell(j, i).getContents(),</p><p>
108、; sheet.getCell(j + 1, i).getContents(), sheet.getCell(j + 2,</p><p> i).getContents(), sheet.getCell(j + 3, i)</p><p> .getContents(), sheet.getCell(j + 4, i)</p><p> .getConte
109、nts(), sheet.getCell(j + 5, i)</p><p> .getContents(), sheet.getCell(j + 6, i)</p><p> .getContents(), sheet.getCell(j + 7, i)</p><p> .getContents(), sheet.getCell(j + 8, i)<
110、/p><p> .getContents());</p><p> anlist.add(answer);</p><p> return anlist;}</p><p> public void addQuestions(File file) {Workbook workbook = null;</p><p>
111、; try workbook = Workbook.getWorkbook(file);</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> Sheet sheet = workbo
112、ok.getSheet(0);</p><p> int columns = sheet.getColumns();</p><p> int rows = sheet.getRows();</p><p> int j = 0;</p><p> List<Question> anlist = new ArrayList
113、<Question>();</p><p> for (int i = 1; i < rows; i++) {</p><p> Question answer = new Question(sheet.getCell(j, i).getContents(),</p><p> sheet.getCell(j + 1, i).getConte
114、nts(), sheet.getCell(j + 2,</p><p> i).getContents(), sheet.getCell(j + 3, i)</p><p> .getContents(), sheet.getCell(j + 4, i)</p><p> .getContents(), sheet.getCell(j + 5, i)</
115、p><p> .getContents(), sheet.getCell(j + 6, i)</p><p> .getContents(), sheet.getCell(j + 7, i)</p><p> .getContents(), sheet.getCell(j + 8, i)</p><p> .getContents());
116、</p><p> anlist.add(answer);</p><p><b> }</b></p><p> }首先因?yàn)槲覀兪窃阡浫胍粋€(gè)EXCEL,但是EXCEL是微軟的一個(gè)軟件,所以我們需要引入第三方的包,即jxl.jar。引入這個(gè)包后,我們可以通過(guò)它進(jìn)行對(duì)EXCEL的讀取。JXL中有workbook這個(gè)對(duì)象,我們可以通過(guò)實(shí)例它之
117、后,用getWorkbook方法去讀出EXCEL,但要確定它是代參數(shù)的,參數(shù)類型是String,且是文件路徑。</p><p> 其次jxl.jar包中還有sheet對(duì)象,sheet對(duì)象是EXCEL中的表,我們可以通過(guò)它的getSheet方法得到表,注意參數(shù)為int,且我們要得到第一張表所以參數(shù)為0.</p><p> 再之,在sheet對(duì)象中還有g(shù)etColumns()和getRow
118、s()方法,分別是取出表中的列數(shù)和行數(shù)。</p><p> 之后我們可以規(guī)定了泛型的一個(gè)anlist去存入整個(gè)表中我們所需的內(nèi)容。注意我們存入時(shí)是需要將每道題看作成為一個(gè)對(duì)象,分別存入整個(gè)anlist中。</p><p> 在試卷錄入這個(gè)程序中,我們利用題號(hào)這個(gè)自增的關(guān)鍵字,把題目信息表存入數(shù)據(jù)庫(kù)中,多方面考慮問(wèn)題,把試題錄入過(guò)程中可能出現(xiàn)的狀況,都要一一考慮進(jìn)來(lái),方便能操作人員。&l
119、t;/p><p> 3.2試卷管理的前臺(tái)具體實(shí)現(xiàn)(視圖層)</p><p> 我們可以發(fā)現(xiàn)服務(wù)層代碼與視圖層是緊密聯(lián)系的,在我們?cè)陧?yè)面中提交了我們所選中的信息之后,通過(guò)數(shù)據(jù)的傳遞,進(jìn)行頁(yè)面的跳轉(zhuǎn),完成了試卷管理所要實(shí)現(xiàn)的功能。在left.html中,點(diǎn)擊提交按鈕之后</p><p> <form method="post" action=
120、"welcome.action"</p><p> enctype="multipart/form-data" ></p><p> <input type="file" name="targetfile" style="position:relative;width:300px;he
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 等級(jí)考試管理系統(tǒng)畢業(yè)論文
- 計(jì)算機(jī)應(yīng)用技術(shù)畢業(yè)論文---基于jsp的考試管理系統(tǒng)
- 基于web的超市管理系統(tǒng)——畢業(yè)論文
- 基于WEB的畢業(yè)論文管理系統(tǒng).pdf
- 基于web車輛管理系統(tǒng)【畢業(yè)論文】
- Web考試管理系統(tǒng)的研究.pdf
- 畢業(yè)論文--基于web的高校教務(wù)管理系統(tǒng)
- 畢業(yè)論文--基于web的高校教務(wù)管理系統(tǒng)
- a大學(xué)結(jié)業(yè)換證考試管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[畢業(yè)論文]
- 畢業(yè)論文(設(shè)計(jì))基于web的畢業(yè)設(shè)計(jì)管理系統(tǒng)
- web倉(cāng)儲(chǔ)管理系統(tǒng)畢業(yè)論文
- 畢業(yè)論文-----基于web的圖書館管理系統(tǒng)
- 畢業(yè)論文——基于web的實(shí)驗(yàn)室管理系統(tǒng)
- 畢業(yè)論文 基于web在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文(設(shè)計(jì))基于web考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文范文——計(jì)算機(jī)等級(jí)考試管理系統(tǒng) --報(bào)名管理
- 畢業(yè)論文范文——計(jì)算機(jī)等級(jí)考試管理系統(tǒng) --報(bào)名管理
- 基于java web技術(shù)的圖片管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 基于web的學(xué)生成績(jī)管理系統(tǒng)-畢業(yè)論文
- 基于java web技術(shù)的圖片管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
評(píng)論
0/150
提交評(píng)論