设计一个四则运算器程序

题目:

设计一个四则运算器程序,要求:

  1. 用随机数控制产生的四则运算表达式;
  2. 让用户定时计算结果并统计正确率;
#include <cstdio>
#include <iostream>
#include <ctime>
#include <cstdlib>
#define NUM 100
using namespace std; 
enum charact{Add,Minus,Multip,Div};
char choose(charact op)
{
    switch (op)
    {
		case Add:return '+';
		
		case Minus:return '-';
		
		case Multip:return '*';
		
		case Div:return '/';
		
	}
	return ' ';
}
int correct(int num1,int num2,charact op)
{
	switch(op)
	{
		case Add:return num1+num2;
		case Minus:return num1-num2;
		case Multip:return num1*num2;
		case Div:return num1/num2;
	}
	return 0;
}
int check(int num1,int num2,charact op)
{
	switch(op)
	{
		case Add:return true;
		case Minus:if(num2<num1) return false;
				   else return true;
		case Multip:return true;
		case Div:if(num1<num2||num2== 0||num1%num2!=0)
					 return false;
				 else return true;
	}
	return false;
}
void calculate(int* num1,int* num2,charact op)
{
	for(;;)
	{
		//srand(time(NULL));
		*num1=rand()%100+1;
		*num2=rand()%100+1;
		if(check(*num1,*num2,op) == 1 && correct(*num1,*num2,op)<=100 && correct(*num1,*num2,op)>=0)
			break;
	}
}
int main()
{
	time_t start,stop;
	int i;
	int num1[NUM];
	int num2[NUM];
	charact op[NUM];
	int n = 0;
	int result[NUM];
	srand(time(NULL));
	cout<<"Please wait a moment..."<<endl;
	for(i=0;i<NUM;i++)
	{
		op[i]=charact(rand()%4);
		calculate(&num1[i],&num2[i],op[i]);
	}
	cout<<"Please start..."<<endl;
	start = time(NULL);
	for(i=0;i<NUM;i++)
	{
		cout<<(i+1)<<". ";
		cout<<num1[i]<<" "<<choose(op[i])<<" "<<num2[i]<<" "<<"= ";
		cin>>result[i];
		if(result[i] == correct(num1[i],num2[i],op[i]))
		{   
			cout<<"   Right !"<<endl;
			n++;
		}
		while(result[i] != correct(num1[i],num2[i],op[i]))
		{
				cout<<"   Wrong ! Please again !"<<endl;
				cout<<"   "<<num1[i]<<" "<<choose(op[i])<<" "<<num2[i]<<" "<<"= ";
				cin>>result[i];
	    }
	}
	stop = time(NULL);
	cout<<"***********************************************"<<endl;
	cout<<"Stop !"<<endl;
	cout<<"The number of the right subjects: "<<n<<endl;
	cout<<"The percent of the right subjects : "<<float(n*100/NUM)<<"%"<<endl;
	cout<<"The time you use is "<<(stop-start)<<"s"<<endl;
	system("pause");
	return 0;
}

 

猜你喜欢

转载自blog.csdn.net/QGhurt/article/details/85321485
今日推荐