题目描述
我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
2.有计时功能,能显示用户开始答题后的消耗时间。
3.界面支持中文简体/中文繁体/英语,用户可以选择一种;
需求分析
1.将上次基于控制台的代码改写为GUI界面;
2.需要添加计时的功能方便用户了解自己的做题时间;
3.能够记录历史的对错总数。
coding地址
https://coding.net/u/wumingxiang/p/GUI_szys/git
程序设计
计时功能代码:
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
final Timer timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
Date now2 = new Date(now.getTime() + 1000);
now = now2;
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
labTime.setText(formatter.format(now));
}
});
历史纪录存取功能
try {
writer = new BufferedWriter(new FileWriter(new File("history.txt")));
writer.write(a.toString());
writer.newLine();
writer.write(b.toString());
writer.newLine();
writer.close();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
reader = new BufferedReader(new FileReader(new File("history.txt")));
rightNum = reader.readLine();
errorNum = reader.readLine();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
labRight.setText("历史正确量:"+ rightNum );
labError.setText("历史错误量:"+ errorNum );
}
功能展示
点击运行出现界面:
点击开始答题,时间开始跳动:
点击提交答案,自动判断对错:
再次运行程序,历史对错总数发生改变:
团队合作
PSP
小结
由于上次一次实验没有编程语言要求,我们都是用C++语言编写的,这次需要实现GUI界面,没掌握C++语言的界面编写,所以将我上次的代码以类似的思路改写成java语言代码,java的界面代码花费了我们许多时间,查了许多资料,这次界面使用的是AWT继承架构,因为掌握的不是很熟练,界面较为简单,界面创建完成后,后台的生成算式,判断结果等功能没多久就完成了。