`
baby69yy2000
  • 浏览: 190180 次
  • 性别: Icon_minigender_1
  • 来自: 自己输入城市...
社区版块
存档分类
最新评论

计算器

阅读更多
package apq.Calculate;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Calculate extends JFrame
    implements ActionListener{
    
    private JTextField display=new JTextField();
    private JButton[] buttons=new JButton[16]; 
    private String[] keys={"7","8","9","/",
                           "4","5","6","*",
                           "1","2","3","-",
                           "0","C","=","+"};
    //to store the 2 inputs;
    private String numStr1="";
    private String numStr2="";
    //to store the result or mid-result;
    private String rstStr="";
    //to define the first input is finished;
    private boolean symb=false;
    //to store the op;
    private char op;
    
    public Calculate(){
        //Create the Frame;
        setTitle("My Calculate");
        setSize(230,200);
        
        //Get the pane;
        Container pane=this.getContentPane();
        pane.setLayout(null);
        
        //add the display;
        display.setSize(200,30);
        display.setLocation(10,10);
        pane.add(display);

        //add the buttons;
        int x=10,y=40;
        for(int i=0;i<16;i++){
            buttons[i]=new JButton(keys[i]);
            buttons[i].setSize(50,30);
            buttons[i].setLocation(x,y);
            buttons[i].addActionListener(this);
            pane.add(buttons[i]);
            if(i%4!=3){
                x+=50;
            }
            else{
                x=10;
                y+=30;
            }
        }
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

    }
    //implements the interface
    public void actionPerformed(ActionEvent e){
        String str=String.valueOf(e.getActionCommand());
        char ch=str.charAt(0);
        switch(ch){
            case '1':case '2':case '3':
            case '4':case '5':case '6':
            case '7':case '8':case '9':case '0':
                if(!symb){
                    numStr1+=ch;
                    display.setText(numStr1);
                }
                else{
                    numStr2+=ch;
                    display.setText(numStr2);
                }
                break;
            case '/':case '*':case '-':case '+':
                op=ch;
                symb=true;
                break;
            case 'C':
                display.setText("");
                numStr1=numStr2="";
                symb=false;
                break;
            case '=':
                rstStr=evaluate();
                display.setText(rstStr);
                try{
                    int temp=Integer.parseInt(rstStr);
                }
                catch(NumberFormatException e2){
                    numStr1="";
                    numStr2="";
                    symb=false;
                    break;
                }
                numStr1=rstStr;
                numStr2="";
                break;
        }
    }

    //used to evaluate the result;
    private String evaluate(){
        int result=0;
        try{
            int num1=Integer.parseInt(numStr1);
            int num2=Integer.parseInt(numStr2);
            switch (op){
                case '+':result=num1+num2;
                break;
                case '-':result=num1-num2;
                break;
                case '*':result=num1*num2;
                break;
                case '/':result=num1/num2;
                break;
            }
            return String.valueOf(result);
        }
        catch(ArithmeticException e){
            return "ERROR:"+e.getMessage();
        }
        catch(NumberFormatException e){
            if(numStr1.equals(""))
                return "ERROR:Invalid First Number";
            else
                return "ERROR:Invalid Second Number";
        }
        catch(Exception e){
            return "ERROR";
        }
    }
    public static void main(String args[]){
        Calculate myCalculate=new Calculate();
    }
}


分享到:
评论

相关推荐

    子网掩码计算器下载/子网掩码计算器单机版--亲测好用

    子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 子网掩码计算器下载/子网掩码计算器单机版--亲测好用 ...

    基于PLC的电子计算器课程设计

    该系统的设计分为五个部分:电子计算器控制工艺流程分析、电子计算器控制系统总体方案设计、电子计算器控制系统梯形图程序设计、电子计算器监控系统设计和电子计算器系统调试及结果分析。 电子计算器控制工艺流程...

    非常实用的计算器工具,可以替换windows自带的计算器

    "非常实用的计算器工具,可以替换windows自带的计算器" 这个标题表明我们正在讨论的是一款功能强大的计算器应用,它不仅具备基本的计算功能,还能替代Windows操作系统默认提供的简单计算器。这意味着这款计算器可能...

    微信小程序 简易计算器 (源码)

    微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信小程序 简易计算器 (源码)微信...

    小程序源码 高仿苹果计算器 (代码+截图)

    小程序源码 高仿苹果计算器 (代码+截图)小程序源码 高仿苹果计算器 (代码+截图)小程序源码 高仿苹果计算器 (代码+截图)小程序源码 高仿苹果计算器 (代码+截图)小程序源码 高仿苹果计算器 (代码+截图)小程序源码 高仿...

    java课程设计-计算器-功能完整的科学计算器-仿windows计算器

    题目要求:编写一计算器,仿照windows xp计算器界面,能实现基本的运算及一些科学运算。 能实现的运算如下: "+",加 "-",减 "*",乘 "/",除 "x^y",x的y次方 "Mod",取模 "And",相与 "Or",相或 "Xor",异或 "Lsh",左移 ...

    JAVA计算器UML图.doc

    JAVA计算器UML图 本文档旨在设计一个功能强大且实用的计算器,具有保存计算过程的功能。下面是本设计的知识点总结: 1. 基本数据类型与数组:在设计计算器时,需要使用基本数据类型,如整数、浮点数等,数组也可以...

    复数计算器复数计算器复数计算器

    复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器复数计算器...

    C# 计算器(加了注释)

    【C# 计算器(加了注释)】是一个基于C#编程语言实现的简易计算器项目,旨在帮助初学者理解和学习C#的基础语法、控制流以及面向对象编程的概念。这个计算器程序通常会包含基本的四则运算功能,即加法、减法、乘法和...

    简易计算器(c语言课程设计)

    简易计算器(C 语言课程设计) 本资源是关于简易计算器的设计和实现,使用 C 语言编程语言,旨在训练读者的基本编程能力和图形模式下的编程。 1. 计算器的历史发展 计算器的历史可以追溯到中国古代,使用筹策作为...

    多元一次方程组计算器——环星多元线性方程组计算器0.89β

    环星多元线性方程组计算器0.89β是一个专为此类问题设计的软件工具,它简化了计算过程,让操作变得直观且易用。 线性代数是现代数学和工程领域的一个重要分支,主要研究向量、矩阵、线性变换等概念。在处理多元一次...

    微信小程序 生活服务 房贷计算器 (源代码+截图)

    微信小程序 生活服务 房贷计算器 (源代码+截图)微信小程序 生活服务 房贷计算器 (源代码+截图)微信小程序 生活服务 房贷计算器 (源代码+截图)微信小程序 生活服务 房贷计算器 (源代码+截图)微信小程序 生活...

    66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)

    66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51单片机C语言实例Proteus仿真和代码)66-矩阵键盘简易计算器(51...

    win10自带计算器

    《深入解析Win10内置计算器》 Windows 10操作系统中的计算器是一款强大的工具,它不仅具备基础的加减乘除功能,还集成了多种高级计算模式,满足了用户在日常和专业工作中的多样化需求。这款计算器是通过Windows应用...

    计算器大全包括多种计算器

    《计算器大全:全面解析各类计算器及其应用》 在数字化时代,计算器已经不再局限于传统的加减乘除,而是发展成为涵盖各个领域、满足多种需求的工具集合。"计算器大全"这一概念,意味着它囊括了从基础数学计算到复杂...

    色环电阻计算器(电阻计算器)免费下载 v1.2.0.55 绿色版.zip

    色环电阻计算器是一款可以帮助用户计算电阻的软件。电阻值总是不完全下降到标准值,这几乎不算是问题,因为电阻很便宜,所以你不介意使用两个电阻的组合,问题是要找到您所需的价值匹配的标准值的最佳组合。色环...

    基于STC89C52单片机的简易计算器源码+仿真

    基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 基于STC89C52单片机的简易计算器源码+仿真 ...

    公式计算器.matlab

    【标题】:“公式计算器.matlab” 【描述】:“公式计算器设计说明;公式计算器设计说明;公式计算器设计说明;公式计算器设计说明;公式计算器设计说明” 本文主要探讨的是如何利用简单的公式计算器,特别是那些...

    微信小程序 小工具类 简易计算器 (源代码+截图)

    微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小工具类 简易计算器 (源代码+截图)微信小程序 小...

Global site tag (gtag.js) - Google Analytics