软件工程实验一 复利计算——单元测试

对复利计算器进行单元测试

一、实验历次题目要求

1.客户说:帮我开发一个复利计算软件。

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

二、软件编写成果

具体软件的历次更新已在历次实验后的博客中有展示,在此不做重复一一列举。

在本次的单元测试博客中,我主要演示两项场景的单元测试,其余的测试源代码及过程不做重复,我已放入github中,有兴趣的同学可点击链接进行查阅:https://github.com/skywalkersg/ruanjian/tree/master/FuLiGainew

场景一:客户说: 我有本金为1万元,利率为2%,存3年,复利次数为2,最终能获得多少复利终值?

在我做的复利计算器中,得数据如下:

暨结果应得10615的复利终值。

1.经第一次单元测试结果为:

2.由于测试出了故障,故而我尝试着在数据录入及比较环节前分别进行了一次输出,藉此判断是哪里出现了错误。

3.由此可看出是数据出现了错误导致单元测试出现了错误,在进行了修正后得最后测试数据如下暨复利终值为10615.201506009998元:

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

在复利计算器中,原始数据如下:

暨结果应得8年的结果。

1.第一次单元测试结果如下:

2.用同样的方法检测出错误处进行修正:

3.最终得到结果与预期相符的结果暨计算结果为8年:

三、两次单元测试的原代码如下:

 1 public class TestHanShu {
 2 //  本金为1万元,利率为2%,存3年,复利次数为2,最终能获得多少复利终值?
 3     @Test
 4     public void testSuanFa01() {
 5         HanShu hs = new HanShu("10000", "0.02", "3", "2", null);
 6         double Future=hs.SuanFa01();
 7         System.out.println(Future);
 8         boolean flag = 10615.201506009998==Future;
 9         System.out.println(flag);
10         assertEquals(true, flag);
11
12     }
13
14 }
15
16
17 public class TestTime {
18 //   利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢?
19     @Test
20     public void testTime() {
21         HanShu hs = new HanShu("1000000", "0.1", null, "1", "2000000");
22         int Year=(int)hs.Time();
23 //        System.out.println(Year);
24         boolean flag = 8==Year;
25         assertEquals(true, flag);
26     }
27
28 }

其余的测试大致类似,便不一一列举。

四、实验总结

本次的单元测试实验是首次尝试着对自己写的代码进行测试,本次的实验的主要失误主要存在于数据的错误,程序本身是没有问题的,所以窃以为本次的实验还算成功,不过应该是还不是很理解单元测试的功用和更多的测试方法及内容,所以我认为本次测试的内容还是显得较为简单了,希望在日后的学习中我能愈发熟练的运用单元测试,将其运用在更强大、繁杂的测试中,掌握这项软件工程的核心之一。

时间: 2025-01-02 05:20:27

软件工程实验一 复利计算——单元测试的相关文章

软件工程实验一 复利计算(第三次实验实验总结)

主题内容:复利计算器的第三次改进 追加题目: 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢? 附加题:6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月

软件工程实验一 复利计算

本次编写复利计算我使用了Java编写,有两项功能,一是根据本金计算复利终值,二是根据复利终值计算所需的本金,此时我利用了两条公式 输入本金求终值:S = P * Math.pow(1.0 + i, n) 即  复利终值=本金*(1+利率)^利率获取时间 输入终值求本金:P = S * Math.pow(1.0 + i, -n)即 所需本金=复利终值*(1+利率)^(-利率获取时间) 在Java中运行结果如下: 1.输入本金求终值 2.输入终值求本金 首先在第一个输入框内输入1.2来选择计算方向,

软件工程实验一 复利计算——观赏其他团队工程

我评论的: 05 卢琪 http://www.cnblogs.com/xiseven/p/5392425.html 06 邹育萍 http://www.cnblogs.com/zou779596337/p/5392381.html 08 周诗琦 http://www.cnblogs.com/sr1zsq/p/5393497.html 25 陈庆祥 http://www.cnblogs.com/qing8/p/5392804.html#3408933

复利计算单元测试

计算年利率 (本金,本利,年限) 终值 1 (10000,20000,10) 0.07 √ 2 (10000,-20000,20) 弹出,输入负数,请重新输入 没有提示 未改进 3 (a,20000,20) 弹出.输入不合法,请重新输入 没有提示 已改进,弹出,输入不合法!,请重新输入 计算月年收益 (投资额,年利率,年限) 终值 1 (10000,0.03,30) 490026.78 √ 2 (10000,1,30) 弹出,请输入年利率在0到1之间的书的数,请重新输入! 没有提示 为改进请输入

复利计算 单元测试

[visualunit是国产的C/C++单元测试工具,我用过觉得很不错,该公司的技术支持也很到位,在使用过程中遇到问题都能及时帮用户解决.Visual unit最新的版本是2.1.部分功能清单如下:具有完善的桩功能,从开始编码到升级维护的各个阶段,均可对任意层次.范围的代码实施分割测试:自动生成测试代码和用例框架:可视化编辑测试用例,用简单语法判断各种输出,还可自动判断中间变量:可在用例中随意模拟.控制子函数的行为,包括设定返回值.输出参数.成员变量.全局变量的值,多次调用同一子函数可以设置不同

143 复利计算 单元测试

#include<stdio.h>#include<math.h>int year,n;double p,q,F=0.0;void innit(){ printf("注释:p为现金\n"); printf(" year为年限\n"); printf(" n为年复利次数\n"); printf(" q为年利率\n"); printf(" F为年复利终值\n");}void menu()

03-29复利计算单元测试

说明:之前用C语言写代码,现用java写代码. 场景分析,期待的返回值以及运行结果如下表: 注释:预期结果0.0,表示输入数据有误.即得不到正确的结果 测试模块 测试输入 预期结果 运行结果 bug跟踪 单利计算 获得利息 “100”,”2”,”1” 102.0 正确 “0”,”2”,”1” 0.0 正确 “0”,”dsaf”,”1” 0.0 正确 “0”,”-100”,”1” 0.0 正确 单利计算 获得利息 “100”,”2”,”1” 102.01 正确 “0”,”dsaf”,”1” 0.0

复利计算—单元测试

1.手动测试: 2.代码测试: 1 package invest; 2 3 import static org.junit.Assert.*; 4 import static org.hamcrest.CoreMatchers.*; 5 import org.junit.Test; 6 7 public class CompundingTest { 8 9 10 11 @Test 12 public void testCompunding() { 13 double F=Compunding.c

软件工程---复利计算实验总结

  前一次实验 这次实验(估计/实际) 语言 java java 代码行数 99 150/185 工作量 1.5h 2h/2.8h 前一次实验实现是复利计算的三个功能,从代码结构来看,功能结构非常混乱,在加入第四个功能时,干脆划分好结构后重写了程序,花了大概30分钟,然后花了不到20分钟就加入了功能5和6,记得在添加功能2和3时,由于代码结构混乱,花了30多分钟. 另外,在完成功能6后,又重新为程序添加了一个界面,大概花了1个小时,最终的代码及运行结果:http://www.cnblogs.co