单元测试用例

代码规范:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
    //初始化
    int a,b,c;    
    int num1,num2;
    int num;
    int chufa;
    int k,jiange;
    int zhengchu;
    int j=0;
    int chengfa;
    int con;
    //请输入数的范围,中间用空格隔开:
    cout<<"请输入数的范围,中间用空格隔开:";
    cin>>num1>>num2;
    if(num1>num2)
    {
        cout<<"第一个数应该小于第二个数,请重输:";
        cin>>num1>>num2;
    
    }
    //控制题目的个数,num
    cout<<"其输入要出多少道题目:";
    cin>>num;
    
    if(num>(4*(num2-num1)^2))
    {
        cout<<"您输入的题目数量太多,会造成重复,请重新输入数目:";
        cin>>num;
    }

    //打印格式
    cout<<"一行几道题,行间距是几,中间空格:";
    cin>>k>>jiange;
    if(jiange>=5||jiange<0)
    {
        cout<<"您输入的间距太大或为负数,请重输:";
        cin>>jiange;
    }
    
    //是否要除法
    cout<<"是否要除法?是输入1,否输入0:";
    cin>>chufa;
    if(chufa==1)
    {
        cout<<"是否要有余数,是输入1,否输0:";
        cin>>zhengchu;
    }
    
    //是否要乘法
    cout<<"是否要乘法,是输入1,否输入0:";
    cin>>chengfa;

    cout<<endl;
    for(int i=0;i<num;i++)
    {    
        cout<<i+1<<"、";        
        a=(rand()%(num2-num1+1))+num1;
        b=(rand()%(num2-num1+1))+num1;
        
        if(chufa==1)
        {
            if(chengfa==1)
            {
                c=rand()%4;//0-3
            }
            else
            {
                c=rand()%3;//0-2
            }
        }
        else
        {
            if(chengfa==1)
            {
                c=rand()%3+1;//1-3
            }
            else
            {
                c=rand()%2+1;//1-2
            }
        }

        switch (c)
        {
            case 1:
                cout<<a<<"+"<<b<<"="<<"\t";
                break;
            case 2:
                if(a>b)
                {
                    cout<<a<<"-"<<b<<"="<<"\t";
                }
                else
                {
                    cout<<b<<"-"<<a<<"="<<"\t";
                }
                break;
            case 3:            
                cout<<a<<"*"<<b<<"="<<"\t";
                break;
            case 0://除法
                if(zhengchu==1)//有余数
                {
                    if(b==0)
                    {
                        cout<<b<<"/"<<a<<"="<<"\t";
                    }
                    else
                    {
                        cout<<a<<"/"<<b<<"="<<"\t";    
                    }

                    
                }
                else
                {
                    while((j<100000)&&(a!=0)&&(b!=0)&&(a%b==0))
                    {
                        cout<<a<<"/"<<b<<"="<<"\t";
                        j++;
                    }
                    if((a!=0)&&(b!=0)&&(a%b==0))
                    {
                        cout<<a<<"/"<<b<<"="<<"\t";
                        //i++;
                    }
                    else
                    {
                        int j=0;
                        while(j<100000)
                        {
                            a=(rand()%(num2-num1+1))+num1;
                            b=(rand()%(num2-num1+1))+num1;
                            if((a!=0)&&(b!=0)&&(a%b==0))
                            {
                                cout<<a<<"/"<<b<<"="<<"\t";
                                //i++;
                                j=100000;
                                j++;
                            }
                            else
                            {
                                j++;
                            }
                        }
                    }                                
                }
                break;    
        }
        
        
        if((i+1)%k==0)
        {
            cout<<endl;
            for(int m=0;m<jiange;m++)
            {
                cout<<endl;
            }
        }
                
    }
    //继续吗?
    cout<<"继续吗?是输入1,否输入0:"<<endl;
    cin>>con;
    if(con==1)
    {
        cout<<endl;
        main();
    }
    else
    {
        return 0;
    }
    getch();
    return 0;
}

单元测试项目:


#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
    cout<<"请输入8个数据,分别表示num1,num2,num,k(一行几个),jiange,chufa,yushu,chengfa"<<endl;
    //测试模块
    int a[8];
    for(int n=0;n<8;n++)
    {
        cin>>a[n];
    }
    

    //初始化
    int s,b,c;    
    //int a[0],a[1];
    //int a[2];
    //int a[5];
    //int a[3],a[4];
    //int a[6];
    int j=0;
    //int a[7];
    int con;
    //请输入数的范围,中间用空格隔开:
    //cout<<"请输入数的范围,中间用空格隔开:";
    //cin>>a[0]>>a[1];
    if(a[0]>a[1])
    {
        cout<<"第一个数应该小于第二个数,请重输:";
        cin>>a[0]>>a[1];
    }
    //控制题目的个数,a[2]
    //cout<<"其输入要出多少道题目:";
    //cin>>a[2];
    
    if(a[2]>(4*(a[1]-a[0])^2))
    {
        cout<<"您输入的题目数量太多,会造成重复,请重新输入数目:";
        cin>>a[2];
    }
    else if(a[2]<=0)
    {
        cout<<"请输入大于0的题目数:";
        cin>>a[2];
    }

    //打印格式
    //cout<<"一行几道题,行间距是几,中间空格:";
    //cin>>a[3]>>a[4];
    if(a[4]>=5)
    {
        cout<<"您输入的间距太大,请重输:";
        cin>>a[4];
    }
    if(a[4]<0)
    {
        cout<<"您输入的间距为负数,请重输:";
        cin>>a[4];
    }
    //是否要除法
    //cout<<"是否要除法?是输入1,否输入0:";
    //cin>>a[5];

    //cout<<"是否要有余数,是输入1,否输0:";
    //cin>>a[6];
    
    
    //是否要乘法
    //cout<<"是否要乘法,是输入1,否输入0:";
    //cin>>a[7];

    

    cout<<endl;
    for(int i=0;i<a[2];i++)
    {    
        cout<<i+1<<"、";        
        s=(rand()%(a[1]-a[0]+1))+a[0];
        b=(rand()%(a[1]-a[0]+1))+a[0];
        
        if(a[5]==1)
        {
            if(a[7]==1)
            {
                c=rand()%4;//0-3
            }
            else
            {
                c=rand()%3;//0-2
            }
        }
        else
        {
            if(a[7]==1)
            {
                c=rand()%3+1;//1-3
            }
            else
            {
                c=rand()%2+1;//1-2
            }
        }

        switch (c)
        {
            case 1:
                cout<<s<<"+"<<b<<"="<<"\t";
                break;
            case 2:
                if(s>b)
                {
                    cout<<s<<"-"<<b<<"="<<"\t";
                }
                else
                {
                    cout<<b<<"-"<<s<<"="<<"\t";
                }
                break;
            case 3:            
                cout<<s<<"*"<<b<<"="<<"\t";
                break;
            case 0://除法
                if(a[6]==1)//有余数
                {
                    if(b==0)
                    {
                        cout<<b<<"/"<<s<<"="<<"\t";
                    }
                    else
                    {
                        cout<<s<<"/"<<b<<"="<<"\t";    
                    }

                    
                }
                else
                {
                    while((j<100000)&&(s!=0)&&(b!=0)&&(s%b==0))
                    {
                        cout<<s<<"/"<<b<<"="<<"\t";
                        j++;
                    }
                    if((s!=0)&&(b!=0)&&(s%b==0))
                    {
                        cout<<s<<"/"<<b<<"="<<"\t";
                        //i++;
                    }
                    else
                    {
                        int j=0;
                        while(j<100000)
                        {
                            s=(rand()%(a[1]-a[0]+1))+a[0];
                            s=(rand()%(a[1]-a[0]+1))+a[0];
                            if((s!=0)&&(b!=0)&&(s%b==0))
                            {
                                cout<<s<<"/"<<b<<"="<<"\t";
                                //i++;
                                j=100000;
                                j++;
                            }
                            else
                            {
                                j++;
                            }
                        }
                    }                                
                }
                break;    
        }
        
        
        if((i+1)%a[3]==0)
        {
            cout<<endl;
            for(int m=0;m<a[4];m++)
            {
                cout<<endl;
            }
        }
                
    }
    //继续吗?
    cout<<"继续吗?是输入1,否输入0:"<<endl;
    cin>>con;
    if(con==1)
    {
        cout<<endl;
        main();
    }
    else
    {
        return 0;
    }
    getch();
    return 0;
}

1.测试结果是否正确:

有三种情况:(1)数据是:0 900 90 4 0 1 1 1;其意义是显示0-900之间不重复的每行4个间距为0的90道有加减乘除(除法有余数)的四则运算题,结果正确 如截图

(2)数据是:0 900 80 5 1 1 0 1;其意义是显示0-900之间不重复的每行5个间距为1的80道有加减乘除(除法无余数)的四则运算题,结果正确 如截图

(3)数据是:0 900 80 4 0 0 0 0;其意义是显示0-900之间不重复的每行4个间距为0的80道有加减无乘除的四则运算题,结果正确 如截图

2.边界值测试:

(1)数据范围如果前边的数大于后边的数:结果是要求用户充新输入,并提示第一个数应该小于第二个数。如果用户重新输入正确的数,会得到正确的结果;

  题目数量不能超过数据范围,超过会重复;结果要求用户重新输入,并提示应输入一个小点的书。如果用户重新输入正确的数,会得到正确的结果;

  间距不能太大,否则影响做题,不能为负数;结果要求用户重新输入,并提示相关信息。如果用户重新输入正确的输,会得到正确的结果;

  测试结果正确,如下截图:

 

posted @ 2016-03-13 15:41  伟哥8882  阅读(365)  评论(1编辑  收藏  举报