Java编写计算器

这篇具有很好参考价值的文章主要介绍了Java编写计算器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要用JAVA编写一个计算器,能实现加减乘除、开平方、求阶乘等计算功能,计算器有图形化界面,能对异常进行处理,并且检验输入的合法性,对不合法的输入给出具体的提示信息
代码如下

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CalculatorFrame extends JFrame implements ActionListener {
	private JTextField resultDisplay; //结果显示文本框
    private double num1; //第一个数字
    private double num2; //第二个数字
    private char operator = 'C'; //操作符,默认为清屏

    public CalculatorFrame() 
    {
        super("计算器");

        JPanel mainPanel = new JPanel(); //主面板
        mainPanel.setLayout(new BorderLayout());

        resultDisplay = new JTextField(); //结果显示文本框
        resultDisplay.setEditable(false); //不能编辑
        mainPanel.add(resultDisplay, BorderLayout.NORTH); //添加到面板上方

        JPanel buttonPanel = new JPanel(new GridLayout(5, 4, 5, 5)); //按钮面板,4行4列,行列间距为5

        addButton(buttonPanel, "7"); 
        addButton(buttonPanel, "8");
        addButton(buttonPanel, "9");
        addButton(buttonPanel, "÷"); //添加按钮:“7”、“8”、“9”、“÷”

        addButton(buttonPanel, "4");
        addButton(buttonPanel, "5");
        addButton(buttonPanel, "6");
        addButton(buttonPanel, "×"); //添加按钮:“4”、“5”、“6”、“×”

        addButton(buttonPanel, "1");
        addButton(buttonPanel, "2");
        addButton(buttonPanel, "3");
        addButton(buttonPanel, "-"); //添加按钮:“1”、“2”、“3”、“-”

        addButton(buttonPanel, "0");
        addButton(buttonPanel, ".");
        addButton(buttonPanel, "C");
        addButton(buttonPanel, "+"); //添加按钮:“0”、“.”、“C”、“+”

        addButton(buttonPanel, "x²");
        addButton(buttonPanel, "√");
        addButton(buttonPanel, "x!");
        addButton(buttonPanel, "="); //添加按钮:“x²”、“√”、“x!”、“=” 

        mainPanel.add(buttonPanel, BorderLayout.CENTER); //添加按钮面板,位于主面板的中央

        JButton equalsButton = new JButton("="); //等于号按钮
        equalsButton.addActionListener(this); //添加事件响应器
        mainPanel.add(equalsButton, BorderLayout.SOUTH); //添加到主面板下方

        add(mainPanel); //将主面板添加到窗口中
    }

    private void addButton(Container panel, String label) 
    {
        JButton button = new JButton(label); //新建按钮
        button.addActionListener(this); //添加事件响应器
        panel.add(button); //添加到按钮面板中
    }

    // 响应用户操作事件
    public void actionPerformed(ActionEvent evt) 
    {
        String text = evt.getActionCommand(); //获取用户操作

        if (text.equals("C")) 
        { //清屏
            resultDisplay.setText("");
            num1 = 0;
            num2 = 0;
            operator = 'C';
            return;
        }

        if (text.equals("x²")) 
        { //平方
            num1 = Double.parseDouble(resultDisplay.getText()); //获取当前数字
            resultDisplay.setText(String.valueOf(num1 * num1)); //计算平方并显示
            operator = 'C';
            return;
        }

        if (text.equals("√")) 
        { //开方
            num1 = Double.parseDouble(resultDisplay.getText()); //获取当前数字
            if (num1 < 0) 
            { //负数不能开方
                resultDisplay.setText("不能对负数求平方根");
                return;
            }
            resultDisplay.setText(String.valueOf(Math.sqrt(num1))); //计算开方并显示
            operator = 'C';
            return;
        }

        if (text.equals("x!")) 
        { //阶乘
            num1 = Double.parseDouble(resultDisplay.getText()); //获取当前数字
            resultDisplay.setText(String.valueOf(factorial(num1))); //计算阶乘并显示
            operator = 'C';
            return;
        }

        if (text.equals("+") || text.equals("-") || text.equals("×") ||
            text.equals("÷")) 
        { //基本运算
            num1 = Double.parseDouble(resultDisplay.getText()); //获取第一个数字
            operator = text.charAt(0); //获取操作符
            resultDisplay.setText(""); //清空结果文本框
            return;
        }

        if (text.equals("=")) 
        { //计算结果
            num2 = Double.parseDouble(resultDisplay.getText()); //获取第二个数字

            switch (operator) { //选择合适的操作符进行计算
            case '+':
                resultDisplay.setText(String.valueOf(num1 + num2));
                break;
            case '-':
                resultDisplay.setText(String.valueOf(num1 - num2));
                break;
            case '×':
                resultDisplay.setText(String.valueOf(num1 * num2));
                break;
            case '÷':
                if (num2 == 0) 
                { //除数不能为零
                    resultDisplay.setText("除数不能为零");
                    return;
                }
                resultDisplay.setText(String.valueOf(num1 / num2));
                break;
        }

        operator = 'C'; //清除操作符
        return;
        }

    resultDisplay.setText(resultDisplay.getText() + text); //输出数字或小数点
    }

    // 计算阶乘
    public static double factorial(double num) 
    {
    	if (num == 0)
    		return 1;

    	double result = 1;

    	for (int i = 1; i <= num; i++) 
    	{
    		result *= i;
    	}

    	return result;
    }

    public static void main(String[] args) 
    {
    	CalculatorFrame calculator = new CalculatorFrame();
    	calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	calculator.setSize(300, 350);
    	calculator.setVisible(true);
    }
}

 文章来源地址https://www.toymoban.com/news/detail-509579.html

 

到了这里,关于Java编写计算器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java算法题 给一个字符串表达式,实现一个基本计算器,返回计算结果

    题目: 考点:栈 解题思路: 使用 2 个栈,一个 stack_nums 用来保存计算过程的操作数,一个 stack_symbol 用来保存运算符。 在HashMap中,指定加减优先级为1,乘除优先级为2 循环遍历字符串s, 操作符入栈: 若当前字符为\\\'+\\\', \\\'-\\\', \\\'*\\\', \\\'/\\\', \\\'(\\\' 时,压入运算符栈 stack_symbol, 操作数入

    2024年02月07日
    浏览(34)
  • Java——一个简单的计算器程序

      该代码是一个简单的计算器程序,使用了Java的图形化界面库Swing。具体分析如下: 导入必要的类和包: 代码中导入了用于创建图形界面的类和接口,以及其他必要的类。 定义Calculator类: 代码中定义了一个名为Calculator的类,继承了JFrame类,并实现了ActionListener接口。Calc

    2024年02月04日
    浏览(34)
  • Java设计一个简单的计算器程序

    计算器是一种常见的工具,用于进行基本数学运算。在计算机科学中,我们可以使用编程语言来模拟和实现一个计算器程序。本文将基于Java语言,设计并实现一个简单的计算器程序。 1. 需求分析 在设计计算器程序之前,我们需要明确程序的需求。本文设计的计算器程序应满

    2024年02月05日
    浏览(43)
  • 用代码实现一个简单计算器

    作者主页: paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者: 大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于 《C语言》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将C语言基础知识一网打尽,希望可

    2024年02月08日
    浏览(29)
  • 模拟实现一个简单的计算器

    2024年02月11日
    浏览(39)
  • 【C++小项目】实现一个日期计算器

    目录 Ⅰ. 引入 Ⅱ. 列轮廓 Ⅲ. 功能的实现 构造函数 Print 判断是否相等 == | != ➡️==: ➡️!=: 判断大小 | = | | = ➡️: ➡️=: ➡️=: ➡️: 加减天数 + | += | - | -= ➡️+=: ➡️+: ➡️-: ➡️-=: 自增/自减 ++ | -- ➡️前置++ ➡️后置++ ➡️前置-- ➡️后置-- 日期减日期 ➡

    2024年02月11日
    浏览(33)
  • 使用 Jetpack Compose 实现一个计算器APP

    在上一篇文章中,我们说到打算使用 compose 实现一个计算器 APP,最开始打算做一个经典的 LCD 基础计算器,后来觉得好像没啥特色,最终决定还是改成仿微软计算器。 不过,微软计算器的功能太多了,仿制的工程量不小,所以我打算只仿我认为最核心的两个模式:标准模式和

    2024年02月05日
    浏览(47)
  • HTML和JavaScript实现一个简单的计算器

    使用HTML和JavaScript实现一个简单的计算器。 这段代码会在浏览器中创建一个标题为\\\"Simple Calculator\\\"的页面。页面顶部有一个 h1 元素,用于显示标题。计算器界面使用了CSS网格布局,将按钮排列为4列。 在JavaScript部分,定义了一些函数来处理计算器的操作。 appendCharacter() 函数用

    2024年02月13日
    浏览(31)
  • 【Servlet学习三】实现一个内存版本的简易计算器~

    目录 一、方式1:使用form表单的形式(不推荐) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_form.java文件 🌈3、最终效果 二、方式2:使用ajax形式(最常用重点!!!) 🌈1、前端代码:HTML文件 🌈2、后端代码:Calculator_ajax.java文件 🌈3、最终效果  注意: (1)前端

    2024年02月12日
    浏览(31)
  • 用JavaScript和HTML实现一个精美的计算器

    计算器是我们日常生活中经常使用的工具之一,可以帮助我们进行简单的数学运算。在本博文中,我将使用JavaScript编写一个漂亮的计算器,并添加加减乘除功能。这个计算器将有一个精美的用户界面,包含9个数字按钮和加减乘除操作符。 HTML:负责构建界面 CSS:负责美化界

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包