zoukankan      html  css  js  c++  java
  • 复利计算测试(C语言)

    对我们和复利计算程序,写单元测试。 

       有哪些场景?

       期待的返回值

       写测试程序。

       运行测试。

    测试模块 测试输入 预期结果 运行结果 bug跟踪
    计算终值 (本金,年限,利率) 终值    
    1 (1000,10,0,.3) 13785.85 13785.85  
    2 (0,10,0.3) 提示输入错误,重新输入 0.00 已修改,弹出提示:输入错误!!重新输入
    3 (-1000,10,0.3) 提示输入错误,重新输入 -13785.85 已修改,弹出提示:输入错误!!重新输入
    4 (1000,0,0.3) 提示输入错误,重新输入 1000.00 已修改,弹出提示:输入错误!!重新输入
    5 (1000,10,0) 提示输入错误,重新输入 1000.00 已修改,弹出提示:输入错误!!重新输入
    计算本金 (年限,利率,终值) 本金    
    1 (10,0.3,30000) 7500.00 7500.00  
    2 (0,0.3,30000) 提示输入错误,重新输入 30000.00 已修改,弹出提示:输入错误!!重新输入
    3 (-10,0.3,30000) 提示输入错误,重新输入 -15000.00 已修改,弹出提示:输入错误!!重新输入
    4 (10,0,30000) 提示输入错误,重新输入 30000.00 已修改,弹出提示:输入错误!!重新输入
    5 (10,0.3,-3000) 提示输入错误,重新输入 -7500.00 已修改,弹出提示:输入错误!!重新输入
    计算时间 (本金,利率,终值) 时间    
    1 (1000,0.3,3000) 4 4  
    2 (0,0.3,3000) 提示输入错误,重新输入 1 已修改,弹出提示:输入错误!!重新输入
    3 (-1000,0.3,3000) 提示输入错误,重新输入 -1 已修改,弹出提示:输入错误!!重新输入
    4 (1000,0,3000) 提示输入错误,重新输入 1 已修改,弹出提示:输入错误!!重新输入
    5 (1000,-0.3,3000) 提示输入错误,重新输入 -3 已修改,弹出提示:输入错误!!重新输入
    计算利率 (本金,年限,终值) 利率    
    1 (1000,10,30000) 0.41 0.41  
    2 (0,10,30000) 提示输入错误,重新输入 乱码 已修改,弹出提示:输入错误!!重新输入
    3 (-1000,10,30000) 提示输入错误,重新输入 乱码 已修改,弹出提示:输入错误!!重新输入
    4 (1000,0,30000) 提示输入错误,重新输入 乱码 已修改,弹出提示:输入错误!!重新输入
    5 (1000,10,0) 提示输入错误,重新输入 -1.00 已修改,弹出提示:输入错误!!重新输入
    计算等额本息还款 (贷款,年限,利率) 本息还款    
    1 (10000,10,0.3) 15.04 13.04  
    2 (0,10,0.3) 提示输入错误,重新输入 0.00 已修改,弹出提示:输入错误!!重新输入
    3 (10000,0,0.3) 提示输入错误,重新输入 乱码 已修改,弹出提示:输入错误!!重新输入
    4 (10000,10,0) 提示输入错误,重新输入 乱码 已修改,弹出提示:输入错误!!重新输入
    5 (-10000,10,0.3) 提示输入错误,重新输入 -15.04 已修改,弹出提示:输入错误!!重新输入

    以上是对功能的测试,几乎都是出现同样的问题,本金、利率、时间等输入负值,程序还是会继续运行,没有提示错误。

    以下是修改前和修改后的结果:

    以函数A()为例子:

    原代码:

    void A()//一次投入复利计算
     {
         int n;//时间n
         double p,i,sum1;//总金额p,利率i,本利和sum1
         printf(" *请输入存款金额:");
         scanf("%lf",&p);
         printf(" *请输入利率:");
         scanf("%lf",&i);
         printf(" *请输入存储时间(年):");
         scanf("%d",&n);
         sum1=p*pow((1+i),n);//复利的计算公式
         printf(" **本利和为:%.2lf ",sum1);//输出复利计算的结果
     }

    运行结果:

    修改后的代码:

    void A()//一次投入复利计算

     {

         int n;//时间n

         double p,i,sum1;//总金额p,利率i,本利和sum1

         printf(" *请输入存款金额:");

              while(scanf("%lf",&p)!=1||p<=0)

              {

                       printf(" 输入错误!!! *请重新输入存款金额:");

                 getchar();  

              }

         printf(" *请输入利率:");

         while(scanf("%lf",&i)!=1||i<=0)

              {

                       printf(" 输入错误!!! *请重新输入利率:");

                 getchar();   

              } 

         printf(" *请输入存储时间(年):");

         while(scanf("%d",&n)!=1||n<=0||n>100)

              {

                       printf(" 输入错误!!! *请重新输入存储时间(年):");

                 getchar();   

              } ;

         sum1=p*pow((1+i),n);//复利的计算公式

         printf(" **本利和为:%.2lf ",sum1);//输出复利计算的结果

     }

    运行结果:

    除了复利计算的功能出现问题以外,选择功能这一模块也有问题

    原代码:

    while(scanf("%d",&sel)!=1||sel<0||sel>7)//防止输入的是字符以及输入的数字不是整数0-7

            {

                 printf(" 输入错误!!! 请重新选择:");

                 getchar();      

            }

    运行结果:

    修改后的代码:

    while(scanf("%d",&sel)!=1||sel<0||sel>7)//防止输入的是字符以及输入的数字不是整数0-7

            {

                 printf(" 输入错误!!! 请重新选择:");

                                 while(getchar() != ' ');         //  处理回车键

            }

    运行结果:

    通过这次测试,我发现了以上的问题,也对代码做了修改,但我知道我目前的程序还是有问题的,我会继续测试,继续完善代码。

  • 相关阅读:
    web服务器的设置
    java数字图像处理常用算法(转)
    Delphi 7.0常用函数速查手册
    直方图均衡子函数
    Delphi6/7 中XML 文档的应用
    区域增长算法
    Java中的异常栈轨迹和异常链
    Arrays类和Collections的运用
    Java中内部类对象的创建以及hook机制
    Java中的容器
  • 原文地址:https://www.cnblogs.com/mingyin/p/5339274.html
Copyright © 2011-2022 走看看