30道四则运算

一、题目要求:

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

二、设计思路:

1.首先能随机产生四个1-100的整数,并且要用时间种子函数避免伪随机;

2.真分数的产生是用除法来计算的,产生第一个(num_a)第二个(num_b)整数用来限制第三个(num_c)第四个(num_d)整数,其中第三个第四个整数要小于第一个第二个整数用Do….while 语句来实现,第一个真分数表示是a=num_c/num_a,第四个真分数b=num_d/num_b;

3.数字的选取和运算符的选取都是用数字来表示的,选取第一个数字的时候用if语句来实现随机产生两个数字1,2用来表示整数和真分数并输出,选取运算符是用1-4四个数字分别表示+-*/,用switch语句来实现并输出。第二个数字的选取同第一个数字选取一样。

4.最后再加上for语句来实现随机产生30个运算题目。

三、程序代码:

    //1301-2 20133056  吕兰兰  随机产生30道四则运算题目

#include<iostream>

#include<ctime>

using namespace std;

int  main()

{

         int num_a,num_b,num_c,num_d;//随机产生4个1-100的整数

         double a,b;//用来表示真分数

         int c,d,e;//用来随机产生数字,c用来判断选择的是整数还是分数,d用来选择+-*/,e用来选择第二个数字是整数还是分数

         srand(time(0));

         for(int i=1;i<31;i++)

         {

                   num_a=rand()%100+1;

             num_b=rand()%100+1;

             //求第一位真分数,产生的整数要比第一位整数小

             do

             {

                      num_c=rand()%100+1;

              }while (num_c>=num_a);

              a=num_c/num_a;

            //求第二位真分数,产生的整数要比第二位整数小

             do

             {

                      num_d=rand()%100+1;

              }while(num_d>=num_b);

         b=num_d/num_b;

 

             //选择第一位数字,为

              c=rand()%2+1;

        if(c==1)

             {

                      cout<<num_a<<" ";

              }

             if(c==2)

             {

                      cout<<"("<<num_c<<"/"<<num_a<<")"<<" ";

              }

             //产生四种运算符

              d=rand()%4+1;

              switch(d)

             {

                            case 1:cout<<"+ ";break;

                            case 2:cout<<"- ";break;

                            case 3:cout<<"* ";break;

                            case 4:cout<<"/ ";break;

 

                   }

         //随机产生第二位的数字,可以为整数或分数

                   e=rand()%2+1;

                   if(e==1)

                   {

                            cout<<num_b;

                   }

                   if(e==2)

                   {

                            cout<<"("<<num_d<<"/"<<num_b<<")";

                   }

                   cout<<"=";

                   cout<<endl;

                   cout<<endl;

         }

}

四、用时:

   程序编写用了90分钟,后来修改错误和完善代码用时半个小时,总用时2个小时。

五、体会:

   好开心,自己独立的编出一道程序。原来编程序很好入手的只要自己提前把思路理清,我是按着老师所说的“拆分发”将每一步要做的一一列清楚,程序很好编。编程第一次程序成功输出结果错误,输出的都是相同的数字,后来发现是srand(time(0));使用错误,Do…while语句输出真分数时能输出1,经过仔细的推算很快就发现错误点,这次程序编写成功发现,程序最主要的还是思路,有的程序用简单的语句就能实现,有的就比较复杂。

原文地址:https://www.cnblogs.com/lvlan/p/5244695.html