结对编程初体验
本次结对编程由2311416与2352913共同进行,实现一个简单四则运算
一、算法设计思路
小学老师要每周给同学出300道四则运算练习题。两个基本条件:两个运算符,100 以内的数字,不需要写答案。需要检查答案是否正确,并且保证答案在 0..1000 之间。在此基础上经过思考,对于运算有一些基本限制,如:除数不能为0,“+”“-”和“×”“÷”同时出现时的优先级判别。为了实现尽可能多的结果,我们将参与运算的数字改为小数。所以,结果很容易出现无限小数,因此,我们将结果保留1位。
二、程序代码
首先,我们设计了一个函数用于实现运算符
点击查看代码
double cal(double a, double b, char c)
{
switch (c)
{
case'+' :
return a + b;
case '-':
return a - b;
case'*':
return a * b;
case'/':
if (b != 0)
return a / b;
else
return 0;
default:
return 0;
}
}
点击查看代码
char operater()
{
char op[] = { '+','-','*','/' };
return op[rand() % 4];
}
点击查看代码
bool exercise()
点击查看代码
double a1 = rand() % 101 + 0.1 * (rand() % 10);
double a2 ;
double a3 ;
int m = rand() % 2;
double answer1, answer2;
char op1, op2;
op1 = operater();
op2 = operater();
do {
a2 = rand() % 101 + 0.1 * (rand() % 10);
} while (op1 == '/' && a2 == 0.0);
do {
a3 = rand() % 101 + 0.1 * (rand() % 10);
} while (op2 == '/' && a3 == 0.0);
answer1 = cal(a1, a2, op1);
answer2 = cal(answer1, a3, op2);
double answer;
点击查看代码
if (answer2 > 0 && answer2 < 1000)
{
if ((op1 == '+' || op1 == '-') && (op2 == '*' || op2 == '/'))
if (m)
cout << '(' << a1 << ' ' << op1 << ' ' << a2 << ')' << ' ' << op2 << ' ' << a3 << '=' << ' ';
else
cout << a1 << ' ' << op1 << ' ' << a2 << ' ' << op2 << ' ' << a3 << '=' << ' ';
else
cout << a1 << ' ' << op1 << ' ' << a2 << ' ' << op2 << ' ' << a3 << '=' << ' ';
answer2 = floor(answer2 * 10) / 10;
cin >> answer;
if (answer == answer2)
{
cout << "回答正确";
Sleep(2000);
return true;
}
else
{
cout << "回答错误";
Sleep(2000);
return false;
}
}
else
return false;
}
点击查看代码
int main()
{
srand(static_cast<unsigned int>(time(nullptr)));
int count=0;
while(count<300)
{
cout << "请输入答案,答案保留一位小数"<<endl;
if (exercise())
{
count++;
}
system("cls");
}
return 0;
}



四、结对编程作业体会
结对编程有很多好处。首先,它可以提高代码质量。由于两个人共同工作,代码会经过更多的审查和讨论,从而减少错误和缺陷。其次,结对编程可以促进知识的传递和分享。两个程序员在一起工作时,可以互相学习对方的技能和经验,从而提高整个团队的水平。此外,结对编程还可以提高工作效率。两个人共同解决问题,可以更快地找到解决方案,避免了单独工作时可能遇到的瓶颈。
浙公网安备 33010602011771号