复利计算1.0~2.0~3.0~4.0-软件工程(网页版)

 

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

完成复利公式计算程序,并成功PUSH到github上。

截止时间:3.10晚12点之前。 

按照这个要求完成了。

演示。 

计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30

 

客户提出:

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

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

完成23功能,并成功PUSH到github上。

截止时间:3.12晚11点之前

记得更新进度条。

另外,是否预感到客户会有进一步的要求,而在下次会面演示之前有所准备呢?

客户又想:

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

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

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

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

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

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

回顾并总结这三次实验,发布一篇博客。

截止时间:3.17晚11点之前

 register.jsp 页面

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: lenovo
 4   Date: 2016/3/16
 5   Time: 20:56
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <html>
10 <head>
11     <title>register</title>
12 </head>
13 <body>
14 <form action ="do_register.jsp" method="post" >
15     Mtype:
16     <input type="radio" name="skill" value="one"/>复利计算
17     <input type="radio" name="skill" value="two"/>单利计算
18     <input type="radio" name="skill" value="three"/>年限计算
19     <input type="radio" name="skill" value="four"/>利率计算
20     <input type="radio" name="skill" value="five"/>本金计算
21     <br/><br/><br/>
22    (需要求得值为0)<br/>
23     收益:<input type="text" name="Money"/><br/>
24     本金:<input type ="text" name="Value" /><br/>
25     年限:<input type="text" name="Year"/><br/>
26     利率:<input type="text" name="Rate"/><br/>
27     <input type="submit" value="提交"/>
28 </form>
29 
30 </body>
31 </html>

 

do_register.jsp处理

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: lenovo
 4   Date: 2016/3/16
 5   Time: 20:57
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <%
10 
11     String Value= request.getParameter("Value");
12     String Year =request.getParameter("Year");
13     String Money =request.getParameter("Money");
14     String Rate =request.getParameter("Rate");
15    String skill= "";
16    String[] SkillALL=request.getParameterValues("skill");
17     if(SkillALL !=null&&SkillALL.length>0){
18         for(String skills:SkillALL)
19         {
20             skill=skill+skills+" ";
21         }
22 
23 
24     }
25     request.setAttribute("skill" ,skill);
26     request.setAttribute("Value" ,Value);
27     request.setAttribute("Year" ,Year);
28     request.setAttribute("Money" ,Money);
29     request.setAttribute("Rate" ,Rate);
30 %>
31 <jsp:forward page="Math.jsp"/>

 

Math.jsp输出

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: lenovo
 4   Date: 2016/3/16
 5   Time: 21:21
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <html>
10 <head>
11     <title>Math</title>
12 </head>
13 <body>
14 
15 
16 
17 <%
18     Year=Double.parseDouble((String)request.getAttribute("Year"));
19     Value=Double.parseDouble((String)request.getAttribute("Value"));
20     Money=Double.parseDouble((String)request.getAttribute("Money"));
21     Rate=Double.parseDouble((String)request.getAttribute("Rate"));
22 %>
23 
24 <%
25      String Check=(String)request.getAttribute("skill");
26      if(Check.equals("one ") ){
27 
28         Money=Value*Math.pow((1+Rate ),Year );
29          out.print("收益:");
30          out.print(Money);
31      }
32 
33     if(Check.equals("two ") ){
34 
35         Money=Value*(1+Rate*Year );
36         out.print("收益:");
37         out.print(Money);
38     }
39 
40     if(Check.equals("three ") ){
41 
42         Year=(Math.log(Money/Value))/(Math.log(1+Rate));
43         out.print("年限:");
44         out.print(Year);
45     }
46 
47     if(Check.equals("four ") ){
48 
49         Rate=Math.pow((Money/Value),1/Year)-1;
50         out.print("利率:");
51         out.print(Rate);
52     }
53     if(Check.equals("five ") ){
54 
55          Value=Money/Math.pow((1+Rate ),Year ) ;
56         out.print("本金:");
57         out.print(Value);
58     }
59 
60 %>
61 
62 <%!
63     private double  Value=0;
64     private double  Year=0;
65     private double  Money=0;  //收益
66     private double  Rate=0;
67 
68 %>
69 
70 
71 
72 </body>
73 </html>

4.0 单元测试----------------------------- 

我们已经完成的这些功能,已经足以做成一个独立应用了。  

但是并没有以商业标准来要求。

现在假设金融公司为客户算收益直接调用我们的计算函数,能不能保证万无一失?

 

1.团队协作准备:每个同学在github上完成FORK,COMMENT(学号后三位+姓名),PR,MERGE的过程。

2.你的RP由你的程序质量决定。

   对我们和复利计算程序,写单元测试。 

   有哪些场景?

   期待的返回值

   写测试程序。

   运行测试。

   写一篇测试报告发布到博客上。

 截止日期:2016.3.29晚11点。

 

 

 

 

 

posted @ 2016-03-11 20:10  19林宇粲  阅读(322)  评论(0编辑  收藏  举报