小学生算术运算测试系统C++

实现以下要求:

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编译
  • 8
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值