结对项目:复利计算
搭档:30蔡京航 http://www.cnblogs.com/cjh123/
github:https://github.com/alfredzhu/teamwork
工作照
一、项目需求:
即要追求利益,又要面对不可预知的金融投资风险, “不能把鸡蛋放在同一个篮子里”,所以有必要进行组合投资。
通过上述计算与对比,可以帮助客户进行投资决策。
客户:那么能否帮我记录下一笔一笔不同类型的投资,并动态显示资金现值呢?
二、完成要求:以结对方式完成。
在这次结对编程中分配任务 我:设计代码并审核,单元测试减少bug
蔡京航:设计界面,查阅资料,令代码规范并美观
在这这次结对编程的收获到和感悟:结对后,两个人都有不同的想法,在设计的时候可以及时提出质疑并觉得怎样做比较好
并指出错误,因此能互相受益,感觉很不错,能提高质量。
三、估算时间
估计用时:1.5h
估计代码行:300
实际用时:2.5h
实际代码行:304
四、用txt文件来动态显示历史信息
1 import java.io.BufferedWriter; 2 import java.io.File; 3 import java.io.FileNotFoundException; 4 import java.io.FileReader; 5 import java.io.FileWriter; 6 import java.io.IOException; 7 import java.io.Writer; 8 import java.util.ArrayList; 9 10 11 public class txtIO { 12 13 public static void main (String args[]) { 14 15 ReadDate(); 16 17 WriteDate(); 18 19 } 20 21 /** 22 * 读取数据 23 * @return 24 */ 25 public static void ReadDate() { 26 CompoundCalculator C=new CompoundCalculator(); 27 String url = "F:/gitfile/testgit/historydata.txt"; 28 try { 29 FileReader read = new FileReader(new File(url)); 30 StringBuffer sb = new StringBuffer(); 31 char ch[] = new char[1024]; 32 int d = read.read(ch); 33 while(d!=-1){ 34 String str = new String(ch,0,d); 35 sb.append(str); 36 d = read.read(ch); 37 } 38 C.jTextArea1.setText(sb.toString()); 39 System.out.print(sb.toString()); 40 } catch (FileNotFoundException e) { 41 e.printStackTrace(); 42 } catch (IOException e) { 43 e.printStackTrace(); 44 } 45 } 46 47 /** 48 * 写入数据 49 */ 50 public static void WriteDate() { 51 52 try{ 53 File file = new File("F:/gitfile/testgit/historydata.txt"); 54 Writer out = null ; 55 out = new FileWriter(file,true) ; 56 if (file.exists()) { 57 58 file.delete(); 59 } 60 CompoundCalculator C=new CompoundCalculator(); 61 double P=C.P, i=C.i, F=C.F;//F:复利终值 P:本金 i:利率 62 int N=C.N, M=C.M, m=C.m;//N:利率获取时间的整数倍 M:复利次数 m:月数 63 int result=C.result; 64 int action=C.action; 65 file.createNewFile(); 66 67 68 if(action==1){ 69 out.write(" "+"复利"+" "); 70 out.write("本金:" + P + " " + "年利率(%):" + i + " " 71 + "存入年限:" + N + " " + "年复利次数:" + M + " " + "复利终值:" + F 72 + " "); 73 } 74 if(action==2){ 75 out.write(" "+"单利"+" "); 76 out.write("本金:" + P + " " + "年利率(%):" + i + " " 77 + "存入年限:" + N + " " + "复利终值:" + F + " "); 78 } 79 if(action==3){ 80 out.write(" "+"本金估算"+" "); 81 out.write("复利终值:" + F + " " + "年利率(%):" + i + " " 82 + "存入年限:" + N + " " + "年复利次数:" + M + " " + "本金:" + P 83 + " "); 84 } 85 if(action==4){ 86 out.write(" "+"年限估算"+" "); 87 out.write("本金:" + P + " " + "年利率(%):" + i + " " 88 + "年复利次数:" + M + " " + "复利终值:" + F + " " + "年限:" + N 89 + " "); 90 } 91 if(action==5){ 92 out.write(" "+"利率估算"+" "); 93 out.write("本金:" + P + " " + "存入年限:" + N + " " + "年复利次数:" 94 + M + " " + "复利终值:" + F + " " + "年利率(%):" + i + " "); 95 } 96 if(action==6){ 97 out.write(" "+"定期投资(年)"+" "); 98 out.write("年投资金额:" + P + " " + "年利率(%):" + i + " " 99 + "定投年数:" + N + " " + "终值:" + F + " "); 100 } 101 if(action==7){ 102 out.write(" "+"定期投资(月)"+" "); 103 out.write("月投资金额:" + P + " " + "年利率(%):" + i + " " 104 + "定投月数:" + m + " " + "终值:" + F + " "); 105 } 106 if(action==8){ 107 out.write(" "+"等额本息还款"+" "); 108 out.write("贷款金额:" + P + " " + "年利率(%):" + i + " " 109 + "年限:" + N + " " + "年复利次数:" + M + " " + "等额本息还款额:" + F 110 + " "); 111 } 112 //} 113 out.close(); 114 } catch (Exception ex) { 115 System.out.println(ex); 116 } 117 118 } 119 120 }
五、运行效果