zoukankan      html  css  js  c++  java
  • 四则运算程序测试

    一:前瞻

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

       测试数据的顺序意: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;
    }

    四:总结

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

  • 相关阅读:
    使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示
    ABP .Net Core 日志组件集成使用NLog
    ABP .Net Core Entity Framework迁移使用MySql数据库
    ABP前端使用阿里云angular2 UI框架NG-ZORRO分享
    阿里云 Angular 2 UI框架 NG-ZORRO介绍
    Visual Studio 2019 Window Form 本地打包发布猫腻
    VS Code + NWJS(Node-Webkit)0.14.7 + SQLite3 + Angular6 构建跨平台桌面应用
    ABP .Net Core 调用异步方法抛异常A second operation started on this context before a previous asynchronous operation completed
    ABP .Net Core To Json序列化配置
    .Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.”
  • 原文地址:https://www.cnblogs.com/bmbcbyc/p/4341593.html
Copyright © 2011-2022 走看看