码迷,mamicode.com
首页 > 编程语言 > 详细

复利计算测试(C语言)

时间:2016-03-30 23:53:05      阅读:460      评论:0      收藏:0      [点我收藏+]

标签:

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

   有哪些场景?

   期待的返回值

   写测试程序。

   运行测试。

测试模块 测试输入 预期结果 运行结果 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("\n\t*请输入存款金额:");
     scanf("%lf",&p);
     printf("\t*请输入利率:");
     scanf("%lf",&i);
     printf("\t*请输入存储时间(年):");
     scanf("%d",&n);
     sum1=p*pow((1+i),n);//复利的计算公式
     printf("\t**本利和为:%.2lf\n\n",sum1);//输出复利计算的结果
 }

运行结果:

技术分享

修改后的代码:

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

 {

     int n;//时间n

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

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

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

          {

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

             getchar();  

          }

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

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

          {

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

             getchar();   

          } 

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

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

          {

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

             getchar();   

          } ;

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

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

 }

运行结果:

技术分享

 

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

原代码:

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

        {

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

             getchar();      

        }

运行结果:

技术分享

修改后的代码:

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

        {

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

                             while(getchar() != ‘\n‘);         //  处理回车键

        }

运行结果:

技术分享

 

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

 

复利计算测试(C语言)

标签:

原文地址:http://www.cnblogs.com/mingyin/p/5339274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!