结对编程初体验

本次结对编程由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()
在里面我们先初始化3个运算数和2个运算符
点击查看代码
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;
先外层判断运算数是否满足大小在0到1000;同时有±和×÷时,随机给±运算增加括号;在输入结果后进行判断,正确则输出回答正确,错误则输出回答错误,在输出结果后停留,再跳转下一题
点击查看代码
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;
	}
最后是主函数,其中srand语句是随机生成种子数以确保随机函数正常运行
点击查看代码
int main()
{
	srand(static_cast<unsigned int>(time(nullptr)));
	int count=0;
	while(count<300)
	{
		cout << "请输入答案,答案保留一位小数"<<endl;
		if (exercise())
		{
            count++;
		}
		system("cls");
	}
	return 0;
}
三、运行结果


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

posted @ 2025-04-12 19:29  祺业  阅读(19)  评论(0)    收藏  举报