结对编程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

 

相关文章
相关标签/搜索