zoukankan      html  css  js  c++  java
  • 复利计算单元测试

    因为eclipse程序故障用不了,所以使用myeclipse进行单元测试

    package ch1;
    
    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    public class fuli {
    
        public static void main(String[] args) {
            System.out.print("请选择求单利1,复利2,本金3,时间4,利率5,投资6,贷款月还款计算7,退出8");
            Scanner scanner = new Scanner(System.in);
            int a = scanner.nextInt();
            switch (a) {
            case 1:
                danli();
                break;
            case 2:
                fulili();
                break;
            case 3:
                benjin();
                break;
            case 4:
                shijian();
                break;
            case 5:
                lilv();
                break;
            case 6:
                touzi();
                break;
            case 7:
                huankuan();
                break;
            case 8:
                break;
            default:
                System.out.print("请重新输入");
                main(null);
                scanner.close();
    
            }
    
        }
    
        static void benjin() {
            // TODO Auto-generated method stub
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入预期钱数");
                double A = Math.abs(scanner.nextDouble());
                System.out.print("请输入年利率");
                double B = Math.abs(scanner.nextDouble());
                System.out.print("请输入存入年限");
                int C = Math.abs(scanner.nextInt());
                double D = 1;
                for (int i = 1; i <= C; i++) {
                    D = D * (1 + B);
                }
                System.out.println("本金" + String.format("%.4f", (A / D)));
            } catch (InputMismatchException e) {
                benjin();
            }
            main(null);
            scanner.close();
        }
    
        static void fulili() {
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入本金");
                double A = Math.abs(scanner.nextDouble());
                System.out.print("请输入年利率");
                double B = Math.abs(scanner.nextDouble());
                System.out.print("请输入存入年限");
                int C = Math.abs(scanner.nextInt());
                double D = 1;
                for (int i = 1; i <= C; i++) {
                    D = D * (1 + B);
                }
                System.out.println("复利终值" + String.format("%.4f", (A * D)));
            } catch (InputMismatchException e) {
                fulili();
            }
            main(null);
            scanner.close();
        }
    
        static void danli() {
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入本金");
                double A = Math.abs(scanner.nextDouble());
                System.out.print("请输入年利率");
                double B = Math.abs(scanner.nextDouble());
                System.out.print("请输入存入年限");
                int C = Math.abs(scanner.nextInt());
                double D = 1;
                D = A * B * C;
                System.out.println("单利终值" + (A + D));
            } catch (InputMismatchException e) {
                danli();
            }
            main(null);
            scanner.close();
        }
    
        static void shijian() {
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入本金");
                double A = Math.abs(scanner.nextDouble());
                System.out.print("请输入年利率");
                double B = Math.abs(scanner.nextDouble());
                System.out.print("请输入预期金额");
                double C = Math.abs(scanner.nextDouble());
                double D = 1;
                double E = 1;
                int i = 1;
    
                while (true) {
                    D = D * (1 + B);
                    E = A * D;
                    if (E <= C)
                        i++;
                    else
                        break;
                }
    
                System.out.println("需" + i + "年");
            } catch (InputMismatchException e) {
                shijian();
            }
            main(null);
            scanner.close();
        }
    
        static void lilv() {
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入本金");
                double A = Math.abs(scanner.nextDouble());
                System.out.print("请输入预期金额");
                double B = Math.abs(scanner.nextDouble());
                System.out.print("请输入存入年限");
                double C = Math.abs(scanner.nextDouble());
                double D = 1;
                D = Math.pow(B / A, 1 / C) - 1;
                System.out.println("利率为" + String.format("%.4f", D));
            } catch (InputMismatchException e) {
                lilv();
            }
            main(null);
            scanner.close();
        }
    
        static void touzi() {
            // TODO Auto-generated method stub
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入投资额");
                double A = Math.abs(scanner.nextDouble());
                System.out.print("请输入年利率");
                double B = Math.abs(scanner.nextDouble());
                System.out.print("请输入存入年限");
                int C = Math.abs(scanner.nextInt());
                double D = 0;
                for (int i = 1; i <= C; i++) {
                    D = D + A;
                    D = D * (1 + B);
                }
                System.out.println("最终获利" + String.format("%.4f", D));
            } catch (InputMismatchException e) {
                touzi();
            }
            main(null);
            scanner.close();
        }
    
        static void huankuan() {
            // TODO 自动生成的方法存根
            Scanner scanner = new Scanner(System.in);
            try {
                System.out.print("请输入贷款额");
                double A = Math.abs(scanner.nextDouble());
                System.out.print("请输入贷款利率");
                double B = Math.abs(scanner.nextDouble());
                System.out.print("请输入贷款年限");
                int C = Math.abs(scanner.nextInt());
                double D = 0;
                for (int i = 1; i <= C; i++) {
                    D = A * Math.pow(1.0 + B, C);
                }
                double Repayment = D / (C * 12);
                double interest = A * B * C;
                double sum = A + interest;
                double Repayment1 = sum / (C * 12);
                System.out.println("每月需要还款(单利)" + Repayment1);
                System.out.println("每月需要还款(复利)" + String.format("%.4f", Repayment));
            } catch (InputMismatchException e) {
                huankuan();
            }
            main(null);
            scanner.close();
        }
    
    }

    首先进行测试是数值的大小输入

    如图,输入过大数值

    与预期结果一致,所以没有问题

    再试试输入字符,如图

    输入字符后显示重新输入,所以也没有问题

    输入负值

    出现负值的计算,负值输入的时候应该是重新输入

    还进行了一部分的测试,由于问题比较多,还在改进,所以没有一一展示,会对复利计算进一步跟进完善的。

  • 相关阅读:
    sqlserver2008r2 连接服务器报错64
    java web---HTTP略讲
    Web测试中定位bug方法
    Java1.8API大类
    如何查看windows电脑信息(win10)
    debain系统安装open-vm-tools
    windowns电脑环境配置
    配置了环境变量,adb还是不能用
    已经配了环境变量,但是执行命令却打开了应用商店
    cpython,jpython,ironpython,micropython,etc的区别
  • 原文地址:https://www.cnblogs.com/chenshien/p/5339116.html
Copyright © 2011-2022 走看看