![java课程设计-考试系统_第1页](http://file4.renrendoc.com/view/e67599e21d967c95cebde1cf229d2e36/e67599e21d967c95cebde1cf229d2e361.gif)
![java课程设计-考试系统_第2页](http://file4.renrendoc.com/view/e67599e21d967c95cebde1cf229d2e36/e67599e21d967c95cebde1cf229d2e362.gif)
![java课程设计-考试系统_第3页](http://file4.renrendoc.com/view/e67599e21d967c95cebde1cf229d2e36/e67599e21d967c95cebde1cf229d2e363.gif)
![java课程设计-考试系统_第4页](http://file4.renrendoc.com/view/e67599e21d967c95cebde1cf229d2e36/e67599e21d967c95cebde1cf229d2e364.gif)
![java课程设计-考试系统_第5页](http://file4.renrendoc.com/view/e67599e21d967c95cebde1cf229d2e36/e67599e21d967c95cebde1cf229d2e365.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java期末考试报告 完成时间:2021 年 6 月 20 日考试工程任务书 计算机 系 网络工程专业 1班一、考试题目: 标准化考试系统 二、完成时间:自 2021 年 6 月 7 日起至 2021 年 6 月 20 日止三、完成地点: 教学楼、图书馆 四、考试题目内容要求:1本次期末考试的目的1掌握软件开发的根本工作流程; 2稳固JAVA程序设计课程所学的内容; 3培养计算机思维能力以及合作的精神;4培养分析、解决问题的能力;5提高实践动手能力。 2任务及要求1根本要求:1研究设计任务,并进行系统需求分析;2对系统进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;3实现各功能模
2、块代码; 4组装各模块,并测试、完善系统。2创新要求: 在根本要求到达后,可进行创新设计,如改进界面、增加功能或进行代码优化。3报告书要求1要按照要求完成报告2包括封面、设计任务书含评语、摘要、目录、设计内容、设计小结3装订按统一要求完成4参考文献:1耿祥义、张跃平.? Java大学实用教程?电子工业出版社 2黄明、梁旭、周绍斌.?Java课程设计?电子工业出版社3黄晓东.?Java课程设计案例精编?中国水利水电出版社4魏先民、徐翠霞.?Java程序设计实例教程?中国水利水电出版社 5课程设计进度安排内容 天数地点系统总体设计 3 实验室软件设计及调试 11 实验室、图书馆辩论及撰写报告 3
3、实验室、图书馆 学生签名: 2021年 6 月 20日考试工程评审意见1课程设计过程20分:优、良、中、一般、差; 2是否完成调试,系统运行效果30分:优、良、中、一般、差; 3答复以下问题20分:优、良、中、一般、差;4课程设计报告30分:优、良、中、一般、差;5格式标准性及考勤是否降等级:是、否 评阅人: 年 月 日标准化考试系统摘要: 利用Java语言设计出标准化考试系统,是针对学生考试情况设计的。设计的界面美观大方,操作简单明了。系统提供了选择试题文件,读取试题,查看分数,计时器,提交答案,计算分数等功能。程序的实验工具为Windows、记事本、jdk,利用DOS命令窗口运行。目 录
4、TOC o 1-2 h z u HYPERLINK l _Toc265518579 1、工程内容、要求与分组情况总体介绍 PAGEREF _Toc265518579 h 2 HYPERLINK l _Toc265518580 2、概要设计 PAGEREF _Toc265518580 h 2 HYPERLINK l _Toc265518581 开发工具及环境 PAGEREF _Toc265518581 h 2 HYPERLINK l _Toc265518582 2.2 任务及需求分析 PAGEREF _Toc265518582 h 2 HYPERLINK l _Toc265518583 功能模块
5、设计32.4 工作原理33、具体实现43.1 类设计43.2 模块及实现代码的介绍54、运行调试与分析讨论75、设计体会与小结106、参考文献10附录:源程序111、工程内容、要求与分组情况总体介绍工程内容、要求:本次实验的目标是制作一个标准化考试系统,系统适用于各级院校的考试工程,其主要功能分为:试题选择 可以对考试题进行选择,找到你所要的试题类型。查分系统 用于教师或学生对所答题进行核对。计时系统 对考试的时间进行规定,可根据所需来自己制定。试题显示 对考生多进行的考试内容惊醒显示的区域。小组的具体分工情况见下表:2、概要设计 HYPERLINK l _Toc199920327 开发工具及
6、环境文本编辑器:记事本;运行环境:命令提示符DOS环境。2.2 任务及需求分析设计一个系统可以进行任何标准化考试,具有选择试题,查看得分、考试计时等功能。1用户可以自由地选择其中任何一套标准化考试试题,每套试题的考试用时由试题文件.txt给出;2开始读取试题后,计时器开始计时,用户提交答案后,可以读取下一道题目;3一个提示栏显示所剩余的考试时间,当规定时间用尽后,用户将不能再读取任何题目;4为了增加模拟考试练习的灵活性,用户也可以选择暂停计时;5用户答完一个题目后,可以查看该题目的正确答案和目前的分数。2.3 功能模块设计标准化考试系统的模块流程图如下:2.4 工作原理程序进入主界面,自动读取
7、设定目录下所有试题,将试题名显示在试题选择下拉列表中;考生选择相应试题进入考试。考生进入答题界面,题目信息栏中显示所选题目,此时,系统倒计时同步进行,亦可点击【暂停计时】,考生在选择相应的答案A、B、C、D,点击【提交答案】分数统计栏中显示你所选择的答案;点击【读取下一题】题目信息栏显示下一道题目,继续作答。考生完成考试可进行交卷,点击【查看分数】,显示试题正确答案及考生,并按照相应题目分值统计考生所得分数。3、 具体实现3.1 类设计类名:Test 功能代码,窗口布局设定,调用TestArea中各按钮功能构建图形界面关键代码: super(标准化模拟考试); testPanel=new Te
8、stArea(); con=getContentPane();/获取内容面板 con.add(testPanel,BorderLayout.CENTER);/把面板添加到窗口中间 addWindowListener(new WindowAdapter()类名:ReadTestquestion作用:设置、读取试题;时间控制;判断答案以及是否完成答卷类名:TestArea作用:按钮功能设置、计时器功能设置关键代码: Choice list=null; JTextArea 试题显示区=null,消息区=null; JCheckBox box; JButton 提交该题答案,读取下一题,查看分数; R
9、eadTestquestion 读取试题=null; JLabel welcomeLabel=null; Thread countTime=null; long time=0; JTextField timeShow=null; boolean 是否关闭计时器=false, 是否暂停计时=false; JButton 暂停或继续计时=null;3.2 模块及实现代码介绍/*读取试题文件方法*/public class ReadTestquestion /*设置试题文件名方法*/public void setFilename(String name) /*得到文件名方法*/public Stri
10、ng getFilename() /*得到时间方法*/public long getTime() /*设置是否已完成考试方法*/public void set完成考试(boolean b) /*得到是否已完成考试的布尔值*/public boolean get完成考试() /*得到试题内容*/public String getTestContent() /*设置考生答案方法*/public void setSelection(String s) /*得到成绩方法*/public int getScore() /*得到考生信息方法*/public String getMessages()系统显示
11、考生可选试题,考生每次只能选择一套试题进行考试,答题完毕后才可以选择下一套试题。试题为.txt的文本文件,采取如下格式:ACA01:10:301.以下词语中加点的字,读音全都正确的一组是_. A.饯别jin 晦涩hu 铁栅栏zh 浑身解数xi B.扒手p 吱声z 和稀泥h 步履蹒跚pn C.蓄养x 寒噤jn 露马脚lu 扪心自问mn D.顺遂su 什锦sh 蒸馏水li 兵不血刃xu*2.以下各句中,没有错别字的一组是 A.依稀 澎涨 戈壁滩 云蒸霞蔚 B.涵盖 阴霾 捉谜藏 烘云托月 C.贻误 函道 交际舞 寥假设晨星 D.吆喝 绪论 擦边球 名门旺族*3.以下作家按国别归类不正确的一项为哪一
12、项_. A.狄更斯 莎士比亚 安徒生 B.契诃夫 列夫.托尔斯泰 普希金 C.高尔基 西蒙诺夫 奥斯特洛夫斯基 D.雨果 巴尔扎克 莫泊桑*endend试题格式说明:第一行显示全部试题的正确答案,答案之间不应有空格第二行显示试题答题时间,如“01:10:30表示试题答题时间为1小时10分30秒试题以“endend结尾每道试题用以“*为开头的字符分隔4、运行调试与分析讨论 调试运行考生考试,过程如下所示: 1命令提示符中运行标准化考试系统,如以下列图: 2系统界面显示,可自主选择试题,如以下列图:选择试题后,读取第一题,如以下列图 4勾选答案后,提交该题答案,读取下一题,如以下列图所示: 5如此
13、反复,直至全部问题提交完毕,考试结束,如以下列图: 6最后可查看分数,显示分数、自身答案与比照正确答案,如以下列图。5、设计体会与小结为期两周的课程设计结束了,个中的曲折可谓是一言难尽,从选择课题就遇到了一系列的麻烦,选择了自己中意的课题,但却因为能力有限,经过了几次尝试,但却屡次以失败告终。最后,通过在图书馆以及网上不断查阅相关资料,总算诞生了一个较成功的作品。在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也
14、学会了做人与处世。通过这次课程设计,我在多方面都有所提高。综合运用本专业所学课程的理论和生产实际知识进行设计工作的实际训练从而培养和提高学生独立工作能力,稳固与扩充了所学的内容,掌握设计的方法和步骤,能较清晰地区分Java与其它机器语言的区别,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,表达出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的缺乏和薄弱环节,从而加以弥补。 同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工
15、作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否那么一个人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。而这次课程设计也正好锻炼我们这一点,这也是非常珍贵的。 对我而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常刻骨铭心的回忆! 6、参考文献1耿祥义、张跃平.? Java大学实用教程?电子工业出版社 2黄明、梁旭、周绍斌.?Java课程设计?电子工业出版社3黄晓东.?Java课程设计案例精编?中国水利水电出版社4魏先民、徐翠霞.?Java程序设计实例教程?中国水利水电出版社附
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();/获取内容面板 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= , /试题内容 selection= ; /用户提交的答案 int score=0; /用户得分 long time=0; /试题用时 boolean 完成考试=false; File f=null; FileReader in=null; BufferedReader 读取=null; /*设置试题文件名方法*/ public void setFilename(String name) filename=name; score=0; selection=; try if(
19、in!=null&读取!=null) in.close(); 读取.close(); f=new File(filename);/创立文件对象 in=new FileReader(f);/创立字符流对象 读取=new BufferedReader(in); /创立缓冲流对象 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; /*设置是否已完成考试方法*/ public void set完成考试(boolean b) 完成考试=b; /*得到是否已完成考试的布尔值*/ public boolean get完成考试() return 完成考试; /*得到试题内容*/ 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) /判断结束标志 in.close(); 读取.close(); 完成考试=true; testContent=new String(temp); else testContent=new String(没有选择试题); catch(Exception e) testContent=试题内容为空,考试结束!; return testContent; /返回考题内容 /*设置考生答案方法*/ 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+ 你的答复:+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 试题显示区=null,消息区=null; JCheckBox box; JButton 提交该题答案,读取下一题,查看分数; ReadTestquestion 读取试题=null; JLabel welcomeLabel=null; Thread countTime=null; long time=0; JTextField timeShow=null; boolean 是否关闭计时器=false, 是否暂停计时=false; JButton 暂停或继续计时=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); 试题显示区=new JTextArea(15,12); 试题显示区.setLineWrap(true); 试题显示区.setWrapStyleWord(true); 试题显示区.setFont(new Font(TimesR
28、oman,Font.PLAIN,14); 试题显示区.setForeground(Color.blue); 消息区=new JTextArea(8,8); 消息区.setForeground(Color.blue); 消息区.setLineWrap(true); 消息区.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); 暂停或继续计时=new JButton(暂停计时); 暂停或继
29、续计时.addActionListener(this); 提交该题答案=new JButton(提交该题答案); 读取下一题=new JButton(读取第一题); 读取下一题.setForeground(Color.blue); 提交该题答案.setForeground(Color.blue); 查看分数=new JButton(查看分数); 查看分数.setForeground(Color.blue); 提交该题答案.setEnabled(false); 提交该题答案.addActionListener(this); 读取下一题.addActionListener(this); 查看分数.
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(消息区); boxH1.add(查看分数); timeShow=new JTextField(20); timeShow.setHorizontalAlignment(SwingConstants.RIGHT); timeShow.setEditable(false); JPanel p1=new JPanel(); p1.add(new JLabel(剩余时间:); p1.add(timeShow); p1.add(暂停或继续计时); boxH1.add(p1); boxH2.add(new JLabel(试题内容:); boxH2.add(ne
32、w JScrollPane(试题显示区); 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); 是否关闭计时器=false; 是否暂停计时=false; 暂停或继续计时.setText(暂停计时); String name=(String)list.getSelectedItem(); 读取试题.setFilename(name); 读取试题.set完成考试(false); t
34、ime=读取试题.getTime(); if(countTime.isAlive() 是否关闭计时器=true; countTerrupt(); countTime=new Thread(this); 消息区.setText(null); 试题显示区.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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生创新创业教程(慕课版 双色版 第3版) 课件 第1章 创新与创新能力
- 2025至2031年中国在线培训考试系统行业投资前景及策略咨询研究报告
- 《金融资产》课件2
- 2025至2031年中国IPOD连接线行业投资前景及策略咨询研究报告
- 2025至2030年中国陶瓷纤维刷辊数据监测研究报告
- 04骨连结幻灯片
- 《项目融资的组织》课件
- 【语文】《林教头风雪山神庙》课件+2024-2025学年统编版高一语文必修下册
- 水污染练习试题及答案
- 《贯通测量》课件2
- 2024版消防设计质量问题案例分析手册建筑机电专业
- 《义务教育道德与法治课程标准》解读
- 2024年临沧永德县人民法院聘用制书记员招聘考试真题
- 中医院发展中医重点专科、学科加强中医药人才培养的具体措施
- 2025年中国私域电商行业市场运行态势、市场规模及发展趋势研究报告
- 社区意识形态工作2025年度工作计划
- 2025年中智集团招聘笔试参考题库含答案解析
- 财务核算管理制度
- 黑龙江省哈尔滨市南岗区2024-2025学年九年级上学期期末考试英语试题(含答案)
- 2025年浙江省重点高中提前自主招生数学模拟试卷(含答案)
- 《不同血流限制训练方案对膝关节损伤运动员下肢功能的影响》
评论
0/150
提交评论