博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结对编程
阅读量:6655 次
发布时间:2019-06-25

本文共 3047 字,大约阅读时间需要 10 分钟。

结对编程

组员


 

刘德培:201421144060

郭   达: 201421122120

题目内容


 

不知道大家是否尝试过这样一种开发模式:你有一个伙伴,你们坐在一起,并肩作战,面对着同一台显示器,使用着同一键盘,同一个鼠标,你们一起思考,一起分析,一起编程?这次,就让我们来体验一下结对编程的魅力:
 
我们在中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成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://www.cnblogs.com/daleag/p/8274236.html

你可能感兴趣的文章
波士顿动力公司改造大狗机器人,摇身一变“驯鹿”拉雪橇!
查看>>
linux ssh 免密登
查看>>
直播自拍杆的选择/稳定的智能直播自拍杆
查看>>
上海国资大数据应用及治理课题—人工智能专场活动成功举办
查看>>
英国科学家研制出世界最小发动机,纳米机器人还远吗?
查看>>
Java 10 牵手 Docker,新特性完美解决服务器资源分配问题
查看>>
Uvaoj 11624 - Fire!
查看>>
垃圾收集算法一览
查看>>
Windows下,关于Oracle新建数据库之后,无法通过 / as sysdba 连接到orcl 问题
查看>>
【Jenkins】自定义Jenkins theme
查看>>
win32版unrealircd的编译
查看>>
在ABAP里实现条件断点的三种方式
查看>>
JAVA-1004. 成绩排名 (20)
查看>>
Serv-U服务器遇到问题-解决
查看>>
S/4HANA for Customer Management里的搜索分页处理
查看>>
Hadoop常见错误2
查看>>
RHEL 网卡的基本配置
查看>>
spring-boot整合Dubbo分布式架构案例
查看>>
DS4300 更换控制器电池 (一)
查看>>
elasticsearch 自定义打分
查看>>