• 四则运算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.总结。

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

  • 相关阅读:
    【下载源码】在线生成网页缩略图.超越Snap.com:WebSnap Beta 1.1 发布。感谢博客园的“萧寒”重写的底层。开源。
    有时候看.neter的表现,真的很奇怪。那种近在眼前而不见的茫然,真的让你为之着急——说说XML的无效字符
    初来乍到,发布一个杀手应用:snap.com的web预览图功能,我给它取名叫“WebSnap”
    湖南长沙火车站,我为你感到羞愧。
    也谈UpdatePanel与UrlRewrite一起work时出现Form Action属性的问题
    JAVA的内存管理
    Handler+looper+Message的分享教程。 转
    更改TabHost标签的背景
    多线程任务的优化1:探讨AsyncTask的缺陷【转】
    聊天类android应用的一些技术细节
  • 原文地址:https://www.cnblogs.com/nulidexuezha/p/4342258.html
Copyright © 2020-2023  润新知