• 四则运算程序测试


    一:前瞻

    程序必不可少的一步就是最后的维护与测试,所以我的这个程序虽小但是也是不可缺少测试,一下是我测试的内容:

       测试数据的顺序意:1.题目数量;2.题目列数;3.打印间隔;4.数值最大数;5.式内有无乘除;6.加减有无负数。54

       测试包括内容:边缘测试,效果测试,不正当操作测试等。

    二:测试

    测试一:

    1.列边界测试:54,23,2,34,1,1

      2.建议小于7,同理两行之间也不能太大,便设置行距小于5

         测试数:23,(8,-1,3),(7,2),89,1,1

    测试二:

    1.加减数条件控制:34,5,(8,2),46,0,23

       2.加减数条件控制中若输入非1.0数报错,同理乘除控制也一样,便加以程序修改

      测试数:34,3,5,234,(34,2,1),(34,0)

    测试三:

    1.出题数量:-23,3,2,1,1,1

    2.应该控制出题数量为正数,应根据实际情况控制出题数量在0100道之间,数值范围在500之内有效,修改如下。

    测试数:(324,-23,34),2,1,(2309,23),1,(3,0)

    测试四:在上图中发现除数有O,则从新修改。 if (n==3){ Y=Y+1; },最终效果如下:

    三:代码

    #include<iostream.h>
    #include<stdlib.h>
    void size(int X,int Y)
    {

    int d,n,a,i,j,b,c1,c2,z,e,x,y,m,h,t;

    cout<<" "<<"1.题目的数量(1~100):";
    cin>>m;
    while(m>100||m<0)
    {
    cout<<" .请正确输入数量:";
    cin>>m;

    }
    cout<<endl;

    cout<<" "<<"2.题目的列数(1~7):";
    cin>>h;
    while(h>7||h<0)
    {
    cout<<" .请正确输入列数:";
    cin>>h;

    }

    cout<<endl;

    cout<<" "<<"3.打印间隔(1~5):";
    cin>>t;
    while(t>5||t<0)
    {
    cout<<" .请正确输入间隔:";
    cin>>t;

    }
    cout<<endl;


    cout<<" "<<"4.数值最大为多少:";
    cin>>b;
    while(b>500||b<-500)
    {
    cout<<" .请重新输入最大数(0~500):";
    cin>>b;

    }
    cout<<endl;

    cout<<" "<<"5.式内是否有乘除(有:1;无:0):";
    cin>>a;
    while(a!=1&&a!=0)
    {
    cout<<" .请重新输入条件:";
    cin>>a;

    }
    cout<<endl;

    cout<<" "<<"6.加减数有无负数(有:1;无:0):";
    cin>>z;
    while(z!=1&&z!=0)
    {
    cout<<" .请重新输入条件:";
    cin>>z;

    }
    cout<<endl;
    cout<<"***********"<<"以下是题目"<<"*****************"<<endl;

    for(i=0;i<m;i++)

    {
    cout<<i+1<<".";

    X=rand()%b;
    Y=rand()%b;
    d=rand();
    e=rand();

    c1=d%2;
    c2=e%2;

    n=d%4;
    //------------------------------------有无乘除
    switch(a)
    {
    case 0:
    if(n>1)
    {
    n=n-2;
    };break;
    case 1: break;
    default:cout<<"输入的乘除控制条件错误!";

    }

    //------------------------------------加减有无负数

    switch(z)
    {
    case 0:break;
    case 1: x=(-1)^c1*X;

    y=(-1)^c2*Y;break;
    default:cout<<"输入的加减控制条件错误!";
    }

    //----------------------------------控制括号和输出

    if (n==3)
    {
    Y=Y+1;
    }
    switch(n)
    {
    case 0:if(z>0)
    {
    cout<<x<<"+"<<"("<<y<<")"<<"="<<" ";
    }
    else
    {
    cout<<X<<"+"<<Y<<"="<<" ";
    };break;
    case 1:if(z>0)
    {
    cout<<x<<"-"<<"("<<y<<")"<<"="<<" ";
    }
    else
    {
    cout<<X<<"-"<<Y<<"="<<" ";
    };break;
    case 2:cout<<X<<"*"<<Y<<"="<<" ";break;
    case 3:cout<<X<<"/"<<Y<<"="<<" ";break;

    }


    //----------------------------------------控制列数,和两行间隔数

    if((i+1)%h==0)
    {
    for(j=0;j<t;j++)
    {
    cout<<endl;
    }
    }
    }
    cout<<endl;
    }
    //--------------------------主函数
    int main()
    {
    int a;
    int b;
    cout<<"***********"<<"四则运算题目定制:"<<"************"<<endl<<endl;
    size(a,b);
    return 0;
    }

    四:总结

       在这次的测试中发现了非常多的错误,小的程序都这么多的错误,考虑如此的不严谨,大的项目更是复杂。所以在以后的编程中,首先充实自己的知识,学会严谨的思维,在这重要的是要做好测试这样一步。

  • 相关阅读:
    Linux(Ubuntu)使用日记------ssh远程登录腾讯云
    Linux(Ubuntu)使用日记------vim复制内容到其他应用
    Linux(Ubuntu)使用日记(七)------终端控制器Terminator安装使用
    Error updating database. Cause: java.sql.SQLException: Access denied for user '${username}'@'localhost' (using password: YES)
    Linux(Ubuntu)使用日记(三)------git安装使用
    90分钟实现一门编程语言——极简解释器教程
    新人入职100天,聊聊自己的经验&教训
    2010~2013,三年三十万+,从挣钱角度回忆自己研究生三年时光
    flex布局总结
    react项目 之 server-mongod数据库框架
  • 原文地址:https://www.cnblogs.com/bmbcbyc/p/4341593.html
Copyright © 2020-2023  润新知