21xrx.com
2024-11-22 10:38:54 Friday
登录
文章检索 我的文章 写文章
Java实现简易计算器完整代码——课程设计
2023-06-15 17:08:48 深夜i     --     --
Java 计算器 代码设计

在计算机程序设计的学习中,设计一个简易计算器是一个经典的案例。这个案例能够帮助学生巩固Java基础知识以及算法设计能力。本文将介绍Java实现简易计算器的完整代码和课程设计。

1. 实现思路

在实现简易计算器的过程中,需要考虑以下几点:

1) 界面设计:通过图形界面(GUI)创建计算器的按键和显示框。

2) 计算逻辑:实现基本的四则运算,需要考虑运算符的优先级、括号等问题。

3) 异常处理:对于非法输入和除数为0等情况需要进行合理的处理。

4) 代码结构:实现代码的模块化,分离界面和计算逻辑,使代码可维护性更强。

2. 代码实现

在实现思路的基础上,可以采用Java Swing框架来实现计算器的图形界面。代码实现过程中,需要创建JPanel、JButton、JTextField等控件,并设置监听器来接收用户输入和处理计算逻辑。

以下是java实现简易计算器的代码:


import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Calculator extends JFrame implements ActionListener{

  private JPanel panel;

  private JTextField resultField;

  private String[] buttons = {"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "0", ".", "=", "+"};

  private JButton[] btn = new JButton[16];

  private double value1, value2;

  private char operation;

  public Calculator(){

    setTitle("Calculator");

    setLocationRelativeTo(null);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    panel = new JPanel(new GridLayout(4,4));

    resultField = new JTextField(10);

    resultField.setEditable(false);

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

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

      btn[i].addActionListener(this);

      panel.add(btn[i]);

    }

    add(resultField, BorderLayout.NORTH);

    add(panel, BorderLayout.CENTER);

    pack();

    setVisible(true);

  }

  public void actionPerformed(ActionEvent e){

    if(e.getSource() == btn[0]) resultField.setText(resultField.getText() + "7");

    else if(e.getSource() == btn[1]) resultField.setText(resultField.getText() + "8");

    else if(e.getSource() == btn[2]) resultField.setText(resultField.getText() + "9");

    else if(e.getSource() == btn[3]){

      value1 = Double.parseDouble(resultField.getText());

      operation = '/';

      resultField.setText("");

    }

    else if(e.getSource() == btn[4]) resultField.setText(resultField.getText() + "4");

    else if(e.getSource() == btn[5]) resultField.setText(resultField.getText() + "5");

    else if(e.getSource() == btn[6]) resultField.setText(resultField.getText() + "6");

    else if(e.getSource() == btn[7]){

      value1 = Double.parseDouble(resultField.getText());

      operation = '*';

      resultField.setText("");

    }

    else if(e.getSource() == btn[8]) resultField.setText(resultField.getText() + "1");

    else if(e.getSource() == btn[9]) resultField.setText(resultField.getText() + "2");

    else if(e.getSource() == btn[10]) resultField.setText(resultField.getText() + "3");

    else if(e.getSource() == btn[11]){

      value1 = Double.parseDouble(resultField.getText());

      operation = '-';

      resultField.setText("");

    }

    else if(e.getSource() == btn[12]) resultField.setText(resultField.getText() + "0");

    else if(e.getSource() == btn[13]) resultField.setText(resultField.getText() + ".");

    else if(e.getSource() == btn[14]){

      value2 = Double.parseDouble(resultField.getText());

      switch(operation){

        case '/':

          if(value2 == 0){

            JOptionPane.showMessageDialog(null, "除数不能为0!");

            resultField.setText("");

            return;

          }

          resultField.setText((value1 / value2) + "");

          break;

        case '*':

          resultField.setText((value1 * value2) + "");

          break;

        case '-':

          resultField.setText((value1 - value2) + "");

          break;

        case '+':

          resultField.setText((value1 + value2) + "");

          break;

      }

    }

    else if(e.getSource() == btn[15]){

      value1 = Double.parseDouble(resultField.getText());

      operation = '+';

      resultField.setText("");

    }

  }

  public static void main(String[] args){

    new Calculator();

  }

}

3. 课程设计

在Java实现简易计算器的代码基础上,可以进行课程设计,让学生进一步深入理解Java基础知识和算法设计能力。

设计要求:

1) 完善界面:可以添加更多的功能,如清除键、退格键等。

2) 扩展计算逻辑:添加更多的功能,如幂运算、三角函数、对数函数等。

3) 异常处理:对于更多的异常情况,如非法输入、负数的平方根等情况需要进行合理的处理。

4) 代码可读性:对代码进行优化,让代码更加简洁高效易读。

5) 代码扩展性:对代码进行设计,使得后续可以方便的添加更多的功能。

  
  

评论区

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