1 import java.util.Scanner; 2 3 public class exercise { 4 5 public static void main(String[] args) { 6 int select; 7 do { 8 System.out.println("请问您想要进行单利计算还是复利计算:1.单利 2.复利"); 9 Scanner keyin0 = new Scanner(System.in); 10 select = keyin0.nextInt(); 11 } while (select != 1 && select != 2); 12 System.out.println("请输入您想要存储的金额数量:"); 13 Scanner keyin1 = new Scanner(System.in); 14 double originalMoney = keyin1.nextDouble(); 15 System.out.println("请输入您想要存储金额的时间(年):"); 16 Scanner keyin2 = new Scanner(System.in); 17 int year = keyin2.nextInt(); 18 System.out.println("请输入您想要设计的年利率:"); 19 Scanner keyin3 = new Scanner(System.in); 20 double rate = keyin3.nextDouble(); 21 double sumValue = originalMoney; 22 if (select == 1) { 23 double singleValue = originalMoney * (1 + rate * year); 24 System.out.println("存入第" + year + "年后的存款总额为:" + singleValue); 25 do { 26 System.out.println("请问您想要计算本金问题吗:1.需要 2.不需要"); 27 select = new Scanner(System.in).nextInt(); 28 } while (select != 1 && select != 2); 29 if (select == 1) { 30 System.out.println("请输入您想要筹到的金额:"); 31 singleValue = new Scanner(System.in).nextDouble(); 32 System.out.println("请输入您想要存储金额的时间(年):"); 33 year = new Scanner(System.in).nextInt(); 34 System.out.println("请输入您想要设计的年利率:"); 35 rate = new Scanner(System.in).nextDouble(); 36 originalMoney = singleValue / (1 + rate * year); 37 System.out.println("需要本金" + originalMoney + "元"); 38 } 39 } 40 else { 41 for (int i = 1; i <= year; i++) { 42 sumValue = (1 + rate) * sumValue; 43 44 } 45 System.out.println("存入第" + year + "年后的存款总额为:" + sumValue); 46 do { 47 System.out.println("请问您想要计算本金问题吗:1.需要 2.不需要"); 48 select = new Scanner(System.in).nextInt(); 49 } while (select != 1 && select != 2); 50 if (select == 1) { 51 System.out.println("请输入您想要筹到的金额:"); 52 sumValue = new Scanner(System.in).nextDouble(); 53 System.out.println("请输入您想要存储金额的时间(年):"); 54 year = new Scanner(System.in).nextInt(); 55 System.out.println("请输入您想要设计的年利率:"); 56 rate = new Scanner(System.in).nextDouble(); 57 for (int i = 1; i <= year; i++) { 58 sumValue = sumValue / (1 + rate); 59 60 } 61 originalMoney = sumValue; 62 System.out.println("需要本金" + originalMoney + "元"); 63 } 64 do { 65 System.out.println("请问您想要计算时间问题吗:1.需要 2.不需要"); 66 select = new Scanner(System.in).nextInt(); 67 } while (select != 1 && select != 2); 68 if (select == 1) { 69 System.out.println("请输入您想要存储的金额数量:"); 70 originalMoney = new Scanner(System.in).nextDouble(); 71 System.out.println("请输入到期后您想要获取的金额:"); 72 sumValue = new Scanner(System.in).nextDouble(); 73 System.out.println("请输入您想要设计的年利率:"); 74 rate = new Scanner(System.in).nextDouble(); 75 year = 1; 76 for (; sumValue > originalMoney; year++) { 77 originalMoney = originalMoney * (1 + rate); 78 79 } 80 year--; 81 System.out.println("需要" + year + "年时间"); 82 } 83 do { 84 System.out.println("请问您想要计算利率问题吗:1.需要 2.不需要"); 85 select = new Scanner(System.in).nextInt(); 86 } while (select != 1 && select != 2); 87 //}while (select != 1 && select != 2); 88 if (select == 1) { 89 System.out.println("请输入您想要存储的金额数量:"); 90 originalMoney = new Scanner(System.in).nextDouble(); 91 System.out.println("请输入到期后您想要获取的金额:"); 92 sumValue = new Scanner(System.in).nextDouble(); 93 System.out.println("请输入您想要存储金额的时间(年):"); 94 year = new Scanner(System.in).nextInt(); 95 rate = 0; 96 for (; Math.log(sumValue / originalMoney) / Math.log(rate + 1) > year; rate = rate + 0.0001) { 97 continue; 98 } 99 System.out.println("年利率应为:" + rate); 100 101 } 102 do { 103 System.out.println("请问您想要计算每年或者每月拿出固定金额投资吗:1.需要 2.不需要"); 104 select = new Scanner(System.in).nextInt(); 105 } while (select != 1 && select != 2); 106 if(select==1){ 107 do { 108 System.out.println("请问您想要投资额是以月计算还是以年计算:1.月 2.年"); 109 select = new Scanner(System.in).nextInt(); 110 } while (select != 1 && select != 2); 111 if(select==1){ 112 System.out.println("请问您想每个月定期投资多少:"); 113 originalMoney = new Scanner(System.in).nextDouble(); 114 System.out.println("请输入您想要设计的月利率:"); 115 double rateMonth = new Scanner(System.in).nextDouble(); 116 System.out.println("请输入您想要存储金额的时间(月):"); 117 int month = new Scanner(System.in).nextInt(); 118 sumValue=0; 119 for (int i = 1; i <= month; i++) { 120 sumValue = (1 + rateMonth) * (sumValue+originalMoney); 121 122 } 123 System.out.println(""+month+"个月后资产总值将变为:"+sumValue); 124 } 125 if(select==2){ 126 System.out.println("请问您想每年定期投资多少:"); 127 originalMoney = new Scanner(System.in).nextDouble(); 128 System.out.println("请输入您想要设计的年利率:"); 129 rate = new Scanner(System.in).nextDouble(); 130 System.out.println("请输入您想要存储金额的时间(年):"); 131 year = new Scanner(System.in).nextInt(); 132 sumValue=0; 133 for (int i = 1; i <=year; i++) { 134 sumValue = (1 + rate) * (sumValue+originalMoney); 135 136 } 137 System.out.println(""+year+"年后资产总值将变为:"+sumValue); 138 } 139 } 140 do { 141 System.out.println("请问您想要计算贷款问题吗:1.需要 2.不需要"); 142 select = new Scanner(System.in).nextInt(); 143 } while (select != 1 && select != 2); 144 if(select==1) 145 { 146 System.out.print("请输入贷款金额:"); 147 originalMoney=new Scanner(System.in).nextDouble(); 148 System.out.print("请输入贷款的时间期限(年):"); 149 year=new Scanner(System.in).nextInt(); 150 System.out.print("请输入贷款的年利率:"); 151 rate=new Scanner(System.in).nextDouble(); 152 sumValue=originalMoney; 153 for (int i = 1; i <= year; i++) { 154 sumValue = (1 + rate) * sumValue; 155 156 } 157 158 double returnPay=sumValue/(year*12); 159 System.out.println("每个月应该偿还"+returnPay); 160 161 } 162 163 } 164 165 } 166 }