Java打字训练课程设计_第1页
Java打字训练课程设计_第2页
Java打字训练课程设计_第3页
Java打字训练课程设计_第4页
Java打字训练课程设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

软件学院课程设计报告书课程名称设计题目专业班级学号姓名指导教师年月目录1设计时间 12设计目的 13设计任务 14设计内容 1 1 1 1 14.2.1包的描述 14.2.2类的描述 2 2 2 3 35功能模块的实现 3 36运行与实现 127总结与展望 19参考文献 20成绩评定 201设计时间2014年6月16日-2014年6月20日2设计目的随着科学技术的不断提高,计算机科学目渐成熟,计算机怩深入到工作和生活的各个角落,文字录入是学习计算机非常重要的一部分。在手写录入技术和语音识别技术还不完善的同时大部分人还在使用键盘作为文字录入的工具。所以我编了这样一个小程序,同时也是我的面向对象程序设计的课程设计。希望能对电脑初学都和想提高打字速度的朋友们有所帮助。本系统构建学生打字练习系统,基于所开发的打字程序界面友好,图形复杂。打字练习程序中应用到eclipse最新版本,java1.6以上版本的jdk。对于打字测试进入整体的部署。完成打字练习程序开发,培养程序设计和开发能力。3设计题目设计一个英文打字测试软件。从文件中调入英文录入材料,最后可以给出错误率,平均录入速度。4设计内容设计一个英文打字测试软件1.文件中调入英文录入材料2.最后给出错误率3.最后给出平均录入速度总体设计4.2.1包的描述由于本次实验使用的类较少,所有的类都建在同一个包下,本次试验也只用到了一个包。4.2.2类的描述EnglishGame类:主要构造都在这里完成。MyKey类:是该程序的一个内部类。EnglishGame作为主函数的入口。调用actionPerformed类的方法实现事件监听器。当发生点击事件时就会弹出输入框,开始英文打字功能。从而达到打字训练测试的目的。图1EnglishGame类图图2MyKey类图页面设计分为一个选择框可以选择“退出”,“简单”,“困难”,“普通”四个部分,然后分上下两个框是输入内容与原内容相比,最后显示测试结果框。5功能模块实现importjava.awt.Color;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importjava.io.File;importjava.io.FileReader;importjava.util.Date;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextPane;importjavax.swing.SwingUtilities;//所使用的包publicclassEnglishGameimplementsActionListener{ privatestaticJFramef=newJFrame("英文打字游戏"); privatestaticContainercon=f.getContentPane(); JPanelmainPanel,panel0,panel1,panel2,panel3,panel4,panel5,panel6,panel7; JButtonbutton1,button2,button3,button4,button,button5,button6; JTextPanetp1,tp2; FileReaderfr; Filefrr; Datedate1,date2; intnum,len1,len2,count; longtime; doublerightrate; char[]ch; publicvoidactionPerformed(ActionEvente){ //TODOAuto-generatedmethodstub Stringcmd=e.getActionCommand(); date1=newDate(); if(cmd.equals("6.退出")) { System.exit(0); } elseif(cmd.equals("返回")) { } else { JFramef1=newJFrame("英文打字游戏"); f1.setSize(350,750); f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Containercon1=f1.getContentPane(); panel0=newJPanel(); panel1=newJPanel(); panel2=newJPanel(); panel3=newJPanel(); panel4=newJPanel(); panel6=newJPanel(); panel7=newJPanel(); tp1=newJTextPane(); tp1.setBackground(Color.pink); Fontsize=newFont("ad",Font.BOLD,20); tp1.setFont(size); tp1.setPreferredSize(newDimension(300,300)); tp1.setForeground(Color.white); tp2=newJTextPane(); tp2.setBackground(Color.lightGray); tp2.setFont(size); tp2.setPreferredSize(newDimension(300,300)); try { if(cmd.equals("1.文本1")) { fr=newFileReader("D:\\文本1.txt"); frr=newFile("D:\\文本1.txt"); num=(int)frr.length(); ch=newchar[num]; while(fr.read(ch)!=-1) { Stringstr=newString(ch); tp1.setText(str); } } elseif(cmd.equals("2.文本2")) { fr=newFileReader("D:\\文本2.txt"); frr=newFile("D:\\文本2.txt"); num=(int)frr.length(); ch=newchar[num]; while(fr.read(ch)!=-1) { Stringstr=newString(ch); tp1.setText(str); } } elseif(cmd.equals("3.文本3")) { fr=newFileReader("D:\\文本3.txt"); frr=newFile("D:\\文本3.txt"); num=(int)frr.length(); ch=newchar[num]; while(fr.read(ch)!=-1) { Stringstr=newString(ch); tp1.setText(str); } } elseif(cmd.equals("4.文本4")) { fr=newFileReader("D:\\文本4.txt"); frr=newFile("D:\\文本4.txt"); num=(int)frr.length(); ch=newchar[num]; while(fr.read(ch)!=-1) { Stringstr=newString(ch); tp1.setText(str); } } elseif(cmd.equals("5.文本5")) { fr=newFileReader("D:\\文本5.txt"); frr=newFile("D:\\文本5.txt"); num=(int)frr.length(); ch=newchar[num]; while(fr.read(ch)!=-1) { Stringstr=newString(ch); tp1.setText(str); } } } catch(Exceptionarg) { System.out.println(arg); } button=newJButton("返回"); button.addActionListener(this); panel1.add(newJLabel("参考练习:")); panel1.add(button); panel2.add(tp1); panel3.add(newJLabel("练习状况:")); panel4.add(tp2); panel0.add(panel1); panel0.add(panel2); panel0.add(panel3); panel0.add(panel4); panel0.add(panel6); panel0.add(panel7); con1.add(panel0); f1.setVisible(true); tp2.requestFocus(true); date1=newDate(); tp2.addKeyListener(newMyKey()); } }privateclassMyKeyextendsKeyAdapter{ @Override publicvoidkeyReleased(KeyEventarg0){ //TODOAuto-generatedmethodstub len1=tp1.getText().length(); len2=tp2.getText().length(); if(len2==len1) { JFramef2=newJFrame("英文打字游戏"); f2.setSize(250,150); f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Containercon2=f2.getContentPane(); date2=newDate(); time=(date2.getTime()-date1.getTime())/1000; count=0; for(inti=0;i<len1;i++) { if(tp2.getText().toString().charAt(i)==tp1.getText().toString().charAt(i)) count++; } rightrate=(double)count/len1*100; panel0=newJPanel(); panel1=newJPanel(); panel2=newJPanel(); panel3=newJPanel(); panel1.add(newJLabel("恭喜完成本次游戏测试!")); panel2.add(newJLabel("游戏总共耗时:"+time+"秒"+"平均速率:"+len1/time+"字/秒")); panel3.add(newJLabel("您的正确率为:"+rightrate+"%")); panel0.add(panel1); panel0.add(panel2); panel0.add(panel3); con2.add(panel0); f2.setVisible(true); } elseif(len2>len1){ System.exit(0); } } } publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub f.setSize(200,300); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); con.add(newEnglishGame().creatMenu()); f.setVisible(true); } publicJPanelcreatMenu(){ mainPanel=newJPanel(); panel0=newJPanel(); panel1=newJPanel(); panel2=newJPanel(); panel3=newJPanel(); panel4=newJPanel(); panel5=newJPanel(); panel6=newJPanel(); panel7=newJPanel(); button1=newJButton("1.文本1"); button2=newJButton("2.文本2"); button3=newJButton("3.文本3"); button4=newJButton("4.文本4"); button5=newJButton("5.文本5"); button6=newJButton("6.退出"); panel0.add(newJLabel("欢迎使用英文打字测试系统")); panel1.add(newJLabel("请选择游戏难度:")); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); button6.addActionListener(this); panel2.add(button1); panel3.add(button2); panel4.add(button3); panel5.add(button4); panel6.add(button5); panel7.add(button6); mainPanel.add(panel0); mainPanel.add(panel1); mainPanel.add(panel2); mainPanel.add(panel3); mainPanel.add(panel4); mainPanel.add(panel5); mainPanel.add(panel6); main

温馨提示

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

评论

0/150

提交评论