• 四则运算二之结果


    设计思想:

    1. 题目避免重复

         将得到的题目放入数组,并与前面的进行匹配,若相同则跳过且变量减一。

    1. 可定制

         通过一个变量控制输出来确定输出格式。

    1. 控制参数

         是否有乘除法

              If语句当面对除法时,控制被除数不为0。若为零,则跳过且变量减一。

         数值范围

              随机数控制。

         加减有无负数

             If语句检验随机数是否小于0,若小于零则跳过且变量减一。

         除法有无余数

             If语句检验,其余同上。

         是否支持分数

             If语句随机出现分数的运算。

    实现代码:

    //四则运算二,王昭博,3.13,2015

     

    #include<iostream>

    using namespace std;

    #define N 30

    #include<cmath>

     

    void main ()

    {

             double a,b[N],c[N],d[N],e[N],f;

             char g ;

             cout<<"若允许有负数请输入Y;否则,输入N:"<<endl;

             cin>>g;

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

             {

                       a = rand()%2;//决定是否出现分数题目            

                       if( a == 0 )//分数题目出现

                       {

                                b[i] = rand()%100;

                                c[i] = rand()%100;

                                d[i] = rand()%100;

                                e[i] = rand()%100;

                                f = rand()%4;

                                if( f == 0)

                                {

                                         if(c[i] == 0 || e[i] == 0)//控制被除数及分子不为零

                                         {i--;break;}

                                         for( int j=0;j<i;j++)//避免重复

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j] && d[i] == d[j] && e[i] == e[j])

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<"/"<<c[i]<<" + "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0 || d[i] < 0 || e[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<"/"<<c[i]<<" + "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         }

                                }

                                else if( f == 1)

                                {

                                         if(c[i] == 0 || e[i] == 0)//控制被除数及分子不为零

                                         {i--;break;}

                                         for( int j=0;j<i;j++)//避免重复

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j] && d[i] == d[j] && e[i] == e[j])

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<"/"<<c[i]<<" - "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0 || d[i] < 0 || e[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<"/"<<c[i]<<" - "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         }

                                }

                                else if( f == 2)

                                {

                                         if(c[i] == 0 || e[i] == 0)//控制被除数及分子不为零

                                         {i--;break;}

                                         for( int j=0;j<i;j++)//避免重复

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j] && d[i] == d[j] && e[i] == e[j])

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<"/"<<c[i]<<" * "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0 || d[i] < 0 || e[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<"/"<<c[i]<<" * "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         }

                                }

                                else

                                {

                                         if(c[i] == 0 || e[i] == 0 || d[i] == 0)//控制被除数及分子不为零

                                         {i--;break;}

                                         for( int j=0;j<i;j++)//避免重复

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j] && d[i] == d[j] && e[i] == e[j])

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<"/"<<c[i]<<" / "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0 || d[i] < 0 || e[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<"/"<<c[i]<<" / "<<d[i]<<"/"<<e[i]<<"="<<endl;}

                                         }

                                }

                       }

                       else//非分数题目出现

                       {

                                b[i] = rand()%100;

                                c[i] = rand()%100;

                                f = rand()%4;

                                if( f == 0)

                                {

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

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j])//避免重复

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<" + "<<c[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<" + "<<c[i]<<"="<<endl;}

                                         }

                                }

                                else if( f == 1)

                                {

                                         for( int j=0;j<i;j++)//避免重复

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j])

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<" - "<<c[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<" - "<<c[i]<<"="<<endl;}

                                         }

                                }

                                else if( f == 2)

                                {

                                         for( int j=0;j<i;j++)//避免重复

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j])

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<" * "<<c[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<" * "<<c[i]<<"="<<endl;}

                                         }

                                }

                                else

                                {

                                         if( c[i] == 0)//控制被除数及分子不为零

                                                   {i--;break;}

                                         for( int j=0;j<i;j++)//避免重复

                                         {

                                                   if(b[i] == b[j] && c[i] == c[j])

                                                   {i--;break;}

                                         }

                                         //控制有无负数

                                         if(g == 'Y')

                                         {cout<<b[i]<<" / "<<c[i]<<"="<<endl;}

                                         else

                                         {

                                                   if(b[i] < 0 || c[i] < 0)

                                                   {i--;break;}

                                                   else

                                                   {cout<<b[i]<<" / "<<c[i]<<"="<<endl;}

                                         }

                                }

                       }

             }

    }

    结果截图:

    心得总结:

    一开始,我尝试着不看设计思想去做,发现做着做着就卡壳;后来,我就边看设计思想边写,很快就做完了,虽然我的代码有些过于冗杂了,但是很顺畅(当然代码比较简单也是其中一个原因所在)。

    时间记录日志

    学生:

    王昭博

     

    日期:

    3/13/2015

     

    教师:

    王建民

     

    课程:

    PSP

     

     

     

     

     

     

     

    日期

    开始时间

    结束时间

    净时

    活动

    备注

    3月13日

    10点10分

    12点

    100分钟

    讲师授课

     

    3月13日

    13点

    13点20分

    20分钟

    编写程序

     

    3月18日

    16点

    17点30分

    90分钟

    编写程序

     

    3月18日

    21点30分

    22点

    30分钟

    制作时间记录日志模板

     

  • 相关阅读:
    Android 监听电量的状态
    2017.1-TOP5 Android开源库
    Android实践 -- Android蓝牙设置连接
    Android ListView滚动到指定的位置
    软件原型设计工具
    plupload+struts2实现文件上传下载
    ORACLE 更改username
    单词反转实现
    FatMouse&#39; Trade(杭电1009)
    JS-JavaScript学习笔记(一)
  • 原文地址:https://www.cnblogs.com/yuntianblog/p/4350889.html
Copyright © 2020-2023  润新知