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