完整word版打字训练测试软件Java课程设计.docx
- 文档编号:14493795
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:14
- 大小:109.67KB
完整word版打字训练测试软件Java课程设计.docx
《完整word版打字训练测试软件Java课程设计.docx》由会员分享,可在线阅读,更多相关《完整word版打字训练测试软件Java课程设计.docx(14页珍藏版)》请在冰点文库上搜索。
完整word版打字训练测试软件Java课程设计
《程序设计实践》
题目:
打字训练测试软件
学校:
陕西工业学院
学院:
信息学院
班级:
信管12-2
学号:
201213156619
姓名:
刘克豪
2014年11月09日
基础类、IO流与异常处理程序设计
一、实践要求
1.掌握Java常用基础类API。
2.掌握输入输出流常用类API。
二、实践要求
利用Java常用基础类API、输入输出流常用类API、Java异常处理等完成所选项目的程序设计。
三、项目需求
所选项目名称:
打字训练测试软件
四、项目设计方案
EnglishGame类:
主要构造都在这里完成。
MyKey类:
是该程序的一个内部类。
EnglishGame作为主函数的入口。
调用actionPerformed类的方法实现事件监听器。
当发生点击事件时就会弹出输入框,开始英文打字功能。
从而达到打字训练测试的目的。
五、核心算法详细设计
1.publicvoidactionPerformed(ActionEvente){}
2.publicvoidkeyReleased(KeyEventarg0){}
3.publicstaticvoidmain(String[]args){}
4.publicJPanelcreatMenu(){}
六、完整源码
packageshiyansan;
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{
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+"秒"+"平均速率: "+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); mainPanel.add(panel7); mainPanel.setVisible(true); returnmainPanel; }} 七、使用说明与运行结果截图 八、实践总结 这次实践代码量很大,动手操作起来比较费力,但实验下来,感觉自己的动手能力得到很大锻炼,但程序中还有不足,比如输入错误时不能给予显著提示,自己还要多总结,多动手,不能只局限在完成任务,自己多学一些对以后的学习工作都会有很大的帮助,再接再厉。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 打字 训练 测试 软件 Java 课程设计