Java课程设计----标准化考试系统.doc_第1页
Java课程设计----标准化考试系统.doc_第2页
Java课程设计----标准化考试系统.doc_第3页
Java课程设计----标准化考试系统.doc_第4页
Java课程设计----标准化考试系统.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象课程设计题 目 标准化考试系统 学 院 数学与信息工程学院 专 业 计算机科学与技术 目 录一、需求分析二、系统运行环境三、功能需求描述四、总体设计五、程序模块设计六、使用效果图七、总结一、需求分析要设计一个性能良好的管理系统,明确用户的应用环境对系统的要求是首要的和基本的。本系统从以下三个方面对用户需求进行了分析:1) 用户的信息需求:考生能查询有关考试成绩;系统管理员能查询题库信息;系主要领导都能查询所有信息。2) 用户的处理要求:管理员能对题库和考试科目执行增加、删除和修改操作;由管理员设置考试信息,经过考试主管领导的审核后就可考试;在考试时,由考生选择试题;系统控制考试时间、考试成绩自动生成等。3) 对系统的适应性、通用性要求:要求系统不仅能够进行计算机系考试,而且其他系或专业稍作设置或改动也能使用本系统进行标准化网络考试。二、系统运行环境 windows xp sp3以及 eclipse 2007三、功能需求描述本系统可以进行任何标准化考试,具有选择试题、查看得分、考试计时等功能。四、 总体设计本标准化考试系统共由3个java源文件和若干个试题组成,试题文件为文本文件,文件名字可任意指定,但扩展名必须是txt,文件内容必须遵守如下的书写规则:1) 试题文件的第一行是全部试题的答案,答案之间不可以有空格。2) 第二行是试题文件的考试时间,如1:23:45表示的考试时间是1小时23分45秒。3) 每道题目之间用“*”开头的字符串分割。4) 最后一行是endtest.java该java文件生成的类负责创建标准化考试的主窗口。该类含有main方法,程序从该类开始执行,程序从该类开始执行。在主窗口,用户可以通过下拉列表选择一套试题,然后开始读取试题进行考试。testarea.java该文件生成的类负责创建考试区域对象。是test窗口中的主要成员变量,考试区域提供了试题选取、查看分数、计时器、试题显示等功能。readtestquestion.javatest(主类)readtestquestion对象是testarea试题区中的重要对象,负责读取该试题、计算分数等。 testarea readtestquestion 图 类之间的依赖关系五、程序模块设计一、主类test 1成员变量成员变量描述变量类型名称考试区域testareatestpanel 2方法名称功能备注test创建程序窗口构造方法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(标准化考试系统); 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) new test(); 一、读取试题readtestquestion1 成员变量描述变量类型名称文件名stringfilename正确答案stringcorrectanswer试题内容stringtestcontent用户提交的答案stringselection用户得分intscore试题用时longtime读取试题的流filereaderin2方法名称功能备注setfilename设置试题文件的名称getfilename获取试题文件的名称gettime获取考试用时set 完成考试设置是否完成考试get 完成考试判断是否完成考试gettestcontent获取试题内容getselection排列用户提交的答案getscore计算用户得分getmessage查阅分数和正确答案3. 代码 import java.io.*;import java.util.*;public class readtestquestion string filename=, /存放考题文件名字的字符串 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(in!=null&读取!=null) in.close(); /关闭与前一文件的连接 读取.close(); f=new file(filename); in=new filereader(f); 读取=new bufferedreader(in); /读取试题文件的第1行,即标准答案 correctanswer=(读取.readline().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(); /获取用时的“秒”值 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() /获取试题的内容 try string s=null; stringbuffer temp=new stringbuffer(); if(读取!=null) /如果用户选择了试题文件,读取就不是空对象 while(s=读取.readline()!=null) /继续读取某个试题 if(s.startswith(*) /试题的结束标志 break; temp.append(n+s); if(s.startswith(end) /整个试题文件的结束标志 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; /用户提交的答案依次尾加到 selection public int getscore() score=0; int length1=selection.length(); /用户提交的第i题答案在selection中的位置 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=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;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论