Java打字训练测试软件课程设计.docx

上传人:b****3 文档编号:4009909 上传时间:2022-11-27 格式:DOCX 页数:16 大小:108.42KB
下载 相关 举报
Java打字训练测试软件课程设计.docx_第1页
第1页 / 共16页
Java打字训练测试软件课程设计.docx_第2页
第2页 / 共16页
Java打字训练测试软件课程设计.docx_第3页
第3页 / 共16页
Java打字训练测试软件课程设计.docx_第4页
第4页 / 共16页
Java打字训练测试软件课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Java打字训练测试软件课程设计.docx

《Java打字训练测试软件课程设计.docx》由会员分享,可在线阅读,更多相关《Java打字训练测试软件课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

Java打字训练测试软件课程设计.docx

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

 

软件学院

课程设计报告书

 

课程名称面向对象程序设计

设计题目打字训练测试软件

专业班级软件11-4

学号**********

姓名李红达

指导教师李建东

 

2013年6月

1设计时间3

2设计目的3

3设计任务3

4设计内容3

4.1需求分析3

4.1.1问题描述3

4.1.2基本要求3

4.2总体设计3

4.2.1包的描述3

4.2.2类的描述3

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

1设计时间

第16周(2013年6月8日-2011年6月14日)

2设计目的

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

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

所以我编了这样一个小程序,同时也是我的面向对象程序设计的课程设计。

希望能对电脑初学都和想提高打字速度的朋友们有所帮助。

本系统构建学生打字练习系统,基于所开发的打字程序界面友好,图形复杂。

打字练习程序中应用到eclipse最新版本,java1.6以上版本的jdk。

对于打字测试进入整体的部署。

完成打字练习程序开发,培养程序设计和开发能力。

3设计任务

设计一个英文打字测试软件。

从文件中调入英文录入材料,最后可以给出错误率,平均录入速度。

4设计内容

4.1需求分析

4.1.1问题描述

设计一个英文打字测试软件。

4.1.2基本要求

1.文件中调入英文录入材料

2.最后给出错误率

3.最后给出平均录入速度

4.2总体设计

4.2.1包的描述

由于本次实验使用的类较少,所有的类都建在同一个包下,本次试验也只用到了一个包。

4.2.2类的描述

EnglishGame类:

主要构造都在这里完成。

MyKey类:

是该程序的一个内部类。

4.2.3类之间的关系

EnglishGame作为主函数的入口。

调用actionPerformed类的方法实现事件监听器。

当发生点击事件时就会弹出输入框,开始英文打字功能。

从而达到打字训练测试的目的。

4.3详细设计

4.3.1类图

图1EnglishGame类图

图2MyKey类图

4.3.2页面设计

页面设计分为一个选择框可以选择“退出”,“简单”,“困难”,“普通”四个部分,然后分上下两个框是输入内容与原内容相比,最后显示测试结果框。

4.4测试与分析

图3测试图界面

 

 

图4测试图简单

 

图5测试图普通

 

图6测试图困难

4.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;

JButtonbutton1,button2,button3,button4,button;

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("4.退出"))

{

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();

tp1=newJTextPane();

tp1.setBackground(Color.green);

Fontsize=newFont("ad",Font.BOLD,20);

tp1.setFont(size);

tp1.setPreferredSize(newDimension(300,300));

tp1.setForeground(Color.white);

tp2=newJTextPane();

tp2.setBackground(Color.yellow);

tp2.setFont(size);

tp2.setPreferredSize(newDimension(300,300));

try

{

if(cmd.equals("1.简单"))

{

fr=newFileReader("D:

\\简单.txt");

frr=newFile("D:

\\简单.txt");

num=(int)frr.length();

ch=newchar[num];

while(fr.read(ch)!

=-1)

{

Stringstr=newString(ch);

tp1.setText(str);

}

}

elseif(cmd.equals("2.普通"))

{

fr=newFileReader("D:

\\普通.txt");

frr=newFile("D:

\\普通.txt");

num=(int)frr.length();

ch=newchar[num];

while(fr.read(ch)!

=-1)

{

Stringstr=newString(ch);

tp1.setText(str);

}

}

elseif(cmd.equals("3.困难"))

{

fr=newFileReader("D:

\\困难.txt");

frr=newFile("D:

\\困难.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);

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

{

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+"秒"));

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();

button1=newJButton("1.简单");

button2=newJButton("2.普通");

button3=newJButton("3.困难");

button4=newJButton("4.退出");

panel0.add(newJLabel("欢迎使用英文打字测试系统"));

panel1.add(newJLabel("请选择游戏难度:

"));

button1.addActionListener(this);

button2.addActionListener(this);

button3.addActionListener(this);

button4.addActionListener(this);

panel2.add(button1);

panel3.add(button2);

panel4.add(button3);

panel5.add(button4);

mainPanel.add(panel0);

mainPanel.add(panel1);

mainPanel.add(panel2);

mainPanel.add(panel3);

mainPanel.add(panel4);

mainPanel.add(panel5);

mainPanel.setVisible(true);

returnmainPanel;

}

}

5设计总结

本次课程设计提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼了我分析解决实际问题的能力。

提高我的适应实际,实践编程的能力。

本课程设计旨在培养了我的动手能力和学习能力。

通过对动手编写本程序,我可以学习更多的实用内容和方法,而这些资料多以英文方式给出,不但锻炼了我的学习能力,而且还锻炼我的阅读和理解能力。

此外本程序还存在一些问题待完善,测试过程中录入错字后要没有标记,不能很好的显示出错的字。

另外在一些低版本的jdk1.6中,录入时会出现无法录入英文和数字,只能输入中文,也无法退格(backspace)的现象。

建议使用较高版本的jdk1.6,或者使用jdk1.7以上版本。

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

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

所以我编了这样一个小程序,同时也是我的面向对象程序设计的课程设计。

希望能对电脑初学都和想提高打字速度的朋友们有所帮助。

 

参考文献

[1]刘万军,郑少京,王松波.Java6程序设计实践教程[M].北京:

清华大学出版社,2009.5

[2]BruceEckel.Java编程思想[M].第二版,北京,高等教育出版社,2005.4

[3]CayS.Horstmann,Java核心技术[J],第八版,电子工业出版社,2004.6

[4]《数据库原理及应用教程》.陈志泊主编.人民邮电出版社。

[5]《数据库实验指导》.杨海霞等编著.人民邮电出版社。

 

课程设计成绩评定

出勤

情况

缺勤次数:

课程

设计

评估

设计成绩

教师签字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1