Java課程設計標準化考試系統(tǒng)_第1頁
Java課程設計標準化考試系統(tǒng)_第2頁
Java課程設計標準化考試系統(tǒng)_第3頁
Java課程設計標準化考試系統(tǒng)_第4頁
Java課程設計標準化考試系統(tǒng)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、 面向對象課程設計題 目 標準化考試系統(tǒng) 學 院 數(shù)學與信息工程學院 專 業(yè) 計算機科學與技術 目 錄一、需求分析二、系統(tǒng)運行環(huán)境三、功能需求描述四、總體設計五、程序模塊設計六、使用效果圖七、總結一、需求分析要設計一個性能良好的管理系統(tǒng),明確用戶的應用環(huán)境對系統(tǒng)的要求是首要的和基本的。本系統(tǒng)從以下三個方面對用戶需求進行了分析:1) 用戶的信息需求:考生能查詢有關考試成績;系統(tǒng)管理員能查詢題庫信息;系主要領導都能查詢所有信息。2) 用戶的處理要求:管理員能對題庫和考試科目執(zhí)行增加、刪除和修改操作;由管理員設置考試信息,經(jīng)過考試主管領導的審核后就可考試;在考試時,由考生選擇試題;系統(tǒng)控制考試時間、

2、考試成績自動生成等。3) 對系統(tǒng)的適應性、通用性要求:要求系統(tǒng)不僅能夠進行計算機系考試,而且其他系或專業(yè)稍作設置或改動也能使用本系統(tǒng)進行標準化網(wǎng)絡考試。二、系統(tǒng)運行環(huán)境 windows xp sp3以及 eclipse 2007三、功能需求描述本系統(tǒng)可以進行任何標準化考試,具有選擇試題、查看得分、考試計時等功能。四、 總體設計本標準化考試系統(tǒng)共由3個java源文件和若干個試題組成,試題文件為文本文件,文件名字可任意指定,但擴展名必須是txt,文件內(nèi)容必須遵守如下的書寫規(guī)則:1) 試題文件的第一行是全部試題的答案,答案之間不可以有空格。2) 第二行是試題文件的考試時間,如1:23:45表示的考試

3、時間是1小時23分45秒。3) 每道題目之間用“*”開頭的字符串分割。4) 最后一行是endtest.java該java文件生成的類負責創(chuàng)建標準化考試的主窗口。該類含有main方法,程序從該類開始執(zhí)行,程序從該類開始執(zhí)行。在主窗口,用戶可以通過下拉列表選擇一套試題,然后開始讀取試題進行考試。testarea.java該文件生成的類負責創(chuàng)建考試區(qū)域對象。是test窗口中的主要成員變量,考試區(qū)域提供了試題選取、查看分數(shù)、計時器、試題顯示等功能。readtestquestion.javatest(主類)readtestquestion對象是testarea試題區(qū)中的重要對象,負責讀取該試題、計算分數(shù)

4、等。 testarea readtestquestion 圖 類之間的依賴關系五、程序模塊設計一、主類test 1成員變量成員變量描述變量類型名稱考試區(qū)域testareatestpanel 2方法名稱功能備注test創(chuàng)建程序窗口構造方法main程序開始運行 3. 代碼 import java.awt.*;import java.awt.event.*;import javax.swing.*;public class test extends jframe testarea testpanel=null; container con=null; public test() super(標準化考

5、試系統(tǒng)); testpanel=new testarea(); con=getcontentpane(); con.add(testpanel,borderlayout.center); addwindowlistener(new windowadapter() public void windowclosing(windowevent e) system.exit(0); ); setvisible(true); setbounds(60,40,660,460); con.validate(); validate(); public static void main(string args)

6、 new test(); 一、讀取試題readtestquestion1 成員變量描述變量類型名稱文件名stringfilename正確答案stringcorrectanswer試題內(nèi)容stringtestcontent用戶提交的答案stringselection用戶得分intscore試題用時longtime讀取試題的流filereaderin2方法名稱功能備注setfilename設置試題文件的名稱getfilename獲取試題文件的名稱gettime獲取考試用時set 完成考試設置是否完成考試get 完成考試判斷是否完成考試gettestcontent獲取試題內(nèi)容getselection

7、排列用戶提交的答案getscore計算用戶得分getmessage查閱分數(shù)和正確答案3. 代碼 import java.io.*;import java.util.*;public class readtestquestion string filename=, /存放考題文件名字的字符串 correctanswer=, /存放正確答案的字符串 testcontent= , /試題內(nèi)容 selection= ; /存放用戶提交的答案 int score=0; / 用戶的得分 long time=0; /該試題的考試用時 boolean 完成考試=false; /判斷是否已完成全部試題 file

8、 f=null; filereader in=null; bufferedreader 讀取=null; public void setfilename(string name) filename=name; score=0; selection=; try if(in!=null&讀取!=null) in.close(); /關閉與前一文件的連接 讀取.close(); f=new file(filename); in=new filereader(f); 讀取=new bufferedreader(in); /讀取試題文件的第1行,即標準答案 correctanswer=(讀取.readl

9、ine().trim(); /去掉前后空格 string temp=(讀取.readline().trim() ; /讀取試題文件的第2行,即考試用時 stringtokenizer token=new stringtokenizer(temp,:); int hour=integer.parseint(token.nexttoken() ; /獲取用時的“時”值 int minute=integer.parseint(token.nexttoken(); /獲取用時的“分”值 int second=integer.parseint(token.nexttoken(); /獲取用時的“秒”值

10、time=1000*(second+minute*60+hour*60*60); /將用時轉換成毫秒單位 catch(exception e) testcontent=沒有選擇試題; public string getfilename() return filename; public long gettime() return time; public void set完成考試(boolean b) 完成考試=b; public boolean get完成考試() return 完成考試; public string gettestcontent() /獲取試題的內(nèi)容 try string

11、s=null; stringbuffer temp=new stringbuffer(); if(讀取!=null) /如果用戶選擇了試題文件,讀取就不是空對象 while(s=讀取.readline()!=null) /繼續(xù)讀取某個試題 if(s.startswith(*) /試題的結束標志 break; temp.append(n+s); if(s.startswith(end) /整個試題文件的結束標志 in.close(); /關閉和當前文件的連接 讀取.close(); 完成考試=true; /已完成全部試題 testcontent=new string(temp); else te

12、stcontent=new string(沒有選擇試題); catch(exception e) testcontent=試題內(nèi)容為空,考試結束!; return testcontent; public void setselection(string s) selection=selection+s; /用戶提交的答案依次尾加到 selection public int getscore() score=0; int length1=selection.length(); /用戶提交的第i題答案在selection中的位置 int length2=correctanswer.length()

13、; int min=math.min(length1,length2); for(int i=0;imin;i+) try if(selection.charat(i)=correctanswer.charat(i) score+; catch(stringindexoutofboundsexception e) i=0; return score; public string getmessages() int length1=selection.length(); /用戶已提交的答案個數(shù) int length2=correctanswer.length(); int length=math.min(length1,length2); string message=正確答案:+correctanswer.substring(0,length)+n+ 你的回答:+selection+n; return message;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論