打字训练测试软件_Java课程设计报告书
Java写字板课程设计报告

计算机科学与技术系综合性实验实验报告课程名称《面向对象程序设计JAVA》学期2010 至2011 学年第二学期系别计算机科学与技术系班级姓名李月荣学号 1任课教师:张静目录目录.............................................................................. 错误!未定义书签。
一.需求分析................................................................. 错误!未定义书签。
1.1需求分析........................................................ 错误!未定义书签。
1.2 功能设计....................................................... 错误!未定义书签。
二.概要设计................................................................. 错误!未定义书签。
2.1 程序设计思路............................................... 错误!未定义书签。
2.2 功能模块说明图........................................... 错误!未定义书签。
三.程序详细设计和分析............................................. 错误!未定义书签。
3.1窗口设计........................................................ 错误!未定义书签。
3.2构建菜单栏和其下拉菜单............................ 错误!未定义书签。
3.3“文件”菜单................................................. 错误!未定义书签。
打字测试软件课程设计报告书

软件学院课程设计报告书课程名称面向对象课程设计设计题目打字训练测试软件专业班级学号姓名指导教师2014 年6 月目录1 设计时间 (1)2 设计目的 (1)3 设计题目 (1)4设计任务 (1)5设计内容 (1)5.1需求分析 (1)5.2基本要求 (1)6 功能模块实现 (1)6.1包的描述 (1)6.2类的描述 (1)6.3页面设计 (2)6.4测试文字的加入 (4)6.5测试时间设计 (5)6.6程序源代码 (6)8总结与展望 (12)参考文献 (14)1 设计时间2014年6月16日-2014年6月20日2 设计目的1.熟练掌握Java面向对象程序设计的基础知识2.熟练掌握Java中常用的Awt组件的使用方法3.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续的Java高级编程等专业课程的学习奠定良好的基础。
3 设计题目打字测试软件4设计任务打字测试软件。
要求如下:(1)使用图形用户界面实现;(2)从文件中调入英文录入材料;(3)打字结束后给出错误率,录入时间。
5设计内容5.1需求分析设计一个英文打在测试软件5.2基本要求1.文件中调入英文录入材料2.最后给出错误率3.最后给出平均录入速度6 功能模块实现6.1包的描述由于本次实验使用的类较少,所有的类都建在同一个包下,本次实验也只用到一个包。
6.2类的描述Typing类:主要的构造都在这个类中。
My key类:是该程序的一个内部类。
6.2.1类之间的关系Typing类作为主函数的入口,调用actionPerformed类的方法实现事件监听器。
当发生点击事件时就会弹出输入框,开始英文打字功能;从而达到打字训练测试的目的。
6.2.2类图如图6-1所示图6-1 类图6.3页面设计final String TITLE = "光速打字系统";private Frame f;private Button btStart,btContinue;private Panel pnEast,pnCenter,pnNorth;Font fontTitle=new Font("黑体",Font.BOLD,30);Font fontButton=new Font("宋体",Font.BOLD,24);private Label lbMessage,lbTitle;//tfSource用于显示要练习的文字,tfInput 用户输入框private TextArea taSource,taInput;//总字数和错误的字数private long wordCount,inputWordCount,rightWordCount;//开始,结束时间,用户练习所用的时间private long startTime,overTime,userTime;/** 初始化控件*/private void start() {f = new Frame(TITLE+" by 牛帅"); //窗体标题f.setSize(600,430);f.setResizable(false);//禁止调整窗体的大小pnEast = new Panel();pnCenter = new Panel();btStart =new Button("开始");btStart.setFont(fontButton);btContinue = new Button("完成");btContinue.setFont(fontButton);taSource = new TextArea(10,60);//taSource.lbTitle = new Label(TITLE);lbTitle.setFont(fontTitle);//taSource.setEnabled(false);taSource.setEditable(false);pnNorth = new Panel();lbMessage = new Label("想练习打字的话,请先点击[开始按钮]哦!");taSource.setText("想练习打字的话,请先点击[开始按钮]哦!");taInput = new TextArea(10,60);taInput.setText("欢迎使用"+TITLE);btContinue.setEnabled(false);//窗体布局//窗体使用默认的GridLayout布局f.add(pnNorth,"North");pnNorth.add(lbTitle);//pnEast.add(lbMessage,"South");f.add(lbMessage,"South");f.add(pnEast,"East");pnEast.add(btStart);pnEast.add(btContinue);f.add(pnCenter,"Center");pnCenter.add(taSource);pnCenter.add(taInput);//添加监听器f.addWindowListener(new ClosingWindow());//启用窗体的功能按钮btStart.addMouseListener(new ButtonHandler());btContinue.addMouseListener(new ButtonHandler());f.setVisible(true);}如图6-2所示图6-2 打字测试软件界面图6.4测试文字的加入程序中,通过随机读取当前项目下的txt文件,随机方式是用Random()生0-3之间的数,添加“.txt”后缀,文件位置如图6-3所示。
Java课程设计打字游戏

中南大学Java课程设计报告题目打字游戏学生姓名窦立阳指导教师陈丽萍学院信息科学与工程学院专业班级计科1204 完成时间 2015年1月15日目录第一章实验要求 (3)第二章总体设计2.1 界面设计 (4)2.2 运行流程 (4)2.3 逻辑设计 (4)2.4 积分设计 (4)第三章详细设计3.1 主面板 (5)3.1.1 两个按键 (5)3.1.2 相关全局变量 (5)3.1.3 全局变量说明 (5)3.1.4 相关全局函数 (7)3.2 字符下落模块 (7)3.2.1 WordLabel (7)3.2.2 WordFallControl (8)3.2.3 WordFallLabel (8)3.3 速度控制模块 (8)3.4 按键模块设计 (8)3.5 键盘监听事件 (9)3.6 积分模块设计 (9)3.7 事件模块设计 (10)第四章调试分析4.1 第一次调试 (11)4.2 第二次调试 (11)4.3 第三次调试 (12)第五章运行结果 (13)第六章课程设计总结 (17)第七章参考文献 (19)第八章附录:带注释的源代码8.1 Wordfall (20)8.1.1 WordFallControl类 (20)8.1.2 WordLabel类 (22)8.1.3 WordFallLabel类 (23)8.2 ScoreLabel类 (24)8.3 StartButton类 (25)8.4 TimeLabel类 (26)8.5 AAAAA类:程序的主函数入口 (28)8.6 Maintain类 (30)第一章实验要求【问题描述】设计实现一个打字游戏,界面参见图2-2,具备如下功能:●点击“开始”按钮,产生随机字符从屏幕上方下落;●点击键盘上按钮,如果正确,当前的字符消失,产生新的按钮从上方继续落下。
●提供速度调整和积分功能。
图2-2 打字游戏界面2.1 界面设计根据实验要求中的图2-2,在主面板中,1.1.1 有一个模块控制各个字符的生成并且控制他们的自动下落,并在正确触发时,字符不可见;1.1.2有一个模块用于设置下落速度;1.1.3有两个按键,分别为“开始”和“结束”,用于字符下落的开始和结束;1.1.4整个面板处于键盘事件监听中,所以还有一个模块负责监听键盘事件;1.1.5相应的,根据要求,会有一个模块用于将键盘事件和下落的字符进行操作,并且计算出积分。
java课程设计字母打字游戏

java课程设计字母打字游戏一、教学目标本节课的教学目标是让学生掌握Java编程的基本语法和流程控制,能够使用Java编写简单的字母打字游戏。
具体来说,知识目标包括:1.理解Java的基本数据类型和变量。
2.掌握Java的运算符和表达式。
3.熟悉Java的流程控制语句,包括条件语句和循环语句。
技能目标包括:1.能够使用Java编写简单的程序,实现基本的输入输出。
2.能够使用Java的流程控制语句,实现程序的逻辑控制。
3.能够独立完成字母打字游戏的编写和调试。
情感态度价值观目标包括:1.培养学生对编程的兴趣和热情,提高学生的问题解决能力。
2.培养学生团队合作的精神,鼓励学生在课堂上积极互动和交流。
3.培养学生对编程的持续学习和探索的态度,激发学生的创新意识。
二、教学内容本节课的教学内容主要包括Java的基本语法和流程控制。
具体安排如下:1.介绍Java的基本数据类型和变量,包括整数类型、浮点类型、字符类型和布尔类型。
2.讲解Java的运算符和表达式,包括算术运算符、比较运算符、逻辑运算符和赋值运算符。
3.学习Java的流程控制语句,包括条件语句(if-else)和循环语句(for、while、do-while)。
4.通过案例分析和实践,让学生掌握条件语句和循环语句的使用,编写简单的字母打字游戏。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法相结合的方式。
具体方法如下:1.讲授法:教师讲解Java的基本语法和流程控制,为学生提供系统的知识框架。
2.案例分析法:通过分析具体的字母打字游戏案例,让学生理解和掌握Java编程的方法。
3.实验法:学生动手实践,编写和调试字母打字游戏,培养学生的实际编程能力。
4.小组讨论法:学生分组合作,互相交流和讨论,培养学生的团队合作精神和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,本节课将利用多种教学资源。
具体资源如下:1.教材:《Java编程入门》教材,为学生提供基础知识的学习材料。
《Java》课程设计》记事本

《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。
(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。
首先是标准型的记事本,拥有文件、编辑。
格式和帮助。
如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。
如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。
如图三所示。
图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。
如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。
如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。
如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。
打字练习软件课设报告

由于打字练习中的要素就是人,键盘还有电脑,其中,最重要的就是正确的指法打出正确的字。所以,打字练习软件的功能就很简单明确,即,
给出目标文本,正确的输入对应的字,字母或者数字,然后进行判断和统计。其中,练习模块,主要利用MFC中的RichEdit2.0等控件很容易实现,而游戏模块设想中是利用Flash实现,由于只需支持字母输入,可以实现,最后排行榜模块将会稍微设计一下数据库,也易实现。因此,技术上,可行。
其次,结果和统计要求绝对的公正和正确,以帮助使用者了解其真实水平。通过反馈的信息进行训练。
第
3.1
3.1
图3.1系统功能模块图
3.1
本打字练习软件主要分为六个模块,分别为:教程模块、打字练习模块、排行榜模块、游戏模块、设置模块以及帮助模块。其中打字练习模块和游戏模块是主要模块,其他为此要模块。
1.教程模块:给出正确的打字姿势、正确的指法以及打字建议。
本软件界面简单,操作简单,使用方便,适合初学者使用。
关键词“打字练习”,“字母”,“数字”
第
1.1
打字练习,顾名思义,就是打字,就是用手指“打”键盘,通过不断的“打”,到最后熟练的“打”。
其中有两点要注意:
一,要注意正确的打字姿势和手势;
二,打字练习的目标是盲打,即,不看键盘,凭手指熟练的的找到并快速的敲打出心中所想的正确的字母。
摘
随着硬件和软件飞速的更新换代,网络的日益普及,计算机的应用已普及到人类社会的每一个角落,它与人类的生活关系越来越密切。而我们与计算机交流的主要途径是键盘,熟悉键盘是每个计算机初学者的必经之路,也是成为一名合格的电脑使用者的必备技能。
通过键盘打字练习,使我们更快捷方便的操纵计算机,从而从而加深了我们和电脑的联系程度,提高了我们工作和学习效率。而一款好的打字软件,必然能让我们的打字练习取得事半功倍之效。
(完整word版)Java打字训练测试软件课程设计

import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
public class EnglishGame implements ActionListener {
本系统构建学生打字练习系统,基于所开发的打字程序界面友好,图形复杂。打字练习程序中应用到eclipse最新版本,java1.6以上版本的jdk。对于打字测试进入整体的部署。完成打字练习程序开发,培养程序设计和开发能力。
设计一个英文打字测试软件。从文件中调入英文录入材料,最后可以给出错误率,平均录入速度。
4.2.3类之间的关系3
4.3详细设计4
4.3.1类图4
4.3.2页面设计4
4.4测试与分析4
4.5程序代码7
5总结与展望15
参考文献16
课程设计成绩评定16
第16周(2013年6月8日-2011年6月14日)
随着科学技术的不断提高,计算机科学目渐成熟,计算机怩深入到工作和生活的各个角落,文字录入是学习计算机非常重要的一部分。在手写录入技术和语音识别技术还不完善的同时大部分人还在使用键盘作为文字录入的工具。所以我编了这样一个小程序,同时也是我的面向对象程序设计的课程设计。希望能对电脑初学都和想提高打字速度的朋友们有所帮助。
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileReader;
import java.util.Date;
import javax.swing.JButton;
《Java程序设计》课程综合性实验报告_简易写字板软件设计

华北科技学院计算机系综合性实验实验报告课程名称Java程序设计实验学期2011 至2012 学年第 1 学期学生所在系部基础部年级2009 专业班级计算B092学生姓名学号任课教师实验成绩计算机系制《Java程序设计》课程综合性实验报告6.图表 1记事本的整体布局JMenuBar();setJMenuBar(menuBar);JMenu[5];new JMenuItem[menu.length][];8.图表 2文件菜单栏 JMenuItem[5];[1]=new JMenuItem[7];[2]=new JMenuItem[2];[3]=new JMenuItem[1];9.图表 3编辑菜单栏[1][0]=new JMenuItem("剪切(X)");[1][0].setMnemonic('X');b)13.图表 5字体设置选项;menuItem[][], popupMenuItem[];popupMenu;;, cbSize, cbStyle; curFileName;new String[2];15.图表 6帮助栏选项 (ae.getSource()==menuItem[4][0])JOptionPane.showMessageDialog(null, 基础部,计算B092 赵礼阳",记事本",RMATION_MESSAGE);18.图表 7打开功能open()JFileChooser fc=new JFileChooser();(fc.showOpenDialog(this)==JFileChooser.APPROVE_OPTIONString _curFileName=fc.getSelectedFile().getAbsolutePath();File file=new File(_curFileName);(file.exists())20.图表 8保存及另存为功能saveAs()JFileChooser fc=new JFileChooser();fc.setDialogTitle("另存为");(fc.showSaveDialog(this)==JFileChooser.APPROVE_OPTION boolean overwrite=false;原文已完。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
word格式文档《程序设计实践》题目:打字训练测试软件学校:陕西工业学院学院:信息学院班级:信管12-2学号:201213156619姓名:刘克豪2014 年11 月09 日基础类、IO流与异常处理程序设计一、实践要求1.掌握Java常用基础类API。
2.掌握输入输出流常用类API。
二、实践要求利用Java常用基础类API、输入输出流常用类API、Java异常处理等完成所选项目的程序设计。
三、项目需求所选项目名称:打字训练测试软件四、项目设计方案EnglishGame类:主要构造都在这里完成。
MyKey类:是该程序的一个内部类。
EnglishGame作为主函数的入口。
调用actionPerformed类的方法实现事件监听器。
当发生点击事件时就会弹出输入框,开始英文打字功能。
从而达到打字训练测试的目的。
五、核心算法详细设计1 . public void actionPerformed(ActionEvent e) {}2.public void keyReleased(KeyEvent arg0) {}3.public static void main(String[] args) {}4. public JPanel creatMenu() {}六、完整源码package shiyansan;import java.awt.Color;import java.awt.Container;import java.awt.Dimension;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.io.File;import java.io.FileReader;import java.util.Date;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextPane;import javax.swing.SwingUtilities; //所使用的包public class EnglishGame implements ActionListener {private static JFrame f = new JFrame("英文打字游戏");private static Container con = f.getContentPane();JPanelmainPanel,panel0,panel1,panel2,panel3,panel4,panel5,panel6,panel7;JButton button1,button2,button3,button4,button,button5,button6;JTextPane tp1,tp2;FileReader fr;File frr;Date date1,date2;int num,len1,len2,count;long time;double rightrate;char[] ch;public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubString cmd = e.getActionCommand();date1=new Date();if (cmd.equals("6.退出")){System.exit(0);}else if(cmd.equals("返回")){}else{JFrame f1 = new JFrame("英文打字游戏");f1.setSize(350, 750);f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container con1 = f1.getContentPane();panel0 = new JPanel();panel1 = new JPanel();panel2 = new JPanel();panel3 = new JPanel();panel4 = new JPanel();panel6 = new JPanel();panel7 = new JPanel();tp1=new JTextPane();tp1.setBackground(Color.pink);Font size=new Font("ad",Font.BOLD,20);tp1.setFont(size);tp1.setPreferredSize(new Dimension(300,300)); tp1.setForeground(Color.white);tp2=new JTextPane();tp2.setBackground(Color.lightGray);tp2.setFont(size);tp2.setPreferredSize(new Dimension(300,300)); try{if (cmd.equals("1.文本1")){fr=new FileReader("D:\\文本1.txt");frr=new File("D:\\文本1.txt");num=(int)frr.length();ch=new char[num];while(fr.read(ch)!=-1){String str=new String(ch);tp1.setText(str);}}else if (cmd.equals("2.文本2")){fr=new FileReader("D:\\文本2.txt");frr=new File("D:\\文本2.txt");num=(int)frr.length();ch=new char[num];while(fr.read(ch)!=-1){String str=new String(ch);tp1.setText(str);}}else if(cmd.equals("3.文本3")){fr=new FileReader("D:\\文本3.txt");frr=new File("D:\\文本3.txt");num=(int)frr.length();ch=new char[num];while(fr.read(ch)!=-1){String str=new String(ch);tp1.setText(str);}}else if (cmd.equals("4.文本4")){fr=new FileReader("D:\\文本4.txt");frr=new File("D:\\文本4.txt");num=(int)frr.length();ch=new char[num];while(fr.read(ch)!=-1){String str=new String(ch);tp1.setText(str);}}else if(cmd.equals("5.文本5")){fr=new FileReader("D:\\文本5.txt");frr=new File("D:\\文本5.txt");num=(int)frr.length();ch=new char[num];while(fr.read(ch)!=-1){String str=new String(ch);tp1.setText(str);}}}catch(Exception arg){System.out.println(arg);}button=new JButton("返回");button.addActionListener(this);panel1.add(new JLabel("参考练习:")); panel1.add(button);panel2.add(tp1);panel3.add(new JLabel("练习状况:")); 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=new Date();tp2.addKeyListener(new MyKey());}}private class MyKey extends KeyAdapter{public void keyReleased(KeyEvent arg0) {// TODO Auto-generated method stublen1=tp1.getText().length();len2=tp2.getText().length();if(len2==len1){JFrame f2 = new JFrame("英文打字游戏");f2.setSize(250, 150);f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container con2 = f2.getContentPane();date2=new Date();time=(date2.getTime()-date1.getTime())/1000;count=0;for(int i=0;i<len1;i++){if(tp2.getText().toString().charAt(i)==tp1.getText().toString().charAt(i))count++;}rightrate=(double)count/len1*100;panel0 = new JPanel();panel1 = new JPanel();panel2 = new JPanel();panel3 = new JPanel();panel1.add(new JLabel("恭喜完成本次游戏测试!"));panel2.add(new JLabel("游戏总共耗时:"+time+"秒"+"平均速率:"+len1/time+"字/秒"));panel3.add(new JLabel("您的正确率为:"+rightrate+"%"));panel0.add(panel1);panel0.add(panel2);panel0.add(panel3);con2.add(panel0);f2.setVisible(true);}else if(len2>len1){System.exit(0);}}}public static void main(String[] args) {// TODO Auto-generated method stubf.setSize(200, 300);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);con.add(new EnglishGame().creatMenu());f.setVisible(true);}public JPanel creatMenu() {}mainPanel = new JPanel();panel0 = new JPanel();panel1 = new JPanel();panel2 = new JPanel();panel3 = new JPanel();panel4 = new JPanel();panel5 = new JPanel();panel6 = new JPanel();panel7 = new JPanel();button1 = new JButton("1.文本1");button2 = new JButton("2.文本2");button3 = new JButton("3.文本3");button4 = new JButton("4.文本4");button5 = new JButton("5.文本5");button6 = new JButton("6.退出");panel0.add(new JLabel("欢迎使用英文打字测试系统")); panel1.add(new JLabel("请选择游戏难度:")); 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);mainPanel.add(panel7);mainPanel.setVisible(true);return mainPanel;}}七、使用说明与运行结果截图八、实践总结这次实践代码量很大,动手操作起来比较费力,但实验下来,感觉自己的动手能力得到很大锻炼,但程序中还有不足,比如输入错误时不能给予显著提示,自己还要多总结,多动手,不能只局限在完成任务,自己多学一些对以后的学习工作都会有很大的帮助,再接再厉。