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