zoukankan      html  css  js  c++  java
  • 结对编程

    结对编程

    组员


    刘德培: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

  • 相关阅读:
    5.15、tomcat下部署JPress
    27、Tomcat服务的安装与配置
    11、gitlab和Jenkins整合(2)
    11、gitlab和Jenkins整合(1)
    K-medodis聚类算法MATLAB
    K-modes聚类算法MATLAB
    K-means聚类算法MATLAB
    Andrew Ng机器学习总结(自用)
    Andrew Ng机器学习编程作业:Anomaly Detection and Recommender Systems
    Andrew Ng机器学习编程作业:K-means Clustering and Principal Component Analysis
  • 原文地址:https://www.cnblogs.com/daleag/p/8274236.html
Copyright © 2011-2022 走看看