zoukankan      html  css  js  c++  java
  • 单复利软件单元测试

    1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30

    2.如果按照单利计算,本息的最终收益

    3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?

    4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 

    5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢?

    6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月定投3000呢?(定额定投收益计算办法)

    7. 如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额)

     因为为了方便测试,所以把前几次的单复利计算合起来一个程序方便测试。因为可以输入年份,本金,利率等可以输入负数,所以在每个输入都加入限制while使输入的都大于0.

    单元测试预期结果及其代码:

    测试模块

    测试输入

    预期结果

    运行结果

    bug跟踪

    复利计算

    (本金,年限,利率,次数)

    终值

       

    测试运算结果

    (1000,3,0.05,5)

    ×

     

     测试输出正数

    (1000,3,0.05,1)

     测试输入负数

     (-1000,3,-0.05,1)  输入错误请输入正确的数值  √  

    单利计算

    (利率,本金,年限)

     终值    
     测试运算结果  ("0.03","5000","3")  √   √  
     测试输入负数  ("0.03","5000","3")  输入错误请输入正确的数值   √  
    测试输出正数 ("-0.03","-5000","3") 输入错误请输入正确的数值  √  
    投资年限 (利率,本金,终值,次数)      
    测试运算结果 ("0.05","100.0","105.0","1")  
    测试输出正数 ("0.05","100.0","105.0","1")  
    测试输入负数 ("-0.05","-100.0","105.0","1") 输入错误请输入正确的数值  
    ...... 以下结果与上表一致      

    #include<stdio.h>
    #include<math.h>
    main()
    {   
        int a,f;
        double money,time,i,sum,b,c;

          printf(" ※※※※※※※※※ ");
          printf("※请输入1或2或3或4※ ");
          printf(" ※※※※※※※※※ ");
          printf("----------------------------- ");
          printf("|1复利计算收益(投资年限估算) | ");
          printf("|2.最优投资项目利率估算     | ");
          printf("|3.定投计算               | ");
          printf("|4.单利计算               | ");
          printf("----------------------------- ");

    
        scanf("%d",&a);
            if(a!=1&&a!=2&&a!=3&&a!=4)
            {
            printf("输入错误,请重新输入!");
            scanf("%d",&a);
            }
        
            if(a==1)
            {
            printf("请输入本金:");
            scanf("%lf",&money);
            while(money<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&money);
            }
            printf("请输入得到金额:");
            scanf("%lf",&sum);
                while(sum<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&sum);
            }
            printf("请输入利率:");
            scanf("%lf",&i);
            while(i<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&i);
            }
            time= log(sum/money) / log(1+i);
            printf("%lf年时间完成
    ",time);
            }
            if(a==2)
            {
            printf("请输入本金:");
            scanf("%lf",&money);
            while(money<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&money);
            }
            printf("请输入得到金额:");
            scanf("%lf",&sum);
            while(sum<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&sum);
            }
            printf("请输入时间:");
            scanf("%lf",&time);
            while(time<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&time);
            }
            b=pow(sum/money,1/time);
            i=(b-1)*100;
            printf("所需利率至少:%lf% 
    ",i);
            }
            if(a==3)
            {  
             b=1;
             printf("请输入每年投入金额:");
             scanf("%lf",&money);
             while(money<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&money);
            }
             c=money;
             printf("请输入时间:");
             scanf("%lf",&time);
             while(time<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&time);
            }
             printf("请输入利率:");
             scanf("%lf",&i);
             while(i<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&i);
            }
             while(b<=time)
            {
                    sum=money*(1+i);
                    money=sum+c;
                    b++;
            }
            printf("所得到回报:%lf 
    ",sum);  
            }
    
            if(a==4)
               {
                  printf("1.求存年数
    ");
                  printf("2.求利率
    ");
                  printf("3.求时本利和
    ");
                  scanf("%d",&f);
                  if(f!=1&&f!=2&&f!=3) 
                    {
                      printf("输入错误,请重新输入!
    ");
                      scanf("%d",&f);
                    }
                  if(f==1)
                 {
                       printf("请输入本金:");
                       scanf("%lf",&money);
                       while(money<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&money);
            }
                       printf("请输入利率:");
                       scanf("%lf",&i);
                       while(i<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&i);
            }
                       printf("请输入本利和:");
                       scanf("%lf",&sum);
                       while(sum<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&sum);
            }
                       time=(sum-money)/money*i;
                       printf("存年数为%lf
    ",time);
                  }
                    if(f==2)
                 {
                       printf("请输入本金:");
                       scanf("%lf",&money);
                       while(money<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&money);
            }
                       printf("请输入本利和:");
                       scanf("%lf",&sum);
                       while(sum<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&sum);
            }
                       printf("请输入存年数:");
                       scanf("%lf",&time);
                       while(time<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&time);
            }
                       i=(sum-money)/money*time;
                       printf("利率为%lf
    ",i);
                  }
                    if(f==3)
                  {
                     printf("请输入本金:");
                     scanf("%lf",&money);
                     while(money<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&money);
            }
                     printf("请输入存年数:");
                     scanf("%lf",&time);
                     while(time<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&time);
            }
                     printf("请输入利率:");
                     scanf("%lf",&i);
                     while(i<=0)
            {
                printf("输入错误,请重新输入!
    ");
                scanf("%lf",&i);
            }
                     sum=money*time*i+money;    
                     printf("
    ");
                     printf("本利和为%lf
    ",sum);
                  }
              
                 }
    }

    在测试当中发现输入本金,时间和利率等如果输入非数字时会输出死循环“输入错误,请重新输入“。

    在测试单利计算结果正确,答案无错误。测试复利计算时发现错误,答案有很大误差,应该是计算复利的公式错了。

  • 相关阅读:
    iOS UIActivityIndicatorView 的使用(旋转菊花)
    iOS textView的使用总结
    IOS UI -label总结
    cocos2dx常见的46中+22中动作详解
    iOS 第三方框架SDWebImage的简单使用
    iOS 下拉刷新
    OC 字符串操作
    一些iOS常用的第三方库和控件
    标日语法(1)
    面向对象(初级)个人总结 第二部分 封装
  • 原文地址:https://www.cnblogs.com/l549023320/p/5334139.html
Copyright © 2011-2022 走看看