四则运算2单元测试

1.测试计划。

   测试用户不按照正常选项输入时,程序的相关处理。还有就是程序中有判断重复的语句,当在某个数值范围内无法产生用户想要的算式个数时,会暂停,不再执行程序。

2.代码情况。

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
using namespace std;
#include <ctime>
#include <cstdlib>
void panduanchongfu()
{
    int d,e,k,m,n;
    int o=0,b=0;
    cout<<"请输入要显示的四则运算的个数"<<endl;
    cin>>k;
    cout<<endl;
    int shuzi[200][4];
    char yunsuanfu[4]={'+','-','*','/'};
    char fuhao[16][2]={{'+','+'},{'+','-'},{'+','*'},{'+','/'},{'-','+'},{'-','-'},{'-','*'},{'-','/'},{'*','+'},{'*','-'},{'*','*'},{'*','/'},{'/','+'},{'/','-'},{'/','*'},{'/','/'}};
    int g[100];    
    srand(time(0));//根据系统时间设置随机数种子
    int r,t,temp;
    cout<<"-------------------"<<endl;
    cout<<"请输入产生式数字的范围。(请输入两个数字:如 10 50:代表产生式的数字范围为(10-50)"<<endl;
    cout<<"-------------------"<<endl;
    cin>>r>>t;
    cout<<endl;
    if(r>t)
    {
        temp=r;
        r=t;
        t=temp;
    }
    int a;
    cout<<"-------------------"<<endl;
    cout<<"0.无乘除法。"<<endl;
    cout<<"1.有乘除法。"<<endl;
    cout<<"请输入选项(0或1)"<<endl;
    cout<<"-------------------"<<endl;
    cin>>a;
    cout<<endl;
    for(int i=0;i<k;i++)
    {
        shuzi[i][0]=rand()%(t-r)+r;//取得区间[0,100)的整数
        shuzi[i][1]=rand()%(t-r)+r;
        shuzi[i][2]=rand()%(t-r)+r;
        shuzi[i][3]=rand()%(t-r-1)+r+1;
        d=rand()%100;
        e=rand()%100;
        if(a==1||a==0) 
        {
            switch(a)
            {
            case 0:
                n=e%2;//判断运算符号的随机数
                m=d%2;
                break;
            case 1:
                n=e%4;//判断运算符号的随机数
                m=d%4;
                break;
            }
        }
        else
        {
            cout<<"输入选项有误,请正确输入。"<<endl;
            cout<<"-------------------"<<endl;
            cout<<"0.无乘除法。"<<endl;
            cout<<"1.有乘除法。"<<endl;
            cout<<"请输入选项(0或1)"<<endl;
            cout<<"-------------------"<<endl;
            cin>>a;
            i=i-1;
            continue;
        }
        if((shuzi[i][1]==0&&m==3&&a==0)||(shuzi[i][2]==0&&n==3&&a==0))
        {
            i=i-1;
        }
        else
        {
            for(int l=0;l<16;l++)
            {
                if(yunsuanfu[m]==fuhao[l][0]&&yunsuanfu[n]==fuhao[l][1])
                {
                    
                    g[o]=l;
                    o++;
                }
            }
            for(int j=i-1;j>=0;j--)
            {
                if(shuzi[i][0]==shuzi[j][0]&&shuzi[i][1]==shuzi[j][1]&&shuzi[i][2]==shuzi[j][2]&&g[i]==g[j])
                {
                    i=i-1;
                    break;
                }
            }
        }
    }
    for(i=0;i<k;i++)
    {
        if(g[i]==12||g[i]==13||g[i]==14)
        {
            cout<<""<<i+1<<"题:"<<shuzi[i][0]<<"÷"<<shuzi[i][1]<<fuhao[g[i]][1]<<shuzi[i][2]<<"="<<endl;
        }
        else if(g[i]==3||g[i]==7||g[i]==11)
        {
            cout<<""<<i+1<<"题:"<<shuzi[i][0]<<fuhao[g[i]][0]<<shuzi[i][1]<<"÷"<<shuzi[i][2]<<"="<<endl;
        }
        else if(g[i]==15)
        {
            cout<<""<<i+1<<"题:"<<shuzi[i][0]<<"÷"<<shuzi[i][1]<<"÷"<<shuzi[i][2]<<"="<<endl;
        }
        else
            cout<<""<<i+1<<"题:"<<shuzi[i][0]<<fuhao[g[i]][0]<<shuzi[i][1]<<fuhao[g[i]][1]<<shuzi[i][2]<<"="<<endl;
    }
    
    
    
    
}

int main()
{
    panduanchongfu();
    return 0;
}

 

3.测试情况。

当用户输入除0和1之外的数字或字符时,程序会提示输入错误,并提示重新输入。

 

4.总结。

对于任何程序的是由人来操作的,总会产生一些问题,所以应该尽量使得程序更人性化,对于用户的一些错误操作有更好的提示或者处理一些错误操作。使得程序更加完善。

 

posted @ 2015-03-16 16:57  努力的学渣  阅读(131)  评论(0编辑  收藏  举报