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, "請選擇用戶端的語言:\n", "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的效果。在制定編碼規範後都能很好的執行。由于是舍友,平常經常接觸比較熟悉,再加上我的合作夥伴是一個能聽取别人意見的人,在想法不一緻的時候能直接提出來進行讨論。再遇到意見相左的時候,我們會分别陳述自己的觀點,然後再進行比較,采取雙方都同意的方法。
這次的任務有些功能沒實作,主要原因我覺得是兩個人的能力都不是很強,經常在編碼過程卡住然後一起查資料。希望在平常都能再提高一下自己的姿勢水準。