代碼規範以及單元測試項目

1、代碼規範重寫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<<"="<<"\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;
}

 

2、單元測試項目ios

 編寫相關測試程序:源代碼以下:單元測試

 
/**
做者:程鵬遠
題目: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<<"="<<"\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道有加減乘除(除法有餘數)的四則運算題,結果正確 如截圖spa

(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道有加減無乘除的四則運算題,結果正確 如截圖code

2.邊界值測試:blog

(1)數據範圍若是前邊的數大於後邊的數:結果是要求用戶充新輸入,並提示第一個數應該小於第二個數。若是用戶從新輸入正確的數,會獲得正確的結果;ci

  題目數量不能超過數據範圍,超過會重複;結果要求用戶從新輸入,並提示應輸入一個小點的書。若是用戶從新輸入正確的數,會獲得正確的結果;get

  間距不能太大,不然影響作題,不能爲負數;結果要求用戶從新輸入,並提示相關信息。若是用戶從新輸入正確的輸,會獲得正確的結果;it

  測試結果正確,以下截圖:

 

經以上結果能夠看出,基本知足用戶的功能要求。

相關文章
相關標籤/搜索