结对编程1-模块化
一、结对成员介绍及coding.net 地址:
(本人)魏修祺 201421122008 coding.net地址:[https://coding.net/u/weixuiqi/p/Pair-programing-one/git];
(成员)吴吉键 201421122007 博客地址:[http://www.cnblogs.com/blogWU/].
演示视频(优酷网):[http://v.youku.com/v_show/id_XMzEwMDU5NDM0MA==.html?spm=a2h3j.8428770.3416059.1].
二、题目描述:
在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI,成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
-
记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
-
有计时功能,能显示用户开始答题后的消耗时间。
-
界面支持中文简体/中文繁体/英语,用户可以选择一种;
三、项目实现:
1、需求分析
结对项目,需求为我完成的功能。
-
计时功能,实时显示用户答题时间
-
记录用户的对错总数
2、程序设计
说明:四则远算主要功能分为,计算、语言选择、计时、记录。其中计算是最核心最重要的部分,但在个人作业1中已经有过详细说明,这里不再细说。语言选择提高三种语言选择,初始默认为简体中文。计时功能,记录用户在开始答题直到答题结束消耗时间。记录主要是对答题结束之后,将对错总数和错题写到文件里。
3、代码展示
//计时功能
public void run() {
while (s) {
try {
this.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//获取当前显示的时间并加1在输出
int n = Integer.parseInt(t.getText());
System.out.println(n++);
t.setText(String.valueOf(n));
}
}
//记录用户的对错总数
String filepath = "history.txt";
File history = new File(filepath);
BufferedWriter out = null;
if (history.exists()) {
try {
@SuppressWarnings("resource")
BufferedReader br = new BufferedReader(new FileReader(history));
String h_right = br.readLine();
String h_err = br.readLine();
int t_right = Integer.parseInt(h_right) + right;
int t_err = Integer.parseInt(h_err) + err;
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(history, false)));
out.write(String.valueOf(t_right));
out.newLine();
out.write(String.valueOf(t_err));
out.newLine();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4、程序运行
运行截图在另一篇博客里结对编程1-模块化
5、小结感受
-
结对编程过程中的分工很明确,在功能分配上没有什么争议,总体过程中是很顺利的。
-
在代码规范方面由于使用的是标准的java代码规范,在整合方面没有什么很大的问题,主要是相互理解对方的代码。
四、运用“汉堡包”的方式,评价结对伙伴:
优点:对开发过程中需要用到的新知识接受能力强
缺点:函数与方法的封装还不是很好,部分class内代码很长
希望他提高的地方:熟悉并很好的封装不同的代码,降低代码的篇幅。
PSP与结对过程
相同部分参考结对编程1-模块化