import java.util.Scanner;

 public class Compound_int {

     public static void main(String[] args) {
tip();
while (true) {
menu();
int n = scanner.nextInt();
if (n >= 0 && n <= 7) {
if (n == 0)
break;
switch (n) {
case 1:
benjin();
break;
case 2:
fuli();
break;
case 3:
danli();
break;
case 4:
years();
break;
case 5:
annual_int_rate();
break;
case 6:
YM_Equal_cast_final();
break;
case 7:
Average_capital_plus_interest();
break;
case 0:
n = 0;
break; }
} else {
System.out.println("输入超出范围,请重新输入:"); }
}
} static Scanner scanner = new Scanner(System.in); static void tip()// 计算公式和一些变量的介绍
{
System.out.printf("复利计算软件\n");
System.out.printf(" 复利计算公式:F=P*pow((1+i/m),N*m)\n");
System.out.printf(" 单利计算公式:F=P+P*N*i\n");
System.out.printf(" 等额投资公式:F=P*12*(1+i)*(pow(1+i,N)-1)/i\n");
System.out.printf("\tF:复利终值|年金终值\n");
System.out.printf("\tP:本金\n");
System.out.printf("\ti:利率\n");
System.out.printf("\tN:利率获取时间的整数倍\n");
System.out.printf("\tm:年复利次数(一年当中的滚利次数)\n");
} static void menu()// 菜单
{
System.out.printf("\t\t|-----------------------------------|\n");
System.out.printf("\t\t| welcome |\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| 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| 7:等额还款 |\n");
System.out.printf("\t\t| 0:结束 |\n");
System.out.printf("\t\t|-----------------------------------|\n");
System.out.printf("请输入你要选择的功能(0~7):"); } static double capital_formula(double F, double i, int N, int m)// 本金计算公式
{
double P;
P = F / Math.pow((1 + i / m), N * m);
return P;
} static void benjin()// 计算本金
{
int N, m;
double i, F, P;
System.out.printf("复利终值:");
F = scanner.nextDouble();
System.out.printf("年利率:");
i = scanner.nextDouble();
System.out.printf("存入年限:");
N = scanner.nextInt();
System.out.printf("年复利次数:");
m = scanner.nextInt();
P = capital_formula(F, i, N, m);
System.out.println("年复利终值为" + F + "需要本金为:" + P);
} static double compound_amount_formla(double P, double i, int N, int m)// 复利计算公式
{
double F;
F = P * Math.pow((1 + i / m), N * m);
return F;
} static void fuli()// 计算复利终值
{
int N, m;
double i, F, P;
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("年利率:");
i = scanner.nextDouble();
System.out.printf("存入年限:");
N = scanner.nextInt();
System.out.printf("年复利次数:");
m = scanner.nextInt();
F = compound_amount_formla(P, i, N, m);
System.out.println("复利终值:" + F);
} static double simple_interest_formula(double P, int N, double i)// 单利计算公式
{
double F;
F = P + P * N * i;
return F;
} static void danli()// 单利计算
{
int N;
double i, F, P;
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("年利率:");
i = scanner.nextDouble();
System.out.printf("存入年限:");
N = scanner.nextInt();
F = simple_interest_formula(P, N, i);
System.out.println("本息和为:" + F);
} static int years_formula(double F, double P, double i, int m)// 根据复利终值求年份
{
int year;
year = (int) (Math.log(F / P) / Math.log(1 + i / m) / m);
return year;
} static void years()// 求年份
{
int N, m;
double i, F, P;
System.out.printf("复利终值:");
F = scanner.nextDouble();
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("年利率:");
i = scanner.nextDouble();
System.out.printf("年复利次数:");
m = scanner.nextInt();
N = years_formula(F, P, i, m);
System.out.println("从" + P + "到" + F + "需要" + N + "年");
} static double rate_formula(int m, double F, double P, int N)// 复利的利率计算公式
{
double rate;
rate = m * (Math.pow(F / P, 1.0 / (N * m)) - 1);
return rate;
} static void annual_int_rate()// 计算年利率
{
int N, m;
double i, F, P;
System.out.printf("复利终值:");
F = scanner.nextDouble();
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("存入年限:");
N = scanner.nextInt();
System.out.printf("年复利次数:");
m = scanner.nextInt();
i = rate_formula(m, F, P, N);
System.out.println("从" + P + "到" + F + "需要" + i);
} static double according_year_formula(double P, int N, double i)// 按照年份等额投资计算公式
{
double final_value;
final_value = P * (Math.pow(1 + i, N) - 1) / i;
return final_value;
} static double according_month_formula(double P, int N, double i)// 按照月份等额投资计算公式
{
double final_value;
final_value = P * 12 * (1 + i) * (Math.pow(1 + i, N) - 1) / i;
return final_value;
} static void YM_Equal_cast_final()// 计算等额投资
{
int N, 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("存入年限:");
N = scanner.nextInt();
System.out.printf("年利率:");
i = scanner.nextDouble();
F = according_year_formula(P, N, i);
System.out.println(N + "年后的总产值:" + F); } else if (n == 2) {
System.out.printf("存入本金:");
P = scanner.nextDouble();
System.out.printf("存入年限:");
N = scanner.nextInt();
System.out.printf("年利率:");
i = scanner.nextDouble();
F = according_month_formula(P, N, i);
System.out.println(N + "年后的总产值:" + F);
} else {
System.out.printf("输入有误!\n");
} } static double Average_capital_plus_interest_formula(double F, int N,double i)// 等额还款公式
{
double refund;
refund = F * i / (12 * (1 + i) * (Math.pow(1 + i, N) - 1));
return refund;
} static void Average_capital_plus_interest()// 等额还款
{
int N;
double i, F, P;
System.out.printf("贷款金额:");
F = scanner.nextDouble();
System.out.printf("存入年限:");
N = scanner.nextInt();
System.out.printf("年利率:");
i = scanner.nextDouble();
P = Average_capital_plus_interest_formula(F, N, i);
System.out.println("贷款" + F + "每月需要还款" + P);
} }

复利计算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. linux查看文件命令tail的使用

    一.介绍 linux tail命令用途是依照要求将指定的文件的最后部分输出到终端中,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内 ...

  2. Java HashMap 源代码分析

    Java HashMap jdk 1.8 Java8相对于java7来说HashMap变化比较大,在hash冲突严重的时候java7会退化为链表,Java8会退化为TreeMap 我们先来看一下类图: ...

  3. 两组数据的均值是否具有显著差异的T检验

    最近在做分析的时候,遇到了T检验,然而对于没有统计学背景的人来说完全不知如何下手 当然了,遇到问题第一反应就是百度. 果然百度出来了很多链接,当时第一次直接选择了用Excel去做T检验.下面是源数据 ...

  4. Springboot启动报Multiple Dockets with the same group name are not supported. The following duplicate groups were discovered.

    解决方法: 属于bean重复,根据错误提示剔除多于的Bean引用!

  5. MySQL存取特殊数据类型

    一.存取大文本数据 数据库设计: DDL: CREATE TABLE `article` ( `id` ) COLLATE utf8_bin NOT NULL COMMENT '编号', `conte ...

  6. hadoop errors

    1.taskTracker和jobTracker 启动失败 2011-01-05 12:44:42,144 ERROR org.apache.hadoop.mapred.TaskTracker: Ca ...

  7. 20155206 2016-2017-2《Java程序设计》课程总结

    20155234 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:师生关系 预备作业2:优秀技能经验 预备作业3:虚拟机linux初接触 第一周作业:认识 ...

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

    20155321 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 网络概览 局域网和广域网:局域网通常限定在一个有效的地理区域之内,广域网由许多局域网组成.最 ...

  9. 第五周 mybash的实现

    第五周 mybash的实现 1. 使用fork,exec,wait实现mybash 2. 写出伪代码,产品代码和测试代码 3. 发表知识理解,实现过程和问题解决的博客(包含代码托管链接) 1. for ...

  10. noone is not in the sudoers file ubuntu

      Login as root or su to get root prompt type visudo an editor will open find a line says root ALL=( ...