码迷,mamicode.com
首页 > 其他好文 > 详细

结对编程

时间:2018-01-15 22:30:34      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:四则运算   功能需求   data-   option   int   任务   nowrap   习惯   不同   

组员


 

刘德培:201421144060

郭   达: 201421122120

题目内容


 

不知道大家是否尝试过这样一种开发模式:你有一个伙伴,你们坐在一起,并肩作战,面对着同一台显示器,使用着同一键盘,同一个鼠标,你们一起思考,一起分析,一起编程?这次,就让我们来体验一下结对编程的魅力:
 
我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI,成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
  1. 实现WEB界面;
  2. 记录用户的对错总数,程序退出再启动的时候, 能把以前的对错数量保存并在此基础上增量计算;
  3. 有计时功能,能显示用户开始答题后的消耗时间;
  4. 界面支持中文简体/中文繁体/英语用户可以选择一种

 

需求分析


 

GUI

  1. 简单易操作的界面风格
  2. 分为开始、答题、结果还有查看答案4个界面
  3. 在答题前设置题目数量和参数范围

增量记录对错总数

  1. 每次测试完成时,将对错总数量和保存在本地的总数量相加,并将相加后的值保存
  2. 将对错总数显示在测试结果面板上

计时功能

  1. 在用户答题时实时更新已用时间
  2. 答题完成后显示所用时间

界面语言多样化

  1. 通过下拉框切换语言
  2. 切换语言后,界面立刻刷新文字,显示切换后的语言,所有界面都可以即时切换语言

程序设计


 技术分享图片

 

代码展示


 

初始化:

public OverAllFrame(String s)
    {
        super(s);
        userName = JOptionPane.showInputDialog("请输入用户名","");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.initialize();
        setHeadPanel();
        this.setLocation(400, 100);
        this.setLayout(new BorderLayout());
        this.add(headPanel,BorderLayout.NORTH);
        this.add(st,BorderLayout.CENTER);
        this.setSize(500,400);
        this.setVisible(true);
    }

  

计时器线程:

class TimeThread extends Thread //计时器线程
    {
        int min;
        int sec;
        int millis;
        long oldTime;
        long timeUsed;
        long timeSeted;
        JLabel display;
        boolean stop = false;
        public TimeThread(long timeSeted,JLabel display) 
        {
            oldTime = System.currentTimeMillis();
            this.display = display;
            this.timeSeted = timeSeted;
            // TODO Auto-generated constructor stub
        }
        @Override
        public void run() {
            // TODO Auto-generated method stub
            super.run();

            do
            {
                timeUsed = System.currentTimeMillis() - oldTime;
                min = (int)(timeUsed/60000L);
                sec = (int)((timeUsed%60000L)/1000L);
                millis = (int)((timeUsed%60000L)%1000L);
                try {
                    sleep(11);
                } catch (InterruptedException e) {
                    // TODO: handle exception
                }
                display.setText("已用时:" + min+ ":" + sec +":" + millis );
                display.setVisible(true);

            }while(timeUsed <= timeSeted && !stop);
            if(!stop)//如果不是手动停止的就运行complete
                rp.complete();
        }
        public void setStop()
        {
            stop = true;
        }
    }

  

程序运行


 

 

 技术分享图片

技术分享图片

 

 技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

结对过程


 

我们讨论了如何记录用户的对错总数和加入计时功能。

 

PSP


 

PSP2.1

Personal Software Process Stages

Time Senior Student

Time

Planning

计划

6小时

6小时

· Estimate

估计这个任务需要多少时间

6小时

6小时

Development

开发

4小时

4小时

· Analysis

需求分析 (包括学习新技术)

30分钟

20分钟

· Design Spec

生成设计文档

30分钟

15分钟

· Design Review

设计复审

10分钟

0分钟

· Coding Standard

代码规范

10分钟

5分钟

· Design

具体设计

20分钟

15分钟

· Coding

具体编码

2天

1天

· Code Review

代码复审

10分钟

10分钟

· Test

测试(自我测试,修改代码,提交修改)

20分钟

20分钟

Reporting

报告

30分钟

30分钟

·

测试报告

2小时

2小时

·

计算工作量

10分钟

10分钟

·

并提出过程改进计划

30分钟

30分钟

 

小结感受


 

因为我们两个的思维方式和编程的习惯都不太相同,所以刚开始结对的时候着实有些不太适应,但是在后续过程中,我们双方秉着互相理解互相包容的原则,开始慢慢找到了一起结对编程的节奏,在这种良好的节奏下我们算是良好地推进了项目的进行。德培的思维方式和我有很大的不同,在一起结对编程的过程中,我从他身上学到一些我之前没有接触过的想法,对我很有帮助。

 

项目地址


 

 https://gitee.com/DaleAg/Arithmetic.git

 

 

 

结对编程

标签:四则运算   功能需求   data-   option   int   任务   nowrap   习惯   不同   

原文地址:https://www.cnblogs.com/daleag/p/8284795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!