week2-结对编程【网页实现四则运算】
题目描述:
不知道大家是否尝试过这样一种开发模式:你有一个伙伴,你们坐在一起,并肩作战,面对着同一台显示器,使用着同一键盘,同一个鼠标,你们一起思考,一起分析,一起编程?这次,就让我们来体验一下结对编程的魅力:
进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:
记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。
有计时功能,能显示用户开始答题后的消耗时间。
界面支持中文简体/中文繁体/英语,用户可以选择一种;
任务分配: 林俊鹏(本人): 1. 页面的设计和编程,后端java程序; 林凯(队友) 1. 页面的设计和编程;
代码展示:
String question;
String answer;
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public static Arithmetic getArithmetic(){
Arithmetic arithmetic = new Arithmetic();
int max=20;
int min=1;
int n;//题目数量
char operation[]={'+','-','*','÷'}; //定义运算符号
int operand[]={1,2,3,4};//1,2为整数和整数运算;3为整数和分数运算;4为分数和分数运算;
Random random = new Random();
int integer1 = random.nextInt(max)%(max-min+1) + min;
int integer2 = random.nextInt(max)%(max-min+1) + min;
int numerator1 = random.nextInt(max)%(max-min+1) + min;
int denominator1 = random.nextInt(max)%(max-min+1) + min;
int numerator2 = random.nextInt(max)%(max-min+1) + min;
int denominator2 = random.nextInt(max)%(max-min+1) + min;
char tempoperation = operation[random.nextInt(4)%(4)];
int tempoperand = operand[random.nextInt(4)%(4)];
String question ="";
String answer = "";
if(tempoperand == 1 || tempoperand == 2){//整数和整数
question = integer1+""+tempoperation+integer2+"=";
answer = oper2(tempoperation,integer1,integer2);
}
if(tempoperand == 3){ //整数和分数
question = integer1+""+ tempoperation + numerator1+"/"+denominator1+"=";
answer = oper1(tempoperation,integer1,numerator1,denominator1);
}
if(tempoperand == 4){ //分数和分数
question = numerator1+"/"+denominator1 + "" + tempoperation + numerator2+"/"+denominator2+"=";
answer = oper3(tempoperation,numerator1,denominator1,numerator2,denominator2);
}
arithmetic.question=question;
arithmetic.answer = answer;
return arithmetic;
}
代码规范
尽量使用eclipse中的Ctrl+Shift+F;
展示PSP
PSP2.1 |
Personal Software Process Stages |
Time (min) |
Time (min) |
Planning |
计划 |
60 |
70 |
Development |
开发 |
50 |
60 |
Analysis |
需求分析 (包括学习新技术) |
10 |
30 |
Coding Standard |
代码规范 |
10 |
20 |
Design |
具体设计 |
10 |
20 |
Coding |
具体编码 |
40 |
80 |
Test |
测试(自我测试,修改代码,提交修改) |
10 |
10 |
Reporting |
报告 |
10 |
20 |
总结:
由于第一次的作业使用了C++ 编程,所以这次的任务花了很多时间在纠结如何做页面上面,C++的窗口太难写。尝试用QTCreator但是还是学不会,所以最后确定写jsp页面。
我先写了java程序后端,然后和队友讨论页面设计问题。起初设计了用户登录和注册功能,由于编程水平受限,最后很多的设想没有实现。尽管程序很简单,但是开发过程中我和我的队友还是遇到了很多困难。
整体上,我们实现功能要求中的两个功能:计时功能和提示用户正确或者错误的功能。我和队友花了很多时间在页面设计和编程语法上面,因为编程的能力不足,所以这一过程让人很痛苦,课余的时间不多,
所以一直下来都让我很有压迫感。但是团队最后还是完成任务,稍微有点欣慰。