zoukankan      html  css  js  c++  java
  • 四则运算2代码实现

    1.设计思想:

    主要运用switch语句进行选择,运用随机函数避免题目重复,其他思想在上一篇有所陈述。

    2.源程序代码:

      1 //信1305 郭婷 20132916
      2 #include <iostream>
      3 #include <time.h>
      4 using namespace std;
      5 
      6 int main()
      7 {
      8     srand(time(NULL));
      9     int x1,x2,flag,i,j;
     10     int x3,x4;
     11     int a1,a2;
     12     char a3,a4,a5,a6;
     13     int n;
     14     //可定制打印的题目数
     15     cout<<"请输入要打印的题目数:";
     16     cin>>a1;
     17     while(a1<=0)
     18     {
     19         cout<<"请重新输入有效的题目数:";
     20         cin>>a1;
     21     };
     22     //可定制运算数的范围
     23     cout<<"请输入运算数的范围(大于1的数):";
     24     cin>>a2;
     25     while(a1<=0)
     26     {
     27         cout<<"请重新输入有效的范围:";
     28         cin>>a2;
     29     };
     30     //可定制题目中是否有乘除法
     31     cout<<"请选择否有乘除法(Y/N):";
     32     cin>>a3;
     33     while ((a3!='Y')&(a3!='N'))
     34     {
     35         cout<<"请重新输入有效的数值:";
     36         cin>>a3;
     37     };
     38     //可定制题目结果是否有负数
     39     cout<<"请选择结果有无负数(Y/N):";
     40     cin>>a4;
     41     while((a4!='Y')&(a4!='N')) 
     42     {
     43         cout<<"请重新输入有效的数值:";
     44         cin>>a4;
     45     };
     46     //可定制结果是否有余数
     47     cout<<"请选择结果有无余数(Y/N)";
     48     cin>>a5;
     49     while((a5!='Y')&(a5!='N')) 
     50     {
     51         cout<<"请重新输入有效的数值:";
     52         cin>>a5;
     53     };
     54     //可定制是否支持分数
     55     cout<<"请选择是否支持分数(Y/N):";
     56     cin>>a6;
     57     while((a6!='Y')&(a6!='N'))  
     58     {
     59         cout<<"请重新输入有效的数值:";
     60         cin>>a6;
     61     };
     62      cout<<"每行输出的题目数:";
     63      cin>>n;
     64     //循环打印符合要求的题目
     65     for (i=0;i<a1;i++)
     66     {
     67         switch (a3)
     68         {
     69         case 'Y':j=rand()%4;
     70             break;
     71         case 'N':j=rand()%2;
     72             break;
     73         }
     74         x1=rand()%a2+1;
     75         x2=rand()%a2+1;
     76         //循环打印
     77         
     78         if (j==0)
     79         {
     80             switch(a6)
     81             {
     82             case 'N':cout<<i+1<<" "<<x1<<"+"<<x2<<"=  ";
     83                 if ((i+1)%n==0)
     84                 {
     85                     cout<<endl;
     86                 }
     87                 break;
     88             case 'Y':x3=rand()%9+1;
     89                 x4=rand()%9+1;
     90                 cout<<i+1<<" "<<x1<<"/"<<x2<<"+"<<x3<<"/"<<x4<<"=  ";
     91                 if ((i+1)%n==0)
     92                 {
     93                     cout<<endl;
     94                 }
     95                 break;
     96             }
     97         }
     98         if (j==1)
     99         {
    100             switch(a4)
    101             {
    102             case 'Y':
    103                 break;
    104             case 'N':
    105                 if (x1<x2)
    106                 {
    107                     flag=x1;
    108                     x1=x2;
    109                     x2=flag;
    110                 }
    111                 break;
    112             }
    113             switch (a6)
    114             {
    115             case 'N':cout<<i+1<<" "<<x1<<"-"<<x2<<"=  ";
    116                 if ((i+1)%n==0)
    117                 {
    118                     cout<<endl;
    119                 }
    120                     break;
    121             case 'Y':
    122                 x3=rand()%9+1;
    123                 x4=rand()%9+1;
    124                 cout<<i+1<<" "<<x1<<"/"<<x2<<"-"<<x3<<"/"<<x4<<"=  ";
    125                 if ((i+1)%n==0)
    126                 {
    127                     cout<<endl;
    128                 }
    129                     break;
    130             }
    131         }
    132         if (j==2)
    133             switch(a6)
    134             {
    135             case 'N':cout<<i+1<<" "<<x1<<"*"<<x2<<"=  ";
    136                 if ((i+1)%n==0)
    137                 {
    138                     cout<<endl;
    139                 }
    140                 break;
    141             case 'Y':
    142                 x3=rand()%9+1;
    143                 x4=rand()%9+1;
    144                 cout<<i+1<<" "<<x1<<"/"<<x2<<"*"<<"("<<x3<<"/"<<x4<<")"<<"=  ";
    145                 if ((i+1)%n==0)
    146                 {
    147                     cout<<endl;
    148                 }
    149                 break;
    150             }
    151         if (j==3)
    152         {
    153             switch(a5)
    154             {
    155             case 'Y':
    156                     break;
    157                 case 'N':
    158                     while (x1%x2!=0)
    159                     {
    160                         x1=rand()%a2+1;
    161                         x2=rand()%a2+1;
    162                     };
    163                     break;
    164             }
    165             switch(a6)
    166             {
    167             case 'Y':cout<<i+1<<" "<<x1<<"/"<<x2<<"=  ";
    168                 if ((i+1)%n==0)
    169                 {
    170                     cout<<endl;
    171                 }
    172                 break;
    173             case 'N':
    174                 x3=rand()%9+1;
    175                 x4=rand()%9+1;
    176                 cout<<i+1<<" "<<"("<<x1<<"/"<<x2<<")"<<"/"<<"("<<x3<<"/"<<x4<<")"<<"=  ";
    177                 if ((i+1)%n==0)
    178                 {
    179                     cout<<endl;
    180                 }
    181                 break;
    182             }
    183         
    184         }
    185     }
    186 
    187     return 0;
    188 }

    3.程序截图

    4.编程总结

    刚一开始看到这个题目,感觉有点难,要求挺多。但是经过对每一个要求的分析和理解,将这个程序由大化小,先将一个个小的要求实现,在将这些要求程序连接起来,就可以将一个看似麻烦的程序变得简单了;还有就是对于题目的重复问题,我在网上查过之后,找到了srand(time(NULL));这个函数。其中不足的是是否支持分数,如果选择是,则题目中都是分数。

    5.时间记录日志

     

  • 相关阅读:
    ie6支持最小高度
    jquery的css详解(二)
    jquery的curCSS方法
    jquery的css详解(一)
    Javascript中的Cookie操作
    C#和Javascript中 正则表达式使用的总结
    SQL JOIN
    C# 委托的”四步走“
    C# 知识笔记
    Jquery学习资源地址
  • 原文地址:https://www.cnblogs.com/gting/p/4347060.html
Copyright © 2011-2022 走看看