打字测试软件报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
课程设计名称:Java课程设计
专业班级:计科卓1101
学生姓名:侯心想
学号: 201116910415
指导教师:王社伟
课程设计时间:2013.6.10-2013.6.21
打字测试软件
一、需求分析
设计一个英文打字测试软件,要求:
1. 文件中调入英文录入材料;
2. 显示错误率;
3.显示平均录入速度。
二、概要设计
模块图
主程序窗口
容易简
单
困
难
退
出
系统流程图
主程序窗口
选择按钮
容易
普
通
困
难选择按钮以后,程序自动弹出测试窗
口,然后在新窗口内进行以下操作。
点击选择文章
选择过文章以后,开始便可开始对照文章,在
文本框内进行打字练习。
点击结束练习,程序自动弹出测试
结果
退出程关闭测试窗口
三、运行环境、开发语言
运行环境:JDK1.6
开发语言:Java
四、详细设计
1 程序清单
表1程序清单
文件名功能
Test 显示程序主窗口,
实现在窗口内添加按钮事件与键盘事件。 Xian 实现添加文本到指定文本框,
实现将输入文本与指定文本比较,从而得出
错误率与平均输入率。
表2 函数清单
函数名功能
add 创建主界面窗口,添加按钮actionPerformed 响应按钮事件
shixian 创建新窗口,添加按钮事件getFileContent 将文本从文件中取出
jisuan 计算输入错误率和平均输入率
2 主要代码
2.1程序主窗口的设计
图1主程序窗口界面
public void add()throws Exception
{
p1=new JPanel();
p2=new JPanel();
b1=new JButton("容易");
b2=new JButton("普通");
b3=new JButton("困难");
b=new JButton("退出");
l=new JLabel(new ImageIcon("1.jpg.png"));//在窗口中间插入图片
con.add(p1,"North");
con.add(p2,"Center");
GridLayout g=new GridLayout(2,2,5,5);
p1.setLayout(g);
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(b);
p2.add(l);
b.addActionListener(this); //为按钮注册监听器
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
f.setSize(400,500);
f.setLocation(100,100);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
2.2 练习打字窗口
在本窗口中可以选择自己练习得文章,练习完成后点击结束练习按钮即可得到练习情况。
图2练习打字窗口界面
setBackground(Color.GREEN);
textArea=new JTextArea(500,500);
textArea.setLineWrap(true);
textArea.setEditable(false);
textArea1=new JTextArea(500,500);
textArea1.setLineWrap(true);
openFile=new JButton("选择文章");
2.3 选择文章功能
在此页面可以选择练习的文章,并且在窗口内打开,显示在对照文本框内。
图3 选择文章界面
图4 选择文章后的界面
jfc=new JFileChooser(".");
FileNameExtensionFilter filter=new FileNameExtensionFilter("text file","txt");
jfc.addChoosableFileFilter(filter);
openFile.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jfc.showOpenDialog(Xian.this);
file=jfc.getSelectedFile();
if(file==null)
{
textArea.setText("没有选择文件");
return;
}
textArea.setText(" ");
try{String content=getFileContent(file);
textArea.setText(content);
Xian.this.setTitle(file.getName());
}
catch(IOException ex){textArea.setText("读文件失败、原因\n"+ex);}
}
});
textArea1.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if(coun==0){
startTime=System.nanoTime();
coun=1;}
}
});
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
jisuan();
}
}
);
}
public String getFileContent(File file) throws IOException{
BufferedReader reader=new BufferedReader(new FileReader(file));
String line="";