打字训练测试软件 Java课程设计.docx
《打字训练测试软件 Java课程设计.docx》由会员分享,可在线阅读,更多相关《打字训练测试软件 Java课程设计.docx(10页珍藏版)》请在冰豆网上搜索。
打字训练测试软件Java课程设计
《程序设计实践》
题目:
打字训练测试软件
学校:
陕西工业学院
学院:
信息学院
班级:
信管12-2
学号:
201
姓名:
刘克豪
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;
publicclassEnglishGameimplementsActionListener{
privatestaticJFramef=newJFrame("英文打字游戏");
privatestaticContainercon=();
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){
出"))
{
(0);
}
elseif("返回"))
{
}
else
{
JFramef1=newJFrame("英文打字游戏");
(350,750);
;
Containercon1=();
panel0=newJPanel();
panel1=newJPanel();
panel2=newJPanel();
panel3=newJPanel();
panel4=newJPanel();
panel6=newJPanel();
panel7=newJPanel();
tp1=newJTextPane();
;
Fontsize=newFont("ad",,20);
(size);
(newDimension(300,300));
;
tp2=newJTextPane();
;
(size);
(newDimension(300,300));
try
{
if("1.文本1"))
{
fr=newFileReader("D:
\\文本");
frr=newFile("D:
\\文本");
num=(int)();
ch=newchar[num];
while(ch)!
=-1)
{
Stringstr=newString(ch);
(str);
}
}
elseif("2.文本2"))
{
fr=newFileReader("D:
\\文本");
frr=newFile("D:
\\文本");
num=(int)();
ch=newchar[num];
while(ch)!
=-1)
{
Stringstr=newString(ch);
(str);
}
}
elseif("3.文本3"))
{
fr=newFileReader("D:
\\文本");
frr=newFile("D:
\\文本");
num=(int)();
ch=newchar[num];
while(ch)!
=-1)
{
Stringstr=newString(ch);
(str);
}
}
elseif("4.文本4"))
{
fr=newFileReader("D:
\\文本");
frr=newFile("D:
\\文本");
num=(int)();
ch=newchar[num];
while(ch)!
=-1)
{
Stringstr=newString(ch);
(str);
}
}
elseif("5.文本5"))
{
fr=newFileReader("D:
\\文本");
frr=newFile("D:
\\文本");
num=(int)();
ch=newchar[num];
while(ch)!
=-1)
{
Stringstr=newString(ch);
(str);
}
}
}
catch(Exceptionarg)
{
}
button=newJButton("返回");
(this);
(newJLabel("参考练习:
"));
(button);
(tp1);
(newJLabel("练习状况:
"));
(tp2);
(panel1);
(panel2);
(panel3);
(panel4);
(panel6);
(panel7);
(panel0);
(true);
(true);
date1=newDate();
(newMyKey());
}
}
privateclassMyKeyextendsKeyAdapter{
publicvoidkeyReleased(KeyEventarg0){
ength();
len2=().length();
if(len2==len1)
{
JFramef2=newJFrame("英文打字游戏");
(250,150);
;
Containercon2=();
date2=newDate();
time=()())/1000;
count=0;
for(inti=0;i{
if().toString().charAt(i)==().toString().charAt(i))
count++;
}
rightrate=(double)count/len1*100;
panel0=newJPanel();
panel1=newJPanel();
panel2=newJPanel();
panel3=newJPanel();
(newJLabel("恭喜完成本次游戏测试!
"));
(newJLabel("游戏总共耗时:
"+time+"秒"+"平均速率:
"+len1/time+"字/秒"));
(newJLabel("您的正确率为:
"+rightrate+"%"));
(panel1);
(panel2);
(panel3);
(panel0);
(true);
}
elseif(len2>len1){
(0);
}
}
}
publicstaticvoidmain(String[]args){
reatMenu());
(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.退出");
(newJLabel("欢迎使用英文打字测试系统"));
(newJLabel("请选择游戏难度:
"));
(this);
(this);
(this);
(this);
(this);
(this);
(button1);
(button2);
(button3);
(button4);
(button5);
(button6);
(panel0);
(panel1);
(panel2);
(panel3);
(panel4);
(panel5);
(panel6);
(panel7);
(true);
returnmainPanel;
}}
七、使用说明与运行结果截图
八、实践总结
这次实践代码量很大,动手操作起来比较费力,但实验下来,感觉自己的动手能力得到很大锻炼,但程序中还有不足,比如输入错误时不能给予显着提示,自己还要多总结,多动手,不能只局限在完成任务,自己多学一些对以后的学习工作都会有很大的帮助,再接再厉。