版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java期末考試報告 完成時間:2021 年 6 月 20 日考試工程任務(wù)書 計算機 系 網(wǎng)絡(luò)工程專業(yè) 1班一、考試題目: 標準化考試系統(tǒng) 二、完成時間:自 2021 年 6 月 7 日起至 2021 年 6 月 20 日止三、完成地點: 教學(xué)樓、圖書館 四、考試題目內(nèi)容要求:1本次期末考試的目的1掌握軟件開發(fā)的根本工作流程; 2穩(wěn)固JAVA程序設(shè)計課程所學(xué)的內(nèi)容; 3培養(yǎng)計算機思維能力以及合作的精神;4培養(yǎng)分析、解決問題的能力;5提高實踐動手能力。 2任務(wù)及要求1根本要求:1研究設(shè)計任務(wù),并進行系統(tǒng)需求分析;2對系統(tǒng)進行總體設(shè)計,分解系統(tǒng)功能模塊,進行任務(wù)分配,以實現(xiàn)分工合作;3實現(xiàn)各功能模
2、塊代碼; 4組裝各模塊,并測試、完善系統(tǒng)。2創(chuàng)新要求: 在根本要求到達后,可進行創(chuàng)新設(shè)計,如改進界面、增加功能或進行代碼優(yōu)化。3報告書要求1要按照要求完成報告2包括封面、設(shè)計任務(wù)書含評語、摘要、目錄、設(shè)計內(nèi)容、設(shè)計小結(jié)3裝訂按統(tǒng)一要求完成4參考文獻:1耿祥義、張躍平.? Java大學(xué)實用教程?電子工業(yè)出版社 2黃明、梁旭、周紹斌.?Java課程設(shè)計?電子工業(yè)出版社3黃曉東.?Java課程設(shè)計案例精編?中國水利水電出版社4魏先民、徐翠霞.?Java程序設(shè)計實例教程?中國水利水電出版社 5課程設(shè)計進度安排內(nèi)容 天數(shù)地點系統(tǒng)總體設(shè)計 3 實驗室軟件設(shè)計及調(diào)試 11 實驗室、圖書館辯論及撰寫報告 3
3、實驗室、圖書館 學(xué)生簽名: 2021年 6 月 20日考試工程評審意見1課程設(shè)計過程20分:優(yōu)、良、中、一般、差; 2是否完成調(diào)試,系統(tǒng)運行效果30分:優(yōu)、良、中、一般、差; 3答復(fù)以下問題20分:優(yōu)、良、中、一般、差;4課程設(shè)計報告30分:優(yōu)、良、中、一般、差;5格式標準性及考勤是否降等級:是、否 評閱人: 年 月 日標準化考試系統(tǒng)摘要: 利用Java語言設(shè)計出標準化考試系統(tǒng),是針對學(xué)生考試情況設(shè)計的。設(shè)計的界面美觀大方,操作簡單明了。系統(tǒng)提供了選擇試題文件,讀取試題,查看分數(shù),計時器,提交答案,計算分數(shù)等功能。程序的實驗工具為Windows、記事本、jdk,利用DOS命令窗口運行。目 錄
4、TOC o 1-2 h z u HYPERLINK l _Toc265518579 1、工程內(nèi)容、要求與分組情況總體介紹 PAGEREF _Toc265518579 h 2 HYPERLINK l _Toc265518580 2、概要設(shè)計 PAGEREF _Toc265518580 h 2 HYPERLINK l _Toc265518581 開發(fā)工具及環(huán)境 PAGEREF _Toc265518581 h 2 HYPERLINK l _Toc265518582 2.2 任務(wù)及需求分析 PAGEREF _Toc265518582 h 2 HYPERLINK l _Toc265518583 功能模塊
5、設(shè)計32.4 工作原理33、具體實現(xiàn)43.1 類設(shè)計43.2 模塊及實現(xiàn)代碼的介紹54、運行調(diào)試與分析討論75、設(shè)計體會與小結(jié)106、參考文獻10附錄:源程序111、工程內(nèi)容、要求與分組情況總體介紹工程內(nèi)容、要求:本次實驗的目標是制作一個標準化考試系統(tǒng),系統(tǒng)適用于各級院校的考試工程,其主要功能分為:試題選擇 可以對考試題進行選擇,找到你所要的試題類型。查分系統(tǒng) 用于教師或?qū)W生對所答題進行核對。計時系統(tǒng) 對考試的時間進行規(guī)定,可根據(jù)所需來自己制定。試題顯示 對考生多進行的考試內(nèi)容驚醒顯示的區(qū)域。小組的具體分工情況見下表:2、概要設(shè)計 HYPERLINK l _Toc199920327 開發(fā)工具及
6、環(huán)境文本編輯器:記事本;運行環(huán)境:命令提示符DOS環(huán)境。2.2 任務(wù)及需求分析設(shè)計一個系統(tǒng)可以進行任何標準化考試,具有選擇試題,查看得分、考試計時等功能。1用戶可以自由地選擇其中任何一套標準化考試試題,每套試題的考試用時由試題文件.txt給出;2開始讀取試題后,計時器開始計時,用戶提交答案后,可以讀取下一道題目;3一個提示欄顯示所剩余的考試時間,當規(guī)定時間用盡后,用戶將不能再讀取任何題目;4為了增加模擬考試練習(xí)的靈活性,用戶也可以選擇暫停計時;5用戶答完一個題目后,可以查看該題目的正確答案和目前的分數(shù)。2.3 功能模塊設(shè)計標準化考試系統(tǒng)的模塊流程圖如下:2.4 工作原理程序進入主界面,自動讀取
7、設(shè)定目錄下所有試題,將試題名顯示在試題選擇下拉列表中;考生選擇相應(yīng)試題進入考試。考生進入答題界面,題目信息欄中顯示所選題目,此時,系統(tǒng)倒計時同步進行,亦可點擊【暫停計時】,考生在選擇相應(yīng)的答案A、B、C、D,點擊【提交答案】分數(shù)統(tǒng)計欄中顯示你所選擇的答案;點擊【讀取下一題】題目信息欄顯示下一道題目,繼續(xù)作答??忌瓿煽荚嚳蛇M行交卷,點擊【查看分數(shù)】,顯示試題正確答案及考生,并按照相應(yīng)題目分值統(tǒng)計考生所得分數(shù)。3、 具體實現(xiàn)3.1 類設(shè)計類名:Test 功能代碼,窗口布局設(shè)定,調(diào)用TestArea中各按鈕功能構(gòu)建圖形界面關(guān)鍵代碼: super(標準化模擬考試); testPanel=new Te
8、stArea(); con=getContentPane();/獲取內(nèi)容面板 con.add(testPanel,BorderLayout.CENTER);/把面板添加到窗口中間 addWindowListener(new WindowAdapter()類名:ReadTestquestion作用:設(shè)置、讀取試題;時間控制;判斷答案以及是否完成答卷類名:TestArea作用:按鈕功能設(shè)置、計時器功能設(shè)置關(guān)鍵代碼: Choice list=null; JTextArea 試題顯示區(qū)=null,消息區(qū)=null; JCheckBox box; JButton 提交該題答案,讀取下一題,查看分數(shù); R
9、eadTestquestion 讀取試題=null; JLabel welcomeLabel=null; Thread countTime=null; long time=0; JTextField timeShow=null; boolean 是否關(guān)閉計時器=false, 是否暫停計時=false; JButton 暫?;蚶^續(xù)計時=null;3.2 模塊及實現(xiàn)代碼介紹/*讀取試題文件方法*/public class ReadTestquestion /*設(shè)置試題文件名方法*/public void setFilename(String name) /*得到文件名方法*/public Stri
10、ng getFilename() /*得到時間方法*/public long getTime() /*設(shè)置是否已完成考試方法*/public void set完成考試(boolean b) /*得到是否已完成考試的布爾值*/public boolean get完成考試() /*得到試題內(nèi)容*/public String getTestContent() /*設(shè)置考生答案方法*/public void setSelection(String s) /*得到成績方法*/public int getScore() /*得到考生信息方法*/public String getMessages()系統(tǒng)顯示
11、考生可選試題,考生每次只能選擇一套試題進行考試,答題完畢后才可以選擇下一套試題。試題為.txt的文本文件,采取如下格式:ACA01:10:301.以下詞語中加點的字,讀音全都正確的一組是_. A.餞別jin 晦澀h(huán)u 鐵柵欄zh 渾身解數(shù)xi B.扒手p 吱聲z 和稀泥h 步履蹣跚pn C.蓄養(yǎng)x 寒噤jn 露馬腳lu 捫心自問mn D.順遂su 什錦sh 蒸餾水li 兵不血刃xu*2.以下各句中,沒有錯別字的一組是 A.依稀 澎漲 戈壁灘 云蒸霞蔚 B.涵蓋 陰霾 捉謎藏 烘云托月 C.貽誤 函道 交際舞 寥假設(shè)晨星 D.吆喝 緒論 擦邊球 名門旺族*3.以下作家按國別歸類不正確的一項為哪一
12、項_. A.狄更斯 莎士比亞 安徒生 B.契訶夫 列夫.托爾斯泰 普希金 C.高爾基 西蒙諾夫 奧斯特洛夫斯基 D.雨果 巴爾扎克 莫泊桑*endend試題格式說明:第一行顯示全部試題的正確答案,答案之間不應(yīng)有空格第二行顯示試題答題時間,如“01:10:30表示試題答題時間為1小時10分30秒試題以“endend結(jié)尾每道試題用以“*為開頭的字符分隔4、運行調(diào)試與分析討論 調(diào)試運行考生考試,過程如下所示: 1命令提示符中運行標準化考試系統(tǒng),如以下列圖: 2系統(tǒng)界面顯示,可自主選擇試題,如以下列圖:選擇試題后,讀取第一題,如以下列圖 4勾選答案后,提交該題答案,讀取下一題,如以下列圖所示: 5如此
13、反復(fù),直至全部問題提交完畢,考試結(jié)束,如以下列圖: 6最后可查看分數(shù),顯示分數(shù)、自身答案與比照正確答案,如以下列圖。5、設(shè)計體會與小結(jié)為期兩周的課程設(shè)計結(jié)束了,個中的曲折可謂是一言難盡,從選擇課題就遇到了一系列的麻煩,選擇了自己中意的課題,但卻因為能力有限,經(jīng)過了幾次嘗試,但卻屢次以失敗告終。最后,通過在圖書館以及網(wǎng)上不斷查閱相關(guān)資料,總算誕生了一個較成功的作品。在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設(shè)計過程中,與同學(xué)分工設(shè)計,和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會了合作,學(xué)會了運籌帷幄,學(xué)會了寬容,學(xué)會了理解,也
14、學(xué)會了做人與處世。通過這次課程設(shè)計,我在多方面都有所提高。綜合運用本專業(yè)所學(xué)課程的理論和生產(chǎn)實際知識進行設(shè)計工作的實際訓(xùn)練從而培養(yǎng)和提高學(xué)生獨立工作能力,穩(wěn)固與擴充了所學(xué)的內(nèi)容,掌握設(shè)計的方法和步驟,能較清晰地區(qū)分Java與其它機器語言的區(qū)別,同時各科相關(guān)的課程都有了全面的復(fù)習(xí),獨立思考的能力也有了提高。在這次設(shè)計過程中,表達出自己單獨設(shè)計模具的能力以及綜合運用知識的能力,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學(xué)習(xí)的缺乏和薄弱環(huán)節(jié),從而加以彌補。 同時我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發(fā)揚團結(jié)協(xié)作的精神。某個人的離群都可能導(dǎo)致導(dǎo)致整項工
15、作的失敗。實習(xí)中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否那么一個人的錯誤,就有可能導(dǎo)致整個工作失敗。團結(jié)協(xié)作是我們成功的一項非常重要的保證。而這次課程設(shè)計也正好鍛煉我們這一點,這也是非常珍貴的。 對我而言,知識上的收獲重要,精神上的豐收更加可喜。挫折是一份財富,經(jīng)歷是一份擁有。這次課程設(shè)計必將成為我人生旅途上一個非??坦倾懶牡幕貞?! 6、參考文獻1耿祥義、張躍平.? Java大學(xué)實用教程?電子工業(yè)出版社 2黃明、梁旭、周紹斌.?Java課程設(shè)計?電子工業(yè)出版社3黃曉東.?Java課程設(shè)計案例精編?中國水利水電出版社4魏先民、徐翠霞.?Java程序設(shè)計實例教程?中國水利水電出版社附
16、錄:源程序主類:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Test extends JFrame TestArea testPanel=null; Container con=null; public EnglishTest() super(標準化模擬考試); testPanel=new TestArea(); con=getContentPane();/獲取內(nèi)容面板 con.add(testPanel,BorderLayout.CENTER);/把面板添加到窗口中間 addWindo
17、wListener(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) new Test(); import java.io.*;import java.util.*;/*讀取試題文件方法*/public class ReadTestquestion String file
18、name=, /存放考題文件名的字符串 correctAnswer=, /存放正確答案的字符串 testContent= , /試題內(nèi)容 selection= ; /用戶提交的答案 int score=0; /用戶得分 long time=0; /試題用時 boolean 完成考試=false; File f=null; FileReader in=null; BufferedReader 讀取=null; /*設(shè)置試題文件名方法*/ public void setFilename(String name) filename=name; score=0; selection=; try if(
19、in!=null&讀取!=null) in.close(); 讀取.close(); f=new File(filename);/創(chuàng)立文件對象 in=new FileReader(f);/創(chuàng)立字符流對象 讀取=new BufferedReader(in); /創(chuàng)立緩沖流對象 correctAnswer=(讀取.readLine().trim(); String temp=(讀取.readLine().trim() ; StringTokenizer token=new StringTokenizer(temp,:);/以:分割時間 int hour=Integer.parseInt(token
20、.nextToken() ; int minute=Integer.parseInt(token.nextToken(); int second=Integer.parseInt(token.nextToken(); time=1000*(second+minute*60+hour*60*60); /獲取時間的毫秒表示 catch(Exception e) testContent=沒有選擇試題; /*得到文件名方法*/ public String getFilename() return filename; /*得到時間方法*/ public long getTime() return tim
21、e; /*設(shè)置是否已完成考試方法*/ public void set完成考試(boolean b) 完成考試=b; /*得到是否已完成考試的布爾值*/ public boolean get完成考試() return 完成考試; /*得到試題內(nèi)容*/ public String getTestContent() try String s=null; StringBuffer temp=new StringBuffer(); if(讀取!=null) while(s=讀取.readLine()!=null) if(s.startsWith(*) /判斷試題開始標志 break; temp.appe
22、nd(n+s); if(s.startsWith(endend) /判斷結(jié)束標志 in.close(); 讀取.close(); 完成考試=true; testContent=new String(temp); else testContent=new String(沒有選擇試題); catch(Exception e) testContent=試題內(nèi)容為空,考試結(jié)束!; return testContent; /返回考題內(nèi)容 /*設(shè)置考生答案方法*/ public void setSelection(String s) selection=selection+s; /*得到成績方法*/ pu
23、blic int getScore() score=0; int length1=selection.length(); /獲取考生答案長度 int length2=correctAnswer.length();/獲取正確答案長度 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=
24、0; return score; /*得到考生信息方法*/ public String getMessages() int length1=selection.length(); int length2=correctAnswer.length(); int length=Math.min(length1,length2); String message=正確答案:+correctAnswer.substring(0,length)+n+ 你的答復(fù):+selection+n; return message; import java.awt.*;import javax.swing.*;impo
25、rt java.awt.event.*;import java.io.*;class FileName implements FilenameFilter String str=null; FileName (String s) str=.+s; public boolean accept(File dir,String name) return name.endsWith(str); /*定義一個主面板類*/public class TestArea extends JPanel implements ActionListener,ItemListener,Runnable Choice l
26、ist=null; JTextArea 試題顯示區(qū)=null,消息區(qū)=null; JCheckBox box; JButton 提交該題答案,讀取下一題,查看分數(shù); ReadTestquestion 讀取試題=null; JLabel welcomeLabel=null; Thread countTime=null; long time=0; JTextField timeShow=null; boolean 是否關(guān)閉計時器=false, 是否暫停計時=false; JButton 暫停或繼續(xù)計時=null; public TestArea() list= new Choice(); Stri
27、ng 當前目錄=System.getProperty(user.dir); File dir=new File(當前目錄); FileName fileTxt=new FileName(txt); String fileName=dir.list(fileTxt); for(int i=0;ifileName.length;i+) list.add(fileNamei); 試題顯示區(qū)=new JTextArea(15,12); 試題顯示區(qū).setLineWrap(true); 試題顯示區(qū).setWrapStyleWord(true); 試題顯示區(qū).setFont(new Font(TimesR
28、oman,Font.PLAIN,14); 試題顯示區(qū).setForeground(Color.blue); 消息區(qū)=new JTextArea(8,8); 消息區(qū).setForeground(Color.blue); 消息區(qū).setLineWrap(true); 消息區(qū).setWrapStyleWord(true); countTime=new Thread(this); String s=A,B,C,D; box=new JCheckBox4; for(int i=0;i4;i+) boxi=new JCheckBox(si); 暫?;蚶^續(xù)計時=new JButton(暫停計時); 暫?;蚶^
29、續(xù)計時.addActionListener(this); 提交該題答案=new JButton(提交該題答案); 讀取下一題=new JButton(讀取第一題); 讀取下一題.setForeground(Color.blue); 提交該題答案.setForeground(Color.blue); 查看分數(shù)=new JButton(查看分數(shù)); 查看分數(shù).setForeground(Color.blue); 提交該題答案.setEnabled(false); 提交該題答案.addActionListener(this); 讀取下一題.addActionListener(this); 查看分數(shù).
30、addActionListener(this); list.addItemListener(this); 讀取試題=new ReadTestquestion(); JPanel pAddbox=new JPanel(); for(int i=0;i4;i+) pAddbox.add(boxi); Box boxH1=Box.createVerticalBox(), boxH2=Box.createVerticalBox(), baseBox=Box.createHorizontalBox(); boxH1.add(new JLabel(選擇試題文件); boxH1.add(list); box
31、H1.add(new JScrollPane(消息區(qū)); boxH1.add(查看分數(shù)); timeShow=new JTextField(20); timeShow.setHorizontalAlignment(SwingConstants.RIGHT); timeShow.setEditable(false); JPanel p1=new JPanel(); p1.add(new JLabel(剩余時間:); p1.add(timeShow); p1.add(暫?;蚶^續(xù)計時); boxH1.add(p1); boxH2.add(new JLabel(試題內(nèi)容:); boxH2.add(ne
32、w JScrollPane(試題顯示區(qū)); JPanel p2=new JPanel(); p2.add(pAddbox); p2.add(提交該題答案); p2.add(讀取下一題); boxH2.add(p2); baseBox.add(boxH1); baseBox.add(boxH2); setLayout(new BorderLayout(); add(baseBox,BorderLayout.CENTER); welcomeLabel=new JLabel(歡迎考試,提高英語水平,JLabel.CENTER); welcomeLabel.setFont(new Font(隸書,Fo
33、nt.PLAIN,24); welcomeLabel.setForeground(Color.blue); add(welcomeLabel,BorderLayout.NORTH); public void itemStateChanged(ItemEvent e) timeShow.setText(null); 是否關(guān)閉計時器=false; 是否暫停計時=false; 暫?;蚶^續(xù)計時.setText(暫停計時); String name=(String)list.getSelectedItem(); 讀取試題.setFilename(name); 讀取試題.set完成考試(false); t
34、ime=讀取試題.getTime(); if(countTime.isAlive() 是否關(guān)閉計時器=true; countTerrupt(); countTime=new Thread(this); 消息區(qū).setText(null); 試題顯示區(qū).setText(null); 讀取下一題.setText(讀取第一題); 提交該題答案.setEnabled(false); 讀取下一題.setEnabled(true); welcomeLabel.setText(歡迎考試,你選擇的試題:+讀取試題.getFilename(); public void actionPerformed(ActionEvent e) if(e.getSource()=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色建筑材料產(chǎn)銷合作框架協(xié)議書3篇
- 專項舊房翻新改造授權(quán)合同2024版一
- 專項消防工程:2024年中央空調(diào)安全系統(tǒng)協(xié)議版B版
- 2025年度時尚秀場場地租賃拍攝合同4篇
- 2025年度產(chǎn)業(yè)園企業(yè)入駐綠色生產(chǎn)技術(shù)轉(zhuǎn)移合作協(xié)議4篇
- 2025年度工業(yè)0智能廠房租賃合作協(xié)議2篇
- 2025年度汽車零部件全球采購合同4篇
- 2025年度虛擬現(xiàn)實設(shè)備檢測服務(wù)合同范本4篇
- 二零二五年度綜合醫(yī)院設(shè)備采購協(xié)議-64排螺旋CT設(shè)備3篇
- 2024年藥品供應(yīng)鏈管理合作協(xié)議6篇
- 醫(yī)院項目竣工驗收和工程收尾階段的管理措施專項方案
- 2024年涉密人員考試試題庫保密基本知識試題附答案(考試直接用)
- 2024年桂林中考物理試卷
- DL∕T 5362-2018 水工瀝青混凝土試驗規(guī)程
- (正式版)JC∕T 60023-2024 石膏條板應(yīng)用技術(shù)規(guī)程
- DL-T5054-2016火力發(fā)電廠汽水管道設(shè)計規(guī)范
- (權(quán)變)領(lǐng)導(dǎo)行為理論
- 2024屆上海市浦東新區(qū)高三二模英語卷
- 家用電器可靠性與壽命預(yù)測研究
- 中考語文二輪復(fù)習(xí):詩歌鑒賞系列之邊塞軍旅詩(知識點+方法+習(xí)題)
- 2024年智慧工地相關(guān)知識考試試題及答案
評論
0/150
提交評論