复利计算--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进行测试

核心代码如下:

 public class fulitest {
public double fuli1(double P, float i, int n,int k) {
double F;
F=P*Math.pow(i/k+1,k*n);
return F;
}
public double fuli2(double P, float i, int n) {
double F;
F=P*(1+i*n);
return F;
}
public double fuli31(double F, float i1, int n1,int k) {
double P1;
P1=F/Math.pow(i1/k+1,k*n1);
return P1;
}
public double fuli32(double F, float i2, int n2) {
double P2;
P2=F/(1+i2*n2);
return P2;
}
public double fuli4(double b) {
double d;
d=72/b;
return d;
}
public double fuli5(double d) {
double b;
b=72/d;
return b;
}
public double fuli6(double a, float b, int d) {
double c;
c=a*Math.pow(1+b,d);
return c;
}
public double fuli7(double a, float b, int d) {
double c;
c=a*(b*Math.pow(1+b,d))/(Math.pow(1+b,d)-1);
return c;
}
}

测试部分功能代码如下:


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

本文所有代码链接: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  (测试代码)

复利计算--4.0 单元测试之JAVA版-软件工程的更多相关文章

  1. 复利计算5.0(改成Java版本)与 单元测试

    //由于C语言版本不方便单元测试,所以改成了java版本,部分代码如下:import java.util.Scanner; public class FuLi{ public static void ...

  2. <更新日期03-31-2016> 复利计算5.0 <已改进>

    作业要求: 1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养 ...

  3. 复利计算4.0单元测试(c语言)

    ——————————复利计算程序单元测试报告—————————— ————————————4.0 单元测试—————————————— ————————————————要求—————————————— ...

  4. 复利计算6.0—软件工程(web版本)

    复利计算再升级------------------------------------------------------------ 客户在大家的引导下,有了更多的想法: 这个数据我经常会填.... ...

  5. 复利计算1.0,2.0,3.0(java)

    程序源代码: import java.util.Scanner; public class ch { public static void main(String[] args) { Scanner ...

  6. 复利计算器4.0 【java版】

    import java.util.Scanner; public class FuLi { public static void main(String[] args) { ; Scanner sca ...

  7. 复利计算C转java版

    import java.util.Scanner; public class Compound_int { public static void main(String[] args) { tip() ...

  8. 单元测试之道Java版——读书笔记

    单元测试知道Java版读书笔记 首先我们必须要知道我们所写的代码,它的功能是什么,如果我们不了解代码的行为,那么也就无从测试. 我们测试的目的,是为了我们整个程序架构的稳定,代码其实就是欧文要实现功能 ...

  9. 复利计算--结对项目<04-11-2016> 1.0.0 lastest 阶段性完工~

    结对项目:Web复利计算 搭档博客地址:25江志彬  http://www.cnblogs.com/qazwsxedcrfv/ 个人摘要: (2016-04-09-12:00)补充:之前传送门没做好, ...

随机推荐

  1. SQLSERVER:sqlserver2008r2安装好后,自动提示功能不可以使用

    刚安装好的sqlserver2008r2x64,写一些sql时,自动提示功能失效了. 解决排查一: 找到tools->options->Text Editor->Transact-S ...

  2. HTML语言的一些元素(一)

    1)标题的六个等级:<h1>,<h2>,<h3>,<h4>,<h5>,<h6>.如果写了诸如:<h7>等,则作为正文 ...

  3. 推荐几个sql server牛人的博客

    Aaron Bertrand http://sqlblog.com/blogs/aaron_bertrand/ Brent Ozar www.brentozar.com/ Buck Woody htt ...

  4. 解决xcode6_beta没有代码提示的方法

    在beta版本的xcode6中我们会发现代码提示不怎么好使,但是看一些老外的视频,他们的代码提示却又是赶赶的.这是为什么呢?其实解决办法也很简单.就是在项目中不出现中文字符就好了.有的同学说,我没用中 ...

  5. poj 1417(并查集+简单dp)

    True Liars Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2087   Accepted: 640 Descrip ...

  6. [原创]Scala学习:for,function,lazy

    1.for循环是一个循环控制结构,可以有效地编写需要执行的特定次数的循环.Scalar的循环说明如下的各种形式: 1)Scala中for循环最简单的语法是: for( var x <- Rang ...

  7. 自己使用Fresco时遇到的相关问题

    Fresco是facebook推出的一款强大的android图片处理库,github地址:https://github.com/facebook/fresco 里面有官方的使用配置文档,而且是中文的. ...

  8. C 排序法

    1.冒泡法,相邻的两个数值,进行比较,满足条件的进行互换 #include <stdio.h> int main() { int index, j, tmp; , , ,}; ; inde ...

  9. paper 17 : 机器学习算法思想简单梳理

    前言: 本文总结的常见机器学习算法(主要是一些常规分类器)大概流程和主要思想. 朴素贝叶斯: 有以下几个地方需要注意: 1. 如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分 ...

  10. scan design flow(一)

    一个典型的scan实现的flow: clock mux和一些rst,在Scan中都被bypass掉,是不能测到的.所以DFT的test coverage一般就在97%或98%. scan design ...