zoukankan      html  css  js  c++  java
  • 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,经过仔细的推算很快就发现错误点,这次程序编写成功发现,程序最主要的还是思路,有的程序用简单的语句就能实现,有的就比较复杂。

  • 相关阅读:
    powerdesigner简单使用
    linux进程间通信方式
    linux中fork()函数详解(原创!!实例讲解)
    platform_device与platform_driver
    当心不静的时候
    linux移植简介[MS2]
    使用maven的tomcat:run进行web项目热部署
    SpringMVC &amp; Struts2
    开放产品开发(OPD):OPD框架
    【Android个人理解(八)】跨应用调用不同组件的方法
  • 原文地址:https://www.cnblogs.com/lvlan/p/5244695.html
Copyright © 2011-2022 走看看