• 《四则运算》测试程序


      一、我的程序没有用到函数,所有的代码全部在主函数里,所以在这里只能用写过的部分程序进行测试。

      二、源代码

        

    #include "stdafx.h"
    #include<iostream.h>
    #include<stdlib.h>
    #include<time.h>
    int main(int argc, char* argv[])
    {
        srand(time(NULL));
        int    ph[10];                     //建立捕获数组,用以存放输入的选则  
        int Pway,num1,num2;                      //用来表示打印方式
        int i,j;
        printf("以下均用0表示输入“否”,用1表示输入“是”
    ");
        printf("请输入要打印的题目数量:");
        scanf("%d",&ph[0]);                      //a[0]存放打印题的数量
        printf("请输入打印的方式(列数):");
        scanf("%d",&ph[1]);                                    //a[1]代表输入的列数
        printf("请输入是否有乘除法:");
        scanf("%d",&ph[2]);                                          //a[2]代表有无乘除法
        printf("请输入数值范围:");
        scanf("%d",&ph[3]);
        for(i=0; i<ph[0]; i++)
        {
            num1 = rand()%(ph[3]+1);
            num2 = rand()%(ph[3]+1);
            switch(ph[2])
            {
            case 0:                         //如果没有乘除法
                Pway = rand()%2;            //构造随机函数,输出只有加减法的运算
                if(Pway == 0)                //加法
                {
                    printf("<%d>%d+%d=	",i+1,num1,num2);
                    if((i+1)%ph[1] == 0)
                    {
                        printf("
    ");
                    }
                }
                else
                {
                    printf("<%d>%d-%d=	",i+1,num1,num2);
                    if((i+1)%ph[1] == 0)              //判断是否换行
                    {
                        printf("
    ");
                    }
                }
                break;
            case 1:                                   //有乘除法的输出
                Pway = rand()%4;
                switch(Pway)                
                {
                case 0:                                     //加法
                    printf("<%d>%d+%d=	",i+1,num1,num2);
                    if((i+1)%ph[1] == 0)
                    {
                        printf("
    ");
                    }
                    break;
                case 1:
                    if(ph[4] == 0)
                    {
                        if(num1<num2)                //确定被减数大于减数,其他的控制如上述减法的控制
                        {
                            i = i-1;
                        }
                        else
                        {
                            printf("<%d>%d-%d=	",i+1,num1,num2); 
                            if((i+1)%ph[1] == 0)
                            {
                                printf("
    ");
                            }
                        }
                    }
                    else
                    {
                        printf("<%d>%d-%d=	",i+1,num1,num2);
                        if((i+1)%ph[1] == 0)
                        {
                            printf("
    ");
                        }
                    }
                    break;
                case 2:                                //乘法
                    printf("<%d>%d×%d=	",i+1,num1,num2);
                    if((i+1)%ph[1] == 0)
                    {
                        printf("
    ");
                    }
                    break;
                case 3:                                //除法
                    if(num2 == 0)                       //除数不能为零
                    {
                        i = i - 1;
                    }
                    else
                    {
                        printf("<%d>%d÷%d=	",i+1,num1,num2);
                        if((i+1)%ph[1] == 0)
                        {
                            printf("
    ");
                        }
                    }
                    break;
                default:
                    printf("出错!
    ");
                    break;
                }
                break;
            default:
                printf("出错!
    ");
                break;
            }
        }
        return 0;
    }

    三、测试数据及结果截图

      1.测试数据:1,2,0,10,即题目数量1,打印方式是2列,没有乘除法,数值范围是10以内的非负数。

     

      2.测试数据:30,4,0,20,即题目数量30,打印方式是4列,没有乘除法,数值范围是20以内的非负数。

      3.测试数据:30,5,1,40,即题目数量30,打印方式是5列,有乘除法,数值范围是40以内的非负数。

    四、说明

        在本程序的测试结果中,并没有出现错误,对于边缘数据的输入如上图片所示。但代码对于处理异常的功能并没有实现,

      比如说当输入的不是数字而是字符时,所以在这方面并没有做相应的测试。

  • 相关阅读:
    调研《构建之法》指导下的历届作品
    需求分析与原型设计
    软件工程的实践项目课程的自我目标
    php 字符串的一些操作,以便记忆
    MOTT的学习(一)
    session,cookie
    php Curl_setop 的学习
    使用Git进行代码管理的心得
    搭建andiord sdk和安装eclipse adt插件的个人小体会
    这些天自身努力的体会,关于java方面的
  • 原文地址:https://www.cnblogs.com/littlechar/p/4341569.html
Copyright © 2020-2023  润新知