0316-复利计算器3.0---release

时间:2021-05-19 02:11:19

目录

      一、项目简介

      二、Github链接推送

      三、客户需求

      四、需求分析

      五、项目设计

      六、完成效果

      七、JUnit单元测试

      八、总结


一、项目简介

项目名称:复利计算器
目前版本:3.0
版本类型:web版;
使用工具:MyEclipse,Tomcat.
使用JDK版本:1.7
使用框架:Struts2,Spring,Bootstrap
主要功能:计算满期额、计算本金、计算投资时长等
开发人员:梁植淋
主要用途:银行存款计算、股票盈利计算、投资计算等
版权所属:广州商学院14级商业软件工程1班


二、Github链接推送

github上代码地址:请点击这里

github上Wiki地址:请点击这里


三、客户需求

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

2.如果按照单利计算,本息又是多少呢?

3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?

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

5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢?

6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月定投3000呢?


四、需求分析

根据客户需求,项目需要有如下六个功能块:

1.单利计算:用于简单的存款计算,存款期内本金不变,直到取款时才把利息加上。

2.复利计算:与单利计算不同的是,复利计算每期所得利息将加入本金内进行再次存款,实现了利滚利的计算。

3.本金计算:在复利的前提下,能根据终额、利率和存款期倒推所存本金。

4.投资时长计算:在复利的前提下,根据本金、终额、利率计算所需投资时长。

5.利率计算:在复利的前提下,根据本金、终额、投资时长,计算中间的利率。

6.定投计算:在复利的前提下,每年投入定额资金,实现本金的增长,如此下来,计算出一定年后的终额。


五、项目设计

1.做成web版程序,实现在线使用的效果。

2.利用Spring、struts2框架,提高程序的质量及开发效率。

3.利用Bootstrap框架,把界面往简洁美观的方向做。

4.src目录下的java包分成action、service、service.impl三层,实现代码的低耦合与易维护。

5.视图方面可根据不同的计算模块分层不同的jsp页面,以避免单个jsp页面代码量太大,难以维护。但是,各页面间必须保持较好的连接性,以免给用户不好的体现。

6.不同的jsp页面中相同的一些代码提取出来作为公有调用,如页面的大标题、页脚备注等。


六、完成效果

1.单利计算效果

0316-复利计算器3.0---release

2.复利计算效果

0316-复利计算器3.0---release

3.本金计算

0316-复利计算器3.0---release

4.投资时长计算

0316-复利计算器3.0---release

5.利率计算

0316-复利计算器3.0---release

6.定投计算

0316-复利计算器3.0---release


七、Junit测试

0316-复利计算器3.0---release

  前面说到代码按功能的分层思想,这样的好处在测试时就开始体现出来了,因为真正逻辑计算的代码都在service.impl层,并且与其他层的耦合性不高,所以这里主要对该层的方法进行测试。下面以复利计算模块为例:

该模块的测试代码如下:

 package com.evan.service.impl;
import org.junit.Test;
public class FuliTest { @Test
public void testCalculate() {
// System.out.println("测试");
CalculateService cs = new CalculateService();
String test = cs.calculate(10000, 0.03, 10);
System.out.println("复利测试结果"+test);
} }

然后,测试结果如下:

0316-复利计算器3.0---release

其他模块的测试也一样,笔者就不一一在这里列举了。

八、总结

先是老师布置的三个任务: 

1.统计前两次实验提交的代码数据:所用语言与工具,代码行,工作量(人时)。

所用工具:主要是MyEclipse2014

代码行:java代码300行左右,jsp代码就不算了,没太大技术含量

工作量:三个版本,总时长约为20小时。

2.估计完成4、5、6所需代码行与工作量,并做记录。

原估计100行代码左右,约用时2小时

3.完成过程中注意记录自己的实际工作量,完成之后与自己之前所做的估计进行对照。

4、5、6逻辑编程实际用时1小时,比预估用时要少,但整个项目用时并不少,时间主要花在了一些小细节的修改与bug的修复上。

然后是自我总结:

1. 项目不大,但我做的东西也不少了,因为我觉得编程方面就应该在练习时候往复杂的方向做,达到锻炼目的,当然以后工作了就要反过来往简单的方向做了,毕竟工作是讲究效率,而不是个人的提高。

2.同一个项目,可以用很多的方法去做,不同的方法又会有不同的有点,比如本项目用异步请求的方法来做也是很好的,无论什么方法,用活了就是好方法。

3.自我能力和经验还是不够啊,很多时候都会犯一些低级错误,卡住很久,以后还得多加练习才行。

4.值得一提的是,我觉得心态很重要,类似这种小项目的作业,我们可以不把它当作业来做,或者说是把自己想象成此项目经理,这个项目做成怎样完全由你做主,你就会重视一些做作业不会重视的问题,比如说命名规范、又比如说是否稳定、是否易维护(我承认因为时间问题,我在本程序中这些做得还是不太好),只有这样,才能把项目做成你心中的样子。说重点,就是一句话:认真对待吧。

0316-复利计算器3.0---release的更多相关文章

  1. 复利计算器4.0之再遇JUnit

    复利计算器4.0之再遇JUnit 前言    虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测 ...

  2. 0406.复利计算器5.0版-release

    复利计算器5.0-release 目录 项目简介 Github链接推送 客户需求 新增需求分析 项目设计 效果演示 操作说明 程序结构 结对分工 合作照片 总结 1.项目简介 项目名称:复利计算器 目 ...

  3. 0414-复利计算器6.0.Release

    复利计算器6.0--Release 前言 本次复利计算器的版本更新,主要有以下内容的完善: 1.优化了Web版的页面,提供了更舒服美观的用户体现. 2.新增了移动端(安卓)app版本. 版本信息 项目 ...

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

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

  5. 0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟

    一.主要功能与需求分析 1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 2.如果按照单 ...

  6. 单利 复利计算器程序1.0 2.0 3.0 [ 合 ] 之 WEB

    对单复利计算器程序进行改进 更新为网页版的. 界面不太美观 请谅解 由于时间问题暂未完善好! 计算部分的主要源代码:

  7. 复利计算器v1

    public class MainFrame extends JFrame { /** * 文本框 */ private TextField[] texts = new TextField[5]; / ...

  8. 复利计算器app发布

    复利计算器app发布 抱歉:由于无法实现服务端的持续开启,发布的app仅为简单的单机版,暂时舍弃了c/s版本的一些功能,如:投资动态管理功能. 应用详情博客:请点击这里 apk下载地址1(百度手机助手 ...

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

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

  10. ASP.NET Core 1.1.0 Release Notes

    ASP.NET Core 1.1.0 Release Notes We are pleased to announce the release of ASP.NET Core 1.1.0! Antif ...

随机推荐

  1. wcf第2步之服务端标准配置文件

    服务端app.config <?xml version="1.0" encoding="utf-8" ?><configuration> ...

  2. node&period;js 使用 UglifyJS2 高效率压缩 javascript 文件

    UglifyJS2 这个工具使用很长时间了,但之前都是在 gulp 自动构建 时用到了 UglifyJS 算法进行压缩. 最近玩了一下 UglifyJS2 ,做了一个 在线压缩javascript工具 ...

  3. ExecutorService&period;execute&lpar;Runnable x&rpar; 判断是否完成&comma;得到返回值

    public class RunnableTestMain { public static void main(String[] args) { ExecutorService pool = Exec ...

  4. 实现一个线程安全的Queue队列

    使用装饰者模式实现一个线程安全的Queue队列. public class SynchronizedQueue<E> implements Queue<E>, Serializ ...

  5. 隐藏Activity标题栏

    <span style="font-size:18px;"> </span> 要让Activity的标题栏不被显示的情况分两种: 一.不显示标题栏的不论什么 ...

  6. Android再学习-20141111-Android应用的七大件

    Android应用的七大件 应用程序的四大组件: Android的四大组件,使用时需要在程序中注册. Activity: Activity是应用程序的一个界面,可以通过这个界面查看联系人.打电话或者玩 ...

  7. BOM总结

    一.BOM概念 BOM:Browser Object Model  浏览器对象模型,定义了JS操作浏览器的一些方法和属性 二.BOM方法 (在BOM里面大部分的方法都是调用window对象下的方法得到 ...

  8. PDO控制、连接数据库

    PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口.PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数,基于数据库使用的安全性,因为后者欠缺对于SQL ...

  9. Spring基础4

    一.Spring的JDBC模板 Spring对持久层也提供了解决方案,ORM模块和JDBC模板 提高简化JDBC或Hibernate的模板 二.JDBC模板使用入门 1)引入jar包:Spring开发 ...

  10. Flask学习【第7篇】:Flask中的wtforms使用

    简介flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装 pip3 install wtforms 简单使用wtforms组件 用 ...