zoukankan      html  css  js  c++  java
  • 复利计算--4.0 单元测试之JAVA版-软件工程

    复利计算--4.0 单元测试-软件工程

    前言:由于本人之前做的是C语言版的复利计算,所以为了更好地学习单元测试,于是将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.你写的程序能让客户随意操作吗?误输入数据、不小心做了非常规的操作程序是什么反应?
    • 8.如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额)

    二、开发过程与程序部分结果分析:(实验数据参考之前C版的)

    1.复利计算

    2.单利计算


    3.计算本金


    4.求存款时长


    5.求报酬率


    6.一定年份资金总额


    7.月等额本息还款计算

    三、单元测试主要步骤与核心代码

    新建多一个类是用来测试的

    在新建的类右键junit进行测试

    核心代码如下:

     1 public class fulitest {
     2     public double fuli1(double P, float i, int n,int k) {
     3                   double F;
     4                   F=P*Math.pow(i/k+1,k*n);
     5                   return F;
     6               }
     7     public double fuli2(double P, float i, int n) {
     8         double F;
     9         F=P*(1+i*n);
    10         return F;
    11     }
    12     public double fuli31(double F, float i1, int n1,int k) {
    13         double P1;
    14         P1=F/Math.pow(i1/k+1,k*n1);
    15         return P1;
    16     }
    17     public double fuli32(double F, float i2, int n2) {
    18         double P2;
    19         P2=F/(1+i2*n2);
    20         return P2;
    21     }
    22     public double fuli4(double b) {
    23         double d;
    24         d=72/b;
    25         return d;
    26     }
    27     public double fuli5(double d) {
    28         double b;
    29         b=72/d;
    30         return b;
    31     }
    32     public double fuli6(double a, float b, int d) {
    33         double c;
    34         c=a*Math.pow(1+b,d);
    35         return c;
    36     }
    37     public double fuli7(double a, float b, int d) {
    38         double c;
    39         c=a*(b*Math.pow(1+b,d))/(Math.pow(1+b,d)-1);
    40         return c;
    41     }
    42 }

    测试部分功能代码如下:


    经测试运行结果与实验结果一致,未发现错误

    本文所有代码链接:https://github.com/crown999/crown999/blob/master/Fulijava.java  (源程序)

    https://github.com/crown999/crown999/blob/master/fulitest.java (测试功能公式代码)

    https://github.com/crown999/crown999/blob/master/fulitestTest.java  (测试代码)

  • 相关阅读:
    HttpWebRequest 改为 HttpClient 踩坑记-请求头设置
    [k8s]docker calico网络&docker cluster-store
    [k8s]jenkins部署在k8s集群
    [k8s]zookeeper集群在k8s的搭建(statefulset模式)-pod的调度
    [svc]cisco ipsec使用证书认证
    [svc]数字证书基础知识
    [svc]logstash和filebeat之间ssl加密
    [svc]cfssl模拟https站点-探究浏览器如何校验证书
    [svc] cisco router as ca server
    [svc]对称加密/非对称加密细枝末节-如何做到数据传输的authentication/data integrity/confidentiality(私密)
  • 原文地址:https://www.cnblogs.com/hgf520/p/5331147.html
Copyright © 2011-2022 走看看