一:前瞻

程序必不可少的一步就是最后的维护与测试,所以我的这个程序虽小但是也是不可缺少测试,一下是我测试的内容:

   测试数据的顺序意: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.应该控制出题数量为正数,应根据实际情况控制出题数量在0100道之间,数值范围在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;
}

四:总结

   在这次的测试中发现了非常多的错误,小的程序都这么多的错误,考虑如此的不严谨,大的项目更是复杂。所以在以后的编程中,首先充实自己的知识,学会严谨的思维,在这重要的是要做好测试这样一步。

 

posted on 2015-03-16 13:19  半梦半痴半愚蠢  阅读(268)  评论(0编辑  收藏  举报