




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA课程设计报告 -单机版考试软件设计 学号 : 姓名 : 通过本学期Java基本知识的学习和Java上机实训的实践实习,我对JAVA有了一定的了解,具备了一定的Java编程基础。Java是一种基于网络及Internet的面向对象的程序设计语言,具有跨平台、高性能、安全等特征,是计算机网络及通信应用软件开发的首选工具,也是网络编程的标准开发工具语言,在IT业界得到了广泛的应用。Java对语言对未来软件的开发产生了巨大的影响,表现在:软件的需求分析、软件的开发方法、Java语言的动画效果、软件最终产品、移动通信方面。它作为新一代编程语言,有以下特点:面向对象、平台无关性、分布式、可靠性和安全性、多线程、简单性、健壮性、高性能、灵活性。考试软件需要满足以下的要求:1)采用标准化题目类型。2)自动阅卷准评分。3)组卷形式灵活方便。4)考试过程中动态显示剩余时间。5)动态保存考生数据。单机版软件设计的原则是:1)为简单起见只采用单选题一种题型。2)采用试卷库的形式,以文本文件的形式存储在考试文件夹下,考生任意抽取。3)根据命题员给出的标准答案和考生提交的答案对比,给出得分。4)本程序为考生自测,考试结束后,考生单机“查看分数”得知考试成绩。设计过程如下:首先我们要进行命题。我们要确定题型,然后抽题,接着评分,最后显示成绩。接下来我们要确定文件的格式。文件名我们一般确定为:test.txt。在第一行要确定考试时间,格式:考试用时XXX分钟。第二行是各题的标准答案,用大写字母表示,紧接着写,各题答案中间不能有空格。格式为:标准答案XXXXX。第三行开始表示试题内容,要求每一行有个结束标志,即用*开始的一个特殊行。最后一行是试题结束标志,内容是。符号不能缺少,这是系统判断的依据和标志。整体形式如下图所示:程序设计:单机版考试软件分为3个类:主类是Tset.java,考试界面TestArea.java,读取试题ReadTestquestion.java。一、Test.java是程序运行的入口,是整个软件的框架。原来的代码定义包为:import java.awt.*;import java.awt.event.*;import javax.swing.*;但BorderLayout边界布局管理器被定义在java.awt包中,因其是窗口操作需定义WindowEvent窗口事件,而它的接口适配器为WindowAdapter。故改为:import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;同样的,在TestArea.java定义包改为:import java.awt.BorderLayout;import java.awt.Choice;import java.awt.Color;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.io.File;import java.io.FilenameFilter;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.SwingConstants;ReadTestquestion.java改为:import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.StringTokenizer;public Test() super(计算机考试系统); 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(); 二、ReadTestquestion.java是读取试题内容,考试后评分。import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.util.StringTokenizer; /提供StringTokenizer类,用于分隔时间中的时分秒public class ReadTestquestion String filename = ; /文件名 String correctAnswer = ; /正确答案 String testContent = ; /考试题目内容 String selection = ; /考生答案 int score = 0; /成绩 long time = 0; /考试时间String temp = (dqxx.readLine().trim(); StringTokenizer token = new StringTokenizer(temp, :); /允许应用程序讲字符串分解为标记 int hour = Integer.parseInt(token.nextToken(); /取出小时 int minute = Integer.parseInt(token.nextToken(); /取出分钟 int second = Integer.parseInt(token.nextToken(); /取出秒数 time = 100 * (second + minute * 60 + hour * 60 * 60); /考试时间化为秒 三、TestArea.java是建立考试界面,调用ReadTestquestion.java,提供选择试题、查看分数、计时、试题显示等功能。public class TestArea extends JPanel implements ActionListener, ItemListener, Runnable Choice list = null; /文件下拉列表框 JTextArea stxsq = null, xxq = null; /试题显示区和信息提示区 JCheckBox box; /建立复选框 JButton tjbtda, dqxyt, ckfs; /三个按钮 ReadTestquestion dqst = null; /读取试题 JLabel welcomeLabel = null; /欢迎标签 Thread countTime = null; /计时器 long time = 0; /定义考试用时 JTextField timeShow = null; /剩余时间显示boolean sfgbjsq = false, /是否关闭计时器sfztjs = false; /是否暂停计时 JButton zthjxjs = null; /暂停或继续计时 public TestArea() /构造方法list = new Choice(); String dqml = System.getProperty(user.dir); /读取系统目录信息 File dir = new File(dqml); System.out.println(dqml); FileName fileTxt = new FileName(txt); /加上扩展名txt String fileName = dir.list(fileTxt); /列出文件名 for (int i = 0; i fileName.length; i+) /建立文件名下拉列表框 list.add(fileNamei);tjbtda.setEnabled(false);tjbtda.addActionListener(this); /提交本题答案,注册监听器dqxyt.addActionListener(this); /读取下一题,注册监听器ckfs.addActionListener(this); /查看分数,注册监听器list.addItemListener(this); /文件名下拉列表框,注册监听器 dqst = new ReadTestquestion(); /读取试题,调用ReadTestquestion类public synchronized void run() /同步方法 while (true) if (time = 1) /将时间转化为时分秒形式 time = time - 1000; long leftTime = time / 1000; long leftHour = leftTime
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 32566.2-2025不锈钢焊接气瓶第2部分:试验压力大于6 MPa的气瓶
- 应急安全培训基地图标课件
- 应急安全业务培训总结课件
- 应急保障局安全培训证书课件
- 2025年公务员考试时事政治真题(易错题)附答案详解大全
- 2025年福建林业职业技术学院招聘9人方案笔试备考题库及答案详解1套
- 老年人传染病易感因素与针对性防护护理措施
- 2024年自考专业(计算机应用)题库检测试题打印(夺冠)附答案详解
- 2025年智慧物流园区资金申请项目投资回报与盈利模式分析报告
- 2025年线下演出市场复苏与可持续发展战略研究报告
- 2024-2025学年深圳北师大版八年级下学期期末数学复习题《平行四边形》解答题含答案
- 2025年老年教育课程考试题及答案
- 中小学生安全知识题库-交通安全知识题库
- 第十三章 三角形 单元测试(含答案)人教版数学八年级上册
- 2025-2026教科版(2024)科学一年级上册教学设计及每课教学反思(附目录)
- 2025届高中地理人教版一轮复习第29课时导学案:内力作用与地表形态
- 糖尿病肾衰竭疑难病例讨论
- 通信网络应急预案演练计划
- 海边赶海活动方案
- 版大学习、大培训、大考试专项行动工作方案
- 2025至2030年中国医用激光光纤行业市场全景分析及产业前景研判报告
评论
0/150
提交评论