一:前瞻
程序必不可少的一步就是最后的维护与测试,所以我的这个程序虽小但是也是不可缺少测试,一下是我测试的内容:
测试数据的顺序意:1.题目数量;2.题目列数;3.打印间隔;4.数值最大数;5.式内有无乘除;6.加减有无负数。54
测试包括内容:边缘测试,效果测试,不正当操作测试等。
二:测试
测试一:
1.列边界测试:54,23,2,34,1,1
2.建议小于7,同理两行之间也不能太大,便设置行距小于5
测试数:23,(8,-1,3),(7,2),89,1,1
测试二:
1.加减数条件控制:34,5,(8,2),46,0,23
2.加减数条件控制中若输入非1.0数报错,同理乘除控制也一样,便加以程序修改
测试数:34,3,5,234,(34,2,1),(34,0)
测试三:
1.出题数量:-23,3,2,1,1,1
2.应该控制出题数量为正数,应根据实际情况控制出题数量在0到100道之间,数值范围在500之内有效,修改如下。
测试数:(324,-23,34),2,1,(2309,23),1,(3,0)
测试四:在上图中发现除数有O,则从新修改。 if (n==3){ Y=Y+1; },最终效果如下:
三:代码
#include<iostream.h>
#include<stdlib.h>
void size(int X,int Y)
{
int d,n,a,i,j,b,c1,c2,z,e,x,y,m,h,t;
cout<<" "<<"1.题目的数量(1~100):";
cin>>m;
while(m>100||m<0)
{
cout<<" .请正确输入数量:";
cin>>m;
}
cout<<endl;
cout<<" "<<"2.题目的列数(1~7):";
cin>>h;
while(h>7||h<0)
{
cout<<" .请正确输入列数:";
cin>>h;
}
cout<<endl;
cout<<" "<<"3.打印间隔(1~5):";
cin>>t;
while(t>5||t<0)
{
cout<<" .请正确输入间隔:";
cin>>t;
}
cout<<endl;
cout<<" "<<"4.数值最大为多少:";
cin>>b;
while(b>500||b<-500)
{
cout<<" .请重新输入最大数(0~500):";
cin>>b;
}
cout<<endl;
cout<<" "<<"5.式内是否有乘除(有:1;无:0):";
cin>>a;
while(a!=1&&a!=0)
{
cout<<" .请重新输入条件:";
cin>>a;
}
cout<<endl;
cout<<" "<<"6.加减数有无负数(有:1;无:0):";
cin>>z;
while(z!=1&&z!=0)
{
cout<<" .请重新输入条件:";
cin>>z;
}
cout<<endl;
cout<<"***********"<<"以下是题目"<<"*****************"<<endl;
for(i=0;i<m;i++)
{
cout<<i+1<<".";
X=rand()%b;
Y=rand()%b;
d=rand();
e=rand();
c1=d%2;
c2=e%2;
n=d%4;
//------------------------------------有无乘除
switch(a)
{
case 0:
if(n>1)
{
n=n-2;
};break;
case 1: break;
default:cout<<"输入的乘除控制条件错误!";
}
//------------------------------------加减有无负数
switch(z)
{
case 0:break;
case 1: x=(-1)^c1*X;
y=(-1)^c2*Y;break;
default:cout<<"输入的加减控制条件错误!";
}
//----------------------------------控制括号和输出
if (n==3)
{
Y=Y+1;
}
switch(n)
{
case 0:if(z>0)
{
cout<<x<<"+"<<"("<<y<<")"<<"="<<" ";
}
else
{
cout<<X<<"+"<<Y<<"="<<" ";
};break;
case 1:if(z>0)
{
cout<<x<<"-"<<"("<<y<<")"<<"="<<" ";
}
else
{
cout<<X<<"-"<<Y<<"="<<" ";
};break;
case 2:cout<<X<<"*"<<Y<<"="<<" ";break;
case 3:cout<<X<<"/"<<Y<<"="<<" ";break;
}
//----------------------------------------控制列数,和两行间隔数
if((i+1)%h==0)
{
for(j=0;j<t;j++)
{
cout<<endl;
}
}
}
cout<<endl;
}
//--------------------------主函数
int main()
{
int a;
int b;
cout<<"***********"<<"四则运算题目定制:"<<"************"<<endl<<endl;
size(a,b);
return 0;
}
四:总结
在这次的测试中发现了非常多的错误,小的程序都这么多的错误,考虑如此的不严谨,大的项目更是复杂。所以在以后的编程中,首先充实自己的知识,学会严谨的思维,在这重要的是要做好测试这样一步。