复利计算3.0

import java.util.Scanner;

public class Money {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入计算方式:1.单利计算 2.复利计算 3.本金计算 4.股票期限计算 5.利率计算 6.资产总值计算"); // 选择计算方式
        int choose = scanner.nextInt();

        if (choose == 1) { // 1.单利计算模式
            danLiJiSuan(scanner);
        } else if (choose == 2) { // 2.复利计算模式
            fuLiJiSuan(scanner);
        } else if (choose == 3) { // 3.本金计算模式
            benJinJiSuan(scanner);
        } else if (choose == 4) { // 4.股票计算模式
            guPiaoQiXian(scanner);
        } else if (choose == 5) { // 5.利率计算模式
            liLvJiSuan(scanner);
        } else if (choose == 6) {
            ziChanZongZhi(scanner);
        }

        scanner.close();

    }

    //资产总值计算模式
    private static void ziChanZongZhi(Scanner scanner) {
        double P;
        double i;
        double N;
        double F;
        System.out.println("请输入本金:");
        P = scanner.nextDouble();
        System.out.println("请输入每年的投资金额:");
        double T = scanner.nextDouble();
        System.out.println("请输入投资年限:");
        N = scanner.nextInt();
        System.out.println("请输入利率:");
        i = scanner.nextDouble();
        //计算
        for (int j = 0; j < N; j++) {
            P = P * (1 + i);
            P = P + T;
        }
        F = P - T;
        System.out.println("资产总值是:" + F);
    }

    //利率计算模式
    private static void liLvJiSuan(Scanner scanner) {
        double P;
        double i;
        double N;
        double F;
        System.out.println("输入本金:");
        P = scanner.nextDouble();
        System.out.println("输入期限:");
        N = scanner.nextDouble();
        System.out.println("输入本息总值:");
        F = scanner.nextDouble();
        // 计算
        i = F / (P * N);
        System.out.println("利率为:" + i);
    }

    //股票期限计算模式
    private static void guPiaoQiXian(Scanner scanner) {
        double P;
        double i;
        double N;
        double F;
        System.out.println("输入本金:");
        P = scanner.nextDouble();
        System.out.println("输入利率:");
        i = scanner.nextDouble();
        System.out.println("输入本息总值:");
        // 计算
        F = scanner.nextDouble();
        N = (F - P) / (i * P);
        System.out.println("期限为:" + N);
    }

    //本金计算模式
    private static void benJinJiSuan(Scanner scanner) {
        double P;
        double i;
        double N;
        double F;
        System.out.println("输入本息总值:");
        F = scanner.nextDouble();
        System.out.println("输入利率:");
        i = scanner.nextDouble();
        System.out.println("输入期限:");
        N = scanner.nextDouble();
        P = F / (1 + i * N);
        System.out.println("应投入本金:" + P);
    }

    //复利计算模式
    private static void fuLiJiSuan(Scanner scanner) {
        double P;
        double i;
        double N;
        double F;
        System.out.println("输入本金:");
        P = scanner.nextDouble();
        System.out.println("输入利率:");
        i = scanner.nextDouble();
        System.out.println("输入期限:");
        N = scanner.nextDouble();
        F = P * Math.pow((1 + i), N);
        System.out.println("本息总值为:" + Math.round(F * 100) / 100.0);
    }

    //单利计算模式
    private static void danLiJiSuan(Scanner scanner) {
        double P;
        double i;
        double N;
        double F;
        System.out.println("输入本金:");
        P = scanner.nextDouble();
        System.out.println("输入利率:");
        i = scanner.nextDouble();
        System.out.println("输入期限:");
        N = scanner.nextDouble();
        F = P + P * i * N;
        System.out.println("本息总值为:" + Math.round(F * 100) / 100.0);
    }

该程序使用Java语言进行开发,工具为eclipse 4.5,jdk版本为1.8,代码行数为135行,原本预计需要1个小时,没想到用了1个半小时,主要还是为了代码看起来比较美观,把代码重构了一下,每个模式都有自己的方法,提高了代码的阅读性和复用性。

本次修改增加了利率计算模式和资产总值计算模式,不足的是还没有做出用户交互界面,不便于使用。

时间: 2024-12-27 09:59:14

复利计算3.0的相关文章

0330复利计算4.0单元测试

测试模块 输入测试 预期结果 运行结果 复/单利计算本息  (本金,年利率,年限)      1000,0.03,10 复利:1343.92 单利:1300.0 √  0,0.03,10 复利:0.0 单利:0.0   √  1000,0,10 复利:1000.0 单利:1000.0  √  1000,0.03,10 复利:1000.0 单利:1000.0  √ 复/单利计算本金   (本息,年利率,年限)      1000,0.03,10 复利:744.09 单利:769.23  √  0,

复利计算4.0单元测试

——————————复利计算程序单元测试报告—————————— ————————————4.0 单元测试—————————————— ————————————————要求—————————————— 根据复利计算程序,进行Junit单元测试. 在测试会出现什么场面,有哪些情况的结果? 所要期待的返回值是多少? 写测试程序. 运行测试. 完成结果: 测试一:复利计算本息 1.期待的返回值是13439,实际值是13439.16,允许有1.0以内的误差. 2.测试程序: 此为复利计算: 在允许误差为

复利计算6.0

一.主要功能与需求分析 1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 2.如果按照单利计算,本息的最终收益 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万

复利计算3.0代码

#include<stdio.h> #include<math.h> void List(); void A(); void B(); void C(); void D(); void E(); void F(); main() { int sel; List(); printf("\t请选择:"); while(scanf("%d",&sel)!=1||sel<0||sel>6)//防止输入的是字符以及输入的数字不是整数

0317复利计算3.0

1 import java.util.Scanner; 2 3 public class text { 4 public static void main(String[] args) { 5 6 7 do { 8 Scanner scanner = new Scanner(System.in); 9 System.out.println(" "); 10 System.out.print("请选择(0为退出,1为算本息,2为算本金,3为算投资,4为算n年后资产总值):&qu

复利计算2.0

1 package fulijisuan; 2 3 import java.awt.event.MouseAdapter; 4 import java.awt.event.MouseEvent; 5 6 import javax.swing.JButton; 7 import javax.swing.JFrame; 8 import javax.swing.JLabel; 9 import javax.swing.JRadioButton; 10 import javax.swing.JText

0330复利计算4.0(改)

1 import java.util.Scanner; 2 3 public class text { 4 5 public static void main(String[] args) { 6 while (true) { 7 Scanner scanner = new Scanner(System.in); 8 System.out.println("----------------------------"); 9 System.out.println(" 1.复利计

复利计算1.0,2.0

1.客户说:帮我开发一个复利计算软件. 完成复利公式计算程序,并成功PUSH到github上. 截止时间:3.10晚12点之前. 按照这个要求完成了. 演示. 计算:本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 #include<stdio.h> #include<math.h> void view() { printf(" | 单/复利计算 |\n"

软件工程---复利计算6.0

代码如下: import java.awt.Container; import java.awt.Graphics;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener; import javax.swing.JButton;import javax.swing.JComboB