复利/单利计算程序进度

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

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

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

按照这个要求完成了。

演示。 

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

 

 1             Scanner in1=new Scanner(System.in);
 2             System.out.println("请输入本金:");
 3             double money =in1.nextDouble();  //本金
 4             System.out.println("请输入存款年数:");
 5             int years = in1.nextInt();    //存钱年数
 6             System.out.println("请输入利率:");
 7             float r = in1.nextFloat();   //利率
 8             float sum =1;
 9             //float sum = (float) ((1+r)*years*money); 
10                //System.out.println("存款总额为:"+sum);
11             for(int i = 1 ; i<=years; i++){
12             sum = (float) (sum*(1+ r));  
13                  }
14             System.out.println("存款总额为:"+sum*money);
15         }

 

1.0----------------------------------------------------------------------------

2.客户提出:

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

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

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

截止时间:3.12晚11点之前

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

 

 1 package fuli;
 2 
 3 import java.util.Scanner;
 4 
 5 public class fuli {
 6 
 7     public static void main(String[] args) {
 8         // TODO Auto-generated method stub
 9         Scanner in=new Scanner(System.in);
10         System.out.println("请选择1.复利/2.单利:");
11         int a = in.nextInt();
12         if(a==1)
13             Count.fulijisuan();
14         else
15             Count.danlijisuan();
19           }
20     }
    static void fulijisuan() {
            Scanner in1=new Scanner(System.in);
            System.out.println("请输入本金:");
            double money =in1.nextDouble();  //本金
            System.out.println("请输入存款年数:");
            int years = in1.nextInt();    //存钱年数
            System.out.println("请输入利率:");
            float r = in1.nextFloat();   //利率
            float sum =1;
            //float sum = (float) ((1+r)*years*money);
               //System.out.println("存款总额为:"+sum);
            for(int i = 1 ; i<=years; i++){
            sum = (float) (sum*(1+ r));  
                 }
            System.out.println("存款总额为:"+sum*money);
        } }
static void danlijisuan() { Scanner in1 = new Scanner(System.in); double sum = 0; System.out.println("请输入本金:"); double money = in1.nextDouble(); // 本金 System.out.println("请输入存款年数:"); int years = in1.nextInt(); // 存钱年数 System.out.println("请输入利率:"); double r = in1.nextDouble(); // 利率 for (int i = 1; i <= years; i++) { sum = (1 + r * i) * money; System.out.println("当前所需本金:" + sum); } }

 

 2.0----------------------------------------------------------------------------

3.客户又想:

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

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

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

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

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

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

截止时间:3.17晚11点之前

 

 1 public class fuli3 {
 2 
 3     public static void main(String[] args) {
 4         // TODO 自动生成的方法存根
 5         Scanner in=new Scanner(System.in);
 6         System.out.println("请选择1.复利/2.单利:");
 7         int a = in.nextInt();
 8         if(a==1)
 9             Count.fulijisuan();
10         else
11             Count.danlijisuan();;
12     }
13 }
 1 public class Count {
 2 
 3         // TODO 自动生成的方法存根
 4         static void fulijisuan(){
 5         Scanner in=new Scanner(System.in);
 6         System.out.println("请选择1.计算收入/2.计算本金/3.计算时间/4.计算利率:");
 7         int a = in.nextInt();
 8         if(a==1)
 9             Fuli.shouru();
10         else if(a==2)
11             Fuli.benjin();
12         else if(a==3)
13             Fuli.shijian();
14         else
15             Fuli.lilv();
16       }
17      
22     static void danlijisuan(){
23     Scanner in1=new Scanner(System.in);
24     double sum=0;
25     System.out.println("请输入本金:");
26     double money =in1.nextDouble();  //本金
27     System.out.println("请输入存款年数:");
28     int years = in1.nextInt();    //存钱年数
29     System.out.println("请输入利率:");
30     double r = in1.nextDouble();   //利率
31     for(int i = 1 ; i<=years; i++){
32        sum = (1+ r * i )*money; 
33        System.out.println("当前所需本金:"+sum);
34     }
35     }
38 }

 

 1 public class Fuli {
 2      // 复利计算:总额=本金×(1+利率)^存期
 3         static void shouru(){
 4             Scanner in1=new Scanner(System.in);
 5             System.out.println("请输入本金:");
 6             double money =in1.nextDouble();  //本金
 7             System.out.println("请输入存款年数:");
 8             int years = in1.nextInt();    //存钱年数
 9             System.out.println("请输入利率:");
10             float r = in1.nextFloat();   //利率
11             float sum =1;
12             for(int i = 1 ; i<=years; i++){
13             sum = (float) (sum*(1+ r));  
14                  }
15             System.out.println("存款总额为:"+sum*money);
16         }
17         
18         static void benjin(){
19             Scanner in1=new Scanner(System.in);
20             System.out.println("请输入复利终值:");
21             double sum =in1.nextDouble(); 
22             System.out.println("请输入存款年数:");
23             int years = in1.nextInt(); 
24             System.out.println("请输入利率:");
25             float r = in1.nextFloat(); 
26             //double money,n=1;
27             //for(int i = 1 ; i<=years; i++){
28              //   n=(1+r)*n;
29             //}
30             //money = sum/n;
31             float money=(float)( sum/(1+years*r));
32             System.out.println("应投入本金为:"+money);
33         }
34         
35     
36         static void shijian(){
37             Scanner in1=new Scanner(System.in);
38             System.out.println("请输入本金:");
39             double money =in1.nextDouble();  //本金
40             System.out.println("请输入复利终值:");
41             int sum = in1.nextInt();    //存钱年数
42             System.out.println("请输入利率:");
43             double r = in1.nextDouble();   //利率
44             int years=(int)((Math.log(sum)/Math.log(1+r))-(Math.log(money)/Math.log(1+r)));
45             System.out.println("应存储时间为:"+years);
46         }
47         
48 
49         static void lilv(){
50             Scanner in1=new Scanner(System.in);
51             System.out.println("请输入本金:");
52             double money =in1.nextDouble();  //本金
53             System.out.println("请输入存款年数:");
54             int years = in1.nextInt();    //存钱年数
55             System.out.println("请输入复利终值:");
56             double sum = in1.nextDouble();   //终值
57             float r=(float)( (Math.pow(sum/money, 1.0/years))-1 );
58             System.out.println("报酬率应为:"+r*100+"%");
59         }
60 }

本来是想下午就弄好的,结果拖到了晚上。。。看来在写代码方面还不够熟悉和细心。git那里好像上传不上去。。。、

 

 3.0----------------------------------------------------------------------------

7. 你写的程序能让客户随意操作吗?误输入数据、不小心做了非常规的操作程序是什么反应? 

    相互观赏程序运行情况。

8. 如果向银行贷款10万元,年利率6.5%,期限为10年,那么每月等额本息还款多少?(算复利条件下等额还款金额)

 

改善完成至要求8,并成功PUSH到github上。

 

9. 好书不读就浪费钱了,阅读教材《构建之法》第1.2.3章,适当扩展阅读,看不懂不理解的时候记得百度, 并写一个读后感博客,每章必须至少提一个问题。在博客中要列出问题是关于哪一章,哪一节,你的困惑在哪里? 有什么思考?更重要的,让博客园铭记我们纷纷而来的收获与感悟。

10. 另外,我们准备找搭档了,找到你志趣相投的小伙伴。

论伙伴的重要性,看电影《硅谷传奇》,感受下传奇牛人的影响一生的搭档。

截止时间:2016.3.21晚11点之前

 1 public class Count {
 2 
 3         // TODO 自动生成的方法存根
 4         static void fulijisuan(){
 5         Scanner in=new Scanner(System.in);
 6         System.out.println("请选择1.计算收入/2.计算本金/3.计算时间/4.计算利率/5.复利条件下等额还款金额:");
 7         int a = in.nextInt();
 8         if(a==1)
 9             Fuli.shouru();
10         else if(a==2)
11             Fuli.benjin();
12         else if(a==3)
13             Fuli.shijian();
14         else if(a==4)
15             Fuli.lilv();
16         else if(a==5)
17             Fuli.dengehuankuan();
18       }
19      
20       
21 
22     static void danlijisuan(){
23     Scanner in1=new Scanner(System.in);
24     double sum=0;
25     System.out.println("请输入本金:");
26     double money =in1.nextDouble();  //本金
27     System.out.println("请输入存款年数:");
28     int years = in1.nextInt();    //存钱年数
29     System.out.println("请输入利率:");
30     double r = in1.nextDouble();   //利率
31     for(int i = 1 ; i<=years; i++){
32        sum = (1+ r * i )*money; 
33        System.out.println("当前所需本金:"+sum);
34     }
35     }
38 }
 1 public class Fuli {
 2 
 3         // TODO 自动生成的方法存根
 4      // 复利计算:总额=本金×(1+利率)^存期
 5         static void shouru(){
 6             Scanner in1=new Scanner(System.in);
 7             System.out.println("请输入本金:");
 8             double money =in1.nextDouble();  //本金
 9             System.out.println("请输入存款年数:");
10             int years = in1.nextInt();    //存钱年数
11             System.out.println("请输入利率:");
12             float r = in1.nextFloat();   //利率
13             float sum =1;
14             //float sum = (float) ((1+r)*years*money); 
15                //System.out.println("存款总额为:"+sum);
16             for(int i = 1 ; i<=years; i++){
17             sum = (float) (sum*(1+ r));  
18                  }
19             System.out.println("存款总额为:"+sum*money);
20         }
21         
22         
23         static void benjin(){
24             Scanner in1=new Scanner(System.in);
25             System.out.println("请输入复利终值:");
26             double sum =in1.nextDouble();  //本金
27             System.out.println("请输入存款年数:");
28             int years = in1.nextInt();    //存钱年数
29             System.out.println("请输入利率:");
30             float r = in1.nextFloat();   //利率
31             //double money,n=1;
32             //for(int i = 1 ; i<=years; i++){
33              //   n=(1+r)*n;
34             //}
35             //money = sum/n;
36             float money=(float)( sum/(Math .pow(1+r,years)) );
37             System.out.println("应投入本金为:"+money);
38         }
39         
40     
41         static void shijian(){
42             Scanner in1=new Scanner(System.in);
43             System.out.println("请输入本金:");
44             double money =in1.nextDouble();  //本金
45             System.out.println("请输入复利终值:");
46             int sum = in1.nextInt();    //存钱年数
47             System.out.println("请输入利率:");
48             double r = in1.nextDouble();   //利率
49             int years=(int)( sum/(Math .pow(1+r,money)) );
50             System.out.println("应存储时间为:"+years);
51         }
52         
53 
54         static void lilv(){
55             Scanner in1=new Scanner(System.in);
56             System.out.println("请输入本金:");
57             double money =in1.nextDouble();  //本金
58             System.out.println("请输入存款年数:");
59             int years = in1.nextInt();    //存钱年数
60             System.out.println("请输入复利终值:");
61             double sum = in1.nextDouble();   //终值
62             float r=(float)( (Math.pow(sum/money, 1.0/years))-1 );
63             System.out.println("报酬率应为:"+r*100+"%");
64         }
65         
66         static void dengehuankuan(){
67             Scanner in1=new Scanner(System.in);
68             System.out.println("请输入贷款金额:");
69             double money =in1.nextDouble();
70             System.out.println("请输入存款年数:");
71             int years = in1.nextInt();  
72             System.out.println("请输入利率:");
73             double r = in1.nextDouble(); 
74             double m;
75             m=money*r/(12*(1+r)*(Math.pow(1+r,years)-1));
76             System.out.println("每月等额还款金额为:"+m+"元");
77         }
78         
79         static void exit(){
80                 Scanner in1=new Scanner(System.in);
81                 System.out.println("感谢您使用复利计算软件.\n");
82         }
83 }

 

 

4.0----------------------------------------------------------------------------

找好搭档,2人一组,把分组名单汇总于学委处,学委更新到博客列表上。

12. 即要追求利益,又要面对不可预知的金融投资风险, “不能把鸡蛋放在同一个篮子里”,所以有必要进行组合投资。

     通过上述计算与对比,可以帮助客户进行投资决策。 
     客户:那么能否帮我记录下一笔一笔不同类型的投资,并动态显示资金现值呢?

 

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

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

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

posted @ 2016-03-12 14:09  08周诗琦  阅读(389)  评论(0编辑  收藏  举报