复利计算--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 (测试代码)