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

2024-02-13 22:20

本文主要是介绍0316-复利计算器3.0---release,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

      一、项目简介

      二、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.单利计算效果

 

2.复利计算效果

3.本金计算

4.投资时长计算

5.利率计算

6.定投计算

 

七、Junit测试

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

该模块的测试代码如下:

 1 package com.evan.service.impl;
 2 import org.junit.Test;
 3 public class FuliTest {
 4 
 5     @Test
 6     public void testCalculate() {
 7     //    System.out.println("测试");
 8         CalculateService cs = new CalculateService();
 9         String test = cs.calculate(10000, 0.03, 10);
10         System.out.println("复利测试结果"+test);
11     }
12 
13 }

           然后,测试结果如下:

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

 

 

八、总结

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

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

所用工具:主要是MyEclipse2014

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

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

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

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

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

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

然后是自我总结:

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

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

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

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

     

 

转载于:https://www.cnblogs.com/liangzhilin/p/5285773.html

这篇关于0316-复利计算器3.0---release的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/706758

相关文章

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

Cmake之3.0版本重要特性及用法实例(十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧

【C-实践】文件服务器(3.0)

文件服务器1.0文件服务器2.0文件服务器4.0 概述 使用了 tcp + epoll + 线程池 + 生产者消费者模型,实现文件服务器 有两个进程,主进程负责接收退出信号用来退出整个程序;子进程负责管理线程池、客户端连接以及线程池的退出 子进程中的主线程生产任务,其他子线程消费任务 功能 主要功能:客户端连接服务器,然后自动下载文件 注意 实际传输速度

如何为 MongoDB 3.0.4 以下版本选择合适的 PyMongo 版本

在使用 MongoDB 时,开发者通常会使用 Python 的 pymongo 库来与 MongoDB 进行交互。然而,不同版本的 MongoDB 需要匹配相应版本的 pymongo 才能正常运行。如果你的 MongoDB 版本较低(例如 3.0.4 以下),而使用了不兼容的 pymongo 版本,就会遇到连接失败或功能异常的问题。 在这篇文章中,我们将介绍如何为 MongoDB 3.0.4 以

QT学习之计算器

网格布局初尝试,快速构建计算器 项目结构: wident.h拖动建立界面,20个button,一个lineedit 布局好后整体网格布局调整,依次给每个案件输入文本,并改objectname方便后期辨识 为了在lineedit显示数字,转到槽,编辑点击事件,如显示“1” void Widget::on_pushButton1_clicked(){expression += "1";u

面壁小钢炮3.0发布:端侧ChatGPT时代的技术飞跃

一、面壁小钢炮3.0模型介绍  ➤  MiniCPM 3.0 开源地址: 🔗 https://github.com/OpenBMB/MiniCPM 🔗 https://huggingface.co/openbmb/MiniCPM3-4B         2024年9月5日,面壁智能发布 MiniCPM3-4B!该模型的表现超越 Phi-3.5-mini-instruct 和 GPT-3

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定完成随机数的生成,生成的随机数如下图所示。

数据倾斜?Spark 3.0 AQE专治各种不服

Spark3.0已经发布半年之久,这次大版本的升级主要是集中在性能优化和文档丰富上,其中46%的优化都集中在Spark SQL上,SQL优化里最引人注意的非Adaptive Query Execution莫属了。 Adaptive Query Execution(AQE)是英特尔大数据技术团队和百度大数据基础架构部工程师在Spark 社区版本的基础上,改进并实现的自适应执行引擎。近些年来,S

Vue初学-简易计算器

最近在学习Vue的指令,做了一个简易计算器,比较适合刚入门的人参考学习。用到的知识点有: 1.插值表达式 2.v-model,双向绑定+、-、*、/、**等操作符 3.v-show,控制操作数2是否显示,乘方时不显示操作数2 4.methods选项,定义了calculate ()方法,实现各种运算 5.watch选项,监听selected的值的变化。 下面是程序的执行效果: 如果选择的是**乘