博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
0406复利计算5.0
阅读量:6985 次
发布时间:2019-06-27

本文共 9396 字,大约阅读时间需要 31 分钟。

1 package kxj;  2 import java.util.Scanner;  3   4 public class Fulijisuan {  5      public static double p,i,f ;  6      public static double n;  7      public static int a=0;  8        9      static double A[]  = new double[10]; 10         static double B[]  = new double[10]; 11         static double C[]  = new double[10]; 12         static double D[]  = new double[10]; 13       14      //计算本金 15     public static void Benjin(){ 16         //int n; 17         //float f,i,p; 18         boolean flag; 19          Scanner scanner=new Scanner(System.in); 20           System.out.println("请输入终值: "); 21           f=scanner.nextDouble(); 22           System.out.println("请输入年利率: "); 23           i=scanner.nextDouble(); 24           System.out.println("请输入年数: "); 25           n=scanner.nextInt(); 26           if(n>=0) 27           { 28               if(i>=0&&i<=1) 29               { 30                  flag=true; 31                  p=(float) (f*1/Math.pow(1+i, n)); 32               } 33               else 34               { 35                   System.out.println("输入的年利率有错!"); 36                   flag=false; 37                    38               } 39           } 40           else 41           { 42               System.out.println("输入的年数有错!"); 43               flag=false; 44                45           } 46           if(flag) 47               System.out.println("本金为: "+(double)(Math.round(p*100)/100.0)); 48      49     } 50      51     //计算本息和 52     public static void Benxihe(){ 53          double sum1=0,sum2=0; 54          boolean flag; 55           Scanner scanner=new Scanner(System.in); 56           System.out.println("请输入本金: "); 57           p=scanner.nextDouble(); 58           System.out.println("请输入年利率: "); 59           i=scanner.nextDouble(); 60           System.out.println("请输入年数: "); 61           n=scanner.nextInt(); 62          if(n>=0) 63           { 64               if(i>=0&&i<=1) 65               { 66                   sum1=(float) (p*Math.pow(1+i, n)); 67                    sum2=p*(1+i*n); 68                    flag=true; 69                     70               } 71               else 72               { 73                   System.out.println("输入的年利率有错!"); 74                   flag=false; 75                    76               } 77           } 78           else 79           { 80               System.out.println("输入的年数有错!"); 81               flag=false; 82                83           } 84           if(flag) 85           { 86              System.out.println("复利的本息和为: "+(double)(Math.round(sum1*100)/100.0)); 87              System.out.println("单利的本息和为: "+(double)(Math.round(sum2*100)/100.0)); 88           } 89     } 90      91     //计算年数 92     public static void Nianshu(){ 93         boolean flag; 94           Scanner scanner=new Scanner(System.in); 95           System.out.println("请输入本金: "); 96           p=scanner.nextDouble(); 97           System.out.println("请输入终值: "); 98           f=scanner.nextDouble(); 99           System.out.println("请输入年利率: ");100           i=scanner.nextDouble();101          if(i>=0&&i<=1)102          {103              n=Logarithm.log(f/p,1+i); 104              flag=true;105          }106          else107          {108             System.out.println("输入的年利率有错!"); 109             flag=false;110 111          }112          if(flag)113           System.out.println("需要存的年数为: "+Math.ceil(n));     114     }115     116     //计算年利率117     public static void Lilv(){118         boolean flag;119          Scanner scanner=new Scanner(System.in);120           System.out.println("请输入本金: ");121           p=scanner.nextDouble();122           System.out.println("请输入终值: ");123           f=scanner.nextDouble();124           System.out.println("请输入年数: ");125           n=scanner.nextInt();126          if(n>=0)127           {128               i=Math.pow(f/p, 1.0/n)-1;129               flag=true;130           }131           else132           {133               System.out.println("输入的年数有错!");134               flag=false;135               136           }137           if(flag)138           System.out.println("年报酬率为: "+(double)(Math.round(i*1000)/1000.0));139     }140     141     //计算本利之和连同年金投资后的总资产142     public static void Nianjin(){143         boolean flag;144          Scanner scanner=new Scanner(System.in);145           System.out.println("请输入每年定投资金: ");146           p=scanner.nextDouble(); 147           System.out.println("请输入年利率: ");148           i=scanner.nextDouble();149           System.out.println("请输入年数: ");150           n=scanner.nextInt();151          if(n>=0)152           {153               if(i>=0&&i<=1)154               {155                    f=p*(1+i)*(Math.pow(1+i,n)-1)/i;156                    flag=true;157                    158               }159               else160               {161                   System.out.println("输入的年利率有错!");162                   flag=false;163                   164               }165           }166           else167           {168               System.out.println("输入的年数有错!");169               flag=false;170               171           }172           if(flag)173           System.out.println("年资产总值为:"+(double)(Math.round(f*100)/100.0));     174     }175     176     //计算每月等额本息还款177     public static void BenxiHuankuan(){178         double f,i,p = 0;179         int n;180         boolean flag;181          Scanner scanner=new Scanner(System.in);182           System.out.println("请输入贷款金额: ");183           f=scanner.nextDouble();184           System.out.println("请输入年利率: ");185           i=scanner.nextDouble();186           System.out.println("请输入贷款年数: ");187           n=scanner.nextInt();188          if(n>=0)189           {190               if(i>=0&&i<=1)191               {192                    i=i/12;193                    n=n*12;194                    p=f*i*Math.pow(1+i, n)/(Math.pow(1+i, n)-1);195                    flag=true;196                    197               }198               else199               {200                   System.out.println("输入的年利率有错!");201                   flag=false;202                   203               }204           }205           else206           {207               System.out.println("输入的年数有错!");208               flag=false;209               210           }211           if(flag)212          System.out.println("每月等额本息还款为:"+(double)(Math.round(p*10000)/10000.0));213         214     }215  216      public static void main(String[] args) {217          int choice;218          while(true){219          System.out.println("\t\t|***********************|");220          System.out.println("\t\t|  1. 求       本      金  \t|");221          System.out.println("\t\t|  2. 求   本   息   和 \t|");222          System.out.println("\t\t|  3. 求      年       数 \t|");223         System.out.println("\t\t|  4. 求      利       率 \t|");224         System.out.println("\t\t|  5. 求年资产总值\t|");225         System.out.println("\t\t|  6. 求等额本息还款\t|");    226          System.out.println("\t\t|  7. 投   资   运    算     \t|");227          System.out.println("\t\t|  0. 退        出          \t|");228          System.out.println("\t\t|***********************|");229          Scanner scanner=new Scanner(System.in);230          System.out.println("\n请输入你的选择(0~7):  ");231          choice=scanner.nextInt();232          switch(choice){233          case 1:234              Benjin();235              break;236          case 2:237              Benxihe();238              break;239          case 3:240              Nianshu();241              break;242          case 4:243              Lilv();244              break;245          case 5:246              Nianjin();247              break;248          case 6:249              BenxiHuankuan();250              break;251          case 7:252              TouziYunsuan();253          254              a++;255              break;256          case 0:257              System.out.println("Thanks for using!");258              System.exit(0);259              break;260          261              262          default:263              {264                  System.out.println("输入有误!");265                  break;266              }267          }268              }        269          }270 271     private static void TouziYunsuan() {272         boolean flag;273         int number;274           Scanner scanner=new Scanner(System.in);275           System.out.println("请输入本金: ");276           p=scanner.nextDouble();277           System.out.println("请输入年利率: ");278           i=scanner.nextDouble();279           System.out.println("请输入年限: ");280         n = scanner.nextInt();281         for (int t = 1; t <= n; t++) {282             f = p * (1 + i * t);283 284             System.out.println("第" + t + "年\t  " + (double)(Math.round(f*100)/100.0) + "");285         }286         A[a]=p;287         B[a]=i;288         C[a]=n;289         D[a]=f;290         291         System.out.println("是否查看之前记录(1为是): ");292         number = scanner.nextInt();293         if(number==1){294             System.out.print("\t"+"本金"+"\t"+"年利率"+"\t"+"年限"+"\t"+"终值"+"\n");295             for(int b=0;b<=a;b++)296             {297                 System.out.print(b+1+"\t"+A[b]+"\t"+B[b]+"\t"+C[b]+"\t"+D[b]+"\n");298 299             }300                 301         }302         else{303             System.out.print("谢谢");304             305         }    306     }307      }

转载于:https://www.cnblogs.com/950525kxj/p/5361566.html

你可能感兴趣的文章
面试总结,坚定自己的想法
查看>>
数据库隐式类型转换
查看>>
解决WCF调用多次之后没有响应的问题 转
查看>>
【BZOJ2318】【spoj4060】game with probability Problem 概率DP
查看>>
空格&amp;nbsp在不同浏览器中显示距离不一致问题解决方法
查看>>
Nancy 学习-身份认证(Basic Authentication) 继续跨平台
查看>>
分享5个主流的HTML5开发工具
查看>>
基于Ionic2的开源项目
查看>>
QEMU-KVM中的多线程压缩迁移技术
查看>>
Android下创建一个SQLite数据库
查看>>
软件产品与代码版本管理指南
查看>>
分析Linux内核创建一个新进程的过程【转】
查看>>
sql如何分组选择显示最新的一条数据
查看>>
周锦民:腾讯在线教育视频互动直播间技术实践
查看>>
.NET HttpPost 上传文件图片到服务器
查看>>
[perl] 正则表达式实现多模式匹配
查看>>
RCP之病人信息系统开发总结(1):数据库设计
查看>>
js数组操作,拼写好像,没看清楚就容易出错的。
查看>>
C# winform搜索提示的一些想法
查看>>
table的thead/tbody/tfoot/tr/th/td
查看>>