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点。