本人大一,这周C语言有个作业就试着做了一下:
开发一个小学生计算机辅助教学系统。使用随机书产生函数产生1~10之间的随机数作为操作数,随机产生一道四则运算题,配合使用switch语句和print()函数调用,来为学生输入的正确或者错误的答案输出不同的评价。若10道题做完之后正确率低于75%,则重新做10道题,直到回答正确率高于75%时才退出程序。要求用模块化程序设计方法来编程。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int Random_number();//随机数函数声明
char Random_op();//随机运算符号函数声明
int Random_operation(int a, char opchar, int b);//随即四则运算函数声明
void Random_Wrong();//随机错误提示函数声明
void Random_Right();//随机正确提示函数声明
int main()
{
//a,b为随机的两个操作数,
//x为用户输入数
//i用作控制做的次数
//get为回答正确的次数
int a, b, x, i,get=0;
char opchar; //opchar为运算符号
srand(time(NULL));//time(NULL)的返回值作为产生随机数的种子
while (get<8)//判断正确率是否大于75%
{
get=0;
for (i = 1; i < 11; i++)
{
//调用随机数生成函数给a,b赋值
a = Random_number();
b = Random_number();
opchar = Random_op(); //调用运算符号函数赋值给opchar
printf("第%d题:%d%c%d=?\n", i, a, opchar, b);
scanf("%d", &x);//将用户输入的值赋值给x
//调用四则运算函数计算a*b的值并判断是否等于x
if (x != Random_operation(a, opchar, b))
Wrong_Tips();//调用错误提示函数输出错误提示
else
{
get++;
Right_Tips();//调用正确提示函数输出正确提示
}
}
if (get < 8)//如果正确率低于75%则打印出提示
{
printf("Your Correct rate is lower than 75%%!\n");
printf("Please trired again!\n");
}
}
printf("总分:%d分\n", get * 10);
printf("正确率:%d%%", get * 10);
return 0;
}
/* 随机数生成函数 (1-10)*/
int Random_number()
{
return rand() % 10 + 1;
}
/* 随机运算符号函数 */
char Random_op()
{
int op;
op = rand() % 4 + 1;
switch (op)
{
case 1:
return '+';
case 2:
return '-';
case 3:
return '*';
case 4:
return '/';
}
return 0;
}
/* 随机四则运算函数 */
int Random_operation(int a, char opchar, int b)
{
switch (opchar)
{
case '+':
return a + b;
case '-':
return a - b;
case '*':
return a * b;
case '/':
return a / b;
}
return 0;
}
/* 随机错误提示函数 */
void Wrong_Tips()
{
int n;
n=rand()%4+1;
switch(n)
{
case 1:
printf("No,Please try again.\n");
break;
case 2:
printf("Wrong.Try once more\n");
break;
case 3:
printf("Don't give up!\n");
break;
case 4:
printf("Not correct keep trying.\n");
break;
}
}
/* 随机正确提示函数 */
void Right_Tips()
{
int n;
n=rand()%4+1;
switch(n)
{
case 1:
printf("Very Good!\n");
break;
case 2:
printf("Excellent!\n");
break;
case 3:
printf("Nice Work!\n");
break;
case 4:
printf("Keep up the good work!\n");
break;
}
}
如有不对的地方欢迎指出