zoukankan      html  css  js  c++  java
  • 【软件工程】复利计算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个半小时,主要还是为了代码看起来比较美观,把代码重构了一下,每个模式都有自己的方法,提高了代码的阅读性和复用性。

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

  • 相关阅读:
    【TopCoder 11469】—Nim(Fwt)
    【BZOJ4228】—Tibbar的后花园(生成函数+NTT)
    【BZOJ4228】—Tibbar的后花园(生成函数+NTT)
    多测师讲解接口测试 _postman(下)_高级讲师肖sir
    多测师讲解接口测试 _fiddler无法打开浏览器_高级讲师肖sir
    多测师讲解接口测试 _postman(上)_高级讲师肖sir
    多测师讲解接口测试 _HTTP常见的状态码归纳_高级讲师肖sir
    多测师讲解接口测试_F12中network里headers各项属性的含义——高级讲师肖sir
    SVN服务的模式和多种访问方式 多种访问原理图解与优缺点
    svn 目录
  • 原文地址:https://www.cnblogs.com/Leey0917/p/5289162.html
Copyright © 2011-2022 走看看