栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

课程设计——四则运算(利用随机数产生随机题目)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

课程设计——四则运算(利用随机数产生随机题目)

这个程序是机缘巧合之下,出于某个原因弄的,容错不是很完善,但是功能完整,需者自取 

题目大致要求:

(1)实现一个加减乘除运算的小型系统,进行整数的加、减、乘、除运算;(2)在每- -种运算下,由系统随机产生两个数( 数值大小建议为两位数以内)参加运算,当用户根据系统提供的公式进行计算,并输入计算结果后,系统判断结果的对错。如果结果正确,则显示“Very Good”, 否则,显示“Wrong!!!”。(3)每次选择一种运算后, 系统随机产生5道题目,当用户运算完毕后,系统给出正确率。如用户5题答对了3题,则显示正确率为60%。( 每道题目可以考虑最多给2次答题机会)。运算完毕后,系统将返回主菜单,供用户再次选择。

#include 
#include
#include
#include
int Add_Operation(int x, int y);
int Substract_Operation(int x, int y);
int Multiply_Operation(int x, int y);
int Divide_Operation(int x, int y);
void SayGoodbye();
void SayHi();
int main()
{
	SayHi();
	bool flag = 0;//用来判断是否吃掉练习后输入的回车
	while (1) {
		printf("n请选择一种运算作为练习(+,-,*,/),输入’#‘停止训练: ");
		char operational_rule;
		if (flag == 1) {
			char rubbish = getchar();
		}
		flag = 1;
		while (1) {
			scanf("%c", &operational_rule);
			char rubbish = getchar(); //吃掉输入的回车
			if (operational_rule == '#') {

				return 0;
			}
			if (operational_rule != '+' && operational_rule != '-' &&
				operational_rule != '*' && operational_rule != '/') {
				printf("您输入的不是基本运算符,请重新输入:");
			}
			else break;
		}
		int correct_times = 0;
		for (int i = 0; i < 5; i++) {
			srand((unsigned int)time(NULL));
			int x = rand() % 100;
			int y = rand() % 100;
			if (operational_rule == '+') {
				correct_times += Add_Operation(x, y);
			}
			else if (operational_rule == '-') {
				correct_times += Substract_Operation(x, y);
			}
			else if (operational_rule == '*') {
				correct_times += Multiply_Operation(x, y);
			}
			else {
				correct_times += Divide_Operation(x, y);
			}
		}
		int accuracy = correct_times * 100 / 5;
		printf("恭喜您完成训练,您本次的正确率为: %d%%n", accuracy);
	}
	SayGoodbye();
	return 0;
}
int Add_Operation(int x, int y) {
	printf("n请计算%d + %dn", x, y);
	for (int i = 2; i >= 1; i--) {
		printf("n您还有%d次作答机会!nn", i);
		printf("%d + %d = ", x, y);
		int user_ans;
		scanf("%d", &user_ans);
		if (user_ans == x + y) {
			printf("Goodn");
			return 1;
		}
		else {
			printf("Wrongn");
			continue;
		}
	}
	return 0;
}
int Substract_Operation(int x, int y) {
	printf("n请计算%d - %dn", x, y);
	for (int i = 2; i >= 1; i--) {
		printf("n您还有%d次作答机会!nn", i);
		printf("%d - %d = ", x, y);
		int user_ans;
		scanf("%d", &user_ans);
		if (user_ans == x - y) {
			printf("Goodn");
			return 1;
		}
		else {
			printf("Wrongn");
			continue;
		}
	}
	return 0;
}
int Multiply_Operation(int x, int y) {
	printf("n请计算%d * %dn", x, y);
	for (int i = 2; i >= 1; i--) {
		printf("n您还有%d次作答机会!nn", i);
		printf("%d * %d = ", x, y);
		int user_ans;
		scanf("%d", &user_ans);
		if (user_ans == x * y) {
			printf("Goodn");
			return 1;
		}
		else {
			printf("Wrongn");
			continue;
		}
	}
	return 0;
}
int Divide_Operation(int x, int y) {
	
	printf("n请计算%d / %d, 并四舍五入保留小数点后3位n", x, y);
	for (int i = 2; i >= 1; i--) {
		printf("n您还有%d次作答机会!nn", i);
		printf("%d / %d = ", x, y);
		double user_ans;
		scanf("%lf", &user_ans);
		
		user_ans = (int)(user_ans * 1000);
		double ans = (double)x / y;
		ans = (int)(ans * 1000 + 0.5);
		if (user_ans == ans) {
			printf("Goodn");
			return 1;
		}
		else {
			printf("Wrongn");
			continue;
		}
	}
	return 0;
}
void SayGoodbye() {
	system("color 0F");
	printf("nnn                  33[46m*******************感谢使用!*******************33[0mn");
	Sleep(100);
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(200);
	printf("             33[45m制作人————————XXX33[0mn");
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(200);
	printf("             33[44m取材于————————《课本》33[0mn");
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(200);
	printf("             33[41m取材于————————《c语言从入门到入土》33[0mn");
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(200);
	printf("             33[42m取材于————————《算法与程序设计寄础》33[0mn");
	Sleep(100);
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(100);
	printf("n");
	Sleep(200);
	printf("                  *******************下次再见!*******************n");
}
void SayHi() {
	//颜色不喜欢可以自己调
	system("color E1");
	printf("                                            * 四则运算系统 * n");
	printf("			  o-------------------------$--------------------------on");
	printf("			  | 该系统实现了一个简单的加减乘除运算出题功能,系统会 |n");
	printf("		      | 根据您选择的运算随机产生五道题目,您可以根据相关要 |n");
	printf("			  | 求进行运算练习。                                   |n");
	printf("			  |                                                    |n");
	printf("	          |                                                    |n");
	printf("			  | 每次练习给予您两次作答机会,若第一次作答错误,可以 |n");
	printf("			  | 重新作答。在练习后会给您提供您这次练习的正确率供您 |n");
	printf("			  | 参考。                                             |n");
	printf("			  |                                                    |n");
	printf("			  |                                                    |n");
	printf("			  | 祝您使用愉快~                                      |n");
	printf("			  |                                                    |n");
	printf("			  0-------------------------$--------------------------0n");

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/883783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号