《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。成绩评定教师签名:年 月 日。

java计算器实训报告_Java实验报告计算器相关推荐

  1. java坦克大战 实训报告_程序设计实训坦克大战实验报告

    <程序设计实训坦克大战实验报告>由会员分享,可在线阅读,更多相关<程序设计实训坦克大战实验报告(12页珍藏版)>请在金锄头文库上搜索. 1. 程序设计实训报告坦克大战专业班级: ...

  2. 计算机病毒实训,2021计算机病毒实验报告

    <2021计算机病毒实验报告>由会员分享,可在线阅读,更多相关<2021计算机病毒实验报告(5页珍藏版)>请在人人文库网上搜索. 1.计算机病毒实验报告计算机病毒实验报告 说 ...

  3. java有理数类的封装_java实验报告有理数的类封装.doc

    java实验报告有理数的类封装 华中科技大学文华学院 <Java程序设计>实验报告 实验三:有理数的类封装 专业班级: 通信工程2008级1班 姓名: 学号: 时间: 实验三:有理数的类封 ...

  4. java实验七实验报告_Java实验报告-7-风扇

    Java实验报告 实验题目实验七综合实验风扇 代码: import java.awt.Col or; import java.awt.Graphics; import java.awt.event.A ...

  5. java小时钟实验报告_JAVA实验报告(运用JavaFx实现时钟动画).doc

    JAVA实验报告(运用JavaFx实现时钟动画),javafx时钟,javafx动画,javafx等待动画,javafx动画效果,时钟动画,ppt时钟动画,时钟机关之星动画化,flash时钟动画,fl ...

  6. Java程序设计实训教程_Java程序设计实训教程--详细介绍

    第1章&nbsp&nbspJava语言基础 1.1&nbsp&nbsp背景知识 1.1.1&nbsp&nbspApplet与Application 1. ...

  7. java程序设计实训项目_Java程序设计教程与项目实训

    本书以现代教育理念为指导,在讲授方式上注意结合应用开发实例,注重培养学生理解面向对象程序设计思想,以提高分析问题和解决实际问题的能力.采用由浅入深.理论与实践相结合的教学思路,通过大量的实例阐述Jav ...

  8. java输入输出实验报告_JAVA实验报告(河北工业大学)

    实验一Application与Applet程序调试运行 实验目的:熟悉所用系统的上机方法与步骤. 实验内容:编写一个Java Application和一个Applet程序,输出以下信息:Hello,J ...

  9. 计算机网络实训简介,计算机网络实验报告介绍.doc

    学 生 实 验 报 告 (理工类) 课程名称:计算机网络与通信 1305102046 学生姓名: 桑 倩 所属院部:电子信息工程学院 指导教师: 陈 存 宝 20 15 --20 16 学年 第 1 ...

  10. java迷宫实训报告_Java综合实训报告-迷宫.doc

    Java综合实训报告-迷宫 目 录 1.需求分析2 2.概要设计2 2.1功能图3 2.2系统流程图4 3.详细设计4 3.1类关系图5 3.2类设计图5 类Maze5 类MazeGrid6 3.3主 ...

最新文章

  1. 如何配置Spring Boot Tomcat
  2. 月读の自动读取 根据注释解析列名和字典
  3. 从菜鸟成为数据科学家的养成方案
  4. mysql出现error 2003_mysql启动时出现ERROR 2003 (HY000)问题的解决方法
  5. 快速阅读《构建之法》——构建之法阅读笔记01
  6. 安卓java虚拟机_Android虚拟机与Java虚拟机 两种虚拟机的比较
  7. stata15中文乱码_如何解决 Stata 14 的中文乱码问题
  8. Python3爬虫与多线程
  9. 不等式计算机在线使用,不等式传递性在线计算器
  10. 冬训成果何在?林丹无缘新赛季首冠状态成迷
  11. 最小采样频率计算公式_【白皮书】多路复用和采样理论
  12. iOS依赖注入框架系列(三):模块化Typhoon
  13. 【蓝桥杯】CT107D开发板没有操作的led灯频闪、暗亮问题,蜂鸣器咔咔响
  14. PS新手教程:轻松掌握四种扁平化设计风格
  15. 阿里面试,问了我乐观锁、悲观锁、AQS、sync和Lock,这个回答让我拿了offer
  16. 【调剂】天津科技大学教育部创新团队招收化工相关对计算机感兴趣学硕
  17. VPC5021电流模式 PWM 控制器 3uA 超低启动电流
  18. C++常用术语及其英文翻译的含义和简单用途总结(二)
  19. 2.查询平均成绩大于60分的同学的学号和平均成绩
  20. oracle最新scn补丁,Oracle 系统改变号(SCN), Headroom, 安全和补丁信息

热门文章

  1. 大数据剖析 | 薪资没那么高,延毕率超60%,现代人读博都图什么?
  2. photoshop 抠图
  3. 计算机cpu任务管理器,任务管理器里CPU使用率过高问题
  4. linux获取cpu使用率,linux获取cpu使用率
  5. 播放视频时过滤播霸浏览器
  6. influxdb java api使用_Influxdb入门使用
  7. Android基础入门教程——2.4.2 ListView简单使用
  8. python随机生成20个数字_你如何在Python中生成20个随机数字
  9. 65个最常见的面试问题与技巧性答复(面试技巧和注意事项),很不错,求职之前,多看看
  10. java输入无名粉_05·无名粉店(上)