标签:
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
分析:用大数量测试,结果不停输出,应可以实现
截图:
程序应还有不足之处,需不断完善。
标签:
原文地址:http://www.cnblogs.com/dr73/p/4342418.html