zoukankan      html  css  js  c++  java
  • 四则运算出题器(c++)

    一、设计思路

    这次版本加入了一下功能:

    可定制题目的数量:修改循环次数;

    可以定制每行打印的题目数和行间距的大小(当前题目序号可以整除定制数时输出输入的行间距个换行符);

    可以定制算式的范围(修改随机数的最大值);

    可以选择有无乘除法(没有乘除法即修改符号的情况,有四种改为两种);

    可以选择减法中得数是否可以为负(不要负数的情况即比较减式中俩数大小,大数放前面)。

    二、代码

      1 #include<iostream.h>
      2 #include<stdlib.h>
      3 #include<time.h>
      4 int main()
      5 {
      6     int Ques1=1;
      7     int Ques2=1;
      8     int Ques3=100;
      9     char Ques4='y';
     10     int Ques5=1;
     11     char Ques6='n';
     12     char Ques7='n';
     13 Again:
     14     cout<<"请输入题目数量:";
     15     cin>>Ques1;
     16     cout<<"请输入每行打印题目数(1-5):";
     17     cin>>Ques2;
     18     cout<<"请输入算式中数值的最大值:";
     19     cin>>Ques3;
     20     while(1)
     21     {
     22         cout<<"运算中需要乘除法吗?y:需要;n:不需要";
     23         cin>>Ques4;
     24         cout<<"减法运算需要有负数吗?y:需要;n:不需要";
     25         cin>>Ques7;
     26         cout<<"行间距(正整数):";
     27         cin>>Ques5;
     28         srand(time(NULL));
     29         if(Ques4=='y')
     30         {
     31             while(1)
     32             {
     33                 if(Ques1<1)
     34                 {
     35                     cout<<"输入有误,请重新输入:";
     36                     cin>>Ques1;
     37                 }
     38                 else
     39                 {
     40                     for(int j=0;j<Ques1;j++)
     41                     {
     42                         if(j!=0&&j%Ques2==0)
     43                         {
     44                             for(int i=0;i<Ques5;i++)
     45                             {
     46                                 cout<<endl;
     47                             }        
     48                         }
     49                         int num1=rand()%Ques3;
     50                         int num2=rand()%Ques3;
     51                         int sign=rand()%4;
     52                         switch(sign)
     53                         {
     54                         case 0:
     55                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"	";
     56                             break;
     57                         case 1:
     58                             if(Ques7=='y')
     59                             {
     60                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
     61                             }
     62                             else
     63                             {
     64                                 if(num1>num2)
     65                                 {
     66                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
     67                                 }
     68                                 else
     69                                 {
     70                                     cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"	";
     71                                 }
     72                             }
     73                             break;
     74                         case 2:
     75                             cout<<j+1<<":"<<" "<<num1<<"*"<<num2<<"="<<"	";
     76                             break;
     77                         case 3:
     78                             if(num2!=0)
     79                             {
     80                                 cout<<j+1<<":"<<" "<<num1<<"/"<<num2<<"="<<"	";
     81                             }
     82                             else
     83                             {
     84                                 j--;
     85                             }
     86                             break;
     87                         }
     88                     }
     89                     break;
     90                 }
     91             }
     92             break;
     93         }
     94         if(Ques4=='n')
     95         {
     96             while(1)
     97             {
     98                 if(Ques1<1)
     99                 {
    100                     cout<<"输入有误,请重新输入:";
    101                     cin>>Ques1;
    102                 }
    103                 else
    104                 {
    105                     for(int j=0;j<Ques1;j++)
    106                     {
    107                         if(j!=0&&j%Ques2==0)
    108                         {
    109                             for(int i=0;i<=Ques5;i++)
    110                             {
    111                                 cout<<endl;
    112                             }
    113                         }
    114                         int num1=rand()%Ques3;
    115                         int num2=rand()%Ques3;
    116                         int sign=rand()%2;
    117                         switch(sign)
    118                         {
    119                         case 0:
    120                             cout<<j+1<<":"<<" "<<num1<<"+"<<num2<<"="<<"	";
    121                             break;
    122                         case 1:
    123                             if(Ques7=='y')
    124                             {
    125                                 cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
    126                                 break;
    127                             }
    128                             else
    129                             {
    130                                 if(num1>num2)
    131                                 {
    132                                     cout<<j+1<<":"<<" "<<num1<<"-"<<num2<<"="<<"	";
    133                                     break;
    134                                 }
    135                                 else
    136                                 {
    137                                     cout<<j+1<<":"<<" "<<num2<<"-"<<num1<<"="<<"	";
    138                                     break;
    139                                 }
    140                             }
    141                             break;
    142                         }
    143                     }
    144                 }
    145                 break;
    146             }
    147             break;
    148         }
    149         
    150         else
    151         {
    152             cout<<"输入有误,请按要求输入!"<<endl;
    153         }
    154     }
    155     cout<<endl;
    156     while(1)
    157     {
    158         cout<<"还需要继续出题还是退出?(y:继续出题;n:退出)";
    159         cin>>Ques6;
    160         if(Ques6=='y')
    161         {
    162             goto Again;
    163         }
    164         if(Ques6=='n')
    165         {
    166             goto Exit;
    167         }
    168         else
    169         {
    170             cout<<"输入有误,请重新输入:";
    171         }
    172     }
    173 Exit:
    174     return 0;
    175 }

    三、运行结果

    四、实验总结

      在这次试验中,我发现了我不会使用函数,导致所有的代码都是在主函数中完成的,看上去很乱,还有对文件的读写也不明白,要想把这个程序做得更好,我接下来还要继续看课本,找资料。

  • 相关阅读:
    ajax 通过回调函数获取异步数据
    (淘宝无限适配)手机端rem布局详解(转载非原创)
    rem在响应式布局中的应用
    移动端页面适配解决方案
    flex 布局,flex-grow 宽度未等比放大问题解决办法
    flex 布局
    bootstrap Modal 模态框垂直居中
    require.js实现单页web应用(SPA)
    解决 html5 input type='number' 类型可以输入e
    jquery 的ready() 与window.onload()的区别
  • 原文地址:https://www.cnblogs.com/zglsh/p/4340014.html
Copyright © 2011-2022 走看看