1、結對成員及coding.net地址html
張慧敏(201421122032) coding.net地址:https://coding.net/u/Missyby/p/program1/git/tree/master/git
蘇曉薇(201421031033) coding.net地址:https://git.coding.net/Recos/myprogram.git編程
視頻演示:http://v.youku.com/v_show/id_XMzEwMjkwMDA0NA==.html?spm=a2h3j.8428770.3416059.1模塊化
2、項目開發學習
一、需求分析測試
記錄用戶的對錯總數,程序退出再啓動的時候,能把之前的對錯數量保存並在此基礎上增量計算。編碼
有計時功能,能顯示用戶開始答題後的消耗時間。spa
界面支持中文簡體/中文繁體/英語,用戶能夠選擇一種;.net
二、程序設計設計
三、代碼展現:展現每一個功能的核心代碼。
我主要實現圖形界面,增長計時功能,實現界面支持中文簡體/中文繁體/英語,
圖形界面的設計主要用到jlabel,jpanel,jbutton等控件完成,爲方便設置位置,我設置爲absolute layout。
計時器的實現,是先預約義Hours,Minutes,Seconds=0,每隔一秒加1,並setText,最後提交的時候,記錄當前時間,用時可用時間差得到。
界面的語言切換,是根據用戶對radio的isselect保存choose值,從而修改控件的內容
1.語言選擇
button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(chinese1.isSelected()){ new showview(1).show(); }else if(english.isSelected()){ new showview(2).show(); }else if(chinese2.isSelected()){ new showview(3).show(); }else JOptionPane.showMessageDialog(null, "請選擇一種語言"); //中文英文監聽 dispose(); } });
if(choose==1){ setTitle("四則運算生成器"); lblNewLabel.setText("開始答題"); label.setText("計時開始:"); commitBtn.setText("提交"); }else if(choose==2){ setTitle("Arithmetic generator"); lblNewLabel.setText("Arithmetic generator"); label.setText("time starts:"); commitBtn.setText("commit"); }else if(choose==3){ setTitle("四則運算生成器"); lblNewLabel.setText("開始答題"); label.setText("計時開始:"); commitBtn.setText("提交"); }else{ JOptionPane.showMessageDialog(null, "error"); }
2.計時器
contentPane.add(timeText); 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"); timeText.setText(formatter.format(now)); } }); timer.start(); timeText.setText(timeText.getText());
四、程序運行:程序運行及每一個功能的使用截圖。
1.選擇語言,若是不選擇,將會彈出提示框。
2.輸入題數,若是出錯彈出提示框
3.開始button添加計時監聽
4.答題結束,返回結果
5.查看記錄
六、文件的存放
3、總結
一、小結感覺:結對編程真的可以帶來1+1>2的效果嗎?經過此次結對編程,請談談你的感覺和體會。
此次的結對編程做業是在我的做業1 的基礎上增量開發,增長3個功能,我主要實現圖形界面,增長計時功能,實現界面支持中文簡體/中文繁體/英語,過程也學習到了不少,好比我在GUI圖形界面編程過程當中添加對用戶動做的監聽上有比較深入的學習,隊友負責記錄用戶對錯,實現對文件的操做,程序退出再啓動的時候,能把之前的對錯數量保存並在此基礎上增量計算。
在配合默契的狀況下,結對編程是能夠帶來1+1>2的效果的,不一樣功能實現和分工合做下能夠更快學習新的技巧,增長編程的經驗。
經過此次結對編程,認識到合做開發的好處,不只加快任務的實現,還能夠促進良好的編程習慣的養成。
二、運用「漢堡包」的方式,評價你的合做夥伴,指出優勢、缺點,但願ta提升的地方
優勢:可以在模塊化設計下獨立完成並實現功能模塊,遇到問題能認真鑽研並解決。
缺點:因爲兩人的編程習慣不一致,經常在閱讀對方的代碼時花費較多的時間。
但願ta提升的地方:但願能不斷積累更多的項目開發經驗,同時也要養成良好的編程習慣,這樣能夠加快項目的整合。
三、這次結對做業的PSP,PSP 表格中請填寫花費的時間 (單位: 分鐘)
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 計劃 | 30 | 20 |
· Estimate | 估計這個任務須要多少時間 | 20 | 30 |
Development | 開發 | 500 | 700 |
· Analysis | 需求分析 (包括學習新技術) | 30 | 20 |
· Design Spec | 生成設計文檔 | 30 | 20 |
· Design Review | 設計複審 | 20 | 20 |
· Coding Standard | 代碼規範 | 20 | 20 |
· Design | 具體設計 | 50 | 70 |
· Coding | 具體編碼 | 100 | 150 |
· Code Review | 代碼複審 | 30 | 20 |
· Test | 測試(自我測試,修改代碼,提交修改) | 30 | 20 |
Reporting | 報告 | 30 | 40 |
· | 測試報告 | 20 | 20 |
· | 計算工做量 | 10 | 20 |
· | 並提出過程改進計劃 | 10 | 10 |