C语言程序设计(第4版)苏小红 课后程序参考7.14(续)

C语言程序设计(第4版)苏小红 课后程序参考7.14(续),第1张

C语言程序设计(第4版)苏小红 课后程序参考7.14(续)

在上篇文章中,加入了对话系统,以及让系统随机生成加减乘除四则运算。代码如下:

#include
#include
#include
#include

void Date();//产生随机数函数  ASCLL码:+:43 -:45 *:42  /:47
void Print();//打印提示词函数
void Key();//用户输入答案函数
void Judge();//判断答案是否正确
void CAI_R();//CAI对话系统(正确)
void CAI_F();//CAI对话系统(错误)

int a, b;//随机生成的算数随机数
int c;//控制随机四则运算的随机数
int d;//控制CAI系统随机数
int k1,k2;//用户输入的答案,k2记为用户输入除法运算的余数
int i;//记录用户输入次数
int count = 0;//记录得分
int j;//记录题目个数
int x;//记录做题次数(一次十道题)

int main()
{
	for (;;)
	{
		for (j = 0; j <= 9; j++)
		{
			Date();
			Print();
			Judge();
			printf("n");
			printf("n");
		}
		printf("您的正确率为:%d%% n", count);
		if (count <= 75)
		{
			printf("正确率不足75%%,重新开始n");
			count = 0;
		}
		else
		{
			break;
		}
	}
	return 0;
}

void Date()
{
	srand((unsigned)time(NULL));//设置随机数种子
	a = rand() % 10+1;
	b = rand() % 10+1;
	c = rand() % 4;
	d = rand() % 4;
}

void Print()
{
	printf("请完成10道运算题目(除法运算请分别输入其商和余数):n");
	if (c == 0)
	{
		printf("%d + %d = ?n", a, b);
	}
	if (c == 1)
	{
		printf("%d - %d = ?n", a, b);
	}
	if (c == 2)
	{
		printf("%d × %d = ?n", a, b);
	}
	if (c == 3)
	{
		printf("%d ÷ %d = ?n", a, b);
	}
	printf("请输入题目答案(回车表示输入完成):n");
}

void Key()
{
	if (c == 0 || c == 1 || c == 2)
	{
		scanf_s("%d", &k1);//用户输入的答案
	}
	else
	{
		scanf_s("%d", &k1);//用户输入的答案
		scanf_s("%d", &k2);//记录余数
	}
}

void Judge()
{
		Key();

		//------------------------------判断加法
		if (c == 0)
		{
			if (k1 == a + b)
			{
				printf("回答正确!n");
				printf("n");
				count += 10;
				CAI_R();
				printf("当前分数:%d", count);
			}
			else
			{
				printf("回答错误!n");
				printf("n");
				CAI_F();
				printf("当前分数:%d", count);
			}
		}

		//------------------------------判断减法
		if (c == 1)
		{
			if (k1 == a - b)
			{
				printf("回答正确!n");
				printf("n");
				count += 10;
				CAI_R();
				printf("当前分数:%d", count);
			}
			else
			{
				printf("回答错误!n");
				printf("n");
				CAI_F();
				printf("当前分数:%d", count);
			}
		}

		//------------------------------判断乘法
		if (c == 2)
		{
			if (k1 == a * b)
			{
				printf("回答正确!n");
				printf("n");
				count += 10;
				CAI_R();
				printf("当前分数:%d", count);
			}
			else
			{
				printf("回答错误!n");
				printf("n");
				CAI_F();
				printf("当前分数:%d", count);
			}
		}

		//------------------------------判断除法
		if (c == 3)
		{
			if (k1 == a / b && k2 == a % b )
			{
				printf("回答正确!n");
				printf("n");
				count += 10;
				CAI_R();
				printf("当前分数:%d", count);
			}
			else
			{
				printf("回答错误!n");
				printf("n");
				CAI_F();
				printf("当前分数:%d", count);
			}
		}
}

void CAI_R()
{
	switch (d)
	{
	case 0:
		printf("做的不错!再接再厉。n");
		break;
	case 1:
		printf("很好!继续加油哦。n");
		break;
	case 2:
		printf("Good!n");
		break;
	case 3:
		printf("你很棒哦,坚持就是胜利!");
		break;
	}
}

void CAI_F()
{
	switch (d)
	{
	case 0:
		printf("别灰心,慢慢来。n");
		break;
	case 1:
		printf("下次一定可以的!n");
		break;
	case 2:
		printf("真遗憾,但是你还会有机会的。n");
		break;
	case 3:
		printf("别急,你一定行!n");
		break;
	}
}

代码运行:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5702601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存