基于java離散數(shù)學(xué)課程題庫管理系統(tǒng)設(shè)計(jì)
基于java離散數(shù)學(xué)課程題庫管理系統(tǒng)設(shè)計(jì),基于,java,離散,數(shù)學(xué)課程,題庫,管理,系統(tǒng),設(shè)計(jì)
目 錄
目 錄
目 錄 I
摘 要 III
Abstract IV
第 1 章 緒 論 1
1.1 論文研究的背景及意義 1
1.2 國(guó)內(nèi)外研究現(xiàn)狀 1
1.3 論文的組織結(jié)構(gòu) 2
1.4 本章小結(jié) 2
第 2 章 系統(tǒng)實(shí)現(xiàn)的相關(guān)技術(shù) 4
2.1 軟件工程瀑布模型介紹 4
2.2 Java Swing 介紹 4
2.3 MySql 介紹 5
2.4 本章小結(jié) 5
第 3 章 系統(tǒng)需求分析與總體設(shè)計(jì) 6
3.1 系統(tǒng)需求分析 6
3.2 系統(tǒng)總體設(shè)計(jì) 8
3.3 本章小結(jié) 9
第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì) 10
4.1 數(shù)據(jù)庫設(shè)計(jì) 10
4.2 子功能模塊設(shè)計(jì) 12
4.3 本章小結(jié) 20
II
第 5 章 系統(tǒng)實(shí)現(xiàn) 21
5.1 系統(tǒng)功能實(shí)現(xiàn) 21
5.2 本章小結(jié) 25
第 6 章 系統(tǒng)測(cè)試 26
6.1 系統(tǒng)測(cè)試方案 26
6.2 系統(tǒng)測(cè)試過程 26
6.3 本章小結(jié) 29
第 7 章 總結(jié)與展望 30
7.1 總結(jié) 30
7.2 未來展望 30
參考文獻(xiàn) 31
致 謝 32
摘 要
基于 java 離散數(shù)學(xué)題庫管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
摘 要
作為教學(xué)活動(dòng)的重要組成部分,題庫與試卷建設(shè)在教學(xué)中扮演了一個(gè)非常重要的角色。而傳統(tǒng)試卷編寫方式,經(jīng)常出現(xiàn)一些諸如書寫錯(cuò)誤、知識(shí)點(diǎn)不合理、題型相似、印刷等問 題。為了改善這些問題,實(shí)現(xiàn)對(duì)于題庫的信息化管理,我們開發(fā)了一套離散數(shù)學(xué)題庫管理 系統(tǒng)。
該系統(tǒng)采用 C/S 模式,界面采用 JAVA,后臺(tái)采用 Mysql 數(shù)據(jù)庫。本文詳細(xì)地?cái)⑹鲈摴芾硐到y(tǒng)的總體設(shè)計(jì)思想、后臺(tái)數(shù)據(jù)庫的設(shè)計(jì)思路、以及各個(gè)功能模塊設(shè)計(jì)等等。運(yùn)用軟件工程中的瀑布開發(fā)模型,實(shí)現(xiàn)了題庫的管理與設(shè)計(jì)、自動(dòng)(手動(dòng))生成試卷、生成 Word 試卷和答案等功能。
關(guān)鍵詞:JAVA;MYSQL;SWING
IV
Abstract
Design and implementation of discrete mathematics exam management system based on java
Abstract
As an important part of teaching activities, exam papers and construction plays a very important role in teaching. However, with the papers written in the traditional way, often some problems are contained, such as clerical errors, knowledge unreasonable, similar kinds of questions, printing problems, etc. In order to improve these problems, to achieve information management topics, we have developed Discrete mathematics exam Management System(Acronym DMS).
DMS applies C/S mode and JAVA.The backstage applies Mysql database. In this paper ,I described DMS overall design, database design ideas, as well as various functional modules in detail .DMS implemented the following functions by classic waterfall models of software development .The first was management and maintenance of the test library; Then make a test paper automatically or maintain the existed test paper; Finally generate WORD test paper and test answers.
Key words: JAVA; MYSQL; SWIN
第 1 章 緒 論
第 1 章 緒 論
1.1 論文研究的背景及意義
隨著科技的進(jìn)步、生產(chǎn)社會(huì)化趨勢(shì)的不斷擴(kuò)大、人類知識(shí)總量爆炸式增長(zhǎng)、市場(chǎng)競(jìng)爭(zhēng)的日漸激烈,人們對(duì)信息技術(shù)以及其對(duì)人類的影響的認(rèn)識(shí)產(chǎn)生了翻天覆地的變化。被稱為人類社會(huì)進(jìn)步和發(fā)展的三大資源之一的信息,對(duì)人類的發(fā)展的影響力也日益增大。我們身處于技術(shù)飛速發(fā)展的時(shí)代,也是國(guó)家改革開發(fā)的深入階段,一定要抓住機(jī)遇,充分利用信息和先進(jìn)技術(shù),為我國(guó)信息化建設(shè)盡一份力。
鄧小平同志曾說過,“教育要面向現(xiàn)代化、面向世界、面向未來”。信息技術(shù)的社會(huì)化時(shí)代已然來臨?,F(xiàn)代人們的日常生活中,已經(jīng)離不開信息技術(shù)。家庭電腦、手機(jī)等移動(dòng)設(shè)備的普及,互聯(lián)網(wǎng)媒體的傳播早已是人們的生活變得越來越精彩。普通人也可以做到足不出門而知天下大事了。同時(shí),信息的發(fā)展對(duì)教育來說,也大有裨益。除了自主獲取教育資訊,多媒體教學(xué)的運(yùn)用,網(wǎng)絡(luò)教學(xué)的發(fā)展,也為教育的發(fā)展添上了濃墨重彩的一筆。然而目前傳統(tǒng)教育仍占教育的主體,部分教學(xué)手段的革新已經(jīng)迫在眉睫。
作為檢驗(yàn)教學(xué)設(shè)計(jì)效果的一個(gè)重要因素,教學(xué)評(píng)價(jià)也是修訂和完善教學(xué)設(shè)計(jì)的一個(gè)基本因素。其包括兩個(gè)環(huán)節(jié),分別為:?jiǎn)卧獪y(cè)試與最終考試。因教育部把題庫和試卷作為對(duì)本科教學(xué)的一項(xiàng)指標(biāo)和觀測(cè)點(diǎn),高質(zhì)量的出題的要求則變得更高。傳統(tǒng)的出卷方式,因其雷同率、知識(shí)點(diǎn)不合理、以及印刷等種種問題,已經(jīng)不適合當(dāng)下的教學(xué)要求了,我們得尋求一種適用于網(wǎng)絡(luò)教學(xué)的新型出卷模式。
老師,作為題庫的管理與出卷系統(tǒng)的使用對(duì)象,能夠?qū)ο到y(tǒng)進(jìn)行管理,根據(jù)實(shí)際需求的不同自動(dòng)生成試卷和對(duì)應(yīng)的參考答案,從而減輕自身的工作負(fù)擔(dān),提高工作效率。
1.2 國(guó)內(nèi)外研究現(xiàn)狀
21 世紀(jì)今天,經(jīng)濟(jì)飛速發(fā)展,商業(yè)空前繁榮,科技飛躍,給人們的生活帶來了極大的便利。而在這些成就背后離不開人才的支持,是無數(shù)的人才創(chuàng)造來了今天的繁榮。人們的生活水平越高,經(jīng)濟(jì)越繁榮,科技越先進(jìn),對(duì)人才的要求就越高。傳統(tǒng)教育教出來的人才已經(jīng)很難適應(yīng)日新月異的今天的需求,為此,不管是美國(guó)、日本、歐洲國(guó)家、還是中國(guó)都在不斷地加大對(duì)教育的投資。而對(duì)現(xiàn)代化教育的發(fā)展,不僅僅需要先進(jìn)的思想,也得需要先進(jìn)的教學(xué)設(shè)施(當(dāng)然,某種意義上說,使用先進(jìn)的教學(xué)設(shè)備也能體現(xiàn)一些先進(jìn)的思想)。
然而,經(jīng)過這些年的努力,我們?cè)诂F(xiàn)代化教育上也取得了不小的腳步。但是就“科教興國(guó)”、“振新中華”而言,我們要走的路還很長(zhǎng)。目前,大多數(shù)院校的現(xiàn)代化教學(xué)要求仍然沒有達(dá)到,教育并沒有真正實(shí)現(xiàn)現(xiàn)代化。就學(xué)生考試而言,目前大多數(shù)學(xué)校仍使用傳統(tǒng)
13
的方式為學(xué)生出題。而教育相關(guān)部門通常要求任課老師同時(shí)提供多套試卷,并且這些試卷要求難度系數(shù)相近,題型相似,且與往年相比,重復(fù)題型不能超過 30%,除此以外還需要提供參考答案和評(píng)分標(biāo)準(zhǔn),這些都在無形中給老師增加了負(fù)擔(dān)。并且如果同一教師教的不同屆學(xué)生,難免會(huì)用同樣的試卷,那么試卷的保密性就很難得到保證了。但是如果采用了計(jì)算機(jī)的數(shù)據(jù)庫存儲(chǔ)技術(shù),那么這些問題就會(huì)迎仍而解了。我們可以利用計(jì)算機(jī)技術(shù)建立一套現(xiàn)代化題庫管理系統(tǒng)。有了這套系統(tǒng),便可以出題合情合理、閱卷公平公正、評(píng)價(jià)科學(xué)客觀。這樣既保證了考試的公正性,又把教師從繁重的命題工作中解救出來,一舉兩得。
1.3 論文的組織結(jié)構(gòu)
本文是基于已經(jīng)完成的離散數(shù)學(xué)題庫管理系統(tǒng)(簡(jiǎn)稱該管理系統(tǒng))而作的論文,全文圍繞該管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)展開。
第一章:緒論部分。緒論是對(duì)全文的概括。課題的背景、國(guó)內(nèi)外的研究形式與實(shí)際意義在整個(gè)項(xiàng)目中,占有及其重要的地位,我們不能設(shè)計(jì)一個(gè)對(duì)實(shí)際生產(chǎn)生活沒有任何幫助的東西,也不能花很大的努力研究一件市場(chǎng)上早已成熟的東西。一切從實(shí)際出發(fā),實(shí)事求是。然后便是本節(jié),對(duì)論文的組織結(jié)構(gòu)進(jìn)行介紹,是的本文結(jié)構(gòu)清晰,方便閱讀。
第二章:該管理系統(tǒng)實(shí)現(xiàn)的相關(guān)技術(shù)介紹。,在這個(gè)系統(tǒng)中,設(shè)計(jì)的技術(shù)比較普通, 但是邏輯要求高。Java Swing 編寫的界面,Mysql 搭建了后臺(tái)數(shù)據(jù)庫服務(wù),然后又在生成word 中運(yùn)用了軟件工程中的瀑布模型,這些本文中都會(huì)一一介紹。
第三章:系統(tǒng)需求分析部分。對(duì)于一個(gè)項(xiàng)目來說,需求相當(dāng)于航行中的燈塔,不明白需求,就找不到前進(jìn)的方向。當(dāng)然,所做的功都是無用功。所以本文從可行性及功能上進(jìn)行分析,設(shè)計(jì)了幾個(gè)功能模塊。
第四章:系統(tǒng)結(jié)構(gòu)與行為設(shè)計(jì)部分。該部分主要是對(duì)該管理系統(tǒng)的幾個(gè)具體功能模塊的關(guān)系,實(shí)現(xiàn)進(jìn)行進(jìn)一步的闡述,以讓讀者充分地理解整個(gè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
第五章:系統(tǒng)測(cè)試。做為開發(fā)的人,我們都知道,在項(xiàng)目開發(fā)過程中,真正的實(shí)現(xiàn)只占很少的一部分。一大部分是需求分析,剩下的部分還要進(jìn)行多次的測(cè)試。軟件測(cè)試是發(fā)現(xiàn)和解決 bug 的過程,沒有經(jīng)過測(cè)試的軟件,其安全性與穩(wěn)定性是不可保證的,也是沒有人敢用的。經(jīng)過多輪測(cè)試與維護(hù),將可能的危害扼殺在萌芽之中,以維護(hù)使用者的權(quán)益。
第六章:總結(jié)與展望。我會(huì)對(duì)文章系統(tǒng)的使用,以及實(shí)際意義進(jìn)行總結(jié),并且結(jié)合實(shí)際需求對(duì)相關(guān)行業(yè)進(jìn)行調(diào)查與預(yù)期,以幫助教師學(xué)生實(shí)現(xiàn)更好地教學(xué)。
1.4 本章小結(jié)
本章主要從課題出發(fā),調(diào)研國(guó)內(nèi)外相關(guān)內(nèi)容項(xiàng)目的研究現(xiàn)狀,并結(jié)合當(dāng)前教育背景并
對(duì)當(dāng)前教育現(xiàn)狀進(jìn)行分析,結(jié)合實(shí)際,發(fā)現(xiàn)課題的現(xiàn)實(shí)意義。我們要一切從實(shí)際出發(fā),做出有用的東西。然后根據(jù)分析結(jié)果,完成課題。并撰寫課題論文,這里對(duì)全文的主要內(nèi)容就行簡(jiǎn)單的額敘述,以便更好地把握全文。
第 2 章 系統(tǒng)實(shí)現(xiàn)的相關(guān)技術(shù)
第 2 章 系統(tǒng)實(shí)現(xiàn)的相關(guān)技術(shù)
2.1 軟件工程瀑布模型介紹
瀑布模型[1]將軟件開發(fā)的生命周期劃分為 6 個(gè)基本活動(dòng),并且規(guī)定這些活動(dòng)自上而下、相互銜接的固定次序,如同瀑布流水那般,逐級(jí)下落,故而得名。瀑布模型的本質(zhì)是個(gè)開 發(fā)架構(gòu),它開發(fā)中是按一定的順序展開的,從需求分析到發(fā)布與維護(hù),每個(gè)階段都會(huì)循環(huán) 產(chǎn)生反饋,所以如果存在信息沒有被覆蓋后者有新的問題,就可以“返回”上一階段進(jìn)行 修改與維護(hù),開發(fā)的進(jìn)程則“流動(dòng)”到下一階段。
瀑布模型的核心思想是按工序?qū)栴}簡(jiǎn)化,將功能設(shè)計(jì)與實(shí)現(xiàn)分開,方便分工協(xié)作, 即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)物理實(shí)現(xiàn)分開。瀑布模型所劃分的 6 個(gè)階段,
它們從上到下的關(guān)系模型 2.1 如圖所示:
圖 2.1 軟件生命周期圖
2.2 Java Swing 介紹
Java 是一種集跨平臺(tái)、面向?qū)ο蟆⒎盒途幊痰忍攸c(diǎn)于一身的編程語言[2],它被廣泛應(yīng)用于企業(yè)級(jí) Web 應(yīng)用開發(fā)和移動(dòng)應(yīng)用開發(fā)。它的語言的風(fēng)格與 C++相似,從 C++發(fā)展而來,繼承了 C++中面向?qū)ο蠹夹g(shù)的核心,舍棄了 C++語言中容易引起錯(cuò)誤的指針,同時(shí)移除原 C++與原來運(yùn)算符重載,也移除多重繼承特性,改用接口替換,增加垃圾回收器功能。Sun 公司對(duì) Java 語言的解釋是:“Java 語言是 u 一個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語言” [3]。
Java Swing 其本質(zhì)上是一個(gè)開發(fā)工具包[4],使用的是 Java 語言,用以開發(fā)圖形界面。它是以抽象窗口工具包(AWT)為基礎(chǔ),從而使應(yīng)用程序?qū)崿F(xiàn)跨平臺(tái)的特性。開發(fā)人員
能夠利用 Swing 包中豐富、靈活的功能和模塊化組件類使用少量的代碼就能開發(fā)出令人滿意的用戶界面[5]。
2.3 MySql 介紹
MySql 原是一個(gè)開源的關(guān)系數(shù)據(jù)庫管理系統(tǒng),是目前使用非常廣泛的數(shù)據(jù)庫系統(tǒng)。Mysql 經(jīng)歷了兩次易主,目前歸 Oracle 所有1,盡管如此,MySqlAB 公司和 Sun 公司均為Mysql 的產(chǎn)生和發(fā)展作出了巨大的貢獻(xiàn)。
MySQL 一直以來都是非常流行的數(shù)據(jù)庫系統(tǒng)。以前,因其性能高、成本低、可靠性好等特點(diǎn),MySql 成為最流行的開源數(shù)據(jù)庫,被廣泛地應(yīng)用于中小型網(wǎng)站。后來,隨著MySQL 自身的不斷完善,它也漸漸地被更多大規(guī)模網(wǎng)站和應(yīng)用使用,比如著名的維百, Google 和 Facebook 等網(wǎng)站均是使用 MySql 數(shù)據(jù)庫。
2.4 本章小結(jié)
本文主要對(duì)該管理系統(tǒng)相關(guān)技術(shù)的介紹。首先介紹的是瀑布模型,它軟件開發(fā)的基礎(chǔ)。該管理系統(tǒng)的整個(gè)開發(fā)過程都是按照瀑布模型的流程進(jìn)行開發(fā),這樣可以盡量保證各個(gè)環(huán)節(jié)不出錯(cuò)誤,從而有效的保證軟件的正確性與穩(wěn)定性。接著是對(duì)本次開發(fā)使用語言和開發(fā)環(huán)境的簡(jiǎn)單介紹。
1 MySql 原開發(fā)者為瑞典的MySQL AB 公司,該公司于 2008 年被昇陽微系統(tǒng)(Sun Microsystems)收購(gòu)。2009 年,甲骨文公司(Oracle)收購(gòu)昇陽微系統(tǒng)公司,MySQL 成為Oracle 旗下產(chǎn)品。
第 3 章 系統(tǒng)需求分析與總體設(shè)計(jì)
第 3 章 系統(tǒng)需求分析與總體設(shè)計(jì)
3.1 系統(tǒng)需求分析
需求分析是軟件開發(fā)中最主要的過程,同時(shí)也是軟件生存周期中關(guān)鍵步驟。根據(jù)瀑布模型的要求,對(duì)該管理系統(tǒng)的所有功能和所使用技術(shù)進(jìn)行逐個(gè)分析,分析時(shí)采用結(jié)構(gòu)化的分析方法,從上而下,逐層分解。
3.1.1 項(xiàng)目?jī)?nèi)容及要求
按照該項(xiàng)目的需求,從實(shí)際使用出發(fā),分析出該系統(tǒng)需要的功能及開發(fā)使用的工具。解析出不同的功能模塊,按模塊的開發(fā)要求坐進(jìn)一步分析,從而完成對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)。
(1) 完成的具體功能
該題庫管理系統(tǒng)具體功能如下:
1. 用戶登錄:教師 ID 登錄,只有指定的教師才能使用,密碼錯(cuò)誤時(shí),給以彈框提示。
2. 試題管理:管理題庫。實(shí)現(xiàn)在題庫中,添加、修改、刪除試題等功能。
3. 維護(hù)題庫:主要是實(shí)現(xiàn)對(duì)題庫中的試題的按條件查找的功能,使用單個(gè)條件或多個(gè)條件的查詢的方法,把查詢結(jié)果顯示出來。
4. 生成試卷:從試題中,挑選題型,題目,然后根據(jù)給定的條件(雷同率、難度等) 生成試卷,并且將試卷按 word 排版,生長(zhǎng)“紙質(zhì)”試卷保存到本地。
5. 管理試卷:對(duì)生成試卷的題目進(jìn)行修改,并提高重新組卷功能。
(2) 實(shí)現(xiàn)目標(biāo)
該管理系統(tǒng)系統(tǒng)具有良好的現(xiàn)實(shí)意義[6]。該管理系統(tǒng)實(shí)現(xiàn)了由傳統(tǒng)手工化管理到信息化管理的過渡,充分地利用了計(jì)算機(jī)的強(qiáng)大的運(yùn)算能力。該管理系統(tǒng)界面簡(jiǎn)潔、操作方便, 非常容易使用。并且,該管理系統(tǒng)使用 JAVA、MySql 開發(fā),均有良好的跨平臺(tái)性 ,可以在不同的系統(tǒng)環(huán)境下使用。
3.1.2 可行性分析
可行性分析是一門很重要的科學(xué),其不僅體現(xiàn)在研究技術(shù)領(lǐng)域經(jīng)濟(jì)問題和經(jīng)濟(jì)規(guī)律、特定技術(shù)條件下如何提高經(jīng)濟(jì)效益領(lǐng)域,同時(shí)還是經(jīng)濟(jì)與技術(shù)的交叉科學(xué)。它主要研究技術(shù)與經(jīng)濟(jì)效果的關(guān)系,在不同的經(jīng)濟(jì)與技術(shù)基礎(chǔ)上,二者如何組合才能實(shí)現(xiàn)最佳的效果。
(1) 經(jīng)濟(jì)可行性
該管理系統(tǒng)是一個(gè)微小型的題庫管理系統(tǒng),所以基本不需要多少投資,設(shè)備方面只需要一臺(tái)普通計(jì)算機(jī)就行。系統(tǒng)開發(fā)并不復(fù)雜,操作也盡可能簡(jiǎn)單。開發(fā)由個(gè)人獨(dú)立完成, 耗時(shí)兩月左右,所以該系統(tǒng)的成本主要是人工成本和上計(jì)算機(jī)和開發(fā)軟件的成本[7]。
經(jīng)濟(jì)上的合理性:普通計(jì)算機(jī)一臺(tái),系統(tǒng)使用 Windows 10 系統(tǒng),普通的也就 4000 元,Office 正版也就不到 800 元,數(shù)據(jù)庫采用 MySql5.0,前端采用 Eclipse Mars.1 Release (4.5.1)。開發(fā)人員 1 名(假如月薪 5000),若是網(wǎng)絡(luò)開發(fā)技術(shù)人員來開發(fā)該系統(tǒng)最多需要 1 個(gè)月的時(shí)間,所以總計(jì)開發(fā)費(fèi)用也就 10000 左右。計(jì)算機(jī)、系統(tǒng)、軟件都是可以重復(fù)使
用的,所以相當(dāng)于話費(fèi) 1 萬元,開發(fā)了一套系統(tǒng)的同時(shí)還買了一套計(jì)算機(jī)設(shè)備,非常劃算。自行開發(fā),不僅節(jié)省了開發(fā)成本,還能使系統(tǒng)符合自己的要求,同時(shí)還擁有了源碼,可以自行擴(kuò)展。
(2) 技術(shù)可行性
該管理系統(tǒng)采用 C/S 架構(gòu)。C/S 架構(gòu)分為表示層和數(shù)據(jù)邏輯層??蛻舳伺c服務(wù)器直接相連,這兩個(gè)部分都扮演著重要的角色,表示層的客戶機(jī)不止輸入輸出,運(yùn)算,還承擔(dān)著處理計(jì)算、數(shù)據(jù)存儲(chǔ)的職責(zé);數(shù)據(jù)庫層的服務(wù)器承擔(dān)邏輯事務(wù)處理的使命,本來事務(wù)可能很重,但是客戶端分擔(dān)了部分邏輯事務(wù),也就減輕了服務(wù)器的負(fù)擔(dān),使網(wǎng)絡(luò)流量增多。
圖 3.1 C/S 架構(gòu)圖
該管理系統(tǒng)的數(shù)據(jù)庫是基于關(guān)系型數(shù)據(jù)庫理論為指導(dǎo)設(shè)計(jì)的,數(shù)據(jù)庫建立在服務(wù)器上, 應(yīng)用程序則建立 C/S 結(jié)構(gòu)的客戶機(jī)上。
關(guān)于生成 WORD 的技術(shù)[8],這里使用了 JACOB 開源類庫。JACOB 是一個(gè)橋梁,它的兩端分別連接著 JAVA 和 COM 接口。因?yàn)?JACOB 具有允許任何 JVM 訪問 COM 對(duì)象的特征,所以 JAVA 程序才能夠調(diào)用 COM 接口。JAVA 程序可以利用 JACOB 對(duì) Excel、MS Word 進(jìn)行處理,這里使用的是 jacob-1.18。
圖 3.2 JACOB 基本結(jié)構(gòu)圖
以上所述的這些技術(shù)均已成熟,并在多個(gè)領(lǐng)域被很好地使用。有了這些的技術(shù)支持, 該管理系統(tǒng)便有了堅(jiān)實(shí)的技術(shù)基礎(chǔ)。
3.2 系統(tǒng)總體設(shè)計(jì)
該管理系統(tǒng)共有 3 大功能模塊,如圖 3.3。該圖清晰地展示該管理系統(tǒng)的各個(gè)模塊分布。教師登錄模塊,用作驗(yàn)證登錄用戶合法性,題庫管理與維護(hù)模塊實(shí)現(xiàn)對(duì)題目的增刪改查,生成試卷模塊完成根據(jù)要求自動(dòng)生成試卷的功能,并實(shí)現(xiàn)維護(hù)生成的試卷,生成 Word 形式試卷和及其對(duì)應(yīng)的參考答案的功能。
圖 3.3 該管理系統(tǒng)功能模塊圖
具體實(shí)現(xiàn)的類圖如下:
圖 3.4 題庫管理系統(tǒng)用例圖
3.3 本章小結(jié)
本章主要是對(duì)系統(tǒng)的需求進(jìn)行分析和系統(tǒng)總體設(shè)計(jì)。需求分析從項(xiàng)目?jī)?nèi)容和可行性分析兩部分展開,前者分析了該項(xiàng)目所需要的具體功能和所要實(shí)現(xiàn)的目標(biāo),后者則從技術(shù)可行性和經(jīng)濟(jì)可行性進(jìn)行分析,說明系統(tǒng)是可以做成的。然后對(duì)系統(tǒng)進(jìn)行總體的設(shè)計(jì),理清系統(tǒng)所需要的功能模塊和各個(gè)功能模塊所要實(shí)現(xiàn)的具體功能。
第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì)
第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì)
4.1 數(shù)據(jù)庫設(shè)計(jì)
后臺(tái)數(shù)據(jù)存儲(chǔ)在管理系統(tǒng)中的地位相當(dāng)重要[9],合理的數(shù)據(jù)庫設(shè)計(jì)能夠有效地縮短軟件的開發(fā)周期,降低開發(fā)難度。建立數(shù)據(jù)表是數(shù)據(jù)庫建立的最重要的步驟,而數(shù)據(jù)則是數(shù)據(jù)庫存儲(chǔ)的對(duì)象,所以數(shù)據(jù)庫存儲(chǔ)就是將數(shù)據(jù)按一定的組織結(jié)構(gòu)存在相關(guān)的數(shù)據(jù)表中。
將該管理系統(tǒng)概念結(jié)構(gòu)轉(zhuǎn)化為 MySql5.0 支持的數(shù)據(jù)模型,即:邏輯結(jié)構(gòu)。該管理系統(tǒng)數(shù)據(jù)庫中,數(shù)據(jù)庫名為 JACOB,借用生成 Word 的庫名,其下設(shè)有 5 個(gè)表,分別為TEACHER,COURSE, EXAM,EXAM_PAPER,DRAW_ITEM,以下將一一介紹。
教師表(TEACHER):用作記錄教師的基本信息。該表的關(guān)鍵字是 TEACHER_ID。 TEACHER_ID 同時(shí)也是課程表(COURSE)和試卷表(EXAM_PAPER)的外鍵。
表 4.1 教師表(TEACHER)
字段名
字段類型
字段長(zhǎng)度
說明
Teacher_id
VARCHAR
20
教師編號(hào),關(guān)鍵字(如 001)
Password
VARCHAR
10
密碼
Teacher_name
VARCHAR
20
教師姓名
Address
VARCHAR
200
住址(可以輸入英文 200,漢字 100
個(gè))
Phone
VARCHAR
15
電話
Cellphone
VARCHAR
15
手機(jī)
email
VARCHAR
40
Email
Degree
VARCHAR
10
學(xué)歷
Job_title
VARCHAR
10
職稱
remark
TEXT
16
備注
課程表(COURSE):用作記錄課程的基本信息。它既可用作記錄多個(gè)課程,也用作系統(tǒng)的擴(kuò)展。表中的關(guān)鍵字段是 COURSE_ID,COURSE_ID 同時(shí)用作下面的題庫表
(EXAM)和試卷表(EXAM_PAPER)的外鍵。表中的 INSTRUCTOR 是外鍵,對(duì)應(yīng)
TEACHER 表中的 TEACHER_ID 字段,表示該課程的任課教師。
表 4.2 課程表(COURSE)
字段名
字段類型
字段長(zhǎng)度
說明
Course_id
INT
4
課程編號(hào)(關(guān)鍵字)
Course_name
VARCHAR
30
課程名,如離散數(shù)學(xué)
instructor
VARCHAR
20
任課教師,外鍵,對(duì)應(yīng)TEACHER
表Teacher_id 字段
remark
TEXT
16
備注
題庫表(EXAM):用作記錄各科課程對(duì)應(yīng)的試題,為試卷的生成提供了題目來源。表中的關(guān)鍵字段是:QUESTION_NUM,用來唯一標(biāo)識(shí)一道題目。表中 COURSE_ID 是外鍵,對(duì)應(yīng) COURSE 表中的 COURSE_ID,表示該題目對(duì)應(yīng)的是對(duì)應(yīng)的課程。
表 4.3 題庫表(EXAM)
字段名
字段類型
字段長(zhǎng)度
說明
Question_num
INT
4
題號(hào)(關(guān)鍵字)
Course_id
INT
4
課程編號(hào)(外鍵,對(duì)應(yīng) COURSE 表的
Course_id 字段)
Chapter
VARCHAR
100
所屬章節(jié)(此題所屬課程的章節(jié),如:
第一章第兒節(jié),為“1-2”)
Context
TEXT
16
試題內(nèi)容
Right_answer
TEXT
16
正確答案
Scores
INT
4
分值
Question_type
VARCHAR
200
題型
Degree_of_difficult
DOUBLE
4
難度系數(shù)(以往考試中該題答錯(cuò)人數(shù) 除
以 總?cè)藬?shù) 得到的值,初次設(shè)置時(shí)根據(jù)教師的經(jīng)驗(yàn)手動(dòng)設(shè)置)
Times_get
INT
4
獲取次數(shù)
Entry_time
DATETIME
8
錄入時(shí)間
remark
TEXT
16
備注
試卷表(EXAM_PAPER):用作記錄試卷的基本信息,表中內(nèi)容用作生成試卷的標(biāo)題。表中的關(guān)鍵字段是:EP_ID。同時(shí)這兩個(gè)字段也是外鍵,分別對(duì)應(yīng) EXAM_PAPER 表的EP_ID 字段和 EXAM 表中的 QUESTION_NUM 字段。
表 4.4 試卷表(EXAM_PAPER)
字段名
字段類型
字段長(zhǎng)度
說明
Ep_id
INT
4
試卷編號(hào)(關(guān)鍵字)
Course_id
INT
4
課程編號(hào)(外鍵,對(duì)應(yīng) COURSE
表的Course_id 字段)
Ep_name
VARCHAR
200
試卷名稱
Exam_type
VARCHAR
20
考試類型(單元測(cè)試、其中測(cè)試、
期末考試、補(bǔ)考、其他)
Teacher_id
VARCHAR
200
出題教師號(hào)
Ep_component
INT
4
試卷總分(用戶設(shè)定)
Text_paper_time
DATETIME
8
組卷時(shí)間
remark
TEXT
16
備注
抽題表(DRAW_ITEM):用作記錄每張?jiān)嚲韺?duì)應(yīng)的題目,是生成 WORD 試卷的題目來源。表中的關(guān)鍵字段是:EP_ID,TOP_ID。該表中的 COURSE_ID 是外鍵,對(duì)應(yīng) COURSE 表的 COURSE_ID 字段,用作表示生成的試卷是哪門課。
表 4.5 試卷表(DRAW_ITEM)
字段名
字段類型
字段長(zhǎng)度
說明
Ep_id
INT
4
試卷編號(hào)(主鍵,也是外鍵,對(duì)應(yīng)
EXAM_PAPER 的Ep_id)
Top_id
INT
4
題目編號(hào)(主鍵,也是外鍵,對(duì)應(yīng)
EXAM 表中的Question_num)
remark
TEXT
16
備注
以上各表,實(shí)體為教師、課程、題庫和試卷,關(guān)系為試卷抽題表,他們之間的總體
E-R2圖如下:
題庫
n
n
圖 4.1 總體E-R 圖
4.2 子功能模塊設(shè)計(jì)
以下內(nèi)容為該系統(tǒng)的各個(gè)具體子功能模塊的詳細(xì)設(shè)計(jì)。
4.2.1 教師登錄模塊
1. 界面設(shè)計(jì)
登錄界面,實(shí)現(xiàn)教師登錄功能。教師在登錄系統(tǒng)時(shí),系統(tǒng)會(huì)檢查用戶名和密碼是否填寫,如果未填寫,系統(tǒng)則以對(duì)話框的形式,給以用戶提示并返回。檢查通過后,系統(tǒng)將數(shù)據(jù)傳給服務(wù)器,檢查輸入的用戶名與密碼跟事先存入數(shù)據(jù)庫的賬戶密碼是否一致。若數(shù)據(jù)一致則表示登錄成功,系統(tǒng)進(jìn)入主界面 。該功能模塊用作用戶信息的驗(yàn)證,以保證系統(tǒng)資料的安全性。
2 E-R 圖:也稱實(shí)體-聯(lián)系圖(Entity Relationship Diagram),提供了表示實(shí)體類型、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型。
2. 模塊內(nèi)主要算法描述
是
打開主界面
13
3. 模塊用例圖3
圖 4.2 教師登錄流程圖
教師
4. 模塊內(nèi) JAVA 類設(shè)計(jì)
圖 4.3 教師登錄用例圖
教師登錄模塊主要實(shí)現(xiàn)的 JAVA 類為 LoginFrame 和 DBAccess 類,關(guān)系如下類4圖所示:
LoginFrame
-id : string
-password : string
+okButton_actionPerformed(ActionEvent e)() : void
<> DBAccess
+getConnection()() : Connection
+executeUpdate(Connection conn, String sql)() : void
+executeQuery(Connection dbCon, String querySQL )() : void
圖 4.4 教師登錄界面類圖
LoginFrame 類:教師登錄窗口類,主要負(fù)責(zé)校檢用戶輸入的用戶名和密碼是否正確。
3 用例圖是由參與者(Actor)、用例(Use Case)以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的靜態(tài)視圖。
4 類圖是顯示了模型的靜態(tài)結(jié)構(gòu),特別是模型中存在的類、類的內(nèi)部結(jié)構(gòu)以及它們與其他類的關(guān)系等。
DBAccess 類:底層數(shù)據(jù)庫操作類。實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的基本操作,如增刪改查。
4.2.2 題庫管理與維護(hù)模塊
1. 界面設(shè)計(jì)
題庫維護(hù)界面主要完成對(duì)題目信息的錄入、刪除與修改等功能。如果需要添加試題, 則點(diǎn)擊“添加”按鈕,然后在對(duì)應(yīng)文本框中填寫題目對(duì)應(yīng)的內(nèi)容,填寫完好后,點(diǎn)擊“保存”按鈕,即可將題目存入數(shù)據(jù)庫。如需修改題目,則在界面的表中選擇要改的試題,直接修改表中對(duì)應(yīng)的內(nèi)容,然后點(diǎn)擊“保存”,即可將修改成功,同時(shí)數(shù)據(jù)庫也作了更新。若需刪除題目,只要選擇表格中對(duì)應(yīng)的試題,然后點(diǎn)擊“刪除”,系統(tǒng)就會(huì)刪除對(duì)應(yīng)的題目。
2. 模塊內(nèi)主要算法描述
32
3. 模塊用例圖
圖 4.5 題庫維護(hù)界面流程圖
圖 4.6 題庫維護(hù)界面用例圖
4. 模塊內(nèi) JAVA 類設(shè)計(jì)
該模塊主要由 AddTestDialog 類和 TestLibraryHandler 類實(shí)現(xiàn),下面用圖例(圖 4.7) 展示了其關(guān)系:
AddTestDialog
-sqlsvrDatabase : Database
-dBDisposeMonitor : DBDisposeMonitor
-courseQueryDataSet : QueryDataSet
+addjButton2_actionPerformed(ActionEvent e)() : void
+deletejButton2_actionPerformed(ActionEvent e)() : void
+savejButton1_actionPerformed(ActionEvent e)() : void
<> TestLibraryHandler
+getAllCourseNames()() : String[]
+addCourseNameItems( JComboBox courseNamejdbComboBox1 )() : void
圖 4.7 題庫維護(hù)界面類圖
AddTestDialog 類:用作該窗口維護(hù)和響應(yīng)操作。
TestLibraryHandler 類:用作與添加試題相關(guān)的數(shù)據(jù)庫操作,同 ui 界面一起實(shí)現(xiàn)題庫的維護(hù)功能。
4.2.3 試題查詢模塊
1. 界面設(shè)計(jì)
該模塊用作題目的查詢,允許根據(jù)用戶給定的單個(gè)或多個(gè)限制條件,對(duì)題目就行查詢并給以界面反饋。
2. 模塊內(nèi)主要算法描述
3. 模塊用例圖
圖 4.8 試題查詢流程圖
教師
4. 模塊內(nèi) JAVA 類設(shè)計(jì)
圖 4.9 試題查詢用例圖
該模塊主要由 QueryTestDialog 類實(shí)現(xiàn),負(fù)責(zé)顯示試卷查詢的對(duì)話框,實(shí)現(xiàn)已有題目的查詢功能,類圖如下:
QueryTestDialog
-sql : String
-queryResultqueryDataSet : QueryDataSet
-database : Database
-dBDisposeMonitor : DBDisposeMonitor
+okjButton1_actionPerformed(ActionEvent e)() : void
圖 4.10 試題查詢類圖
4.2.4 自動(dòng)生成試卷模塊
1. 界面設(shè)計(jì)
該界面是自動(dòng)生成試卷的界面。用戶按要求在框內(nèi)填寫試卷的各項(xiàng)信息基本信息,然后生成試卷。
2. 模塊內(nèi)主要算法描述
圖 4.11 自動(dòng)生成試卷邏輯圖
本模塊為該管理系統(tǒng)的核心模塊,考慮到教師出卷時(shí) 3 年內(nèi)不能有重復(fù)題目,以及試
卷的難度與雷同度等因素。開始,要統(tǒng)計(jì)出近 3 年所有試卷包含的題目,出卷時(shí),這些題目則不能被再次抽取。然后根據(jù)抽題結(jié)果、選擇的課程名、指定的題型和章節(jié)進(jìn)行查詢, 首先按章排序,再按題型排序,所查出的題目可以用來生成本次的試卷。
然后按指定的最大雷同度循環(huán), 先將 draw_item 表中的 top_id 與 往年的Question_num 相比較,計(jì)算雷同度,找到與往年雷同度最高的試卷。若是雷同度超過指定值,且還有其他題目可選,則去年雷同度最高的題目,另抽一題同題型且雷同度最高試卷中沒有的試題。如此循環(huán),退出循環(huán)時(shí) draw_item 中的題目即會(huì)滿足需求,或者會(huì)因?yàn)槌轭}表中沒有題而退出循環(huán)。
圖 4.12 找出與往年雷同度最高試題的算法圖
3. 模塊用例圖
4. 該模塊的 JAVA 類設(shè)計(jì)
圖 4.13 生成試卷用例圖
該功能主要由 3 個(gè)功能類實(shí)現(xiàn),他們之間的關(guān)系如下圖:
-database : Database
-paperQueryDataSet : QueryDataSet
-dBDisposeMonitor : DBDisposeMonitor
-root : DefaultMutableTreeNode
-selectedUnitList : JList
+ initUnitTree(Connection conn)() : void
+addUnitButton_actionPerformed(ActionEvent e)() : void
+deleteUnitButton_actionPerformed(ActionEvent e)() : void
+genPaperButton_actionPerformed(ActionEvent e)() : void
圖 4.1 找出與往年雷同度最高試題類圖
GeneratePaperDialog 類:自動(dòng)生成試卷,并通過彈出對(duì)話框的方式顯示給用戶。
MsWordHandler 類:用作操作 Word 文件。
TestPaperHandler 類:用作將已經(jīng)抽取的題目生成 Word 文檔。
4.2.5 修改現(xiàn)有試卷模塊
1. 界面設(shè)計(jì)
該功能模塊用作手動(dòng)修改已經(jīng)生成的試卷,在這一部分不僅可以對(duì)試卷的基本信息進(jìn)行修改,還能打開試題查詢的界面,將題目寫到所選試卷中。
2. 模塊內(nèi)主要算法描述
3. 模塊用例圖
圖 4.15 手動(dòng)修改試卷流程圖
圖 4.16 手動(dòng)修改試卷用例圖
4. 模塊內(nèi) JAVA 設(shè)計(jì)
該模塊主要由 MaintainPaperDialog 類實(shí)現(xiàn),其功能是維護(hù)生成的試卷,顯示維護(hù)生成試卷的對(duì)話框,下圖為其對(duì)應(yīng)的類圖:
MaintainPaperDialog
-sql : String
-database : Database
-dBDisposeMonitor : DBDisposeMonitor
-queryDataSet : QueryDataSet
+deleteButton_actionPerformed(ActionEvent e)() : void
+saveButton_actionPerformed(ActionEvent e)() : void
+genWordPaperButton_actionPerformed(ActionEvent e)() : void
圖 4.17 手動(dòng)修改試卷類圖
4.3 本章小結(jié)
本章主要講述了該管理系統(tǒng)的詳細(xì)設(shè)計(jì)。首先從后臺(tái)著手,介紹系統(tǒng)的后臺(tái)結(jié)構(gòu)設(shè)計(jì)以及其對(duì)應(yīng)的關(guān)系,包括數(shù)據(jù)表的設(shè)計(jì)及其邏輯關(guān)系。然后從宏觀著眼,分析各功能模塊之間的聯(lián)系。然后將各模塊分解,從界面,流程,以及相關(guān)類出發(fā)設(shè)計(jì)每一個(gè)界面。從界面設(shè)計(jì)中,我們可以知該功能需要完成哪些控件及功能設(shè)計(jì)。從流程中,我們可以了解到, 該部分的內(nèi)部流程,以及各組件之間的關(guān)系。然后就是具體類的設(shè)計(jì),里面規(guī)定了具體實(shí)現(xiàn)類以及實(shí)現(xiàn)方法。按照這詳細(xì)設(shè)計(jì),我們能夠很好地,很方便地完成對(duì)功能的實(shí)現(xiàn)。
第 5 章 系統(tǒng)實(shí)現(xiàn)
第 5 章 系統(tǒng)實(shí)現(xiàn)
5.1 系統(tǒng)功能實(shí)現(xiàn)
根據(jù)上一章節(jié)的設(shè)計(jì),該管理系統(tǒng)共有 3 大功能模塊,分別是教師登錄模塊,題庫的管理與維護(hù)模塊和生成試卷模塊。教師登錄模塊主要對(duì)系統(tǒng)用戶身份進(jìn)行合法性的認(rèn)證。題庫管理與維護(hù)模塊,包括新題的錄入,修改試題,刪除試題,查詢?cè)囶}。生成試卷模塊包括自動(dòng)生成試卷、手動(dòng)改動(dòng)現(xiàn)有的試卷、生成 Word 試卷和答案等功能。
5.1.1 教師登錄模塊
該模塊主要由 LoginFrame 類和 DBAccess 類實(shí)現(xiàn),具體實(shí)現(xiàn)的界面如下:
圖 5.1 教師登錄模塊截圖
LoginFrame 類:教師登錄類,主要負(fù)責(zé)校檢用戶輸入的用戶名和密碼是否正確。主要方法是okButton_actionPerformed(ActionEvent e),它在用戶點(diǎn)擊確定按鈕的時(shí)候被調(diào)用,用作取得文本框中輸入的用戶名和密碼,若用戶名或密碼錯(cuò)誤,則給出彈框提示,告知用戶重新登錄。如果用戶輸入正確,那么打開主頁面。
DBAccess 類:底層數(shù)據(jù)庫操作類。實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的基本操作,如增刪改查。主要方法如下:
1. getConnection(),用作JDBC 數(shù)據(jù)庫連接,返回 Connection 對(duì)象。
2. executeUpdate(Connection conn, String sql),用作執(zhí)行 insert、delete、update 操作, 對(duì)數(shù)據(jù)表進(jìn)行修改。
3. executeQuery(Connection Con, String querySQL ),根據(jù)指定的 sql 語句查詢,返回
DefaultTableModel 對(duì)象。
5.1.2 題庫管理與維護(hù)模塊
該模塊的實(shí)現(xiàn)類為 AddTestDialog 類和 TestLibraryHandler 類,實(shí)現(xiàn)的前端界面如下:
圖 5.2 題庫管理與維護(hù)模塊截圖
AddTestDialog 類:用作該窗口維護(hù)和響應(yīng)操作[10]。主要有以下幾個(gè)方法:
1. addjButton2_actionPerformed(ActionEvent e),用作添加試題,將題庫對(duì)應(yīng)的記錄集下移到最后一行,然后在后面插入一條新的記錄。
2. deletejButton2_actionPerformed(ActionEvent e),用作刪除題目。內(nèi)部邏輯是,先判斷用戶是否選中記錄,如果沒有,那么久不能刪除,會(huì)彈出錯(cuò)誤信息。如果選中了,則詢問是否確定要?jiǎng)h除,如果確認(rèn),則會(huì)刪除選中的題目記錄。
3. savejButton1_actionPerformed(ActionEvent e),用作保存數(shù)據(jù),即用戶對(duì)數(shù)據(jù)進(jìn)行修改或者插入的操作后,需要點(diǎn)擊“保存”按鈕,數(shù)據(jù)才會(huì)更新到數(shù)據(jù)庫中。
TestLibraryHandler 類:與添加試題相關(guān)的數(shù)據(jù)庫操作,同 ui 界面一起實(shí)現(xiàn)題庫的維護(hù)功能。主要方法如下:
1. String[] getAllCourseNames(),用作獲得所有的課程名,在試題的添加和查詢窗體中被使用。
2. addCourseNameItems( JComboBox courseNamejdbComboBox1 ),用作給控件添加課程名。在試題添加和查詢窗口調(diào)用, 課程名會(huì)被添加到下拉框中。getCourseIdByName( String courseName ),用作取得課程編號(hào),在向數(shù)據(jù)庫中添加題目的時(shí)候被調(diào)用。根據(jù)界面輸入的課程名,向數(shù)據(jù)庫中寫入對(duì)應(yīng)的課程編號(hào)。
5.1.3 試題查詢模塊
該模塊主要由 QueryTestDialog 類實(shí)現(xiàn),具體界面如下:
圖 5.3 試題查詢模塊模塊截圖
該類負(fù)責(zé)顯示試卷查詢的對(duì)話框, 實(shí)現(xiàn)已有題目的查詢功能。主要方法為okjButton1_actionPerformed(ActionEvent e),在“提交查詢”被點(diǎn)擊的時(shí)候,該方法被調(diào)用。內(nèi)部邏輯,先取得用戶輸入的內(nèi)容作為查詢條件,生成 sql 語句,然后用 QueryDataSet 類實(shí)現(xiàn)查詢操作。
5.1.4 自動(dòng)生成試卷模塊
該功能主要是由 GeneratePaperDialog、MsWordHandler 和 TestPaperHandler3 個(gè)類實(shí)現(xiàn)的,實(shí)現(xiàn)的界面如下圖,3 個(gè)類的關(guān)系將在圖下面給出。
圖 5.4 自動(dòng)生成試卷界面圖
GeneratePaperDialog 類:自動(dòng)生成試卷,并通過彈出對(duì)話框的方式顯示給用戶。主要包括以下幾個(gè)方法:
1. initUnitTree(Connection conn),初始化章節(jié)樹(從題庫數(shù)據(jù)表中查出所有章節(jié), 以章節(jié)為準(zhǔn),順序顯示),自動(dòng)生成試卷的對(duì)話框進(jìn)行初始化的時(shí)候調(diào)用這個(gè)方
法,初始化章節(jié)樹。
2. addUnitButton_actionPerformed(ActionEvent e),將左邊的章節(jié)樹里選中的章節(jié)加到右側(cè)章節(jié)列表中。右側(cè)的列表表示最終生成試卷涵蓋章節(jié)的列表。
3. deleteUnitButton_actionPerformed(ActionEvent e),用作刪除右側(cè)列表中選中的章節(jié)項(xiàng)。genPaperButton_actionPerformed(ActionEvent e),用作展示根據(jù)指定條件生成試卷的基本信息,試卷的自動(dòng)生成,把試卷答案寫到 WORD 文件中。
MsWordHandler 類:用作操作 Word 文件,包含了操作文件的基本方法:
1. MsWordHandler(),它是一個(gè)構(gòu)造函數(shù),用作初始化 Word 程序,這件一個(gè) Word
文檔。
2. insertParagraph(...),用作在 word 中新加一個(gè)段落。該方法有 5 個(gè)參數(shù),其中fontName 表示字體;isBold 表示是否設(shè)為黑體;isItalic 表示是否設(shè)為斜體;fontSize表示字體大小。
TestPaperHandler 類:用作將已經(jīng)抽取的題目生成 Word 文檔。主要方法如下:
1. genWordPaper(…),按已抽取的題目生成 Word 文件。這個(gè)方法中包含了 4 個(gè)參數(shù), selectedTestItems 為已抽的題目列表;paperTitle 為試卷標(biāo)題;courseName 為課程名稱;testStyle 為測(cè)試類型。本方法的主要邏輯是,先顯示保存的對(duì)話框,用以用戶方便選擇文件的保存路徑,然后再算出抽好的題目的總分,用作輸出 word 文件,然后進(jìn)入循環(huán),將題目生成到 Word 文件中。
2. addSpecifiedTestToWord(...)用作把指定題型的試題添加到 Word 文件中。
3. addSpecifiedAnswerToWord(...),用作把題目對(duì)應(yīng)的答案輸出到 Word 文件中。
5.1.5 修改現(xiàn)有試卷模塊
該模塊主要由 MaintainPaperDialog 類實(shí)現(xiàn)(界面如下圖 5.7),該類的主要功能是維護(hù)生成的試卷,顯示維護(hù)生成試卷的對(duì)話框。主要方法如下:
1. deleteButton_actionPerformed(ActionEvent e),點(diǎn)擊“從試卷中刪除一道題”時(shí), 調(diào)用該功能,實(shí)現(xiàn)試卷中題目的手動(dòng)刪除。
2. saveButton_actionPerformed(ActionEvent e),點(diǎn)擊“保存”按鈕時(shí),調(diào)用該方法, 實(shí)現(xiàn)保存試卷基本信息的效果。
3. genWordPaperButton_actionPerformed(ActionEvent e),點(diǎn)擊“生成 WORD 試卷” 按鈕時(shí),將選中的文件生成 Word 試卷。
圖 5.5 修改現(xiàn)有試卷模塊界面圖
5.2 本章小結(jié)
本章先地展示系統(tǒng)的總體關(guān)系,有利于更好地理解系統(tǒng)總體結(jié)構(gòu),使得即使看代碼也能直觀地理解全局關(guān)系。然后通過介紹各個(gè)功能模塊的具體實(shí)現(xiàn),包括具體的類與方法, 從代碼層次介紹功能的實(shí)現(xiàn)與功能之間的關(guān)系。然后給出具體的代碼作為例子。深入地介紹實(shí)現(xiàn)過程,方便了非開發(fā)人員在查看代碼的時(shí)候,快速的定位各部分、各功能模塊的位置,更加有效地查看、使用代碼。
第 6 章 系統(tǒng)測(cè)試
第 6 章 系統(tǒng)測(cè)試
6.1 系統(tǒng)測(cè)試方案
系統(tǒng)測(cè)試是系統(tǒng)質(zhì)量好壞的關(guān)鍵環(huán)節(jié),代表了需求、設(shè)計(jì)和編碼的最終檢查。在完成編碼工作后,剩下的工作便是系統(tǒng)測(cè)試了[11]。系統(tǒng)測(cè)試時(shí)發(fā)現(xiàn)系統(tǒng)中 bug 的主要手。正常情況下,系統(tǒng)的開發(fā)與測(cè)試過程是同步進(jìn)行的。在開發(fā)過程中進(jìn)行同步測(cè)試,能夠及時(shí)發(fā)現(xiàn)系統(tǒng)中存在的問題,然后及時(shí)提供修改方案,及時(shí)解決問題,使得系統(tǒng)更加完善。從而達(dá)到實(shí)現(xiàn)對(duì)應(yīng)的目標(biāo)。
單元測(cè)試,又稱作模塊測(cè)試,是針對(duì)程序模塊進(jìn)行的正確性檢驗(yàn)的測(cè)試工作。程序單元是軟件應(yīng)用的最小可測(cè)試部件。通常說來,程序員每修改一次程序至少要進(jìn)行一次單元測(cè)試,在編寫程序的過程中,開發(fā)人員可能經(jīng)過多次單元測(cè)試,以保證程序達(dá)到既定要求。理想的測(cè)試案列要獨(dú)立于其他案例,所以通常使用 stubs、mock、fake 等為測(cè)試程序建立隔離模塊。通常,單元測(cè)試由開發(fā)人員完成,用以保證他們縮寫代碼能夠滿足開發(fā)需求。
6.2 系統(tǒng)測(cè)試過程
我對(duì)本系統(tǒng)的每個(gè)模塊和方法都進(jìn)行了多次測(cè)試,采用的方法便是單體測(cè)試。在這過程中,也遇到挺多問題,有些還是相當(dāng)棘手的,但最終還是通過查詢資料和書籍將一個(gè)個(gè)問題解決掉了。在測(cè)試過程中,遇到最常見的便是空指針異常。后來經(jīng)過查找,最終發(fā)現(xiàn)大部分都是因?yàn)閿?shù)據(jù)庫中對(duì)應(yīng)字段沒有數(shù)據(jù),這樣一旦控件使用了這些參數(shù),就會(huì)發(fā)生空指針異常,所以在數(shù)據(jù)錄入的時(shí)候,界面上的每一個(gè)空都得填寫。
在經(jīng)過單體測(cè)試之后,本以為整體測(cè)試不會(huì)有啥問題,然而事實(shí)卻并不是自己想的那樣。一個(gè)個(gè)問題又花了我一段時(shí)間,比我字段長(zhǎng)度設(shè)計(jì)不足,當(dāng)界面上輸入的字符串長(zhǎng)度超過指定長(zhǎng)度的時(shí)候,就會(huì)出現(xiàn)錯(cuò)誤。當(dāng)對(duì)這些問題進(jìn)行一一修改之后就可以正常運(yùn)行了。最終測(cè)試的表如下:
表 0.1 系統(tǒng)測(cè)試表
序號(hào)
測(cè)試項(xiàng)目
輸入操作
預(yù)期結(jié)果
實(shí)際結(jié)果
1
登錄成功
選擇教師編號(hào),并填寫正確的密碼,并點(diǎn)擊確
定
進(jìn)入歡迎頁面
與預(yù)期結(jié)果一致
2
登錄失敗
選擇教師編號(hào),并填寫
錯(cuò)誤的密碼,并點(diǎn)擊確定
彈出對(duì)話框,提示
密碼錯(cuò)誤,重新輸入
與預(yù)期結(jié)果一致
3
取消登錄
點(diǎn)擊取消按鈕
退出登錄頁面
與預(yù)期結(jié)果一致
4
從歡迎頁面退
出程序
點(diǎn)擊 程序—>退出
彈出對(duì)話框,提示
是否退出
與預(yù)期結(jié)果一致
5
進(jìn)入各功能頁
面
點(diǎn)擊菜單欄相應(yīng)的選項(xiàng)
進(jìn)入各相應(yīng)功能頁
面
與預(yù)期結(jié)果一致
6
添加試題
點(diǎn)擊添加按鈕
題目表格中添加新的一行,并且光標(biāo)
調(diào)到該行
與預(yù)期結(jié)果一致
7
保存添加或修改
選擇添加(修改)的題目,按要求添加(修改) 題目的內(nèi)容,點(diǎn)擊保存
保存成功,光標(biāo)默認(rèn)選中第一行,保存出錯(cuò)則有相應(yīng)的
提示
與預(yù)期結(jié)果一致
8
退出添加試題
點(diǎn)擊“返回”按鈕
退出到歡迎頁面
與預(yù)期結(jié)果一致
8
查詢題目
在對(duì)應(yīng)頁面在文本框中添加查詢條件,點(diǎn)擊查
詢按鈕
在表中列出符合條件的題目
與預(yù)期結(jié)果一致
9
生成試卷
在對(duì)應(yīng)頁面按要求填寫試卷相應(yīng)信息及題目題型難度系數(shù)雷同度等, 點(diǎn)擊“生成試卷”按鈕
彈出對(duì)話框,供選擇試卷生成路徑, 選擇路徑,確定后生成試卷成功,對(duì)應(yīng)目錄有word 文
件
與預(yù)期結(jié)果一致
10
從試卷中刪除題目
在維護(hù)生成頁面,選擇題目點(diǎn)擊刪除
彈出提醒對(duì)話框, 確認(rèn)后,題目從列
表中刪除
與預(yù)期結(jié)果一致
11
添加試題
在維護(hù)生成頁面,點(diǎn)擊
添加,并填寫相應(yīng)的內(nèi)容,點(diǎn)擊保存
新加的題目出現(xiàn)在列表中
與預(yù)期結(jié)果一致
12
生成試卷
在維護(hù)生成頁面,點(diǎn)擊生成試卷
彈出對(duì)話框,供選擇試卷生成路徑, 選擇路徑,確定后生成試卷成功,對(duì)應(yīng)目錄有word 文
件
與預(yù)期結(jié)果一致
13
退出添加試題
點(diǎn)擊“返回”按鈕
退出到歡迎頁面
與預(yù)期結(jié)果一致
以下部分為相應(yīng)的截圖說明:
測(cè)試 1,登錄成功,如圖 6.1,進(jìn)入主界面,與預(yù)期結(jié)果一致。
圖 6.1 登錄成功界面圖
測(cè)試 2,登錄失敗,如圖 6.2,彈出對(duì)話框,與預(yù)期結(jié)果一致。測(cè)試 3,取消登錄,圖略,與預(yù)期結(jié)果一致。
圖 6.2 登陸失敗截圖
測(cè)試 4,退出程序,圖略,與預(yù)期
收藏
編號(hào):1708064
類型:共享資源
大小:429.22KB
格式:ZIP
上傳時(shí)間:2019-11-03
30
積分
- 關(guān) 鍵 詞:
-
基于
java
離散
數(shù)學(xué)課程
題庫
管理
系統(tǒng)
設(shè)計(jì)
- 資源描述:
-
基于java離散數(shù)學(xué)課程題庫管理系統(tǒng)設(shè)計(jì),基于,java,離散,數(shù)學(xué)課程,題庫,管理,系統(tǒng),設(shè)計(jì)
展開閱讀全文
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請(qǐng)勿作他用。