• 四则运算2


    1.设计思路 

    上次博客已经写得很具体了,不再赘述。

    2.源代码

      1 #include<iostream.h>
      2 #include<stdlib.h>
      3 #include<time.h>
      4 void choice2();
      5 void create(int m,int n){
      6 int a,b,c;
      7 a=rand()%n;
      8 b=rand()%n;
      9 c=rand()%m;
     10 switch(c){
     11 case 0:
     12      cout<<a<<"+"<<b<<"="<<endl;
     13      break;
     14 case 1:
     15      if(a>b)
     16 {
     17 cout<<a<<"-"<<b<<"="<<endl;
     18 }
     19 else
     20 {
     21 cout<<b<<"-"<<a<<"="<<endl;
     22 }
     23 break;
     24 case 2:
     25 cout<<a<<"*"<<b<<"="<<endl;
     26 break;
     27 case 3:
     28 if(b!=0)
     29 {
     30 cout<<a<<"/"<<b<<"="<<endl;
     31 }
     32 else
     33 {
     34 cout<<"这道题有误!"<<endl;
     35 }
     36 break;
     37 }
     38 }
     39 void caidan()
     40 {
     41     cout<<"----四则运算2-----"<<endl;
     42     cout<<"1. 定制出题数量"<<endl;
     43     cout<<"2. 出题打印"<<endl;
     44     cout<<"3. 退出菜单"<<endl;
     45 }
     46 void caidan2()
     47 {
     48     cout<<"----四则运算2----"<<endl;
     49     cout<<"1. 乘除法选择"<<endl;
     50     cout<<"2. 数值范围选择"<<endl;
     51     cout<<"3. 余数有无选择"<<endl;
     52     cout<<"4. 打印间隔选择"<<endl;
     53     cout<<"5. 退出菜单"<<endl;
     54 }
     55 void choice()
     56 {
     57     int xuanze,num;
     58     caidan();
     59     cout<<"输入您的选择:"<<endl;
     60     cin>>xuanze;
     61     while(xuanze!=3)
     62     {
     63         switch(xuanze)
     64         {
     65         case 1:
     66             cout<<"请输入您想定制的数量:"<<endl;
     67             cin>>num;
     68             caidan();
     69             cin>>xuanze;
     70             break;
     71         case 2:
     72             cout<<"出题打印!"<<endl;
     73             choice2();
     74             break;
     75         default:
     76             cout<<"输入有误!请重新输入!"<<endl;
     77             caidan();
     78             cin>>xuanze;
     79             break;
     80         }
     81     }
     82 }
     83 void choice2()
     84 {
     85     int key,k1,k2,k3,k4,num;
     86     caidan2();
     87     cout<<"请输入您的选择:"<<endl;
     88     cin>>key;
     89     while(key)
     90     {
     91         switch(key)
     92         {
     93         case 1:
     94             cout<<"请输入0或1(0代表有乘除,1代表无乘除!)"<<endl;
     95             cin>>k1;
     96             if(k1==0)
     97             {
     98                 cout<<"请输入你想定制的数量:"<<endl;
     99                 cin>>num;
    100                 for(int i=0;i<num;i++){
    101                 create(4,100);
    102                 }
    103             }
    104             else if(k1==1)
    105             {
    106                 cout<<"请输入你想定制的数量:"<<endl;
    107                 cin>>num;
    108                 for(int i=0;i<num;i++){
    109                 create(2,100);
    110                 }
    111             }
    112             else
    113             {
    114                 cout<<"输入有误!请重输:"<<endl;
    115                 cin>>k1;
    116             }
    117             caidan2();
    118             cin>>key;
    119             break;
    120         case 2:
    121             {
    122             cout<<"请输入出题数值范围(数值范围默认100以内)"<<endl;
    123             cin>>k2;
    124             cout<<"请输入你想定制的数量:"<<endl;
    125             cin>>num;
    126             for(int i=0;i<num;i++){
    127             create(4,k2);
    128                 }
    129             caidan2();
    130             cin>>key;
    131             break;
    132             }
    133         case 3:
    134             cout<<"请输入0或1(0代表有余数,1代表无余数!)"<<endl;
    135             cin>>k3;
    136             
    137             if(k3==0)
    138             {
    139                 cout<<"请输入出题数值范围(数值范围默认100以内)"<<endl;
    140             cin>>k2;
    141             cout<<"请输入你想定制的数量:"<<endl;
    142             cin>>num;
    143             int a=rand()%k2;
    144             int b=rand()%k2;
    145 
    146                 if(a%b==0)
    147                 {
    148                     srand(time(NULL));
    149                     a=rand()%k2;
    150                     b=rand()%k2;
    151                     for(int i=0;i<num;i++){
    152                         create(4,k2);}
    153                 }
    154                 else
    155                 {
    156                     for(int i=0;i<num;i++){
    157                         create(4,k2);}
    158                 }
    159             }
    160             else if(k3==1)
    161             {
    162             cout<<"请输入出题数值范围(数值范围默认100以内)"<<endl;
    163             cin>>k2;
    164             cout<<"请输入你想定制的数量:"<<endl;
    165             cin>>num;
    166             int a=rand()%k2;
    167             int b=rand()%k2;
    168 
    169                 if(a%b==0)
    170                 {
    171                     srand(time(NULL));
    172                     a=rand()%k2;
    173                     b=rand()%k2;
    174                     for(int i=0;i<num;i++){
    175                         create(4,k2);}
    176                 }
    177                 else
    178                 {
    179                     for(int i=0;i<num;i++){
    180                         create(4,k2);}
    181                 }
    182             }
    183             caidan2();
    184             cin>>key;
    185             break;
    186         case 4:
    187             {
    188             cout<<"请输入您想打印时的间隔:"<<endl;
    189             cin>>k4;
    190             cout<<"请输入你想定制的数量:"<<endl;
    191             cin>>num;
    192             for(int i=0;i<num;i++)
    193             {
    194                 create(4,100);
    195                 for(int j=0;j<k4;j++)
    196                 {
    197                     cout<<"	";
    198                 }
    199             }
    200             caidan2();
    201             break;
    202             }
    203         case 5:
    204             exit(1);
    205         default:
    206             cout<<"输入有误!请重新输入!"<<endl;
    207             caidan2();
    208             cin>>key;
    209             break;
    210         }
    211     }
    212 }
    213 void main()
    214 {
    215     int xuanze;
    216         choice();
    217         if(xuanze==2)
    218         {
    219             choice2();
    220         }
    221 }
    222             

    3.结果截图:

    4.程序总结

    1)这次程序的设计编写遇到了不小的麻烦,其中本想着已一种简便的方法实现这一功能,却弄巧成拙,耗费了大量的时间,而主程序中一些程序代码段的重写也成为了这次的主要不足。

    2)程序设计中逻辑性不强,依旧存在一些bug。

    3)程序只实现了部分功能,日后一定还会再修复的。

    5.PSP

  • 相关阅读:
    js设计模式-工厂模式
    js设计模式-构造函数模式
    js设计模式-单例模式
    为什么要用事件委托and 为什么移动端click事件要设计延迟
    css属性支持
    翻译express
    无法点击,无法获取inputvalue值得原因
    cookie删除不掉的问题
    56.com面试
    angular.js phonecat翻译
  • 原文地址:https://www.cnblogs.com/zhengt/p/4339725.html
Copyright © 2020-2023  润新知