一.主要功能与需求分析
1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30
2.如果按照单利计算,本息的最终收益
3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢?
4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢?
5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率就应至少为多少才行呢?
6.如果每年都将积蓄的3万元进行投资,每年都能获得3%的回报,然后将这些本利之和连同年金再投入新一轮的投资,那么,30年后资产总值将变为多少?如果换成每月定投3000呢?(定额定投收益计算办法)
7. 如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额)
二.单元测试预期结果及其代码。
测试模块 | 测试输入 | 预期结果 | 运行结果 | bug跟踪 |
复利计算 | (本金,年限,利率,次数) | 终值 | ||
测试运算结果 | (100.0,1,0.05,1) | 105.0 | √ | |
测试输出正数 | (100.0,1,0.05,1) | True | √ |
|
测试输入负数 | (-100.0,1,-0.05,1) | true | √ | 已经添加输入控制 |
单利计算 | (利率,本金,年限)
| 终值 | ||
测试运算结果 | ("0.05","100.0","1") | 105.0 | √ | |
测试输入负数 | ("0.05","100.0","1") | True | √ | |
测试输出正数 | ("-0.05","-100.0","1") | true | √ | 已经添加输入控制 |
投资年限 | (利率,本金,终值,次数) | |||
测试运算结果 | ("0.05","100.0","105.0","1") | 1 | √ | |
测试输出正数 | ("0.05","100.0","105.0","1") | True | √ | |
测试输入负数 | ("-0.05","-100.0","105.0","1") | true | √ | 已经添加输入控制 |
...... | 以下结果与上表一致 |
|
接入数据库主要代码:
1 static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
2 static final String DB_URL = "jdbc:mysql://localhost/test"; 3 4 5 static final String USER = "root"; 6 static final String PASS = "lzh"; 7 private int MAX = 100 ; 8 private String[] items = new String[MAX]; 9 private int N = 1; 10 Connection conn = null; //创建一个MYSQL的链接对象 11 Statement stmt = null; //创建声明 12 public MySQL() throws Exception { 13 14 15 //STEP 2: Register JDBC driver 16 Class.forName(JDBC_DRIVER); //添加MYSQL驱动 17 18 //STEP 3: Open a connection 链接本地MYSQL 19 conn = (Connection) DriverManager.getConnection(DB_URL,USER,PASS); 20 21 //STEP 4: Execute a query 22 stmt = conn.createStatement(); 23 String sql; 24 sql = "SELECT * FROM test"; 25 ResultSet rs = stmt.executeQuery(sql); 26 27 //STEP 5: Extract data from result set 28 while(null != rs && rs.next()){ 29 System.out.println(rs.getString("rate")); 30 System.out.println(rs.getString("time")); 31 System.out.println(rs.getString("principal")); 32 } 33 34 }
三.运行情况
使用程序进行更新的数据库
工作时情形················································································································
四.总结和感悟
结对编程。首先,一个人的编程,平均很难实现高效率的工作效力。但是在和同伴一起工作时,必须保持思维一直高度集中,所以平均都可以达到相当高质量的个人效力,同时有了一遍代码评审,使得出错几率就降低,减少了bug的产生。也由于两个人的思想汇集,能创造了很多新编程算法或结构重用等。所以着眼于整个项目来看,大大提高了效率。同时,结对编程是两个人的脑力劳动,可以相互学习,相互研究,所以我们在一起,常常会去试验新的编码方式,以寻找最好的方法。而且有什么想法通过交流后两个人都觉得可行,就可以写出测试用例,再来写出实现;所以不论在解决问题的时间和方法上,都比以前做得更快更好。