




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计课程设计名称: Java课程设计 专 业 班 级 : 计科卓1101 学 生 姓 名 : 侯心想 学 号 : 201116910415 指 导 教 师 : 王社伟 课程设计时间: 2013.6.10-2013.6.21 打字测试软件 一、需求分析 设计一个英文打字测试软件,要求: 1. 文件中调入英文录入材料; 2. 显示错误率; 3.显示平均录入速度。二、概要设计模块图 主程序窗口容易简单困难退出系统流程图主程序窗口选择按钮容易普通困难选择按钮以后,程序自动弹出测试窗口,然后在新窗口内进行以下操作。点击选择文章选择过文章以后,开始便可开始对照文章,在文本框内进行打字练习。点击结束练习,程序自动弹出测试结果退出程序关闭测试窗口三、运行环境、开发语言运行环境:JDK1.6开发语言:Java四、详细设计1 程序清单 表1程序清单文件名功能Test显示程序主窗口,实现在窗口内添加按钮事件与键盘事件。 Xian实现添加文本到指定文本框,实现将输入文本与指定文本比较,从而得出错误率与平均输入率。表2 函数清单函数名功能add创建主界面窗口,添加按钮actionPerformed响应按钮事件shixian创建新窗口,添加按钮事件getFileContent将文本从文件中取出jisuan计算输入错误率和平均输入率2 主要代码2.1程序主窗口的设计图1主程序窗口界面public 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(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 练习打字窗口在本窗口中可以选择自己练习得文章,练习完成后点击结束练习按钮即可得到练习情况。图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 JFileChooser(.);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(没有选择文件); 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.nanoTime(); 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)content+=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!=s1i)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+/分钟); 五、调试与分析在实现各个功能的过程中我遇到了,各种各样的错误,我试着这慢慢的将这些错误逐个分析,并解决。如:textArea1.addKeyListener(new KeyAdapter() public void keyPressed(KeyEvent e) if(coun=0) startTime=System.nanoTime(); coun=1;);这是添加的一个键盘事件,是用来记录开始测试的时间的,当是编程时忽略了键盘事件,只要没点击一下键盘就会执行一次,即开始时间就会重新被记录,这样就会导致开始时间与结束时间相同,导致计算平均输入率错误。调试方法:经过认真分析我在键盘事件中加了一个控制变量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-2025学年八年级(下)期末物理试卷(含解析)
- 汉字形声字课件
- 安徽省合肥市百花中学等四校联考2024-2025学年高一下学期7月期末考试地理试卷(含答案)
- 3D打印技术与应用 知到智慧树见面课答案
- 社会化电商的发展现状与挑战
- 体感游戏产业市场潜力及商机分析
- 美容美发行业市场调研与创新发展
- T-QGCML 4835-2025 板翅式换热器翅片成型和打孔生产线
- 军事理论与国防教育知到智慧树答案
- 2025年燃气电厂笔试题库及答案
- 2025年道路运输两类人员安全员考试考核试题库答案
- 2025年学法减分试题及答案
- 《智能建造概论》高职完整全套教学课件
- 2025年教育综合理论知识试题及答案
- 超声科进修学习汇报
- 2024年甘肃省舟曲县邮政公开招聘工作人员试题带答案详解
- 2025年小学英语(2022版)新课程标准考试测试卷及答案(共四套)
- (高清版)DB34∕T 5193-2025 河流水生态监测技术规范
- 2025年德语DSH考试试卷德语语法练习与解析
- 肥料行业车间管理制度
评论
0/150
提交评论