ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:103.34KB ,
资源ID:10357670      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10357670.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Java的计算器算法(源代码).doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

基于Java的计算器算法(源代码).doc

1、import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; /* * 一个计算器,与 Windows 附件自带计算器的标准版功

2、能、界面相仿。 但还不支持键盘操作。 */ public class Calculator extends JFrame implements ActionListener /* 计算器上的键的显示名字 */ private final String KEYS = “7“, “8“, “9“, “/“, “sqrt“, “4“, “5“, “6“, “*“, “%“, “1“, “2“, “3“, “-“, “1/x“, “0“, “+/-“, “.“, “+“, “=“ ; /* 计算器上的功能键的显示名字 */ private final String COMMAND = “Backspa

3、ce“, “CE“, “C“ ; /* 计算器左边的 M 的显示名字 */ private final String M = “ “, “MC“, “MR“, “MS“, “M+“ ; /* 计算器上键的按钮 */ private JButton keys = new JButtonKEYS.length; /* 计算器上的功能键的按钮 */ private JButton commands = new JButtonCOMMAND.length; /* 计算器左边的 M 的按钮 */ private JButton m = new JButtonM.length; /* 计算结果文本框 */

4、 private JTextField resultText = new JTextField(“0“); / 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字 private boolean firstDigit = true; / 计算的中间结果。 private double resultNum = 0.0; / 当前运算的运算符 private String operator = “=“; / 操作是否合法 private boolean operateValidFlag = true; /* * 构造函数 */ public Calculator() super(

5、); / 初始化计算器 init(); / 设置计算器的背景颜色 this.setBackground(Color.LIGHT_GRAY); this.setTitle(“计算器“); / 在屏幕(500, 300)坐标处显示计算器 this.setLocation(500, 300); / 不许修改计算器的大小 this.setResizable(false); / 使计算器中各组件大小合适 this.pack(); /* * 初始化计算器 */ private void init() / 文本框中的内容采用右对齐方式 resultText.setHorizontalAlignment(JT

6、extField.RIGHT); / 不允许修改结果文本框 resultText.setEditable(false); / 设置文本框背景颜色为白色 resultText.setBackground(Color.white); / 初始化计算器上键的按钮,将键放在一个画板内 JPanel calckeysPanel = new JPanel(); / 用网格布局器,4 行,5 列的网格,网格之间的水平方向间隔为 3 个象素,垂直方向间隔为 3 个象素 calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3); for (int i = 0; i =

7、 0) / 用户按了数字键或者小数点键 handleNumber(label); / handlezero(zero); else / 用户按了运算符键 handleOperator(label); /* * 处理 Backspace 键被按下的事件 */ private void handleBackspace() String text = resultText.getText(); int i = text.length(); if (i 0) / 退格,将文本最后一个字符去掉 text = text.substring(0, i - 1); if (text.length() = 0)

8、 / 如果文本没有了内容,则初始化计算器的各种值 resultText.setText(“0“); firstDigit = true; operator = “=“; else / 显示新的文本 resultText.setText(text); /* * 处理数字键被按下的事件 * * param key */ private void handleNumber(String key) if (firstDigit) / 输入的第一个数字 resultText.setText(key); else if (key.equals(“.“) else if (!key.equals(“.“)

9、/ 如果输入的不是小数点,则将数字附在结果文本框的后面 resultText.setText(resultText.getText() + key); / 以后输入的肯定不是第一个数字了 firstDigit = false; /* * 处理 C 键被按下的事件 */ private void handleC() / 初始化计算器的各种值 resultText.setText(“0“); firstDigit = true; operator = “=“; /* * 处理运算符键被按下的事件 * * param key */ private void handleOperator(String

10、 key) if (operator.equals(“/“) / 除法运算 / 如果当前结果文本框中的值等于 0 if (getNumberFromText() = 0.0) / 操作不合法 operateValidFlag = false; resultText.setText(“除数不能为零“); else resultNum /= getNumberFromText(); else if (operator.equals(“1/x“) / 倒数运算 if (resultNum = 0.0) / 操作不合法 operateValidFlag = false; resultText.setT

11、ext(“零没有倒数“); else resultNum = 1 / resultNum; else if (operator.equals(“+“) / 加法运算 resultNum += getNumberFromText(); else if (operator.equals(“-“) / 减法运算 resultNum -= getNumberFromText(); else if (operator.equals(“*“) / 乘法运算 resultNum *= getNumberFromText(); else if (operator.equals(“sqrt“) / 平方根运算

12、resultNum = Math.sqrt(resultNum); else if (operator.equals(“%“) / 百分号运算,除以 100 resultNum = resultNum / 100; else if (operator.equals(“+/-“) / 正数负数运算 resultNum = resultNum * (-1); else if (operator.equals(“=“) / 赋值运算 resultNum = getNumberFromText(); if (operateValidFlag) / 双精度浮点数的运算 long t1; double t

13、2; t1 = (long) resultNum; t2 = resultNum - t1; if (t2 = 0) resultText.setText(String.valueOf(t1); else resultText.setText(String.valueOf(resultNum); / 运算符等于用户按的按钮 operator = key; firstDigit = true; operateValidFlag = true; /* * 从结果文本框中获取数字 * * return */ private double getNumberFromText() double result = 0; try result = Double.valueOf(resultText.getText().doubleValue(); catch (NumberFormatException e) return result; public static void main(String args) Calculator calculator1 = new Calculator(); calculator1.setVisible(true); calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报