实现以下要求:
1.随机出现算术运算,测试人员回答系统随机出现的题目。
2. 题目的数量可以在系统里进行配置,哪种算法也可以配置(±*/)四种;
3. 操作数的范围也可以配置;
4. 需要统计总用时时间;
5. 限制在一定时间内完成,时间限制可以配置;
6. 最后,完成测试后,可以提交测试,系统给出总成绩和测试时间,每道题的用时时间;
效果为
代码为
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <time.h>
using namespace std;
clock_t start,end;
class Person{
public :
unsigned int Number;
unsigned int Operator;
unsigned int Size;
unsigned int score;
double time;
public:void set(unsigned int,unsigned int,unsigned int);
void display();
void get();
};
void Person::get(){cout<<"输入题目数量(小于20):"<<endl;
cin>>Number;
cout<<"选择运算类型:1为+,2为-,3为*,4为/"<<endl;
cin>>Operator;
cout<<"选择运算数字位数(最多3位数)"<<endl;
cin>>Size;
cout<<"输入时间(不限时请输0):"<<endl;
cin>>time;
score=0;}
void Person::display(){
double num1,num2,num3,num4;
if(Operator==1){
for(unsigned int i=0;i<Number;i++)
{ clock_t start1=clock();
if(Size==1){num1=rand()%10; num2=rand()%10; } // 产 生 一 位 随 机 数,num1,num2
if(Size==2){num1=10+rand()%90; // 产 生 两 位 随 机 数 num1,num2
num2=10+rand()%90;}
if(Size==3){num1=100+rand()%900; // 产 生 三 位 随 机 数 num1,num2
num2=100+rand()%900;}
num3=num1+num2;
cout<<num1<<"+"<<num2<<"=";
cin>>num4;
if(num3==num4)score+=1;
clock_t end1=clock();
cout<<"本题用时(s):"<<(double)(end1-start1)/CLOCKS_PER_SEC<<endl;
}}
//+++++++
if(Operator==2){
for(unsigned int i=0;i<Number;i++)
{ clock_t start1=clock();
if(Size==1){num1=rand()%10; num2=rand()%10; } // 产 生 一 位 随 机 数,num1,num2
if(Size==2){num1=10+rand()%90; // 产 生 两 位 随 机 数 num1,num2
num2=10+rand()%90;}
if(Size==3){num1=100+rand()%900; // 产 生 三 位 随 机 数 num1,num2
num2=100+rand()%900;}
num3=num1-num2;
cout<<num1<<"-"<<num2<<"=";
cin>>num4;
if(num3==num4)score+=1;
clock_t end1=clock();
cout<<"本题用时(s):"<<(double)(end1-start1)/CLOCKS_PER_SEC<<endl;
}}
//---------
if(Operator==3){
for(unsigned int i=0;i<Number;i++)
{ clock_t start1=clock();
if(Size==1){num1=rand()%10; num2=rand()%10; } // 产 生 一 位 随 机 数,num1,num2
if(Size==2){num1=10+rand()%90; // 产 生 两 位 随 机 数 num1,num2
num2=10+rand()%90;}
if(Size==3){num1=100+rand()%900; // 产 生 三 位 随 机 数 num1,num2
num2=100+rand()%900;}
num3=num1*num2;
cout<<num1<<"*"<<num2<<"=";
cin>>num4;
if(num3==num4)score+=1;
clock_t end1=clock();
cout<<"本题用时(s):"<<(double)(end1-start1)/CLOCKS_PER_SEC<<endl;
}}
//***********
if(Operator==4){
for(unsigned int i=0;i<Number;i++)
{ clock_t start1=clock();
if(Size==1){num1=rand()%10; num2=rand()%10; } // 产 生 一 位 随 机 数,num1,num2
if(Size==2){num1=10+rand()%90; // 产 生 两 位 随 机 数 num1,num2
num2=10+rand()%90;}
if(Size==3){num1=100+rand()%900; // 产 生 三 位 随 机 数 num1,num2
num2=100+rand()%900;}
if(num2!=0){
num3=num1/num2;
cout<<num1<<"/"<<num2<<"=";
cin>>num4;
if(num3==num4)score+=1;
clock_t end1=clock();
cout<<"本题用时(s):"<<(double)(end1-start1)/CLOCKS_PER_SEC<<endl;
}}}
}
//
void main(){
srand((unsigned)time(NULL));
Person p;
p.get();
if(p.Number<20&&p.Operator<5&&p.Size<4)
{start=clock();
p.display();
}
else cout<<"参数错误,重新输入"<<endl;
使用VS编译