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. nodejs 基本类型和语法

    写在前面 今天想要查下Node的类型什么的知识,想要总结下,在Googol上看到一个文章,但是原始的链接不在了,在快照中把这篇文章拉出来,如果原作者有问题,请联系我! 该文章都是一些JS的基础,高手自 ...

  2. Python的安装

    篇幅主要是别人的分享,我这里主要是添加注意点.我当初就是按照下面的图片开始安装python,安装的是python3.5,pyDev也是使用的博主的(还花了1资源分下载).但是运行程序时,一直显示 Er ...

  3. CSS :before和:after (转)

    前几天的晚上较全面的去看了下css的一些文档和资料,大部分的样式运用都没什么大问题了,只是有些许较陌生,但是也知道他们的存在和实现的是什么样式.今天主要想在这篇学习笔记中写的也不多,主要是针对:bef ...

  4. JS 去字符串空格 总结

    str为要去除空格的字符串: 去除所有空格: str = str.replace(/\s+/g,""); 去除两头空格: str = str.replace(/^\s+|\s+$/ ...

  5. ThreadLocal知识总结

    以前学习<Thinking in Java>时,了解过ThreadLocal,但没做笔记.现在又忘记了.嗯,要勤动笔.API中ThreadLocal的方法: public T get() ...

  6. ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明

    原文:ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 By 李远祥 ArcGIS Por ...

  7. centos 安装 openerp

    遇到问题:近日公司提出openerp的搭建,觉得openerp里的有些模块比较适合公司,openerp的运作,估计会有利于公司系统化的管理.于是我就去了解openrp,然后来搭建这套强大的系统. 解决 ...

  8. Android开发笔记:打包数据库

    对于数据比较多的控制一般会加入SQLite数据库进行数据存储,在打包时这些数据库是不自动打包到apk中的,如何创建数据库呢 方法1:将创建数据库的sql语句在SQLiteHelper继承类中实现,在第 ...

  9. Magento去掉价格的小数点

    magento的默认情况,价格后面是有小数点的,我们来看下如何正确的来去掉小数点. 1.复制如下路径的文件 app/code/core/Mage/Directory/Model/Currency.ph ...

  10. angularjs工程流程走不通的原因以及使用angularjs流程注意点

    1 入口index.html 在这个页面中要引入一些js,也就是说无论哪个模块下的js以及css都是在index.html下引入的,而在其他非index.html的html页面中,只有div模块代码, ...