个人作业1:随机生成四则运算

                             个人作业1:随机生成四则运算

 

思路:1.利用rand函数随机生成2个100以内随机整数作为两个运算数。

        2.随机生成小于5的整数,利用switch函数,0代表整数加法,1代表整数减法,2代表整数乘法,3代表整数除法,4代表真分数运算部分。

        3.真分数保证分母大于分子,分母不为0。分子分母均有两个随机数相除获得。

        4.将以上设置循环打印输出.

 

代码:

//随机生成30道四则运算(包括真分数)

//孔宇航 2016/3/4

 

#include<iostream>

#include<stdlib.h>

#include<iomanip>

#include<time.h>

using namespace std;

#define random() (rand()%100)

void main()

{

            int num1,num2,num3,num4;

            srand((int)time(NULL));

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

           {

                    num1=random();

                    num2=random();

                   int k=(int)rand()%5;

                   switch(k)

                   {

                   case 0:{cout<<num1<<"+"<<num2<<"=";

                   break;}                                 //进行整数加法运算

                   case 1:{cout<<num1<<"-"<<num2<<"=";

                   break;}                                //进行整数减法运算

                   case 2:{cout<<num1<<"*"<<num2<<"=";

                   break;}                                //进行整数乘法运算

                   case 3:{

                   while(num2==0)

                   num2=random();

                   cout<<num1<<"/"<<num2<<"=";

                   break;}                                //进行整数除法运算

                   case 4:                                //真分数运算部分

             {

          while(num2==0||num1>=num2)

         {

            num1=random();

                       num2=random();

         }

            num3=random();

                       num4=random();

        while(num4==0||num3>=num4)

        {

            num3=random();

                       num4=random();

        }

            int q=(int)rand()%4;

        switch(q)

        {

            case 0:

                cout<<"("<<num1<<"/"<<num2<<")"<<"+"<<"("<<num3<<"/"<<num4<<")"<<"=";

              

                break;

            case 1:

                   cout<<"("<<num1<<"/"<<num2<<")"<<"-"<<"("<<num3<<"/"<<num4<<")"<<"=";

                break;

            case 2:

                 cout<<"("<<num1<<"/"<<num2<<")"<<"*"<<"("<<num3<<"/"<<num4<<")"<<"=";

              

                break;

            case 3:

                cout<<"("<<num1<<"/"<<num2<<")"<<"/"<<"("<<num3<<"/"<<num4<<")"<<"=";

                break;

                     }

                   }

                }

                   cout<<endl;

          }

}

 

截图:

 

      此次的小程序利用了3个都小时的时间,因为我的编程能力不好,有些东西需要重新学习,还多次出现错误,比如最开始明明设置了30次的循环却只能打印出16个,不知道哪里出了错误,也许16是个幸运数字,哈哈。还有能打印真分数就打印不出来加法,能打印加法就打印不出来真分数,后来发现是变量随机数没有设置为小于5,马虎了,耽误不少时间。其中关于时间种子,避免随机数相同的代码是在网上查阅获得的,学习了新知识呦。这么个小程序就用了这么久很是郁闷,希望以后能提高能力与速率完成更大更复杂的程序。

 

posted @ 2016-03-06 16:16  大脑袋酿酿  阅读(268)  评论(1编辑  收藏  举报