30道四则运算

一、题目要求

要求编写一道程序,随机给出30道四则运算题,可以是整数运算,也包括真分数的运算。

二、设计思路

1、  随机产生一个1-100的整数,使用随机函数。

2、  随机产生一个运算符,运算符有四种,可以用0、1、2、3分别代表一个运算符。

3、  随机产生0、1、2、3四个数

4、  随机产生第二个整数。

5、  循环30次,最后结果用“第一个数”+“运算符”+“第二个数”+“=”的形式表示。

6、  随机产生一个真分数,用随机产生的两个整数加上“/”符号组成真分数。

7、  随机产生第二个真分数。

8、  将四则运算分为:整数和整数运算、整数和真分数运算、真分数和整数运算、真分数和真分数运算。也用0、1、2、3分别表示

9、  随机产生四则运算。

三、源代码

//姓名:黄山成班级:信-1301-1 功能:随机产生道四则运算题,数字为整数或真分数。

#include<iostream>

using namespace std;

#include <time.h>

 

void proper(int a,int b)//显示真分数的函数

{

if(a>b)

 {

       cout<<b<<"/"<<a;

 }

 else if(a<b)

 {

       cout<<a<<"/"<<b;

 }

 else

 {

       cout<<1;

 }

 

}

void main()

{

 int figure_1,figure_2,figure_3,figure_4,c;

 char operators;

 

 srand((unsigned)time(NULL)); 

 for(int i=0;i<30;i++)

 {

 figure_1=rand()%100+1;

 figure_2=rand()%100+1;

 figure_3=rand()%100+1;

 figure_4=rand()%100+1;

 

 c=rand()%4;

 switch(c)

 {

 case 0:operators='+';break;

 case 1:operators='-';break;

 case 2:operators='*';break;

 case 3:operators='/';break;

 }

 switch(c){

 

       case 0:cout<<figure_1<<" "<<operators<<" "<<figure_2<<" ="<<endl;break;

       case 1:

                     proper(figure_1,figure_2);

                      cout<<" "<<operators<<" ";

                      proper(figure_3,figure_4);

                      cout<<" ="<<endl;

            break;

       case 2:

                  cout<<figure_1<<" "<<operators<<" (";

                  proper(figure_3,figure_4);

                  cout<<") ="<<endl;

            break;

       case 3 :

                  cout<<"(";

                proper(figure_3,figure_4);

                  cout<<")";

                  cout<<" "<<operators<<" "<<figure_1<<" ="<<endl;

           break;

       

 }

 }

}

四、用时

最初用时2个小时,后来不断地完善程序,总用时5个小时。

五、总结

这次编写代码的最大的收获就是老师所说的“拆减法”,当遇到一个完全不会的程序时,可能无从下手,但一定要逐个拆分,将问题缩小,简单化,然后再整合这些小的问题。这是我们目前编程的最大的问题,所以以后一定要经常使用这种方法。程序编写的时间有点长,但是,这次收获颇深,感悟颇多。而且有一个很关键的地方,就是要静下心来认真的思考问题,而不能做完一点之后就走开,放弃,要坚持。  

原文地址:https://www.cnblogs.com/surver/p/5243101.html