結對編程1—模塊化

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

 

相關文章
相關標籤/搜索