组员
刘德培: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分钟 |
小结感受
因为我们两个的思维方式和编程的习惯都不太相同,所以刚开始结对的时候着实有些不太适应,但是在后续过程中,我们双方秉着互相理解互相包容的原则,开始慢慢找到了一起结对编程的节奏,在这种良好的节奏下我们算是良好地推进了项目的进行。德培的思维方式和我有很大的不同,在一起结对编程的过程中,我从他身上学到一些我之前没有接触过的想法,对我很有帮助。
项目地址
https://gitee.com/DaleAg/Arithmetic.git