一:前瞻
程序必不可少的一步就是最后的维护与测试,所以我的这个程序虽小但是也是不可缺少测试,一下是我测试的内容:
测试数据的顺序意: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;
}
四:总结
在这次的测试中发现了非常多的错误,小的程序都这么多的错误,考虑如此的不严谨,大的项目更是复杂。所以在以后的编程中,首先充实自己的知识,学会严谨的思维,在这重要的是要做好测试这样一步。
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号