⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculate.java

📁 简单的计算器程序
💻 JAVA
字号:
package calculate;

public class Calculate {

	public static final String ERROR_DIVIDE_ZERO = "除数不能为零.";

	public static final String ERROR_FUNCTION_INPUT = "函数输入无效.";

	public static final String DEFAULT_SHOW_TEXT = "0.";

	private double result = 0.0D;

	private double lastValue = 0.0D;

	private String showText = "0.";

	private String lastInput = "";

	private String lastOperation = "";

	private boolean isFloat = false; // 标明showText是否是小数

	public Calculate() {
		inital();
	}

	public void doCalculate() {
		doCalculate(true);
	}

	public void doCalculate(boolean updatelastValue) {
		if (updatelastValue) {
			try {
				this.lastValue = Double.parseDouble(this.showText);
			} catch (NumberFormatException e) {
				this.lastValue = 0.0D;
				e.printStackTrace();
			}
		}

		if ("+".equals(this.lastOperation)) {
			this.result += this.lastValue;
		} else if ("-".equals(this.lastOperation)) {
			this.result -= this.lastValue;
		} else if ("*".equals(this.lastOperation)) {
			this.result *= this.lastValue;
		} else if ("/".equals(this.lastOperation)) {
			if (this.lastValue == 0) {
				this.showText = ERROR_DIVIDE_ZERO;
				return;
			}

			this.result /= this.lastValue;
		} else {
			this.result = this.lastValue;
		}

		if (this.result - (int) this.result < 0.00000001) {
			this.showText = ((int) this.result) + ".";
		} else {
			this.showText = this.result + "";
		}
	}

	public String run(String input) {
		if (ERROR_DIVIDE_ZERO.equals(this.showText)
				|| ERROR_FUNCTION_INPUT.equals(this.showText)) {
			
			if (!"C".equals(input)) {
				return this.showText;
			}
		}
	
		OperationFactory.getOperation(input).execute(this);
		
		this.lastInput = input;
		return this.showText;
	}

	public void inital() {
		this.result = 0.0D;
		this.lastValue = 0.0D;
		this.showText = "0.";
		this.lastInput = "";
		this.lastOperation = "";
		this.isFloat = false;
	}

	public double getResult() {
		return result;
	}

	public void setResult(double result) {
		this.result = result;
	}

	public double getLastValue() {
		return lastValue;
	}

	public void setLastValue(double lastValue) {
		this.lastValue = lastValue;
	}

	public String getShowText() {
		return showText;
	}

	public void setShowText(String showText) {
		this.showText = showText;
	}

	public String getLastInput() {
		return lastInput;
	}

	public void setLastInput(String lastInput) {
		this.lastInput = lastInput;
	}

	public String getLastOperation() {
		return lastOperation;
	}

	public void setLastOperation(String lastOperation) {
		this.lastOperation = lastOperation;
	}

	public boolean isFloat() {
		return isFloat;
	}

	public void setFloat(boolean isFloat) {
		this.isFloat = isFloat;
	}

	public static void main(String[] args) {
		Calculate calculate = new Calculate();

		System.out.println(calculate.run("1"));// 1
		System.out.println(calculate.run("2"));// 12
		System.out.println(calculate.run("+"));// 12
		System.out.println(calculate.run("+"));// 12
		System.out.println(calculate.run("3"));// 3
		System.out.println(calculate.run("-"));// 15
		System.out.println(calculate.run("5"));// 5
		System.out.println(calculate.run("="));// 10
		System.out.println(calculate.run("="));// 5
		System.out.println();

		System.out.println(calculate.run("C"));// 0
		System.out.println(calculate.run("1"));// 1
		System.out.println(calculate.run("."));// 1
		System.out.println(calculate.run("1"));// 1.1
		System.out.println(calculate.run("+"));// 1.1
		System.out.println(calculate.run("2"));// 2
		System.out.println(calculate.run("="));// 3.1
		System.out.println(calculate.run("+"));// 3.1
		System.out.println(calculate.run("3"));// 3
		System.out.println(calculate.run("="));// 6.1
		System.out.println();
		
		System.out.println(calculate.run("C"));// 0
		System.out.println(calculate.run("1"));// 1
		System.out.println(calculate.run("/"));// 1
		System.out.println(calculate.run("0"));// 0
		System.out.println(calculate.run("="));// 除数不能为零.
		System.out.println(calculate.run("1"));// 除数不能为零.
		System.out.println(calculate.run("+"));// 除数不能为零.
		System.out.println(calculate.run("."));// 除数不能为零.
		System.out.println(calculate.run("C"));// 0
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -