0330 复利程序c语言版转java版 会逐渐更进版
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版 会逐渐更进版的更多相关文章
- 复利程序(c语言)(张俊毅 周修文)
因为之前发烧一直没有了解这个 所以最近才补上 分数扣了就扣了 补上先 单元测试迟点更 #include<stdio.h> #include <math.h> #include ...
- 6月份最新语言排行:Java,Python我更看好谁?
文章首发于终端研发部,转载,请标明原文链接 今天的主题是:探讨一下6月份语言排行还有我的最新展望! 最近,编程语言排行榜前几天发布更新了,在最新的TIOBE编程语言排行榜中,Java依旧位居第一,但前 ...
- 复利计算--4.0 单元测试之JAVA版-软件工程
复利计算--4.0 单元测试-软件工程 前言:由于本人之前做的是C语言版的复利计算,所以为了更好地学习单元测试,于是将C语言版的复利计算修改为JAVA版的. 一.主要的功能需求细分: 1.本金为100 ...
- 20145316许心远《Java学习笔记(第8版)》课程总结
20145316许心远<Java学习笔记(第8版)>课程总结 每周读书笔记链接汇总 ▪ 第一周读书笔记 ▪ 第二周读书笔记 ▪ 第三周读书笔记 ▪ 第四周读书笔记 ▪ 第五周读书笔记 ▪ ...
- [置顶]
我的 Java 后端书架 (2016 年暖冬版)
转自: http://calvin1978.blogcn.com/articles/bookshelf16.html 我的 Java 后端书架 (2016 年暖冬版) 本书架主要针对 Java 后端 ...
- 阿里巴巴主导的“华山版《Java 开发手册》”简介
1."83行代码计划"项目介绍(转自github): 2018年9月22日,在2018杭州云栖大会上,召开<码出高效:Java 开发手册>新书发布会,并宣布将图书所有收 ...
- 乐字节Java学习01-Java语言概述,Java发展前景,Java的特点
从这篇文章开始,小乐准备写一整系列的Java学习文章,一步一步带您进入Java的神奇世界! 这是第一篇:Java语言概述以及Java的发展前景 1.SUN公司介绍 SUN公司全称是Stanford U ...
- Java入门 - 语言基础 - 01.Java简介
原文地址:http://www.work100.net/training/java-intro.html 更多教程:光束云 - 免费课程 Java简介 序号 文内章节 视频 1 概述 2 主要特性 3 ...
- 《深入理解Java虚拟机》第2版挖的坑终于在第3版中被R大填平了
这是why技术的第34篇原创文章 本周还是在家办公的一周,上面的图就是我在家的工位,和上周<Dubbo Cluster集群那点你不知道的事>这篇文章里面的第一张图片比起来,升级了显示器支撑 ...
随机推荐
- 【转】UML图中类之间的关系
原文:http://blog.csdn.net/hguisu/article/details/7609483 类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相 ...
- Bluetooth SDP介绍
目录 1. 概念 2. 服务记录(Service Record) 3. 服务属性(Service Attribute) 4. 服务类(Service Class) 5. 服务查找 5.1 UUID 5 ...
- 【android学习3】解决Android界面布局添加EditView之后无法预览问题
在设计登陆界面时,拖入一个EditView之后发现界面无法预览 问题分析: 进入xml源文件里发现一个警告,提示添加inputType或者hint元素,添加后界面仍然无法预览... 仔细查看了当前使用 ...
- 毕老师的Editplus
简介 EditPlus是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本.HTML和程序语言的Windows编辑器,你甚至可以通过设置用户工具将其作为C ...
- pointer-events:none;穿透属性
从属性字面上看可以理解为:手势时间无效. 当我们在ios下想复制一段文字是,不知道原因导致一些莫名的怪异现象:总是无法复制文字,却意外的发现无论怎么着复制的始终都是图片时, 当我们在一个半透明遮罩上想 ...
- ASP.NET MVC3 Areas 分离项目 同名控制器(同名Controller) 演示demo
为什么需要分离? 我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可测试,易扩展等等.但是在实际 ...
- golang AES/ECB/PKCS5 加密解密 url-safe-base64
因为项目的需要用到golang的一种特殊的加密解密算法AES/ECB/PKCS5,但是算法并没有包含在标准库中,经过多次失败的尝试,终于解码成功,特此分享: /* 描述 : golang AES/EC ...
- ubuntu12.04进入单用户模式
更改ubuntu配置文件出错了,只能进入单用户模式改回来. 转载至: http://blog.csdn.net/lfyaa/article/details/9899497 1.重启ubuntu,VMw ...
- linux matlab2013b 安装教程
链接:http://pan.baidu.com/s/1pJE6R2b 密码:shfy 1. 解压缩“Mathworks Matlab R2013b Linux.rar”(无需密码),得到“Mathwo ...
- Task+http请求
Task+http请求 这个算是一个简单的事例吧