zoukankan      html  css  js  c++  java
  • 代码规范以及单元测试项目

    一、代码规范重写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)数据范围如果前边的数大于后边的数:结果是要求用户充新输入,并提示第一个数应该小于第二个数。如果用户重新输入正确的数,会得到正确的结果;

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

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

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

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

  • 相关阅读:
    sublime开启vim模式
    git命令行界面
    搬进Github
    【POJ 2886】Who Gets the Most Candies?
    【UVA 1451】Average
    【CodeForces 625A】Guest From the Past
    【ZOJ 3480】Duck Typing
    【POJ 3320】Jessica's Reading Problemc(尺取法)
    【HDU 1445】Ride to School
    【HDU 5578】Friendship of Frog
  • 原文地址:https://www.cnblogs.com/zhaixing/p/4340147.html
Copyright © 2011-2022 走看看