0317复利计算3.0

  1 import java.util.Scanner;
  2
  3 public class text {
  4     public static void main(String[] args) {
  5
  6
  7         do {
  8             Scanner scanner = new Scanner(System.in);
  9             System.out.println(" ");
 10             System.out.print("请选择(0为退出,1为算本息,2为算本金,3为算投资,4为算n年后资产总值):");
 11             int number1 = scanner.nextInt();
 12
 13             if (number1 == 1) {
 14                 System.out.print("请输入本金:");
 15                 double money = scanner.nextDouble();
 16                 System.out.print("请输入年利率:");
 17                 double rate = scanner.nextDouble();
 18                 System.out.print("请输入年限:");
 19                 int year = scanner.nextInt();
 20
 21                 System.out.print("请选择(1为复利计算,2为单利计算):");
 22                 int number2 = scanner.nextInt();
 23
 24                 if (number2 == 1) {
 25                     for (int i = 1; i <= year; i++) {
 26                         money = (1 + rate) * money;
 27                     }
 28                     System.out.println("存入" + year + "年后的复利计算本息为:" +(double) (Math.round(money*100)/100.0));
 29
 30                 }
 31                 if (number2 == 2) {
 32                     money = money + money * rate * year;
 33                     System.out.println("存入" + year + "年后的单利计算本息为:" +(double) (Math.round(money*100)/100.0));
 34                 }
 35
 36
 37
 38             }
 39
 40             if (number1 == 2) {
 41                 System.out.print("请输入本息:");
 42                 double money = scanner.nextDouble();
 43                 System.out.print("请输入年利率:");
 44                 double rate = scanner.nextDouble();
 45                 System.out.print("请输入年限:");
 46                 int year = scanner.nextInt();
 47
 48                 System.out.print("请选择(1为复利计算,2为单利计算):");
 49                 int number2 = scanner.nextInt();
 50
 51                 if (number2 == 1) {
 52                     double num = 1;
 53                     for (int i = 1; i <= year; i++) {
 54                         num = num * (1 + rate);
 55                     }
 56                     money = money * (1 / num);
 57                     System.out.println("复利计算需要存入的本金为:" +(double) (Math.round(money*100)/100.0));
 58                 }
 59                 if (number2 == 2) {
 60                     money = money * (1 / (1 + rate * year));
 61                     System.out.println("单利计算需要存入的本金为:" + (double) (Math.round(money*100)/100.0));
 62                 }
 63
 64             }
 65             if (number1 == 3) {
 66
 67                 System.out.print("请输入投资金额:");
 68                 double money1 = scanner.nextDouble();
 69                 System.out.print("请输入收获金额:");
 70                 double money2 = scanner.nextDouble();
 71
 72                 System.out.print("请选择(1为算时间,2为算利率):");
 73                 int number2 = scanner.nextInt();
 74
 75                 if (number2 == 1) {
 76                     System.out.print("请输入年利率:");
 77                     double rate = scanner.nextDouble();
 78                     double year;
 79                     year = Logarithm.log(money2/money1,1+rate);
 80                     year = Math.ceil(year);
 81                     System.out.println("需要存入的年限为:" + year);
 82                 } else if (number2 == 2) {
 83                     System.out.print("请输入年限:");
 84                     int year = scanner.nextInt();
 85                     double rate;
 86                     rate = Math.pow(money2/money1, 1.0/year)-1;
 87                     System.out.println("所需年利率为:" + (double) (Math.round(rate*10000)/10000.0));
 88                 }
 89             }
 90
 91             if(number1 == 4){
 92                 System.out.print("请输入每年的投资金额:");
 93                 double money1 = scanner.nextDouble();
 94                 System.out.print("请输入年利率:");
 95                 double rate = scanner.nextDouble();
 96                 System.out.print("请输入年限:");
 97                 int year = scanner.nextInt();double money2=0;
 98                 for(int i=1;i<=year;i++){
 99
100                     money1=money1+money2;
101                     money2=money1*(1+rate);
102
103                 }
104                 System.out.println(year+"年后的资产总值为:" + (double) (Math.round(money2*100)/100.0));
105             }
106
107             if (number1 == 0) {
108                 System.out.println("谢谢使用!" );
109                 System.exit(0);
110
111             }
112         } while (true);
113     }
114 }
1 public class Logarithm {
2     static public double log(double value, double base){
3         return Math.log(value)/Math.log(base);
4
5      }
6
7 }

时间: 2024-12-04 18:30:14

0317复利计算3.0的相关文章

0317复利计算总结

实验名称 估计完成所需时间(h) 估计代码量(行) 实际完成所需时间(h) 实际代码量(行) 复利计算1.0 - - 1.5 18 复利计算2.0 - - 3 56 复利计算3.0 4 110  6 121  所用语言:java 所用工具:eclipse 实验总结:在这三次实验中,有很多时间是用在了解公式.推导公式上,特别是第三次实验,因为实验中要用到对数函数和开方,以前没有用到过这两个方面的知识,所以花了不少时间在这上,通过百度的查找.和同学讨论之后终于把问题解决了.通过这三次实验,我知道了自

0330复利计算4.0单元测试

测试模块 输入测试 预期结果 运行结果 复/单利计算本息  (本金,年利率,年限)      1000,0.03,10 复利:1343.92 单利:1300.0 √  0,0.03,10 复利:0.0 单利:0.0   √  1000,0,10 复利:1000.0 单利:1000.0  √  1000,0.03,10 复利:1000.0 单利:1000.0  √ 复/单利计算本金   (本息,年利率,年限)      1000,0.03,10 复利:744.09 单利:769.23  √  0,

复利计算4.0单元测试

——————————复利计算程序单元测试报告—————————— ————————————4.0 单元测试—————————————— ————————————————要求—————————————— 根据复利计算程序,进行Junit单元测试. 在测试会出现什么场面,有哪些情况的结果? 所要期待的返回值是多少? 写测试程序. 运行测试. 完成结果: 测试一:复利计算本息 1.期待的返回值是13439,实际值是13439.16,允许有1.0以内的误差. 2.测试程序: 此为复利计算: 在允许误差为

复利计算6.0

一.主要功能与需求分析 1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 2.如果按照单利计算,本息的最终收益 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万

复利计算3.0代码

#include<stdio.h> #include<math.h> void List(); void A(); void B(); void C(); void D(); void E(); void F(); main() { int sel; List(); printf("\t请选择:"); while(scanf("%d",&sel)!=1||sel<0||sel>6)//防止输入的是字符以及输入的数字不是整数

复利计算3.0

import java.util.Scanner; public class Money { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入计算方式:1.单利计算 2.复利计算 3.本金计算 4.股票期限计算 5.利率计算 6.资产总值计算"); // 选择计算方式 int choose = scanner.nextInt

复利计算2.0

1 package fulijisuan; 2 3 import java.awt.event.MouseAdapter; 4 import java.awt.event.MouseEvent; 5 6 import javax.swing.JButton; 7 import javax.swing.JFrame; 8 import javax.swing.JLabel; 9 import javax.swing.JRadioButton; 10 import javax.swing.JText

0330复利计算4.0(改)

1 import java.util.Scanner; 2 3 public class text { 4 5 public static void main(String[] args) { 6 while (true) { 7 Scanner scanner = new Scanner(System.in); 8 System.out.println("----------------------------"); 9 System.out.println(" 1.复利计

0317复利计算实验总结

实验 应用工具 代码行 工作量 一 VC++6.0(C语言) 15 30分钟 二 VC++6.0(C语言) 122 90分钟 估计 代码量 工作量 结果 第4小问 20行 30分钟 24行24分钟 第5小问 20行 30分钟 24行 第6小问       实验总结:第一次实验只是简单的能够实现复利计算的计算终值功能,几行代码加上数学公式便能编写出来.比较简单.第二次实验慢慢增加了复利计算的其他功能,比如单利计算,单利计算和复利计算是两个不同的求年终值的方式,当然得到的随时终值但是意义不一样.实验