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("复利计算软件\n");
  52. System.out.printf(" 复利计算公式:F=P*pow((1+i/m),N*m)\n");
  53. System.out.printf(" 单利计算公式:F=P+P*N*i\n");
  54. System.out.printf(" 等额投资公式:F=P*12*(1+i)*(pow(1+i,N)-1)/i\n");
  55. System.out.printf("\tF:复利终值|年金终值\n");
  56. System.out.printf("\tP:本金\n");
  57. System.out.printf("\ti:利率\n");
  58. System.out.printf("\tN:利率获取时间的整数倍\n");
  59. System.out.printf("\tm:年复利次数(一年当中的滚利次数)\n");
  60. }
  61.  
  62. static void menu()// 菜单
  63. {
  64. System.out.printf("\t\t|-----------------------------------|\n");
  65. System.out.printf("\t\t| welcome |\n");
  66. System.out.printf("\t\t|-----------------------------------|\n");
  67. System.out.printf("\t\t| 1:计算本金 |\n");
  68. System.out.printf("\t\t| 2:计算年复利终值 |\n");
  69. System.out.printf("\t\t| 3:单利计算 |\n");
  70. System.out.printf("\t\t| 4:计算年份 |\n");
  71. System.out.printf("\t\t| 5:计算年利率 |\n");
  72. System.out.printf("\t\t| 6:等额定投(年|月) |\n");
  73. System.out.printf("\t\t| 7:等额还款 |\n");
  74. System.out.printf("\t\t| 0:结束 |\n");
  75. System.out.printf("\t\t|-----------------------------------|\n");
  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("\t\t1:按年投资\n\t\t2:按月投资\n");
  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("输入有误!\n");
  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. }

复利计算C转java版的更多相关文章

  1. 复利计算--4.0 单元测试之JAVA版-软件工程

    复利计算--4.0 单元测试-软件工程 前言:由于本人之前做的是C语言版的复利计算,所以为了更好地学习单元测试,于是将C语言版的复利计算修改为JAVA版的. 一.主要的功能需求细分: 1.本金为100 ...

  2. 复利计算- 结对2.0--复利计算WEB升级版

    客户在大家的引导下,有了更多的想法: 这个数据我经常会填.....帮我预先填上呗?...... 把界面做得简单漂亮好操作一点呗? 能不能帮我转成个APP,我装到手机上就更方便了? 我觉得这个很有用,很 ...

  3. 0330 复利程序c语言版转java版 会逐渐更进版

    import java.util.Scanner; public class compounding { public static void main(String[] args) { menu() ...

  4. 复利计算器4.0 【java版】

    import java.util.Scanner; public class FuLi { public static void main(String[] args) { ; Scanner sca ...

  5. 简单复利计算java板

    一.要求: 1.客户说:帮我开发一个复利计算软件. 2如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 4.利 ...

  6. 复利计算5.0(改成Java版本)与 单元测试

    //由于C语言版本不方便单元测试,所以改成了java版本,部分代码如下:import java.util.Scanner; public class FuLi{ public static void ...

  7. 复利计算--web版--总结--软件工程

    复利计算项目 估计用时 实际用时 时间(小时) 5.5小时  6.5小时 总共代码行 500  550 功能包含 单利/复利计算,本金计算,求投资年限,求投资项目利率估计 (计算利息和,计算时间,计算 ...

  8. 复利计算--结对项目<04-11-2016> 1.0.0 lastest 阶段性完工~

    结对项目:Web复利计算 搭档博客地址:25江志彬  http://www.cnblogs.com/qazwsxedcrfv/ 个人摘要: (2016-04-09-12:00)补充:之前传送门没做好, ...

  9. <更新日期03-31-2016> 复利计算5.0 <已改进>

    作业要求: 1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 客户提出: 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养 ...

随机推荐

  1. Jlink-10 pin 的定义(stm32使用)官方定义

    因为在网上找了好久才找到正确的接法,所以专门记载了下来,因为stm32芯片这几个功能引脚会内置上拉电阻,所以不需要再外接电阻了.

  2. 【原创】frozenset集合函数入门及实例

    函数作用 frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素.与之对应的是set函数,set无序排序且不重复,是可变的,有add(),remove()等方法. 函数原型 f ...

  3. 截图:【炼数成金】深度学习框架Tensorflow学习与应用

    创建图.启动图 Shift+Tab Tab 变量介绍: F etch Feed 简单的模型构造 :线性回归 MNIST数据集 Softmax函数 非线性回归神经网络   MINIST数据集分类器简单版 ...

  4. leetcode记录-字符串转整数

    实现 atoi,将字符串转为整数. 该函数首先根据需要丢弃任意多的空格字符,直到找到第一个非空格字符为止.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字 ...

  5. 3Dchart理解

    想在Flex Chart中为图例设置3D效果,近几天查找了些资料,动手做了个DEMO供大家参考!   DEMO演示地址http://xingjunli.webs.com/flash/flexChart ...

  6. VirtualBox上LInux命令初步学习

    大二的寒假已经接近了尾声,寒假期间我初步使用了VirtualBox虚拟机软件,并安装了ubuntu的操作系统进行了Linux语言的学习.然而寒假期间的学习没有太多的计划,纯粹是为了完成作业而应付性的学 ...

  7. 20155322 2017-2018-1《信息安全系统设计》第二周 课堂测试 Linux下C语言实现MYOD

    20155322 2017-2018-1<信息安全系统设计>第二周 课堂测试 Linux下C语言实现MYOD [博客目录] 静态库测试 实现方法 相关资料 操作 动态库测试 实现方法 相关 ...

  8. 20155337 2016-2017-2 《Java程序设计》第一周学习总结

    20155337 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 我们主要学习的是JAVA SE平台也就是标准平台-Java SE四个组成部分:JVM .JR ...

  9. XDS100V3连接Pandaboard ES OMAP4460开发板

    1. 硬件连接如下 2. 使用CCS创建工程,不过好像没有ARM9的内核吧?为啥会出现? 3. 创建目标配置文件 4. 不过确实有ARM9的内核,两个A9内核,一个DSP C64X内核,两个M3的内核 ...

  10. python 内置模块(os)

    1.OS os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径os.chdir("dirname")  改变当前脚本工作目录:相当于shell下cdos. ...