zoukankan      html  css  js  c++  java
  • 复利计算C转java版

      1 import java.util.Scanner;
      2 
      3 public class Compound_int {
      4 
      5     public static void main(String[] args) {
      6         tip();
      7         while (true) {
      8             menu();
      9             int n = scanner.nextInt();
     10             if (n >= 0 && n <= 7) {
     11                 if (n == 0)
     12                     break;
     13                 switch (n) {
     14                 case 1:
     15                     benjin();
     16                     break;
     17                 case 2:
     18                     fuli();
     19                     break;
     20                 case 3:
     21                     danli();
     22                     break;
     23                 case 4:
     24                     years();
     25                     break;
     26                 case 5:
     27                     annual_int_rate();
     28                     break;
     29                 case 6:
     30                     YM_Equal_cast_final();
     31                     break;
     32                 case 7:
     33                     Average_capital_plus_interest();
     34                     break;
     35                 case 0:
     36                     n = 0;
     37                     break;
     38 
     39                 }
     40             } else {
     41                 System.out.println("输入超出范围,请重新输入:");
     42 
     43             }
     44         }
     45     }
     46 
     47     static Scanner scanner = new Scanner(System.in);
     48 
     49     static void tip()// 计算公式和一些变量的介绍
     50     {
     51         System.out.printf("复利计算软件
    ");
     52         System.out.printf("    复利计算公式:F=P*pow((1+i/m),N*m)
    ");
     53         System.out.printf("    单利计算公式:F=P+P*N*i
    ");
     54         System.out.printf("    等额投资公式:F=P*12*(1+i)*(pow(1+i,N)-1)/i
    ");
     55         System.out.printf("	F:复利终值|年金终值
    ");
     56         System.out.printf("	P:本金
    ");
     57         System.out.printf("	i:利率
    ");
     58         System.out.printf("	N:利率获取时间的整数倍
    ");
     59         System.out.printf("	m:年复利次数(一年当中的滚利次数)
    ");
     60     }
     61 
     62     static void menu()// 菜单
     63     {
     64         System.out.printf("		|-----------------------------------|
    ");
     65         System.out.printf("		|             welcome               |
    ");
     66         System.out.printf("		|-----------------------------------|
    ");
     67         System.out.printf("		|           1:计算本金               |
    ");
     68         System.out.printf("		|           2:计算年复利终值          |
    ");
     69         System.out.printf("		|           3:单利计算               |
    ");
     70         System.out.printf("		|           4:计算年份               |
    ");
     71         System.out.printf("		|           5:计算年利率             |
    ");
     72         System.out.printf("		|           6:等额定投(年|月)         |
    ");
     73         System.out.printf("		|           7:等额还款               |
    ");
     74         System.out.printf("		|           0:结束                   |
    ");
     75         System.out.printf("		|-----------------------------------|
    ");
     76         System.out.printf("请输入你要选择的功能(0~7):");
     77 
     78     }
     79 
     80     static double capital_formula(double F, double i, int N, int m)// 本金计算公式
     81     {
     82         double P;
     83         P = F / Math.pow((1 + i / m), N * m);
     84         return P;
     85     }
     86 
     87     static void benjin()// 计算本金
     88     {
     89         int N, m;
     90         double i, F, P;
     91         System.out.printf("复利终值:");
     92         F = scanner.nextDouble();
     93         System.out.printf("年利率:");
     94         i = scanner.nextDouble();
     95         System.out.printf("存入年限:");
     96         N = scanner.nextInt();
     97         System.out.printf("年复利次数:");
     98         m = scanner.nextInt();
     99         P = capital_formula(F, i, N, m);
    100         System.out.println("年复利终值为" + F + "需要本金为:" + P);
    101     }
    102 
    103     static double compound_amount_formla(double P, double i, int N, int m)// 复利计算公式
    104     {
    105         double F;
    106         F = P * Math.pow((1 + i / m), N * m);
    107         return F;
    108     }
    109 
    110     static void fuli()// 计算复利终值
    111     {
    112         int N, m;
    113         double i, F, P;
    114         System.out.printf("存入本金:");
    115         P = scanner.nextDouble();
    116         System.out.printf("年利率:");
    117         i = scanner.nextDouble();
    118         System.out.printf("存入年限:");
    119         N = scanner.nextInt();
    120         System.out.printf("年复利次数:");
    121         m = scanner.nextInt();
    122         F = compound_amount_formla(P, i, N, m);
    123         System.out.println("复利终值:" + F);
    124     }
    125 
    126     static double simple_interest_formula(double P, int N, double i)// 单利计算公式
    127     {
    128         double F;
    129         F = P + P * N * i;
    130         return F;
    131     }
    132 
    133     static void danli()// 单利计算
    134     {
    135         int N;
    136         double i, F, P;
    137         System.out.printf("存入本金:");
    138         P = scanner.nextDouble();
    139         System.out.printf("年利率:");
    140         i = scanner.nextDouble();
    141         System.out.printf("存入年限:");
    142         N = scanner.nextInt();
    143         F = simple_interest_formula(P, N, i);
    144         System.out.println("本息和为:" + F);
    145     }
    146 
    147     static int years_formula(double F, double P, double i, int m)// 根据复利终值求年份
    148     {
    149         int year;
    150         year = (int) (Math.log(F / P) / Math.log(1 + i / m) / m);
    151         return year;
    152     }
    153 
    154     static void years()// 求年份
    155     {
    156         int N, m;
    157         double i, F, P;
    158         System.out.printf("复利终值:");
    159         F = scanner.nextDouble();
    160         System.out.printf("存入本金:");
    161         P = scanner.nextDouble();
    162         System.out.printf("年利率:");
    163         i = scanner.nextDouble();
    164         System.out.printf("年复利次数:");
    165         m = scanner.nextInt();
    166         N = years_formula(F, P, i, m);
    167         System.out.println("从" + P + "到" + F + "需要" + N + "年");
    168     }
    169 
    170     static double rate_formula(int m, double F, double P, int N)// 复利的利率计算公式
    171     {
    172         double rate;
    173         rate = m * (Math.pow(F / P, 1.0 / (N * m)) - 1);
    174         return rate;
    175     }
    176 
    177     static void annual_int_rate()// 计算年利率
    178     {
    179         int N, m;
    180         double i, F, P;
    181         System.out.printf("复利终值:");
    182         F = scanner.nextDouble();
    183         System.out.printf("存入本金:");
    184         P = scanner.nextDouble();
    185         System.out.printf("存入年限:");
    186         N = scanner.nextInt();
    187         System.out.printf("年复利次数:");
    188         m = scanner.nextInt();
    189         i = rate_formula(m, F, P, N);
    190         System.out.println("从" + P + "到" + F + "需要" + i);
    191     }
    192 
    193     static double according_year_formula(double P, int N, double i)// 按照年份等额投资计算公式
    194     {
    195         double final_value;
    196         final_value = P * (Math.pow(1 + i, N) - 1) / i;
    197         return final_value;
    198     }
    199 
    200     static double according_month_formula(double P, int N, double i)// 按照月份等额投资计算公式
    201     {
    202         double final_value;
    203         final_value = P * 12 * (1 + i) * (Math.pow(1 + i, N) - 1) / i;
    204         return final_value;
    205     }
    206 
    207     static void YM_Equal_cast_final()// 计算等额投资
    208     {
    209         int N, n;
    210         double i, F, P;
    211         System.out.printf("		1:按年投资
    		2:按月投资
    ");
    212         System.out.printf("请选择你要的功能<1|2>:");
    213         n = scanner.nextInt();
    214         if (n == 1) {
    215             System.out.printf("存入本金:");
    216             P = scanner.nextDouble();
    217             System.out.printf("存入年限:");
    218             N = scanner.nextInt();
    219             System.out.printf("年利率:");
    220             i = scanner.nextDouble();
    221             F = according_year_formula(P, N, i);
    222             System.out.println(N + "年后的总产值:" + F);
    223 
    224         } else if (n == 2) {
    225             System.out.printf("存入本金:");
    226             P = scanner.nextDouble();
    227             System.out.printf("存入年限:");
    228             N = scanner.nextInt();
    229             System.out.printf("年利率:");
    230             i = scanner.nextDouble();
    231             F = according_month_formula(P, N, i);
    232             System.out.println(N + "年后的总产值:" + F);
    233         } else {
    234             System.out.printf("输入有误!
    ");
    235         }
    236 
    237     }
    238 
    239     static double Average_capital_plus_interest_formula(double F, int N,double i)// 等额还款公式
    240     {
    241         double refund;
    242         refund = F * i / (12 * (1 + i) * (Math.pow(1 + i, N) - 1));
    243         return refund;
    244     }
    245 
    246     static void Average_capital_plus_interest()// 等额还款
    247     {
    248         int N;
    249         double i, F, P;
    250         System.out.printf("贷款金额:");
    251         F = scanner.nextDouble();
    252         System.out.printf("存入年限:");
    253         N = scanner.nextInt();
    254         System.out.printf("年利率:");
    255         i = scanner.nextDouble();
    256         P = Average_capital_plus_interest_formula(F, N, i);
    257         System.out.println("贷款" + F + "每月需要还款" + P);
    258     }
    259 
    260 }
  • 相关阅读:
    springboot(十二)-分布式锁(redis)
    springboot(十一)-为什么要用springboot
    HashMap和HashTable区别
    ArrayList和LinkedList区别
    springcloud(三)-Eureka
    springboot(十)-监控应用
    springboot(九)-log配置
    springcloud(二)-最简单的实战
    rest版的webservice
    sqlite与android交互 (封装)
  • 原文地址:https://www.cnblogs.com/zzy999/p/5323715.html
Copyright © 2011-2022 走看看