复利计算测试(C语言)

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

   有哪些场景?

   期待的返回值

   写测试程序。

   运行测试。

测试模块测试输入预期结果运行结果bug跟踪
计算终值(本金,年限,利率)终值  
1(1000,10,0,.3)13785.8513785.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.007500.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)44 
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.410.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.0413.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');         //  处理回车键

        }

运行结果:

 

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

 

转载于:https://www.cnblogs.com/mingyin/p/5339274.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值