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

         

     

  • 相关阅读:
    Jquery实现form表单提交后局部刷新页面的多种方法
    HTML5:'data-'属性的作用是什么
    ASP.NET MVC传递Model到视图的多种方式总结(二)__关于ViewBag、ViewData和TempData的实现机制与区别
    Var与Dynamic的区别
    ASP.NET MVC传递Model到视图的多种方式总结(一)__通用方式的使用
    动态规划(最大公共子序列)
    后缀名为properties,config和xml的文件内容读取
    初学者易犯的的错误
    jdk1.6与Myeclipse的冲突造成的
    微信红包算法思想
  • 原文地址:https://www.cnblogs.com/liangzhilin/p/5285773.html
Copyright © 2011-2022 走看看