Java计算器实现加减乘除功能

package com.cn.java;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
import java.util.Scanner;
/**
 * @version 计算器V1.1
 * @author 860616034
 *
 */

public class Calculator {
    // 运算符
    public static String operator2;
    // 第一个计算数字
    public static String oneNumber;
    // 第二个计算数字
    public static String twoNumber;
    // 计算数的长度
    public static String setlength;

    // string转double 第一个数
    private static double one;
    // string转double 第二个数
    private static double two;
    // 计算器的位数
    private static int number;


    public static void main(String[] args) {
        // 定义string变量
        String operator = "";
        boolean bresult = true;
        // 创建Scanner的对象 System.in是标准输入
        Scanner input = new Scanner(System.in);

        // double one = 0;
        double result = 0;

        Calculator ca = new Calculator();
        // 输入要计算的位数
        // ca.getInput(input);
        ca.getInput1();
        // ca.getInput2();

        // 用于程序循环执行
        while (true) {
            // 用户输入第一个数
            ca.getOneNumber(input);

            // 提示用户请输入运算符
            ca.getOperator(operator, input);

            // 提示用户输入要计算的第二个数
            ca.getTwoNumber(input);

            // switch循环实现运算
            switch (operator2) {
            case "+":
                result = one + two;
                break;
            case "-":
                result = one - two;
                break;
            case "*":
                result = one * two;
                break;
            case "/":
                result = one / two;
                // 除数特殊,被除数不能为0,提示用户
                if (two == 0) {
                    System.out.println("被除数不能为0,结果错误!");
                    // 为false不输出结果
                    bresult = false;
                }
                break;
            default:
                break;
            }
            // 为true输出计算结果
            if (bresult) {
                System.out.println("结果是:" + oneNumber + " " + operator2 + " " + twoNumber + " = " + result);
            }
        }
    }

    // 判断字符串长度的方法
    public static boolean getLength(String oneNumber) {
        if (oneNumber.length() > number) {
            System.out.println("输入错误,不能超过" + number + "位");
            return false;
        }
        return true;
    }

    // 输入运算的进行判断的方法
    public void getOperator(String operator, Scanner input) {
        System.out.println("请输入运算符:");
        operator = input.nextLine();
        // 对运算符进行判断是否有该运算符
        // String[] op = { "+", "-", "*", "/" };
        // Set strSet = new HashSet(Arrays.asList(op));
        if (operator.equals("+") || operator.equals("-") || operator.equals("*") || operator.equals("/")) {
            // if (strSet.contains(operator)) {
            operator2 = operator;
        } else {
            System.out.println("运算符输入错误,请重新输入");
            getOperator(operator, input);
        }
    }

    // 输入第二个数进行判断的方法
    public void getTwoNumber(Scanner input) {
        // public void getTwoNumber(String twoNumber, Scanner input) {
        System.out.println("请输入第二个数字:");
        twoNumber = input.nextLine();
        // 判断输入的字符是否超过16个
        boolean isTwoNumber = getLength(twoNumber);
        if (!isTwoNumber) {
            getTwoNumber(input);
        } else if (twoNumber.equals("exit")) {
            System.out.println("退出程序,欢迎下次使用");
            return;
        } else {
            try {
                Calculator.two = Double.parseDouble(twoNumber);
            } catch (Exception e) {
                System.out.println("请输入有效数字");
                getTwoNumber(input);
            }
        }
    }

    public void getOneNumber(Scanner input) {
        System.out.println("请输入第一个数字:");
        oneNumber = input.nextLine();
        // 判断输入的字符是否超过16个
        boolean isLength = getLength(oneNumber);
        if (!isLength) {
            getOneNumber(input);
        } else if (oneNumber.equals("exit")) {
            System.out.println("退出程序,欢迎下次使用");
            System.exit(0);
        } else {
            try {
                Calculator.one = Double.parseDouble(oneNumber);
            } catch (Exception e) {
                System.out.println("请输入有效数字");
                getOneNumber(input);
            }
        }
    }

    // 控制台输入
    public void getInput(Scanner input) {
        System.out.println("请输入计算器计算的位数:");
        Calculator.setlength = input.nextLine();
        try {
            Calculator.number = Integer.parseInt(setlength);
        } catch (Exception e) {   
            System.out.println("请输入正确的有效数字");
            getInput(input);
        }
    }

    public void getInput1() {
        try {
            Properties prop = new Properties();
            // System.out.println(Test.class.getResource ("").getFile ());
            InputStream is = new BufferedInputStream(new FileInputStream("bin/com/cn/java/a.xml"));
            // 加载Properties文件信息属性列表
            prop.load(is);
            String str = prop.getProperty("length");
            //System.out.println(prop.getProperty("length"));
            // 关闭流释放测内存
            is.close();
            number = Integer.parseInt(str);
        } catch (Exception e) {
            System.out.println("请输入有效位数数字");
            return;
        }
    }

}

需要配置xml文件。

你可能感兴趣的:(Java编程思想理解)