问题描述:做一个小学生考试系统,功能如下。
(1) 该程序应包含加法,减法,乘法,除法以及四种运算混合运算
(2) 小学生用户答题,给出每道题的答案;
(3) 对小学生的答题进行评判;
(4) 计算小学生的答题正确率
(5) 该程序应使用多文件组织
文件名称:examination_system_for_primary_school_students
作者:何知令
发表时间:2017年1月5日
输入:详细请参考程序流程
输出:详细请参考程序流程
/*
问题描述:做一个小学生考试系统,功能如下。
(1) 该程序应包含加法,减法,乘法,除法以及四种运算混合运算
(2) 小学生用户答题,给出每道题的答案;
(3) 对小学生的答题进行评判;
(4) 计算小学生的答题正确率
(5) 该程序应使用多文件组织
文件名称:examination_system_for_primary_school_students
作者:何知令
发表时间:2017年1月5日
输入:详细请参考程序流程
输出:详细请参考程序流程
*/
#include
#include
#include "head.h"
int main()
{
char op;
while(1)
{
printf("*********************************************************\n");
printf("请输入想做的题:\n");
printf("加法请输入: + \n");
printf("减法请输入: — \n");
printf("乘法请输入: * \n");
printf("除法请输入: / \n");
printf("混合式训练请输入: r \n");
printf("退出请输入:0 \n");
fflush(stdin);
scanf("%c",&op);
if(op=='+')
sum();
else if(op=='-')
sub();
else if(op=='*')
mul();
else if(op=='/')
divi();
else if(op=='r')
random();
else if(op=='0')
break;
}
return 0;
}
#ifndef HEAD_H_INCLUDED
#define HEAD_H_INCLUDED
void sum();
void sub();
void mul();
void divi();
void random();
int n;//题数
int i;//用作循环计数
int count;//用作正确题数计数
int a,b;//计算数
int result;//计算结果
double accurary;//正确率
#endif // HEAD_H_INCLUDED
#include
#include
#include
#include "head.h"
/*************************************************************
功能描述:功能中的加法函数
输入参数:n-题数
result-答题结果
返 回 值:无……
其他说明:无
*************************************************************/
void sum()
{
int sum;
count=0;
printf("*********************************************************\n");
printf("欢迎来到加法界面\n");
printf("请输入题数\n");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
srand(time(0));
a=rand()%99+1;
b=rand()%99+1;
sum=a+b;
if(sum<=100)
{
printf("第%d题\n",i);
printf("a=%d \n",a);
printf("b=%d \n",b);
printf("a+b=?\n");
scanf("%d",&result);
printf("正确答案:%d\n",sum);
if(result==sum)
count++;
}
else
i--;//若不是符合sum<=100的和,重随机
}
accurary=(double)count/(double)n;
printf("共%d题,做对%d道题,正确率为%.2f\n",n,count,accurary);
if(accurary>0.8)
printf("Good,keep it\n");
else if(accurary>0.6)
printf("come on,you can do better\n");
else
printf("you should study harder\n");
}
#include
#include
#include
#include "head.h"
/*************************************************************
功能描述:功能中的除法函数
输入参数:n-题数
result-答题结果
返 回 值:无……
其他说明:无
*************************************************************/
void sub()
{
int sub,t;
count=0;
printf("*********************************************************\n");
printf("欢迎来到减法界面\n");
printf("请输入题数\n");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
srand(time(0));
a=rand()%99+1;
b=rand()%99+1;
if(a0.8)
printf("Good,keep it\n");
else if(accurary>0.6)
printf("come on,you can do better\n");
else
printf("you should study harder\n");
}
#include
#include
#include
#include "head.h"
/*************************************************************
功能描述:功能中的乘法函数
输入参数:n-题数
result-答题结果
返 回 值:无……
其他说明:无
*************************************************************/
void mul()
{
int mul;
result=0;
printf("*********************************************************\n");
printf("欢迎来到乘法界面\n");
printf("请输入题数\n");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
srand(time(0));
a=rand()%9+1;
b=rand()%9+1;
mul=a*b;
if(mul<=100)
{
printf("第%d题\n",i);
printf("a=%d \n",a);
printf("b=%d \n",b);
printf("a*b=?\n");
scanf("%d",&result);
printf("正确答案:%d\n",mul);
if(result==mul)
count++;
}
else
i--;
}
accurary=(double)count/(double)n;
printf("共%d题,做对%d道题,正确率为%.2f\n",n,count,accurary);
if(accurary>0.8)
printf("Good,keep it\n");
else if(accurary>0.6)
printf("come on,you can do better\n");
else
printf("you should study harder\n");
}
#include
#include
#include
#include "head.h"
/*************************************************************
功能描述:功能中的除法函数
输入参数:n-题数
result-答题结果
返 回 值:无……
其他说明:无
*************************************************************/
void divi()
{
int divi;
result=0;
printf("*********************************************************\n");
printf("欢迎来到除法界面\n");
printf("请输入题数\n");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
srand(time(0));
a=rand()%99+1;
b=rand()%9+1;
divi=a/b;
if(a%b==0)
{
printf("第%d题\n",i);
printf("a=%d \n",a);
printf("b=%d \n",b);
printf("a/b=?\n");
scanf("%d",&result);
printf("正确答案:%d\n",divi);
if(result==divi)
count++;
}
else
i--;
}
accurary=(double)count/(double)n;
printf("共%d题,做对%d道题,正确率为%.2f\n",n,count,accurary);
if(accurary>0.8)
printf("Good,keep it\n");
else if(accurary>0.6)
printf("come on,you can do better\n");
else
printf("you should study harder\n");
}
#include
#include
#include
#include "head.h"
/*************************************************************
功能描述:功能中的混合运算函数
输入参数:n-题数
result-答题结果
返 回 值:无……
其他说明:无
*************************************************************/
void random()
{
int k;
int sum,sub,mul,divi;
int t;
count=0;
printf("*********************************************************\n");
printf("欢迎来到随机出题界面\n");
printf("请输入题数\n");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
srand(time(0));
k=rand()%4;
if(k==0)
{
srand(time(0));
a=rand()%99+1;
b=rand()%99+1;
sum=a+b;
if(sum<=100)
{
printf("第%d题\n",i);
printf("a=%d \n",a);
printf("b=%d #include \n",b);
printf("a+b=?\n");
scanf("%d",&result);
printf("正确答案:%d\n",sum);
if(result==sum)
count++;
}
}
else if(k==1)
{
srand(time(0));
a=rand()%99+1;
b=rand()%99+1;
if(a0.8)
printf("Good,keep it\n");
else if(accurary>0.6)
printf("come on,you can do better\n");
else
printf("you should study harder\n");
}
知识点总结:函数调用
学习心得:累死哥了