zoukankan      html  css  js  c++  java
  • 软件工程----5.0 单元测试-

    一.主要的功能需求:开发一个复利计算软件

    功能细分: 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年,那么每月等额本息还款多少?(算复利条件下等额还款金额)

    9.要追求利益,又要面对不可预知的金融投资风险, “不能把鸡蛋放在同一个篮子里”,所以有必要进行组合投资。

    二.开发结果

    1.复利计算

    2.单利计算

    3.本金计算

    4.存款期限计算

    5.存款利率计算

    6.投资计算

    8.贷款分期还款计算

    9.错误提示

    三.核心代码

     1 public double installmentPaymentCalculation(double P, double i, double n) {
     2         double F;
     3         F = P
     4                 * (((i / 12) * (Math.pow(1 + i / 12, n * 12))) / (Math
     5                         .pow((1 + i / 12), n * 12) - 1));
     6         return F;
     7     }
     8 
     9     public double theInvestmentCalculation(double P, double i, double n) {
    10         double F;
    11         for (int j = 0; j < n; j++) {
    12             P += P * i;
    13         }
    14         F = P;
    15         return F;
    16     }
    17 
    18     public double interestRate(double P, double n, double F) {
    19         double i;
    20         i = (Math.pow(F / P, 1.0 / n)) - 1;
    21         return i;
    22     }
    23 
    24     public double theTermsOfDepositCalculation(double P, double i, double F) {
    25         double n;
    26         n = Math.log((double) (F / P))
    27                 / (Math.log((double) (1 + i)));
    28         return n;
    29     }
    30 
    31     public double calculationOfThePrincipal(double i, double n, double F) {
    32         double P;
    33         P = F / Math.pow((1 + i), n);
    34         return P;
    35     }
    36 
    37     public double simpleInterest(double P, double i, double n) {
    38         double F;
    39         F = P * (1 + i * n);
    40         return F;
    41     }
    42 
    43     public double compounding(double P, double i, double n, double m) {
    44         double F;
    45         F = P * (Math.pow((1 + i / m), n * m));
    46         return F;
    47     }

    代码链接:

    https://github.com/helloyoucan/compoundung/blob/master/Compounding4_1.java

    https://github.com/helloyoucan/compoundung/blob/master/DataTreating.java

    四.单元测试

    1.测试结果

    2.测试程序代码链接:

    https://github.com/helloyoucan/compoundung/blob/master/DataTreatingTest.java

  • 相关阅读:
    02-27 朴素贝叶斯
    JQuery UI datepicker 使用方法(转)
    纯CSS兑现侧边栏/分栏高度自动相等(转)
    在触屏设备上面利用html5裁剪图片(转)
    简单几步让CentOS系统时间同步(转)
    百度与谷歌地图坐标转换代码(转)
    jQuery插件开发全解析(转)
    Centos 安装ImageMagick 与 imagick for php步骤详解
    将windows目录共享到linux
    Event事件的兼容性(转)
  • 原文地址:https://www.cnblogs.com/wucanlong/p/5325650.html
Copyright © 2011-2022 走看看