import java.util.Scanner;

public class compounding {

    public static void main(String[] args) {
menu();
int m = scanner.nextInt();
switch(m)
{
case 1:
compound_calate(); break;
case 2:
single_calate();break;
} } private static void compound_calate() {//复利计算 while (true) {
System.out.println(""); menu1();
int n = scanner.nextInt();
if (n >= 0 && n <= 6) {
if (n == 0)
System.exit(0);
switch (n) {
case 1:
principal();
break;
case 2:
compound_final();
break;
case 3:
time();
break;
case 4:
annual_interest_rate();
break;
case 5:
equal_investment();
break;
case 6:
Average_repayment();
break; } } else {
System.out.println("输入超出范围,请重新输入:");
}
} } static Scanner scanner = new Scanner(System.in); static void menu()// 功能介绍函数
{
System.out.printf("\t\t|******************************************************|\n");
System.out.printf("\t\t| 利息计算系统 |\n");
System.out.printf("\t\t|******************************************************|\n");
System.out.printf("\t\t| 1: 复利计算 |\n");
System.out.printf("\t\t| 2: 单利计算 |\n");
System.out.printf("\t\t|******************************************************|\n");
System.out.printf("\t请选择<1~2>:");
} static void menu1()// 菜单
{
System.out.printf("\t\t|******************************************************|\n");
System.out.printf("\t\t| 1: 本金计算 |\n");
System.out.printf("\t\t| 2: 终值计算 |\n");
System.out.printf("\t\t| 3: 期数计算 |\n");
System.out.printf("\t\t| 4: 利率计算 |\n");
System.out.printf("\t\t| 5: 定期计算 |\n");
System.out.printf("\t\t| 6: 等额本息还款 |\n");
System.out.printf("\t\t|******************************************************|\n");
System.out.printf("请输入你要选择的功能(1~6):"); } static double principal_formula(double S, double i, int Year)// 本金计算公式
{
double P;
P = S/ Math.pow((1 + i ), Year);
return P;
} static void principal()// 计算本金
{
int Year;
double i,P,S;
System.out.printf("输入期待复利终值:");
S = scanner.nextDouble();
System.out.printf("年利率:");
i = scanner.nextDouble();
System.out.printf("存入年限:");
Year = scanner.nextInt();
P = principal_formula(S, i, Year);
System.out.println("年复利终值为" + S + "需要本金为:" + P);
} static double compound_amount_formula(double P, double i, int Year)// 复利计算公式
{
double F;
F = P * Math.pow((1 + i ),Year);
return F;
} static void compound_final()// 计算复利终值
{
int Year;
double i, F, P;
System.out.printf("请输入本金:");
P = scanner.nextDouble();
System.out.printf("请输入年利率:");
i = scanner.nextDouble();
System.out.printf("请输入复利次数(年):");
Year = scanner.nextInt();
F = compound_amount_formula(P, i, Year);
System.out.println("复利终值:" + F);
} static double single_interest_formula(double P, int Year, double i)// 单利计算公式
{
double F;
F = P *(1+i*Year);
return F;
} static void single_calate()// 单利计算
{
int Year;
double i, F, P;
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("年利率:");
i = scanner.nextDouble();
System.out.printf("存入年限:");
Year = scanner.nextInt();
F = single_interest_formula(P, Year, i);
System.out.println("本息和为:" + F);
} static int years_formula(double F, double P, double i)// 根据复利终值求年份
{
int year;
year = (int) (Math.log(F / P) / Math.log(1 + i ));
return year;
} static void time()// 求年份
{
int Year;
double i, F, P;
System.out.printf("复利终值:");
F = scanner.nextDouble();
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("年利率:");
i = scanner.nextDouble();
Year= years_formula(F, P, i);
System.out.println("从" + P + "到" + F + "需要" + Year+ "年");
} static double rate_formula(double F, double P, int Year)// 复利的利率计算公式
{
double rate;
rate = (Math.pow(F / P, 1.0 / Year) - 1);
return rate;
} static void annual_interest_rate()// 计算年利率
{
int Year;
double i, F, P;
System.out.printf("复利终值:");
F = scanner.nextDouble();
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("存入年限:");
Year = scanner.nextInt();
i = rate_formula(F, P, Year);
System.out.println("从" + P + "到" + F + "需要" + i);
} static double equal_investment_years(double P, int Year, double i)// 按照年份等额投资计算公式
{
double final_value;
final_value = P * (Math.pow(1 + i, Year) - 1) / i;
return final_value;
} static double equal_investment_months(double P, int Year, double i)// 按照月份等额投资计算公式
{
double final_value;
final_value = P * 12 * (1 + i) * (Math.pow(1 + i, Year) - 1) / i;
return final_value;
} static void equal_investment()// 计算等额投资
{
int Year, n;
double i, F, P;
System.out.printf("\t\t1:按年投资\n\t\t2:按月投资\n");
System.out.printf("请选择你要的功能<1|2>:");
n = scanner.nextInt();
if (n == 1) {
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("存入年限:");
Year = scanner.nextInt();
System.out.printf("年利率:");
i = scanner.nextDouble();
F = equal_investment_years(P, Year, i);
System.out.println(Year+ "年后的总产值:" + F); } else if (n == 2) {
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("存入年限:");
Year = scanner.nextInt();
System.out.printf("月利率:");
i = scanner.nextDouble();
F = equal_investment_months(P, Year, i);
System.out.println(Year + "年后的总产值:" + F);
} else {
System.out.printf("输入有误!\n");
} } static double equal_repayment_formula(double F, int Year,double i)// 等额还款公式
{
double refund;
refund = F * i / (12 * (1 + i) * (Math.pow(1 + i, Year) - 1));
return refund;
} static void Average_repayment()// 等额还款
{
int Year;
double i, F, P;
System.out.printf("贷款金额:");
F = scanner.nextDouble();
System.out.printf("存入年限:");
Year = scanner.nextInt();
System.out.printf("年利率:");
i = scanner.nextDouble();
P = equal_repayment_formula(F, Year, i);
System.out.println("贷款" + F + "每月需要还款" + P);
} }

0330 复利程序c语言版转java版 会逐渐更进版的更多相关文章

  1. 复利程序(c语言)(张俊毅 周修文)

    因为之前发烧一直没有了解这个 所以最近才补上 分数扣了就扣了 补上先 单元测试迟点更 #include<stdio.h> #include <math.h> #include ...

  2. 6月份最新语言排行:Java,Python我更看好谁?

    文章首发于终端研发部,转载,请标明原文链接 今天的主题是:探讨一下6月份语言排行还有我的最新展望! 最近,编程语言排行榜前几天发布更新了,在最新的TIOBE编程语言排行榜中,Java依旧位居第一,但前 ...

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

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

  4. 20145316许心远《Java学习笔记(第8版)》课程总结

    20145316许心远<Java学习笔记(第8版)>课程总结 每周读书笔记链接汇总 ▪ 第一周读书笔记 ▪ 第二周读书笔记 ▪ 第三周读书笔记 ▪ 第四周读书笔记 ▪ 第五周读书笔记 ▪ ...

  5. [置顶] 我的 Java 后端书架 (2016 年暖冬版)

    转自:  http://calvin1978.blogcn.com/articles/bookshelf16.html 我的 Java 后端书架 (2016 年暖冬版) 本书架主要针对 Java 后端 ...

  6. 阿里巴巴主导的“华山版《Java 开发手册》”简介

    1."83行代码计划"项目介绍(转自github): 2018年9月22日,在2018杭州云栖大会上,召开<码出高效:Java 开发手册>新书发布会,并宣布将图书所有收 ...

  7. 乐字节Java学习01-Java语言概述,Java发展前景,Java的特点

    从这篇文章开始,小乐准备写一整系列的Java学习文章,一步一步带您进入Java的神奇世界! 这是第一篇:Java语言概述以及Java的发展前景 1.SUN公司介绍 SUN公司全称是Stanford U ...

  8. Java入门 - 语言基础 - 01.Java简介

    原文地址:http://www.work100.net/training/java-intro.html 更多教程:光束云 - 免费课程 Java简介 序号 文内章节 视频 1 概述 2 主要特性 3 ...

  9. 《深入理解Java虚拟机》第2版挖的坑终于在第3版中被R大填平了

    这是why技术的第34篇原创文章 本周还是在家办公的一周,上面的图就是我在家的工位,和上周<Dubbo Cluster集群那点你不知道的事>这篇文章里面的第一张图片比起来,升级了显示器支撑 ...

随机推荐

  1. nginx proxy_pass

    在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理 ...

  2. Windows下 使用CodeBlocks配置OpenGL开发环境

    CodeBlocks版本:13.12 下载OpenGL配置文件 1.glut.dll glut32.dll放入系统盘Windows\System32文件夹 2.glut.h放入CodeBlocks安装 ...

  3. jade复用

    jade复用说白了就是模板的继承. 使用 block 标识符,设置一个可修改的代码片段 layout.jade doctype html html head block title title Def ...

  4. 转:ASP.NET MVC扩展之HtmlHelper辅助方法

    1.什么是HtmlHelper辅助方法?其实就是HtmlHelper类的扩展方法,如下所示: namespace System.Web.Mvc.Html { public static class F ...

  5. Flash Socket简单调试工具

    写了一个简单的Flash Socket调试工具,可用来简单调试本地或者外部socket服务器,使用的时候注意Flash socket的安全策略问题,有问题请联系sky-wang@qq.com.

  6. ClassLoader

    1.双亲委派制 ClassLoadder是一个abstract类 static class sun.misc.Launcher$ExtClassLoader extends java.net.URLC ...

  7. http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html

    http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html

  8. Java Convert String & Int

    To convert a int to string: int num = 123; String str = String.valueOf(num); To convert a string to ...

  9. 第三方Jar上传到Nexus3

    mvn deploy:deploy-file -DgroupId=ESPPaaSService -DartifactId=ESPPaaSService -Dversion=1.0 -Dpackagin ...

  10. Bash中的shopt选项

    Bash中的shopt选项 http://blog.chinaunix.net/uid-20587169-id-1919110.html shopt命令用于显示和设置shell中的行为选项,通过这些选 ...