结对同学:2252813
程序要求:
两个运算符,100 以内的数字,不需要写答案。
需要检查答案是否正确,并且保证答案在 0-100 之间
通过阅读题目要求,我们决定使用c++语言完成编程,需要满足两个功能,首先生成一个包含两个运算符的算式,参与运算的数字在100之内。下一步检查答案是否正确,并且保证答案在0-100之间
结对编程过程
1.首先我们明确问题需求,确定目标
2.然后明确分工,一个人负责实际的编码,而另一个人则审查代码并提供反馈。
3.在编写过程中交替角色避免疲劳,并确保每个人都有机会参与编码和审查。
4.在结对编程过程中,保持频繁的沟通和讨论,以确保互相都明白彼此的想法和决策。
5.最后测试运行,完成代码的编写
程序代码
点击查看代码
#include <iostream>
using namespace std;
#include <cstdlib>
#include <ctime>
#include <string>
class Calculate {
private:
int correctNum;
int wrongNum;
public:
Calculate() {
correctNum = 0;
wrongNum = 0;
}
void CreateOneCalculation() {//生成一道数学题
srand(time(NULL));
int max = 99;
int min = 1;
//生成两个数字
int x = min + rand() % (max - min + 1);
int y = min + rand() % (max - min + 1);
//生成运算符、正确答案
min = 1;
max = 4;
double correctAnswer = 0;
int mathOperator = min + rand() % (max - min + 1);
switch (mathOperator) {
case 1:
//防止答案超过100
if(x+y>100){
x = x / 2;
y = y / 2;
}
cout << x << "+" << y << "=?" << endl;
correctAnswer = x + y;
break;
case 2:
//防止答案出现负数
if (x < y) {
int temp = 0;
temp = x;
x = y;
y = temp;
}
cout << x << "-" << y << "=?" << endl;
correctAnswer = x - y;
break;
case 3:
//第二行防止答案超过100,第一行防止频繁出现x*1
x = x / 2;
y = 100 / x;
cout << x << "*" << y << "=?" << endl;
correctAnswer = x * y;
break;
case 4:
//除法答案只保留两位,无视四舍五入
if (x < y) {
int temp = 0;
temp = x;
x = y;
y = temp;
}
cout << x << "/" << y << "=?" << endl;
double a = (double)(x) / (double)(y);
int b = (int)(a * 100);
correctAnswer = (double)b / 100;
break;
}
//检查答案是否正确
double answer = 0;
cin >> answer;
if (mathOperator != 4) {
if (answer == correctAnswer) {
cout << "答案正确!" << endl;
correctNum++;
}
else {
cout << "答案错误!" << endl;
wrongNum++;
}
}
else {//除法结果判断
string answerString = to_string(answer);
string correctString = to_string(correctAnswer);
if (answerString == correctString) {
cout << "答案正确!" << endl;
correctNum++;
}
else {
cout << "答案错误!" << endl;
wrongNum++;
}
}
}
void CreateThreeHundredCalculation() {//生成300道数学题
for (int i = 0; i < 300; i++) {
system("cls");
cout << "当前正确数:" << correctNum << endl;
cout << "当前错误数:" << wrongNum << endl;
cout << "剩余题目数:" << 300 - i << endl;
cout << endl;
CreateOneCalculation();
system("pause");
}
system("cls");
cout << "正确数:" << correctNum << endl;
cout << "错误数:" << wrongNum << endl;
cout << "所有题目已完成" << endl;
}
};
int main() {
Calculate c;
c.CreateThreeHundredCalculation();
return 0;
}
博客体会
1.结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。
2.结对工作能带来更多的信心,高质量的产出能带来更高的满足感
3.能够互相发现问题解决问题,降低学习成本,一边编程,一边共享知识和经验,有效地在实践中进行学习。