Java语言GUI实现计算器

Java语言GUI实现计算器以及源代码
一、 设计分析
1.1任务及其目的
设计一个计算器应用程序,完成复杂的科学运算。设计的计算器应用程序可以完成加法、减法、乘法、除法和科学函数运算。且有小数点、正负号、求倒数、退格和清零等功能。用鼠标点击相应的数字键和运算符号键,然后点击=按钮。窗口上方的文本框将会显示计算出来的结果,如果未显示说明输入的表达式有误。要将文本框清零,科单击清零按钮。
1.2设计思路
实现主要分为两部分:

编写能实现简单四则运算的类(BaseCalcucator.class)
将传入的中缀表达式转化为逆波兰表达式,在进行计算。
编写进行科学计算的类(SceneCalculator.class)
将传入的式子进行相应的科学计算,并用计算出来的结果进行替代掉进行科学计算的式子。
二,程序结构
1、程序流程如下图

在这里插入图片描述

2、程序界面
控件
1.文本框TextArea:text用于显示当前计算的式子,recordArea用于显示过去计算的式子,mermoryArea用于显示计算器“寄存器”中的值。
2.功能Button:record和mermor用于在历史记录和“寄存器”之间进行切换。
3.数字Button:0-9.小数点
4.运算符Button:+ - * / ( ) =
5.计算器基本Button:←用于退格,c用于清空mathNow、recordArea、mermoryArea
6.科学运算符Button::
e,π,1/x, x2,x3, x!,|x|,
7.切换Button:Deg代表角度制,Rad代表弧度制。通过点击Deg实现角度制与弧度制之间的切换
成员变量
1.private String mathPast=” ”,用于存储上次运算的式子
2.private String mathNow =” ”,用于存储现在运算的式子
3.private String showNow=” ”,用于存储显示在文本框的式子
4.private String m;用于存储使用计算器寄存器的数
5.private String restult=””;用于计算出来的结果
6.pivate String temp=””,用于暂时存储的数字
7.private int TrigCalculMethod=0;(默认设置为0,进行角度制运算)
TrigCalculMethod=0,进行角度制运算,TrigCalculMethod=1,进行弧度制运算
8.private int equal_flag=0;进行等号按钮的标记(及刚刚是否进行了一次运算)
equal_flag=0,及刚刚没有进行运算,equal_flag=1,代表刚刚进行了一次运算
三、 各模块的功能及程序说明
3.1 Calcuator主类模块
3.1.1 初始化特殊函数按钮
由于JButton 按钮上无法显示出x2,x3, , ,所以图片粘贴的办法,将相应的函数图片粘贴到按钮的表面。
//创建x的平方,x的三次方,x的y次方,x开y次方按钮
ImageIcon squareimg = new ImageIcon(“src\Calcuator\x的平方.png”);// 创建图片对象
ImageIcon cubeimg = new ImageIcon(“src\Calcuator\x的三次方.png”);// 创建图片对象
ImageIcon powerimg = new ImageIcon(“src\Calcuator\x的y次方.png”);// 创建图片对象
ImageIcon readicationimg = new ImageIcon(“src\Calcuator\x开y次方.png”);// 创建图片对象

   Image squareimage = squareimg.getImage();
    Image cubeimage = cubeimg.getImage();
    Image powerimage = powerimg.getImage();
    Image readicationimage = readicationimg.getImage();

    //为把它缩小点,先要取出这个Icon的image ,然后缩放到合适的大小
    Image squaresmallImage = squareimage.getScaledInstance(25,25,Image.SCALE_FAST);
    Image cubesmallImage = cubeimage.getScaledInstance(25,25,Image.SCALE_FAST);
    Image powersmallImage = powerimage.getScaledInstance(25,25,Image.SCALE_FAST);
    Image readictionsmallImage = readicationimage.getScaledInstance(30,30,Image.SCALE_FAST);

    //再由修改后的Image来生成合适的Icon;
    //***Image对象创建ImageIcon对象,可查阅ImageIcon的构造方法***
    ImageIcon smallIcon  = new ImageIcon(squaresmallImage);
    ImageIcon cmallIcon = new ImageIcon(cubesmallImage);
    ImageIcon pmallIcon = new ImageIcon(powersmallImage);
    ImageIcon rmallIcon = new ImageIcon(readictionsmallImage);

    JButton squarebuttion=new JButton(smallIcon);
    JButton cubebuttion=new JButton(cmallIcon);
    JButton powerbuttion=new JButton(pmallIcon);
    JButton readic
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值