• 代码规范以及单元测试项目


    一、代码规范重写30道四则运算

    /**
    作者:程鹏远
    题目:30道2年纪四则运算题目
    */
    #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<<"="<<"	";
                    break;
                case 2:
                    if(a>b)
                    {
                        cout<<a<<"-"<<b<<"="<<"	";
                    }
                    else
                    {
                        cout<<b<<"-"<<a<<"="<<"	";
                    }
                    break;
                case 3:            
                    cout<<a<<"*"<<b<<"="<<"	";
                    break;
                case 0://除法
                    if(zhengchu==1)//有余数
                    {
                        if(b==0)
                        {
                            cout<<b<<"/"<<a<<"="<<"	";
                        }
                        else
                        {
                            cout<<a<<"/"<<b<<"="<<"	";    
                        }
    
                        
                    }
                    else
                    {
                        while((j<100000)&&(a!=0)&&(b!=0)&&(a%b==0))
                        {
                            cout<<a<<"/"<<b<<"="<<"	";
                            j++;
                        }
                        if((a!=0)&&(b!=0)&&(a%b==0))
                        {
                            cout<<a<<"/"<<b<<"="<<"	";
                            //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<<"="<<"	";
                                    //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;
    }

    二、单元测试项目

     编写相关测试程序:源代码如下:

     
    /**
    作者:程鹏远
    题目:30道2年纪四则运算题目
    */
    #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<<"="<<"	";
                    break;
                case 2:
                    if(s>b)
                    {
                        cout<<s<<"-"<<b<<"="<<"	";
                    }
                    else
                    {
                        cout<<b<<"-"<<s<<"="<<"	";
                    }
                    break;
                case 3:            
                    cout<<s<<"*"<<b<<"="<<"	";
                    break;
                case 0://除法
                    if(a[6]==1)//有余数
                    {
                        if(b==0)
                        {
                            cout<<b<<"/"<<s<<"="<<"	";
                        }
                        else
                        {
                            cout<<s<<"/"<<b<<"="<<"	";    
                        }
    
                        
                    }
                    else
                    {
                        while((j<100000)&&(s!=0)&&(b!=0)&&(s%b==0))
                        {
                            cout<<s<<"/"<<b<<"="<<"	";
                            j++;
                        }
                        if((s!=0)&&(b!=0)&&(s%b==0))
                        {
                            cout<<s<<"/"<<b<<"="<<"	";
                            //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<<"="<<"	";
                                    //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)数据范围如果前边的数大于后边的数:结果是要求用户充新输入,并提示第一个数应该小于第二个数。如果用户重新输入正确的数,会得到正确的结果;

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

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

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

    经以上结果可以看出,基本满足用户的功能要求。

  • 相关阅读:
    Spring配置文件中的那些标签意味着什么(持续更新)
    转 spring配置文件
    Web.xml配置详解之context-param
    web.xml 中的listener、 filter、servlet 加载顺序及其详解
    spring mvc 中web.xml配置信息解释
    转 一个web项目web.xml的配置中<context-param>配置作用
    在web.xml中通过contextConfigLocation配置spring
    (转)web.xml中的contextConfigLocation在spring中的作用
    Android菜鸟的成长笔记(20)——IntentService
    PhotoSwipe源码解读系列(二)
  • 原文地址:https://www.cnblogs.com/zhaixing/p/4340147.html
Copyright © 2020-2023  润新知