zoukankan      html  css  js  c++  java
  • 四则运算2单元测试

      1 #include<iostream.h>
      2 #include<stdlib.h>
      3 #include<time.h>
      4 void display(int number,int l,int mul,int num,int neg,int remainder)//打印方式控制输出列数
      5 {
      6     int a[1000],b[1000],c[1000];
      7     int m;//控制题目避免重复
      8     int t;//中间变量
      9     for(int i=0;i<number;i++)//随机两个生成运算操作数
     10     {  
     11         m=1;//初始化
     12         a[i]=rand()%num;
     13         b[i]=rand()%num;
     14         if(mul==0)//没有乘除法
     15         {    
     16             c[i]=rand()%2;//随机生成0-1的数字,分别表示加减
     17         }
     18         else if(mul==1)//有乘除法
     19         {
     20             c[i]=rand()%4;//随机生成0-3的数字,分别表示加减乘
     21         }
     22         for(int j=0;j<i;j++)
     23         {
     24             if(a[j]==a[i]&&b[j]==b[i]&&c[j]==c[i])//比较新生成的操作数与原来的是否相同
     25             {
     26                 i=i-1;
     27                 m=0;
     28             }
     29         }
     30         while(m)//若不同则输出
     31         {
     32             switch(c[i])
     33             {
     34             case 0:
     35                 cout<<a[i]<<"+"<<b[i]<<"=";break;
     36             case 1:
     37                 if(neg==0)//减法没有负数
     38                 {
     39                     if(a[i]<b[i])
     40                     {
     41                         t=a[i];
     42                         a[i]=b[i];
     43                         b[i]=t;
     44                     }
     45                     cout<<a[i]<<"-"<<b[i]<<"=";break;
     46                 }
     47                 else if(neg==1)//减法有负数
     48                 {
     49                     cout<<a[i]<<"-"<<b[i]<<"=";break;
     50                 }
     51             case 2:
     52                 cout<<a[i]<<"*"<<b[i]<<"=";break;
     53             case 3:
     54                 if(b[i]==0)//分母为零则不计入总数
     55                 {   
     56                     i=i-1;break;
     57                 }
     58                 else if(remainder==0)//除法没有余数
     59                 {
     60                     if(a[i]%b[i]==0)
     61                     {
     62                         cout<<a[i]<<"/"<<b[i]<<"=";break;
     63                     }
     64                     else
     65                     {
     66                         i=i-1;break;
     67                     }
     68                 }
     69                 else if(remainder==1)//除法有余数
     70                 {
     71                     if(a[i]%b[i]!=0)
     72                     {
     73                         cout<<a[i]<<"/"<<b[i]<<"=";break;
     74                     }
     75                     else
     76                     {
     77                         i=i-1;break;
     78                     }
     79                 }
     80             }
     81             if((i+1)%l==0)
     82             {
     83                 cout<<endl;
     84             }
     85             else
     86             {
     87                 cout<<"	";
     88             }
     89             break;//跳出循环
     90         }
     91     }
     92 }
     93 void main()
     94 {
     95     int number;//题目数量
     96     int l;//输出的列数
     97     int mul;//乘除法
     98     int num;//数值范围
     99     int neg;//负数
    100     int remainder;//余数
    101     int c;//循环变量
    102     while(c)
    103     {
    104         srand((unsigned) time(NULL));//调用随机函数发生器
    105         cout<<"---------------------------------"<<endl;
    106         cout<<"|            四则运算            |"<<endl;
    107         cout<<"---------------------------------"<<endl;
    108         cout<<"请输入要打印的题目数量:"<<endl;
    109         cin>>number;
    110         while(number<0)
    111         {
    112             cout<<"输入错误!"<<endl;
    113             cout<<"请输入要打印的题目数量:"<<endl;
    114             cin>>number;
    115         }
    116         cout<<"请输入要输出的列数(1-10):"<<endl;
    117         cin>>l;
    118         cout<<"是否有乘除法(0表示没有;1表示有)"<<endl;
    119         cin>>mul;
    120         while(mul!=0&&mul!=1)
    121         {
    122             cout<<"输入错误,请重新输入!是否有乘除法(0表示没有;1表示有)"<<endl;
    123             cin>>mul;
    124         }
    125         if(mul==1)
    126         {
    127             cout<<"除法有无余数(0表示没有;1表示有)"<<endl;
    128             cin>>remainder;
    129             while(remainder!=0&&remainder!=1)
    130             {
    131                 cout<<"输入错误,请重新输入!除法有无余数(0表示没有;1表示有)"<<endl;
    132                 cin>>remainder;
    133             }
    134         }
    135 /*    
    136     switch(mul)
    137         {
    138         default:
    139             {
    140                 cout<<"输入错误,请重新输入!是否有乘除法(0表示没有;1表示有)"<<endl;
    141                 cin>>mul;
    142             }
    143             break;
    144         case 0:break;
    145         case 1:
    146             {
    147                 cout<<"除法有无余数(0表示没有;1表示有)"<<endl;
    148                 cin>>remainder;
    149                 switch(remainder)
    150                 {
    151                 default:
    152                     {
    153                         cout<<"输入错误,请重新输入!除法有无余数(0表示没有;1表示有)"<<endl;
    154                         cin>>remainder;
    155                     }
    156                     break;
    157                 case 0:break;
    158                 case 1:break;
    159                 }
    160             }break;
    161         }
    162 */
    163         cout<<"请输入正整数的数值范围(即最大数):"<<endl;
    164         cin>>num;
    165         cout<<"减法有无负数(0表示没有;1表示有)"<<endl;
    166         cin>>neg;
    167         while(neg!=0&&neg!=1)
    168         {
    169                 cout<<"输入错误,请重新输入!"<<endl;
    170                 cout<<"减法有无负数(0表示没有;1表示有)"<<endl;
    171                 cin>>neg;
    172         }
    173         display(number,l,mul,num,neg,remainder);
    174         cout<<"继续请输入1,退出请输入0"<<endl;
    175         cin>>c;
    176     }
    177 }

    测试截图:

    输入正确时:20   2   1   1   100    1

    输入200  20  1  1    200 1

    此时由于页面大小限制,将不能在输出所输入的列数

    输入字母时:a

    输入10000   10 2 0 190 1     可能超出范围了,程序运行最后会报错。停止运行。。。

    输入20  4   2  1  0 100    1

    输出题目数量为负数时,提示出错

    输入错误时提示错误并重新输入

    由于程序写得不太完善,测试时出现很多问题,有待进一步的改进。

  • 相关阅读:
    图片懒加载原理-实例二
    节流函数(throttle)的原理
    防抖动函数(debounce)的原理
    立即执行函数(immediate)的原理
    图片懒加载原理-实例三
    图片懒加载原理-实例四:首屏加载
    js运算符优先级
    java实现链栈
    java实现栈
    静态链表以及几种表的比较
  • 原文地址:https://www.cnblogs.com/czl123/p/4341630.html
Copyright © 2011-2022 走看看