版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.课 程 设 计课程设计名称: Java课程设计 专 业 班 级 : 计科卓1101 学 生 姓 名 : 侯心想 学 号 : 201116910415 指 导 教 师 : 王社伟 课程设计时间: 2013.6.10-2013.6.21 .打字测试软件 一、需求分析 设计一个英文打字测试软件,要求: 1. 文件中调入英文录入材料; 2. 显示错误率; 3.显示平均录入速度。二、概要设计模块图 主程序窗口容易简单困难退出系统流程图主程序窗口选择按钮容易普通困难选择按钮以后,程序自动弹出测试窗口,然后在新窗口内进行以下操作。点击选择文章选择过文章以后,开始便可开始对照文章,在文本框内进行打字练习。点
2、击结束练习,程序自动弹出测试结果退出程序关闭测试窗口三、运行环境、开发语言运行环境:JDK1.6开发语言:Java四、详细设计1 程序清单 表1程序清单文件名功能Test显示程序主窗口,实现在窗口内添加按钮事件与键盘事件。 Xian实现添加文本到指定文本框,实现将输入文本与指定文本比较,从而得出错误率与平均输入率。表2 函数清单函数名功能add创建主界面窗口,添加按钮actionPerformed响应按钮事件shixian创建新窗口,添加按钮事件getFileContent将文本从文件中取出jisuan计算输入错误率和平均输入率2 主要代码2.1程序主窗口的设计图1主程序窗口界面public
3、void add()throws Exceptionp1=new JPanel();p2=new JPanel();b1=new JButton(容易);b2=new JButton(普通);b3=new JButton(困难);b=new JButton(退出); l=new JLabel(new ImageIcon(1.jpg.png);/在窗口中间插入图片con.add(p1,North);con.add(p2,Center);GridLayout g=new GridLayout(2,2,5,5);p1.setLayout(g);p1.add(b1);p1.add(b2);p1.add
4、(b3);p1.add(b);p2.add(l);b.addActionListener(this); /为按钮注册监听器 b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);f.setSize(400,500);f.setLocation(100,100);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);2.2 练习打字窗口在本窗口中可以选择自己练习得文章,练习完成后点击结束练习按钮即可得到练习情
5、况。图2练习打字窗口界面setBackground(Color.GREEN); textArea=new JTextArea(500,500); textArea.setLineWrap(true); textArea.setEditable(false); textArea1=new JTextArea(500,500); textArea1.setLineWrap(true); openFile=new JButton(选择文章);2.3 选择文章功能在此页面可以选择练习的文章,并且在窗口内打开,显示在对照文本框内。图3 选择文章界面图4 选择文章后的界面jfc=new JFileChoo
6、ser(.);FileNameExtensionFilter filter=new FileNameExtensionFilter(text file,txt);jfc.addChoosableFileFilter(filter); openFile.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) jfc.showOpenDialog(Xian.this); file=jfc.getSelectedFile(); if(file=null) textArea.setText(没有
7、选择文件); return; textArea.setText( ); tryString content=getFileContent(file); textArea.setText(content); Xian.this.setTitle(file.getName(); catch(IOException ex)textArea.setText(读文件失败、原因n+ex); ); textArea1.addKeyListener(new KeyAdapter() public void keyPressed(KeyEvent e) if(coun=0) startTime=System.n
8、anoTime(); coun=1; );b.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)jisuan();); public String getFileContent(File file) throws IOExceptionBufferedReader reader=new BufferedReader(new FileReader(file);String line=;String content=;while(line=reader.readLine()!=null)c
9、ontent+=line+n;reader.close();return content;2.4结束练习功能此界面可以向练习文本框内输入文字,点击结束练习系统自动弹出练习结果。图5练习结果界面 public void jisuan() double rate=0,j=0;str1=textArea.getText();str2=textArea1.getText();char s1=str1.toCharArray();char s2=str2.toCharArray();if(s2.length=s1.length) for(int i=0;is2.length;i+) if(s2i!=s1
10、i)j+; rate=(j/s2.length)*100; elsefor(int i=0;is1.length;i+) if(s2i!=s1i)j+;rate=(j+(s2.length-s1.length)/s2.length)*100; endTime=System.nanoTime(); double rate1=(s2.length*1000000.0/(endTime-startTime)*60000;int rate2=(int)rate1; JOptionPane.showMessageDialog(Xian.this,错误率:+rate+%+ 平均输入率:+rate2+/分钟
11、); 五、调试与分析在实现各个功能的过程中我遇到了,各种各样的错误,我试着这慢慢的将这些错误逐个分析,并解决。如:textArea1.addKeyListener(new KeyAdapter() public void keyPressed(KeyEvent e) if(coun=0) startTime=System.nanoTime(); coun=1;);这是添加的一个键盘事件,是用来记录开始测试的时间的,当是编程时忽略了键盘事件,只要没点击一下键盘就会执行一次,即开始时间就会重新被记录,这样就会导致开始时间与结束时间相同,导致计算平均输入率错误。调试方法:经过认真分析我在键盘事件中加
12、了一个控制变量coun=0,当键盘事件执行过一次后令coun=1,这样当你在第二次敲击键盘时键盘事件就不会在执行了,并准确的记录了开始时间。六、功能测试打字测试前测试完成后 七、结论与心得 本次课程设计中我遇到了许多意想不到错误,有很多都是粗心大意造成的,所以我现在感觉编程是要保持冷静心态,遇到错误不能心浮气躁,要认真分析错误结果和错误提示,并且试着调试。这样来编程会使你的调试程序的能力又很快的提升,同时也在不知不觉中提高了你的编程能力。经过这两年的课程设计,和编程的学习,我深深了解到编程能力的提升不是从课本上学来的,而是在实战中锻炼出来的。在设计某个程序时不仅要求你有熟练的编程能力,同时也要有发散的思维和很好的逻辑思维能力。做好一个设计的前提就是又一个完美的思维框架,然后才是考验你的编程能力的时候。如果你不能在编程前合理的安排实现的先后顺序,那你将面临的已不再是编程能力好坏的困难。因为不管你的编程能力是多么的强,你都不能轻易的解决这些因为逻辑安排不合理而产生的本不是错误的错误。八、参考资料1 Cay S. Horstmann, Gary Cornell. Core Java Volume I: Fundamentals. 8th Edition. Prentice Hall, 2008.2 Cay S. Horstma
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年九龙《高等数学(一)》(专升本)深度预测试题含解析
- 阳光无处不在作文900字
- 融资居间合同-项目公司
- 我爱我的老师作文共九篇
- 狂人日记教案4-粤教版
- 上期洋泉中心初中安全与后勤管理工作总结
- 初中历史八下教案-北师大版4
- 俄国的改革教案1-人教版
- 高中语文选修中国古代诗歌散文欣赏教案1(45份)-人教课标版5
- 2024年超声多普勒胎儿监护仪项目发展计划
- 2022年同等学力申硕英语真题及答案
- 新教科版科学小学各年级实验目录
- 通用造价35kV~750kV线路(国网)课件
- 居民变更户主情况登记表
- (中职)走进数字媒体1.1《知识加油站》教学课件
- 期权策略专题(一):期权定价效率以及基于择时的做空波动率策略
- 《芭蕾舞基本功训》课程教学大纲
- 信息技术2.0微能力:小学五年级数学上(第六单元)组合图形的面积-中小学作业设计大赛获奖优秀作品-《义务教育数学课程标准(2022年版)》
- 理科甘肃省普通高中毕业生登记表
- 15.《子夜》 (4)
- 深度融入高校长三角一体化发展实施方案
评论
0/150
提交评论