用Java实现的计算器

  • 格式:docx
  • 大小:38.20 KB
  • 文档页数:8

用Java实现的计算器

计算器是一个广泛应用的工具,用于进行数学运算。如今,随着计算机技术的不断发展,计算器也逐渐被软件程序所替代。本文将介绍如何使用Java语言实现一个简单的计算器程序。

一、程序概述

计算器程序主要包括用户界面和计算逻辑两部分。用户界面负责显示计算器的按钮和输入输出框,计算逻辑负责根据用户输入进行运算并返回结果。

二、用户界面设计

在Java中,我们可以使用Swing或JavaFX等图形库来设计用户界面。本文选用JavaFX来实现计算器的界面。界面需要包括数字按钮、运算符按钮、输入输出框等组件。

在程序启动时,我们需要初始化界面并设置各个组件的位置、大小和样式。为了方便布局,我们可以使用GridPane等布局管理器来管理组件。

三、计算逻辑实现

1. 表达式解析

计算器需要将用户输入的表达式解析为计算机可以识别的格式。Java中可以使用正则表达式或者逆波兰表达式来解析表达式。本文选用简单的正则表达式方法进行解析。 2. 运算逻辑

解析表达式后,我们需要根据运算符的优先级进行运算。Java中可以使用栈来实现运算符的优先级判断和运算。我们可以定义一个操作数栈和一个运算符栈,按照规则将表达式中的数字和运算符依次入栈,并根据运算符的优先级进行运算并将结果入栈。

四、完整代码示例

import javafx.application.Application;

import javafx.geometry.Insets;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.TextField;

import yout.GridPane;

import javafx.stage.Stage;

public class Calculator extends Application {

private TextField inputField; // 输入框

private Button[] numberButtons; // 数字按钮

private Button[] operatorButtons; // 运算符按钮

@Override

public void start(Stage primaryStage) { primaryStage.setTitle("计算器");

primaryStage.setResizable(false);

// 初始化界面

GridPane gridPane = new GridPane();

gridPane.setHgap(10);

gridPane.setVgap(10);

gridPane.setPadding(new Insets(10));

// 初始化输入框

inputField = new TextField();

inputField.setEditable(false);

inputField.setPrefHeight(40);

inputField.setMaxWidth(Double.MAX_VALUE);

gridPane.add(inputField, 0, 0, 4, 1);

// 初始化数字按钮

numberButtons = new Button[10];

for (int i = 0; i < 10; i++) {

numberButtons[i] = createNumberButton(String.valueOf(i), i);

}

gridPane.add(numberButtons[7], 0, 1); gridPane.add(numberButtons[8], 1, 1);

gridPane.add(numberButtons[9], 2, 1);

gridPane.add(numberButtons[4], 0, 2);

gridPane.add(numberButtons[5], 1, 2);

gridPane.add(numberButtons[6], 2, 2);

gridPane.add(numberButtons[1], 0, 3);

gridPane.add(numberButtons[2], 1, 3);

gridPane.add(numberButtons[3], 2, 3);

gridPane.add(numberButtons[0], 0, 4);

gridPane.add(createDotButton(), 1, 4);

gridPane.add(createEqualButton(), 2, 4);

// 初始化运算符按钮

operatorButtons = new Button[4];

operatorButtons[0] = createOperatorButton("+");

operatorButtons[1] = createOperatorButton("-");

operatorButtons[2] = createOperatorButton("*");

operatorButtons[3] = createOperatorButton("/");

gridPane.add(operatorButtons[0], 3, 1);

gridPane.add(operatorButtons[1], 3, 2); gridPane.add(operatorButtons[2], 3, 3);

gridPane.add(operatorButtons[3], 3, 4);

Scene scene = new Scene(gridPane);

primaryStage.setScene(scene);

primaryStage.show();

}

private Button createNumberButton(String text, int number) {

Button button = new Button(text);

button.setPrefSize(60, 40);

button.setOnAction(e -> {

String oldText = inputField.getText();

inputField.setText(oldText + number);

});

return button;

}

private Button createDotButton() {

Button button = new Button(".");

button.setPrefSize(60, 40);

button.setOnAction(e -> { String oldText = inputField.getText();

inputField.setText(oldText + ".");

});

return button;

}

private Button createEqualButton() {

Button button = new Button("=");

button.setPrefSize(60, 40);

button.setOnAction(e -> {

String expression = inputField.getText();

// 调用计算逻辑进行计算

if (expression != null && !expression.isEmpty()) {

double result = calculate(expression);

inputField.setText(String.valueOf(result));

}

});

return button;

}

private Button createOperatorButton(String text) { Button button = new Button(text);

button.setPrefSize(60, 40);

button.setOnAction(e -> {

String oldText = inputField.getText();

inputField.setText(oldText + text);

});

return button;

}

private double calculate(String expression) {

// 进行计算逻辑的实现

// ...

}

public static void main(String[] args) {

launch(args);

}

}

五、总结

通过本文的介绍,我们可以了解到使用Java语言实现一个简单计算器的基本框架和思路。通过合理的界面设计和计算逻辑实现,我们可以实现一个使用Java语言编写的计算器程序,方便用户进行各种数学运算操作。

然而,本文只是一个简单的示例,实际的计算器程序还需要考虑更多的情况和功能,比如错误提示、括号运算、科学计数法等。读者可以在此基础上进一步完善和扩展,以满足实际需求。

通过学习和实践,相信你可以在Java中实现更加复杂和功能强大的计算器程序,提高自己的编程能力。祝你编程愉快!