java计算器实训报告_Java实验报告计算器

这篇实验报告介绍了如何使用Java实现一个图形用户界面计算器。实验旨在熟悉Java集成开发环境Eclipse,掌握图形用户界面设计原理和事件响应机制,以及各种组件和布局策略的使用。报告详细阐述了计算器的设计和实现过程,包括按钮布局、事件处理和运算逻辑。
摘要由CSDN通过智能技术生成

《Java实验报告计算器》由会员分享,可在线阅读,更多相关《Java实验报告计算器(12页珍藏版)》请在人人文库网上搜索。

1、院 系: 计算机科学学院 专 业: 年 级: 课 程 名 称: 姓名(学号): 指 导 教 师: 2016年 月 日年级班号组号专业实验名称实验室实验目的和要求一实验目的:1. 熟悉Java集成开发环境Eclipse(或NetBeans等);2. 掌握Java系统图形用户界面的基本工作原理;3. 掌握Java系统图形用户界面的设计步骤;4. 掌握图形用户界面的事件响应机制;5. 掌握图形用户界面的各种常用的基本组件的使用方法及事件响应;6. 掌握图形用户界面各种布局策略的设计与使用;7. 掌握绘制各种基本图形的方法;8. 掌握鼠标事件编程方法;二实验要求:(填写具体的题目要求。)概要设计(整体。

2、流程)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附件自带计算器的标准版功能、界面相仿。 但还。

3、不支持键盘操作。*/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 = Backspace, CE, C ;/* 计算器左边的M的显示名字 */private final String M = , M。

4、C, MR, MS, M+ ;/* 计算器上键的按钮 */private JButton keys = new JButtonKEYS.length;/* 计算器上的功能键的按钮 */private JButton commands = new JButtonCOMMAND.length;/* 计算器左边的M的按钮 */private JButton m = new JButtonM.length;/* 计算结果文本框 */private JTextField resultText = new JTextField(0);/ 标志用户按的是否是整个表达式的第一个数字,或者是运算符后的第一个数字。

5、private boolean firstDigit = true;/ 计算的中间结果。private double resultNum = 0.0;/ 当前运算的运算符private String operator = =;/ 操作是否合法private boolean operateValidFlag = true;/* 构造函数*/(写不完时,可另加附页。)详细设计(算法实现)public Calculator() super();/ 初始化计算器init();/ 设置计算器的背景颜色this.setBackground(Color.LIGHT_GRAY);this.setTitle(计。

6、算器);/ 在屏幕(500, 300)坐标处显示计算器this.setLocation(500, 300);/ 不许修改计算器的大小this.setResizable(false);/ 使计算器中各组件大小合适this.pack();/* 初始化计算器*/private void init() / 文本框中的内容采用右对齐方式resultText.setHorizontalAlignment(JTextField.RIGHT);/ 不允许修改结果文本框resultText.setEditable(false);/ 设置文本框背景颜色为白色resultText.setBackground(Col。

7、or.WHITE);/ 初始化计算器上键的按钮,将键放在一个画板内JPanel calckeysPanel = new JPanel();/ 用网格布局器,4行,5列的网格,网格之间的水平方向间隔为3个象素,垂直方向间隔为3个象素calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3);for (int i = 0; i = 0) / 用户按了数字键或者小数点键handleNumber(label);/ handlezero(zero); else / 用户按了运算符键handleOperator(label);/* 处理Backspace键被按下的。

8、事件*/private void handleBackspace() String text = resultText.getText();int i = text.length();if (i 0) / 退格,将文本最后一个字符去掉;text = text.substring(0, i - 1);if (text.length() = 0) / 如果文本没有了内容,则初始化计算器的各种值resultText.setText(0);firstDigit = true;operator = =; else / 显示新的文本resultText.setText(text);/* 处理数字键被按下的。

9、事件* param key*/private void handleNumber(String key) if (firstDigit) / 输入的第一个数字resultText.setText(key); else if (key.equals(.) & (resultText.getText().indexOf(.) 0) / 输入的是小数点,并且之前没有小数点,则将小数点附在结果文本框的后面resultText.setText(resultText.getText() + .); else if (!key.equals(.) / 如果输入的不是小数点,则将数字附在结果文本框的后面res。

10、ultText.setText(resultText.getText() + key);/ 以后输入的肯定不是第一个数字了firstDigit = false;/* 处理C键被按下的事件*/private void handleC() / 初始化计算器的各种值resultText.setText(0);firstDigit = true;operator = =;/* 处理运算符键被按下的事件* param key*/private void handleOperator(String key) if (operator.equals(/) / 除法运算/ 如果当前结果文本框中的值等于0if 。

11、(getNumberFromText() = 0.0) / 操作不合法operateValidFlag = false;resultText.setText(除数不能为零); else resultNum /= getNumberFromText(); else if (operator.equals(1/x) / 倒数运算if (resultNum = 0.0) / 操作不合法operateValidFlag = false;resultText.setText(零没有倒数); else resultNum = 1 / resultNum; else if (operator.equals(。

12、+) / 加法运算resultNum += getNumberFromText(); else if (operator.equals(-) / 减法运算resultNum -= getNumberFromText(); else if (operator.equals(*) / 乘法运算resultNum *= getNumberFromText(); else if (operator.equals(sqrt) / 平方根运算resultNum = Math.sqrt(resultNum); else if (operator.equals(%) / 百分号运算,除以100resultNu。

13、m = resultNum / 100; else if (operator.equals(+/-) / 正数负数运算resultNum = resultNum * (-1); else if (operator.equals(=) if (operateValidFlag) / 双精度浮点数的运算long t1;/ 赋值运算resultNum = getNumberFromText();if (operateValidFlag) / 双精度浮点数的运算long t1;double t2;t1 = (long) resultNum;t2 = resultNum - t1;if (t2 = 0)。

14、 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();。

15、 catch (NumberFormatException e)return result;public static void main(String args) Calculator calculator1 = new Calculator();calculator1.setVisible(true);calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);运行图CE:键入数字时,按下相应的数字键,如果按错可用(CE)键消去一次数值,再重新输入正确的数字C:清除数据,所有数据、算式都清除,归零复位MC:清除记忆储存MR:读记忆储存M+:记忆储存增加MS:存储显示栏中的数字1/x:求倒数Backspace:退格组内分工心得体会在我们三个人的讨论和不断的学习中我们终于完成这次的实验。在实验期间我们查阅的很多的文献和课本,并一次次的将自己的实验代码和报告加以完善。这对我们的java的编程水准又来了极大的提高,也让我们更家的喜爱java。成绩评定教师签名:年 月 日。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值