结对编程
组员
刘德培:201421144060
郭 达: 201421122120
题目内容
- 实现WEB界面;
- 记录用户的对错总数,程序退出再启动的时候, 能把以前的对错数量保存并在此基础上增量计算;
- 有计时功能,能显示用户开始答题后的消耗时间;
需求分析
GUI
- 简单易操作的界面风格
- 分为开始、答题、结果还有查看答案4个界面
- 在答题前设置题目数量和参数范围
增量记录对错总数
- 每次测试完成时,将对错总数量和保存在本地的总数量相加,并将相加后的值保存
- 将对错总数显示在测试结果面板上
计时功能
- 在用户答题时实时更新已用时间
- 答题完成后显示所用时间
界面语言多样化
- 通过下拉框切换语言
- 切换语言后,界面立刻刷新文字,显示切换后的语言,所有界面都可以即时切换语言
程序设计
代码展示
初始化:
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分钟 |
小结感受
因为我们两个的思维方式和编程的习惯都不太相同,所以刚开始结对的时候着实有些不太适应,但是在后续过程中,我们双方秉着互相理解互相包容的原则,开始慢慢找到了一起结对编程的节奏,在这种良好的节奏下我们算是良好地推进了项目的进行。德培的思维方式和我有很大的不同,在一起结对编程的过程中,我从他身上学到一些我之前没有接触过的想法,对我很有帮助。
项目地址