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

合集下载

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课程设计打字游戏

中南大学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编程的基本语法和流程控制,能够使用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》课程设计》记事本

《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); //设置在单词过长的时候是否要把长单词移到下一行。

打字练习软件课设报告

打字练习软件课设报告
2.1.1
由于打字练习中的要素就是人,键盘还有电脑,其中,最重要的就是正确的指法打出正确的字。所以,打字练习软件的功能就很简单明确,即,
给出目标文本,正确的输入对应的字,字母或者数字,然后进行判断和统计。其中,练习模块,主要利用MFC中的RichEdit2.0等控件很容易实现,而游戏模块设想中是利用Flash实现,由于只需支持字母输入,可以实现,最后排行榜模块将会稍微设计一下数据库,也易实现。因此,技术上,可行。
其次,结果和统计要求绝对的公正和正确,以帮助使用者了解其真实水平。通过反馈的信息进行训练。

3.1
3.1
图3.1系统功能模块图
3.1
本打字练习软件主要分为六个模块,分别为:教程模块、打字练习模块、排行榜模块、游戏模块、设置模块以及帮助模块。其中打字练习模块和游戏模块是主要模块,其他为此要模块。
1.教程模块:给出正确的打字姿势、正确的指法以及打字建议。
本软件界面简单,操作简单,使用方便,适合初学者使用。
关键词“打字练习”,“字母”,“数字”

1.1
打字练习,顾名思义,就是打字,就是用手指“打”键盘,通过不断的“打”,到最后熟练的“打”。
其中有两点要注意:
一,要注意正确的打字姿势和手势;
二,打字练习的目标是盲打,即,不看键盘,凭手指熟练的的找到并快速的敲打出心中所想的正确的字母。

随着硬件和软件飞速的更新换代,网络的日益普及,计算机的应用已普及到人类社会的每一个角落,它与人类的生活关系越来越密切。而我们与计算机交流的主要途径是键盘,熟悉键盘是每个计算机初学者的必经之路,也是成为一名合格的电脑使用者的必备技能。
通过键盘打字练习,使我们更快捷方便的操纵计算机,从而从而加深了我们和电脑的联系程度,提高了我们工作和学习效率。而一款好的打字软件,必然能让我们的打字练习取得事半功倍之效。

(完整word版)Java打字训练测试软件课程设计

(完整word版)Java打字训练测试软件课程设计
import javax.swing.JLabel;
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程序设计》课程综合性实验报告_简易写字板软件设计

华北科技学院计算机系综合性实验实验报告课程名称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;原文已完。

Java打字训练课程设计

Java打字训练课程设计
和工作打下基础
提高打字速度:通过训练提 高打字速度,为未来的学习 和工作打下基础
提高打字效率:通过训练提 高打字效率,为未来的学习
和工作打下基础
感谢您的观看
汇报人:
打字技巧和训练方法
手指位置:熟悉键盘上的字母位置,提高打字速度 盲打训练:通过练习盲打,提高打字速度和准确性 打字速度训练:通过打字游戏或软件,提高打字速度和准确性 打字技巧:掌握正确的打字姿势和手指动作,提高打字速度和准确性
Java编程练习题
● 基础语法练习:变量、数据类型、运算符、条件语句等 ● 面向对象编程练习:类、对象、继承、多态等 ● 集合框架练习:List、Set、Map等 ● 异常处理练习:try-catch-finally、throw、throws等 ● 输入输出流练习:FileInputStream、FileOutputStream、BufferedReader、
Java打字训练课程 设计
,a click to unlimited possibilities
汇报人:
目录 /目录
01
点击此处添加 目录标题
02
课程目标
03
课程内容
04
课程安排
05
课程收益
01 添加章节标题
02 课程目标
掌握Java编程基础
理解Java语言基础语法和数据 类型
掌握Java控制流语句和循环结 构
课程形式:在线 教学、视频教学、 互动练习、作业 布置
学习资源推荐
推荐书籍:《Java编程思想》、《Java核心技术》、《Java编程入门经典》等 推荐网站:Stack Overflow、GitHub、CSDN等 推荐视频教程:Coursera、Udemy、慕课网等 推荐练习平台:LeetCode、Codeforces、HackerRank等

打字训练软件

打字训练软件

打字训练软件《Java语言程序设计》课程设计课设题目:打字训练测试软件院系:计算机科学与技术学院专业:物联网学生姓名:宋杰学号:123921041 学生姓名:王鹏学号: 123921042 学生姓名:于渊学号:123921043 指导教师:段善荣2014 年 12 月打字训练测试软件1、打字训练测试软件的概述1.1 背景与意义计算机在20世纪后半期取得了飞速发展,随着网络的发展,已经成为人们日常生活中不可或缺的一部分,如何快速的掌握计算机操作技能显得非常重要,其中打字速度更是衡量一个人操作熟练与否的重要标志,因此开发一种高效的打字程序显得迫在眉睫。

目前大多数打字程序都是只能在Windows下运行,跨平台运行能力不是很强。

为了适应当下的需求,格外需要一款新的打字程序。

我们小组开发的这个用JA V A设计的打字训练测试软件,它的主要功能是从文件中录入一段英文或中文文档,并能给出错误率和平均录入速度。

在该文档设计中,为了方便,文档格式设置为txt格式。

该软件能实现从磁盘上寻找打开一个文件、实时显示打字速度和剩余时间等功能,应用到GUI,多线程,文件的输入输出等知识。

需要从磁盘打开要录入文件的样本,录入时需要实时显示录入速度和剩余时间,录入结束后,显示录入速度和错误率。

录入结束方式可以通过点击“结束测试”按钮结束测试,文章录入完成也自动结束录入,到达设置时间也自动结束录入。

最后要求图形界面,界面良好美观,主要是为了锻炼一下打字技能,提高打字速度,并能给出错误分析。

2、打字训练测试软件的设计思路2.1系统主要功能本程序必需主要实现的功能如下:1)添加文件。

从磁盘添加现有的文本文件显示在程序界面上方。

2)设置测试时间。

在打字开始前,可以设置测试时间,方便快捷地结束测试。

3)显示测试结果。

结果主要包括:打字速度和错误率。

4)在录入过程中,显示当前速度和剩余时间。

为了实时提醒用户打字速度和打字时间可以实时提示打字速度和剩余时间(剩余时间是设置的测试时间减掉已使用的时间).5)使用菜单栏。

java课程设计实验报告

java课程设计实验报告

Java课程设计实验报告实验题目:打字游戏小程序专业: 计算机科学与技术系班级: 1202班成员:Java 课程设计(打字游戏小程序)一、课程设计目的经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥。

在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识。

二、课程设计内容1.课程设计简介设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分。

2.设计说明因为要进行键盘操作,所以引用了event包,还要注册事件监听。

字母是随机产生的,又要用Math.random。

注册了线程。

还要对窗口定义坐标,防止字母出现在同一位子。

并且通过一位数组来给随机出现的字母做坐标定义。

主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制。

3.设计流程图4.实现功能随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少。

5.详细设计(源代码)1)CharEntity.javapackage DownCharGame;/*** 下落的字母实体类* @author shenbf**/public class CharEntity {//定义字母的x、yprivate int x;private int y;//字母的值private char ch;//字母下落的"速度"private int speed;//颜色private Color color;//字体private Font font;public void draw(Graphics g){//设置字体g.setFont(font);//设置画笔颜色g.setColor(Color.white);g.fillOval(getX()-9, getY()-24, 30, 30);g.setColor(color);g.drawString(ch+"", x, y);}//下落的方法public void down(){y=y+speed;}//快速生成getters和setters方法:alt+shift+s---->r---->select all---->ok public void setX(int x){this.x=x;}public int getX(){return this.x;}public int getY(){return y;}public void setY(int y){this.y=y;}public char getCh() {return ch;}public void setCh(char ch) {this.ch = ch;}public int getSpeed() {return speed;}public void setSpeed(int speed) {this.speed = speed;}public Color getColor() {return color;}public void setColor(Color color) {this.color = color;}public Font getFont() {return font;}public void setFont(Font font) {this.font = font;}}2)DownCharFrame.javapackage DownCharGame;public class DownCharFrame {public static void main(String[] args){JFrame frame=new JFrame();frame.setTitle("打字母游戏V1.2");frame.setBounds(200,100,640,480);frame.setResizable(false);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);DownCharPanel panel=new DownCharPanel();frame.add(panel);frame.addKeyListener(panel);panel.addKeyListener(panel);panel.startDown();frame.setVisible(true);}}3)DownCharPanel.javapackage DownCharGame;public class DownCharPanel extends JPanel implements KeyListener{C harEntity[] chs=new CharEntity[10];//消除字母4,定义统计的变量//正确率i nt accuracy = 0;//正确数i nt rightNum = 0;//打错的个数i nt errorNum = 0;//遗漏的个数i nt loseNum = 0;//初始总分i nt sum = 1000;p ublic DownCharPanel(){//为数组中的每一个子科目实例化for(int i=0;i<chs.length;i++){CharEntity ce = new CharEntity();int fontSize=(int)(Math.random()*10)+20;ce.setFont(new Font("宋体",Font.BOLD,fontSize));ce.setX((int)(Math.random()*580)+30);ce.setY(0);ce.setSpeed((int)(Math.random()*3)+1);ce.setColor(new Color((int)(Math.random()*256), //[0,255)(int)(Math.random()*256),(int)(Math.random()*256)));ce.setCh((char)(65+(int)(Math.random()*26)));chs[i]=ce;}}p ublic void paint(Graphics g){super.paint(g);//设置背景图Image bgimg;try {bgimg = ImageIO.read(new File("Picture/238.jpg"));g.drawImage(bgimg, 0, 0, null);} catch (IOException e) {e.printStackTrace();}//消除字母5,绘制统计数字g.setFont(new Font("宋体",Font.BOLD,20));g.setColor(Color.yellow);g.drawString("正确数:"+rightNum, 10, 40);g.setColor(Color.red);g.drawString("错误数:"+errorNum, 10, 60);g.setColor(Color.green);g.drawString("遗漏数:"+loseNum, 10, 80);//绘制下落的字母for(int i=0;i<chs.length;i++){chs[i].draw(g);}//显示成绩g.setColor(Color.white);g.drawString("您当前的成绩是:"+sum, 165, 23);//Game Overif(errorNum>50||loseNum>100){g.setColor(Color.red);g.setFont(new Font("宋体",Font.BOLD,100));g.drawString("Game Over!", 50, 250);}}p ublic void startDown(){new Thread(){public void run(){while(!(loseNum>100||errorNum>50)){try {Thread.sleep(40);} catch (InterruptedException e) {e.printStackTrace();}for(int i=0;i<chs.length;i++){if(chs[i].getY()>=480){//消除字母6,遗漏数++loseNum++;sum -= 100;chs[i].setX((int)(Math.random()*580)+30);chs[i].setY(0);chs[i].setColor(new Color((int)(Math.random()*256), (int)(Math.random()*256),(int)(Math.random()*256)));chs[i].setCh((char)(65+(int)(Math.random()*26)));}chs[i].down();}repaint();//}}}.start();}p ublic void keyTyped(KeyEvent e) {}p ublic void keyPressed(KeyEvent e) {}p ublic void keyReleased(KeyEvent e) {//消除字母7,实现具体的方法//7.1获取到键盘按下的字母char key = e.getKeyChar();//和当前按下字母key相同字母(y值最大)对应的下标int maxYindex = -1;//7.2使用按下的字母和chs数组中所有的字母去比较for(int i=0; i<chs.length; i++){if(key==chs[i].getCh()||key==chs[i].getCh()+32){//按下的字母key和下标对应的字母“相同”if(maxYindex==-1){//说明第一次找到maxYindex = i;}else{//说明不是第一次找到if(chs[maxYindex].getY()<chs[i].getY()){maxYindex = i;}}}}//判断正确还是错误if(maxYindex==-1){//一个相同的字母都没有找到errorNum++;sum -= 100;}else{//至少找到一个相同的字母rightNum++;sum += 10;chs[maxYindex].setX((int)(Math.random()*580)+30);chs[maxYindex].setY(0);chs[maxYindex].setCh((char)(65+(int)(Math.random()*26)));}}}三、运行结果截图:四、实验总结:此程序运用了一维数组,且随机性。

java打字训练测试软件课程设计

java打字训练测试软件课程设计

java打字训练测试软件课程设计一、课程目标知识目标:1. 理解Java编程语言的基本语法和结构;2. 掌握使用Java编写简单程序的能力;3. 学习编写打字训练测试软件的相关类和接口;4. 了解软件开发的流程和规范。

技能目标:1. 能够运用所学知识独立设计并编写打字训练测试软件;2. 培养良好的编程习惯,编写结构清晰、可读性强的代码;3. 提高问题分析能力和逻辑思维能力;4. 学会使用调试工具进行程序调试,找出并修复错误。

情感态度价值观目标:1. 培养对编程的兴趣和热情,激发主动学习的动力;2. 树立团队协作意识,学会与他人共同解决问题;3. 培养严谨、踏实的学术态度,勇于面对编程中的挑战;4. 增强自信心,相信自己具备解决复杂问题的能力。

本课程针对高年级学生,结合学科特点和学生实际情况,将知识目标、技能目标和情感态度价值观目标分解为具体的学习成果。

教学过程中,注重理论与实践相结合,培养学生实际编程能力,提高他们对编程的兴趣和热情。

通过本课程的学习,使学生能够独立完成打字训练测试软件的设计与开发,为后续学习奠定基础。

二、教学内容1. Java基本语法:变量、数据类型、运算符、控制语句(条件语句、循环语句);2. 面向对象编程:类与对象、构造方法、封装、继承、多态;3. 常用类和接口:String类、Scanner类、ArrayList集合;4. 异常处理:异常的概念、try-catch语句、throws关键字;5. 文件操作:文件的读取与写入、文件的随机访问;6. 图形用户界面(GUI):Swing图形用户界面编程、事件处理;7. 打字训练测试软件设计:需求分析、功能设计、界面设计、编码实现、测试与调试。

教学内容按照教学大纲安排,结合课本章节进行组织,确保科学性和系统性。

具体安排如下:1. 前四章为基础知识,为学生编写打字训练测试软件提供必要的语法支持;2. 第五、六章为进阶知识,使学生掌握异常处理和文件操作,为软件设计提供保障;3. 第七章为实际应用,通过学习GUI编程,让学生能够独立设计并实现打字训练测试软件;4. 整个教学内容以实际项目为导向,将理论知识与实际操作相结合,提高学生的编程实践能力。

打字训练测试java课程设计

打字训练测试java课程设计

打字训练测试java课程设计一、课程目标知识目标:1. 让学生掌握Java语言中基本的输入输出流概念,并能运用到实际编程中。

2. 让学生了解键盘操作的基本知识,理解打字速度和准确性在编程中的重要性。

3. 让学生掌握至少一种Java编程环境下的文本编辑和代码运行方法。

技能目标:1. 培养学生熟练使用键盘进行打字的能力,提高打字速度和准确性,达到每分钟输入XX个字符以上。

2. 培养学生运用Java语言编写简单的输入输出程序,实现对用户输入的处理和响应。

3. 培养学生通过编程解决问题,培养逻辑思维和编程实践能力。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习积极性,形成主动学习的态度。

2. 培养学生团队合作意识,学会在编程过程中互相帮助、共同进步。

3. 培养学生严谨、细心的编程习惯,提高代码质量,增强对编程工作的敬业精神。

课程性质:本课程为实践性较强的Java编程入门课程,以训练学生打字速度和编程实践能力为主要目标。

学生特点:学生为初中年级,具备一定的计算机操作基础,对编程有一定兴趣,但编程实践经验不足。

教学要求:结合学生特点,注重实践操作,引导学生通过动手实践掌握编程技能,提高打字速度和准确性,培养学生编程兴趣。

在教学过程中,关注学生个体差异,提供个性化指导,确保每个学生都能达到课程目标。

将目标分解为具体学习成果,便于教学设计和评估。

二、教学内容1. Java基础输入输出流概念:- 理解输入输出流的概念和作用。

- 掌握使用Scanner类进行键盘输入。

- 学习System.out.println()等输出方法。

2. 键盘打字技能训练:- 训练学生熟悉键盘布局,提高打字速度和准确性。

- 引导学生掌握正确的打字姿势和指法。

- 练习常用的打字练习软件,巩固打字技能。

3. Java编程环境使用:- 学习至少一种Java集成开发环境(IDE),如Eclipse、IntelliJ IDEA等。

- 掌握如何创建Java项目、编写代码、编译和运行程序。

基于JAVA的打字练习软件的设计与实现

基于JAVA的打字练习软件的设计与实现

基于JA V A的打字练习软件的设计与实现摘要二十世纪的后半期,尤其是90年代后,计算机取得了飞速的发展。

近来,随着网络的发展,计算机已经成为人们生活中不可缺少的一部分。

提高人们对计算机的操作能力显得尤为重要。

而打字速度是衡量一个人操作熟练程度的一个重要方面。

因此开发一种高效的打字系统显得迫在眉睫。

随着科学技术的不断提高,计算机科学日渐成熟,计算机已经深入到工作和生活的各个角落,文字录入是学习计算机非常重要的一部分。

在手写录入技术和语音识别技术还不完善的同时大部分人还在使用键盘作为文字录入的工具。

所以我编了这样一个小程序,同时也是我的毕业设计,希望能对电脑初学者和想提高打字速度的朋友们有所帮助。

关键词:打字练习文字录入打字速度Based on JA V A typing practice software design andimplementationAbstractIn the second half of the 20th century, especially after the 1990s, the computer has made rapid development. Recently, with the development of the network, computers have become the people the indispensable part in life. Improve the operation ability of computer people appear especially important. While typing speed is the measure of a man operating skilled degree of a important aspects. So developing a efficient typing system appears imminent. Along with the science and technology unceasing enhancement, the computer science is mature day after day, the computer to have in-depth work and each corners of the life, language school is a very important part of learning computer. In the handwritten typed technology and speech recognition technology is not perfect and most people are still in use the keyboard as language school tools. So I made such a small program, and also my graduation design, in hopes of computer novices and want to improve typing speed friends helpKey Words:Typing practice Text entry Typing speed目录第一章绪论 (1)1.1课题背景及选题意义 (1)1.2打字练习软件的国内外研究现状 (1)1.3论文结构 (1)第二章系统分析 (3)2.1系统需求分析 (3)2.2软件开发环境和方法 (3)2.3主要功能简介 (3)2.3.1键盘练习 (3)2.3.2简码练习 (4)2.3.3文章练习 (4)2.3.4速度测试 (4)2.3.5编码查询 (5)2.3.6帮助 (5)第四章软件界面与代码的设计 (7)4.1软件界面,如图 4.1 所示。

打字练习系统设计书

打字练习系统设计书

打字练习系统设计书
一、功能描述
为了适应眼下人们对计算机文字相关的操作,该系统诞生了,它主要用于帮助用户练习打字及题目练习,使用户能够进行快速的打字,正确获得文字信息,同时还可以辅助的进行题目练习。

二、详细设计
2.1类的概述
包含三种类:
1 用户类;
2 管理者类;
3 题目类(具体有判断题、填空题、翻译题)
2.2流程图
主函数流程图
2.3相关算法实现(1)文件操作
文件读方法:read( )、getline( )
文件写方法:write( )、流操作
(2)信息修改
第一步,创建一个临时保存文件;
第二步,将需要修改的信息所在文件中的不需要的信息保存于临时文件,再将需要修改的信息写入临时文件。

第三步,将临时文件中的信息写入原来的保存文件中,删除临时文件。

(3)打字的随机
调用随机函数:
srand(time(NULL));设置随机数种子
rand()%num;随机产生0~number-1之间的整数
三、参考文献
【1】谭浩强,C程序设计(第四版),清华大学出版社,2010 【2】钱能,C++程序设计教程(第二版),清华大学出版社,2005 【3】田怀鲁,数据结构,电子工业出版社,2006。

Java程序设计“打字程序”

Java程序设计“打字程序”

徐州工程学院综合训练报告课程名称面向对象程序设计综合设计专业计算机科学与技术(单)班级 09计单学生姓名黄晨学号 2009*****44设计题目打字速度测试程序指导教师******设计起止时间:2011 年12月21日至2012年1月6日图4-1 起始界面图4。

2 添加文件界面设计添加打开文件用打开对话框,并对对话框添加文件过滤器,代码如下:JFileChooser fileCh=new JFileChooser();fileCh。

setCurrentDirectory(new File("files"));fileCh.setFileFilter(new FileFilter(){public boolean accept(File f){return f.getName().toLowerCase()。

endsWith("。

txt”)||f.isDirectory();}public String getDescription(){return”文本文档 *。

txt*";}});if(fileCh。

showOpenDialog(null)==JFileChooser。

CANCEL_OPTION)return;getPath=fileCh。

getSelectedFile();if(!getPath。

getPath().toLowerCase().endsWith("。

txt")){JOptionPane.showMessageDialog(null,”请选择文本文档",”提示”,JOptionPane。

INFORMATION_MESSAGE);return;}添加文件界面设计如图4—2:图4—2 添加文件界面图4。

3 设置测试时间设计录入时间设定用一个对话框实现,并接收输入信息,默认录入测试时间为5分钟,主要代码如下:JPanel jp=new JPanel(new GridLayout(2,0));JLabel jlab=new JLabel("设置测试时间(分):");JTextField jtfTime=new JTextField();jtfTime。

java打字训练测试软件设计

java打字训练测试软件设计

java打字训练测试软件设计河南机电高等专科学校实验课程名称 Java程序设计开课实验室系、部计科系年级 11 专业班软件111学生姓名学号开课时间 2012 至 2013 学年第一学期总成绩教师签名《Java程序设计》课程设计报告2013年1月6日系部计科系年级、专业、班软件111 姓名胡玉祥课程项目指导Java程序设计打字训练测试软件戴冬名称名称教师教师教师签名:戴冬评年月日语一、课程设计目的1.熟练掌握Java面向对象程序设计的基础知识2.熟练掌握Java中常用的Swing组件的使用方法3.熟练掌握使用JDBC操作数据库的方法4.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续的Java高级编程等专业课程的学习奠定良好的基础。

二、使用仪器、材料装有java开发环境的可以联网的计算机一台,《java程序设计》书一本,java帮助文档JDK_API一份。

三、课程设计步骤1、课题分析:打字软件中有窗体布局,课程载入和对照练习三部分。

其中窗体布局中包含:窗体的创建,定义标签和文本框,设置选课下拉列表,文本框文本改变,暂停按钮和窗体关闭按钮的监听器;课程的载人中有读取课程文件以及计数器的和显示标签的初始化;对照练习是本程序的主要计算部分,其主要是键盘的监听事件。

2、设计思路:做一窗体,窗体中有7个标签,一个按钮,一个下拉列表和两个文本区域如下图图表1所示,其中第一个文本区域为读取文件的文本,第二个文本区域为用户输入的文本,用一个键盘监听器监听键盘事件,当程序后先载人窗体,再读取文件kc1.txt中的文本,统计个数赋值给zgs,每读取一个字符让它赋值给字符数组y和字符串b,最后把字符串中字符设置为文本区中的文本。

然后等待文本区wz2中的文本的改变,当文本区里的文本改变后让键盘监听器判断键盘输入的文本。

当键盘的是字符的时候定义一个计时器并开始计时每秒钟让变量s加一,再让文本区中输入的字符和字符数组y中的第i个对比(i是键盘输入的个数),如果相同的话正确数加一,然后根据总个数和正确数求错误率和速度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;}}七、使用说明与运行结果截图八、实践总结这次实践代码量很大,动手操作起来比较费力,但实验下来,感觉自己的动手能力得到很大锻炼,但程序中还有不足,比如输入错误时不能给予显著提示,自己还要多总结,多动手,不能只局限在完成任务,自己多学一些对以后的学习工作都会有很大的帮助,再接再厉。

相关文档
最新文档