四则运算2程序测试

1.测试数据:
请输入需要出题数目:50

请输入要显示的列数:2

请输入数值范围(0—n):100

请选择题目类型:1

请选择加减法有无负数:1

请选择除法有无余数:1

截图:

出现错误,继续用其他数据测试:

(1)请输入需要出题数目:50

请输入要显示的列数:2

请输入数值范围(0—n):100

请选择题目类型:1

请选择加减法有无负数:0

请选择除法有无余数:0

(2)请输入需要出题数目:50

请输入要显示的列数:2

请输入数值范围(0—n):100

请选择题目类型:1

请选择加减法有无负数:1

请选择除法有无余数:0

(3)请输入需要出题数目:50

请输入要显示的列数:2

请输入数值范围(0—n):100

请选择题目类型:1

请选择加减法有无负数:0

请选择除法有无余数:1

分析:发现除了第三种数据出错,其余均正常,应是除法无余数部分出错,检查发现应是两个while循环导致程序崩溃。

void chuyu(int n)     //无余数除法
{
   int a,b;
   a=rand()%n;     
   b=rand()%n;           
   while(b==0)
     {
        b=rand()%n;
     }
    while(a%b!=0)     
     {
        a=rand()%n;
        b=rand()%n;
     }
     cout<<a<<"/"<<b<<"="<<"    ";
}

用if语句替换while循环后正常:

void chuyu(int n)     //无余数除法
{
   int a,b;
   a=rand()%n;     
   b=rand()%n;           
   if(b==0)
     {
        b=rand()%n+1;
     }
   if(a%b!=0)     
     {
        a=rand()%n+1;
        b=rand()%n+2;
     }
     cout<<a<<"/"<<b<<"="<<"    ";
}

2.测试数据:
请输入需要出题数目:-10

请输入要显示的列数:2

请输入数值范围(0—n):100

请选择题目类型:1

请选择加减法有无负数:1

请选择除法有无余数:1

截图:

当题目数量出现负数出错,加入while循环控制

 while(m<=0)
 {
  cout<<"输入数目有误,请重新输入:"<<endl;
  cin>>m;
 }

3.测试数据:
请输入需要出题数目:10

请输入要显示的列数:2

请输入数值范围(0—n):100

请选择题目类型:1

请选择加减法有无负数:3,6,0

请选择除法有无余数:3,5,0

即与供选择代号不同则出错,同样加入while循环修改

while((r!=0)&&(r!=1))
 {
  cout<<"输入数目有误,请重新输入:"<<endl;
  cin>>r;
 }

截图:

4.请输入需要出题数目:10000,100000,100000000

请输入要显示的列数:10

请输入数值范围(0—n):100

请选择题目类型:1

请选择加减法有无负数:0

请选择除法有无余数:0

分析:用大数量测试,结果不停输出,应可以实现

截图:

程序应还有不足之处,需不断完善。

原文地址:https://www.cnblogs.com/dr73/p/4342418.html