小学数学测验(C语言)(还差一个要求!)
完成一个小学低年级学生整数加减法测试的基本功能。功能要求:
(1)面向小学1~2年级学生,随机选择一个整数加减法算式,要求学生解答;
(2)电脑随机出10道题,每题10分,程序结束时,显示学生得分;
(3)确保算式进行50以内的加减法,不允许出现负数;
(4)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束,则输出正确答案;
(5)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(6)总成绩90分以上显示“SMART”,80-90分显示“GOOD”,70-80分显示“OK”,60-70分显示“PASS”,60分以下“TRY AGAIN”;
(7)将每位被测者的姓名,测试日期和时间,测试成绩信息等存放到磁盘文件中,并随时可查。
下面是前六个已完成要求的程序,还差(7)号这个要求。
求求大神救命啊!!!
#include<iostream>
using namespace std;
#include<time.h>
void Pd(int &sum,int a,int b)
{
int x=3;
int y;
int s=0;
while(x--)
{
s++;
cout<<a<<"+"<<b<<"=";
cin>>y;
if(y==a+b)
{
cout<<"计算正确。下一题:";
if(s==1)
sum+=10;
if(s==2)
sum+=7;
if(s==3)
sum+=5;
return;
}
else
{
cout<<"计算错误,请重新输入";
if(s==3)
{
cout<<"下面的等式才是正确的哦";
cout<<a<<"+"<<b<<"="<<a+b<<endl;
}
}
}
}
void Pdl(int &sum,int a,int b)
{
int x=3;
int y;
int s=0;
while(x--)
{
s++;
cout<<a<<"-"<<b<<"=";
cin>>y;
if(y==a-b)
{
cout<<"计算正确。下一题:";
if(s==1)
sum+=10;
if(s==2)
sum+=7;
if(s==3)
sum+=5;
return;
}
else
{
cout<<"计算错误,请重新计算";
if(s==3)
{
cout<<a<<"-"<<b<<"="<<a-b<<endl;
}
}
}
}
int main()
{
int n=10;
int sum=0;
int a,b,c;
int s=1;
srand((int)time(0));
cout<<"本次测试现在开始,一共十道题目。一题十分,满分为一百分。每个题目有三次机会回答,第一次答对得十分,第二次答对得7分,第三次答对得5分。若三次都不对,则0分。";
while(n--)
{
cout<<"第"<<s++<<"题为:";
a=rand()%10+15;
b=rand()%10+15;
c=rand()%10;
//cout<<c<<endl;
if(c%2==0)
{
Pd(sum,a,b);
}
else
while(1)
{
if(a>=b){Pdl(sum,a,b);break;}
else
{
a=rand()%10+15;
b=rand()%10+15;
}
}
cout<<endl;
}
cout<<"您的总成绩为:"<<sum<<endl<<endl;
while(1)
{
if(sum>=90)
{cout<<"SMART";break;}
if(sum>=80&sum<90)
{cout<<"GOOD";break;}
if(sum>=70&sum<80)
{cout<<"OK";break;}
if(sum<60)
{cout<<"TRY AGAIN";break;}
else
{
cout<<"PASS";break;}
}
return 0;
}