精选问答
c语言程序设计的问题,有大神帮个忙吗、小学生测验系统面向小学1~2 年级学生,随机选择两个整数和加减法形成算式要求学生解答。程序必须实现的功能:(1)电脑随机出10 道题,每题10 分,程序结束时显示学生得分;(2)确保算式没有超出1~2 年级的水平,只允许进行50 以内的加减法,不允许两数之和或之差超出0~50 的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10 分,第二次输

2019-04-13

c语言程序设计的问题,有大神帮个忙吗
、小学生测验系统
面向小学1~2 年级学生,随机选择两个整数和加减法形成算式要求学生解答。
程序必须实现的功能:
(1)电脑随机出10 道题,每题10 分,程序结束时显示学生得分;
(2)确保算式没有超出1~2 年级的水平,只允许进行50 以内的加减法,不允许两
数之和或之差超出0~50 的范围,负数更是不允许的;
(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,
如果三次机会结束则输出正确答案;
(4)对于每道题,学生第一次输入正确答案得10 分,第二次输入正确答案得7 分,
第三次输入正确答案得5 分,否则不得分;
(5)总成绩90 以上显示“SMART”,80-90 显示“GOOD”,70-80 显示“OK”,60-70
显示“PASS”,60 以下“TRY AGAIN”
(6)将“所出试题、正确答案、学生答案、得分”等练习情况记录在文件中,提供
“家长查看”功能,将练习情况显示出来。
优质解答
第六点没写 不过也简单 自己写吧 有事情就不写了
#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 Pd1(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;
}
}
}
}
int main()
{
int n=10;
int sum=0;
int a,b,c;
int s=1;
srand((int)time(0));
cout<<"本次考试现在开始,会产生十个加减法的题目哦.一题10分 满分100 每个题目有三次机会第一次答对10分 第二次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){Pd1(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;
}
第六点没写 不过也简单 自己写吧 有事情就不写了
#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 Pd1(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;
}
}
}
}
int main()
{
int n=10;
int sum=0;
int a,b,c;
int s=1;
srand((int)time(0));
cout<<"本次考试现在开始,会产生十个加减法的题目哦.一题10分 满分100 每个题目有三次机会第一次答对10分 第二次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){Pd1(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;
}
相关问答