21xrx.com
2024-09-17 04:28:51 Tuesday
登录
文章检索 我的文章 写文章
Java实现简易计算器:从零开始的计算器开发
2023-06-14 16:27:16 深夜i     --     --
Java 计算器 表达式运算

在本次实验中,我学习了如何使用Java语言开发一个简易的计算器,涵盖了Java基础语法、表达式运算、图形化界面设计等知识点。以下是我从实验中所得的体会和经验总结:

1. 编写Java程序的基本流程

在开始编写程序之前,需要明确程序实现的功能和逻辑,分析业务需求,设计程序结构和类的划分,并对程序进行整体的规划和设计。程序开发一般分为编码、测试和调试三个阶段,其中编码是实现程序功能的核心,同时也是最重要的阶段。在编写代码时需要注重代码质量和可读性,遵守良好的编码规范,方便后期代码的维护和扩展。

2. Java中的表达式运算

表达式是Java中最基本的计算单位,通过对表达式的运算,可以实现复杂的业务逻辑。Java中常见的表达式运算包括算术运算、关系运算、逻辑运算等。运算符的优先级和结合性对于表达式的运算结果有着重要的影响,需要在程序中进行合理的运算符处理。

3. 图形化界面设计

图形化界面是Java开发中不可或缺的一环,通过使用Swing或JavaFX等界面库,可以方便地实现各种界面元素的布局和组件的交互。在界面设计中需要注意布局的合理性和美观度,同时也需要处理用户输入或操作所带来的异常情况。

代码案例:

下面是一个简单的Java计算器程序,实现了基本的算术运算和结果输出功能。


import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class SimpleCalculator extends JFrame {

  private JTextField textField;

  private JButton[] buttons;

  private String[] buttonLabels = {

      "+", "-", "*", "/",

      "7", "8", "9", "C",

      "4", "5", "6", "=",

      "1", "2", "3", "0"

  };

  private double result = 0;

  private char operator = '\0';

  public SimpleCalculator() {

    setTitle("Simple Calculator");

    setLayout(new BorderLayout());

    textField = new JTextField(16);

    add(textField, BorderLayout.NORTH);

    JPanel buttonPanel = new JPanel();

    buttonPanel.setLayout(new GridLayout(4, 4));

    buttons = new JButton[16];

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

      buttons[i] = new JButton(buttonLabels[i]);

      buttonPanel.add(buttons[i]);

      buttons[i].addActionListener(new ButtonActionListener());

    }

    add(buttonPanel, BorderLayout.CENTER);

    pack();

    setVisible(true);

  }

  class ButtonActionListener implements ActionListener {

    public void actionPerformed(ActionEvent e) {

      String buttonLabel = ((JButton) e.getSource()).getText();

      try {

        int value = Integer.parseInt(buttonLabel);

        textField.setText(textField.getText() + value);

      } catch (NumberFormatException ex) {

        if (buttonLabel.equals("C")) {

          result = 0;

          operator = '\0';

          textField.setText("");

        } else if (buttonLabel.equals("=")) {

          double value = Double.parseDouble(textField.getText());

          switch (operator) {

            case '+':

              result += value;

              break;

            case '-':

              result -= value;

              break;

            case '*':

              result *= value;

              break;

            case '/':

              result /= value;

              break;

          }

          textField.setText(Double.toString(result));

          result = 0;

          operator = '\0';

        } else {

          operator = buttonLabel.charAt(0);

          result = Double.parseDouble(textField.getText());

          textField.setText("");

        }

      }

    }

  }

  public static void main(String[] args) {

    SimpleCalculator calculator = new SimpleCalculator();

    calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复