https://coding.net/u/lhl1212/p/ArithmeticTest/git
201421123037&201421123041
题目描述
将上次基于命令行的四则运算小程序做成GUI,成为一个由基本功能、一定价值的程序。在下面的功能需求实现两个。
1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
2.有计时功能,能显示用户开始答题后的消耗时间。
3.界面支持中文简体/中文繁体/英语,用户可以选择一种;
需求分析
- 具有界面
- 计时功能
- 语言选择
- 增量计算
程序设计
功能流程图
程序流程图
代码展示
语言选择功能:
public void setLanguage() {
String[] choiceLanguage = { "简体中文", "繁体中文", "English" };
String language = (String) JOptionPane.showInputDialog(null, "请选择客户端的语言:
", "Choice a language for client",
JOptionPane.PLAIN_MESSAGE, new ImageIcon("icon.png"), choiceLanguage, "简体中文");
if (language == null) {
System.exit(-1);
} else {
try {
reader = new BufferedReader(new FileReader(new File("language/" + language + ".txt")));
String s;
while ((s = reader.readLine()) != null) {
tips.add(s);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
计时功能
public void showTime() {
labTime = new JLabel(tips.get(1) + "00:00");
labTime.setBounds(50, 0, 120, 50);
jpMain.add(labTime);
new Thread() {
public void run() {
while (true) {
try {
Thread.sleep(1000);
seconds++;
if (seconds >= 60) {
seconds = 0;
minutes++;
}
if (seconds < 10)
secStr = "0" + seconds.toString();
else
secStr = seconds.toString();
if (minutes < 10)
minStr = "0" + minutes.toString();
else
minStr = minutes.toString();
} catch (InterruptedException e) {
e.printStackTrace();
}
labTime.setText(tips.get(1) + minStr + ":" + secStr);
if(isEnd)
break;
}
}
}.start();
}
关闭按钮的鼠标监听事件
public void actionPerformed(ActionEvent e) {
btnExit.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
});
程序运行
语言选择
进入不同语言界面:
点击提交后:
功能上只实现了计时和语言选择的功能,增量式的还未实现。
小结感受
这次合作虽然没有1+1>2的效果,但是能够在编程过程中多一个伙伴,至少有大于1的效果。在制定编码规范后都能很好的执行。由于是舍友,平常经常接触比较熟悉,再加上我的合作伙伴是一个能听取别人意见的人,在想法不一致的时候能直接提出来进行讨论。再遇到意见相左的时候,我们会分别陈述自己的观点,然后再进行比较,采取双方都同意的方法。
这次的任务有些功能没实现,主要原因我觉得是两个人的能力都不是很强,经常在编码过程卡住然后一起查资料。希望在平常都能再提高一下自己的姿势水平。