收藏 分享(赏)

JAVA小应用程序Applet设计(计算器)实验报告(附完整代码).doc

上传人:精品资料 文档编号:10752146 上传时间:2020-01-07 格式:DOC 页数:9 大小:152KB
下载 相关 举报
JAVA小应用程序Applet设计(计算器)实验报告(附完整代码).doc_第1页
第1页 / 共9页
JAVA小应用程序Applet设计(计算器)实验报告(附完整代码).doc_第2页
第2页 / 共9页
JAVA小应用程序Applet设计(计算器)实验报告(附完整代码).doc_第3页
第3页 / 共9页
JAVA小应用程序Applet设计(计算器)实验报告(附完整代码).doc_第4页
第4页 / 共9页
JAVA小应用程序Applet设计(计算器)实验报告(附完整代码).doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、小应用程序 Applet 设计一、 课题内容和要求内容:设计和编写一个可以用鼠标操作的 Applet 小应用程序和相应的 HTML页面,观察 Applet 的执行过程,测试程序鼠标用户交互操作的效果。要求:要求学生能在学习和理解课堂学习内容中 JAVA 小应用程序的基础上,通过实验,培养学生将 JAVA 小应用程序相关知识点(包括 JAVA Applet 和低级事件处理模型)有机结合,设计基于 WEB 浏览器的小应用程序的能力。二、设计思路分析class App:一个 Java Applet 计算器的主类public void init():完成初始化 appletpublic boolean

2、 action():实现事件处理的方法public void doOperator():运算及运算结果输出操作public void doForeScreen():数字和小数点输出到文本框操作public void doClear():清空操作三、概要设计 public class App extends Applet TextField tfAnswer;Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision;String Ope

3、ratorCurrent, OperatorPre;String ForeScreen, BackScreen;boolean isFloat = false;public void init();public boolean action(Event e, Object o);public void doOperator()public void doForeScreen(String s);public void doClear();事件处理:运算及运算结果输出:四、详细设计 Java 代码:import java.awt.*;import java.applet.*;public cla

4、ss App extends Applet TextField tfAnswer;/ 定义变量Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9;Button bPoint, bEqual, bPlus, bMinus, bClear, bMulti, bDivision;String OperatorCurrent, OperatorPre;String ForeScreen, BackScreen;boolean isFloat = false;public void init() / 初始化OperatorCurrent = new String(

5、“);OperatorPre = new String(“);ForeScreen = new String(“0“);/ 保证输入字符串不为空防止计算错误BackScreen = new String(“);setBackground(Color.gray);setLayout(null);/ 设为空布局便于自定义组件位置tfAnswer = new TextField();/ 设置文本框样式tfAnswer.setBounds(20, 20, 175, 40);tfAnswer.setFont(new Font(BackScreen, Font.BOLD, 28);add(tfAnswer

6、);tfAnswer.setText(ForeScreen);bClear = new Button(“C“);/ 设置按钮样式bClear.setBounds(20, 70, 40, 40);add(bClear);bDivision = new Button(“/“);bDivision.setBackground(Color.green);bDivision.setBounds(65, 70, 40, 40);add(bDivision);bMulti = new Button(“*“);bMulti.setBackground(Color.green);bMulti.setBounds

7、(110, 70, 40, 40);add(bMulti);bMinus = new Button(“-“);bMinus.setBackground(Color.green);bMinus.setBounds(155, 70, 40, 40);add(bMinus);b7 = new Button(“7“);b7.setBounds(20, 115, 40, 40);b7.setBackground(Color.orange);add(b7);b8 = new Button(“8“);b8.setBackground(Color.orange);b8.setBounds(65, 115, 4

8、0, 40);add(b8);b9 = new Button(“9“);b9.setBackground(Color.orange);b9.setBounds(110, 115, 40, 40);add(b9);bPlus = new Button(“+“);bPlus.setBackground(Color.green);bPlus.setBounds(155, 115, 40, 85);add(bPlus);b4 = new Button(“4“);b4.setBackground(Color.orange);b4.setBounds(20, 160, 40, 40);add(b4);b5

9、 = new Button(“5“);b5.setBackground(Color.orange);b5.setBounds(65, 160, 40, 40);add(b5);b6 = new Button(“6“);b6.setBackground(Color.orange);b6.setBounds(110, 160, 40, 40);add(b6);b1 = new Button(“1“);b1.setBackground(Color.orange);b1.setBounds(20, 205, 40, 40);add(b1);b2 = new Button(“2“);b2.setBack

10、ground(Color.orange);b2.setBounds(65, 205, 40, 40);add(b2);b3 = new Button(“3“);b3.setBackground(Color.orange);b3.setBounds(110, 205, 40, 40);add(b3);bEqual = new Button(“=“);bEqual.setBackground(Color.green);bEqual.setBounds(155, 205, 40, 85);add(bEqual);b0 = new Button(“0“);b0.setBackground(Color.

11、orange);b0.setBounds(20, 250, 85, 40);add(b0);bPoint = new Button(“.“);bPoint.setBackground(Color.orange);bPoint.setBounds(110, 250, 40, 40);add(bPoint);public boolean action(Event e, Object o) / 实现事件处理的方法String s = new String(“);if (e.target = b0) | (e.target = b1) | (e.target = b2)| (e.target = b3

12、) | (e.target = b4) | (e.target = b5)| (e.target = b6) | (e.target = b7) | (e.target = b8)| (e.target = b9) / 获取数字按钮数据并在控制台和文本框输出if (e.target != bPoint) / 获取数字s = (String) o;doForeScreen(s);if (e.target = bPoint) if (ForeScreen.equals(“)/ 原来没有输入数据则用 0.doForeScreen(“0.“); else/ 原来有输入数据则用.doForeScreen

13、(s);if (e.target = bClear) / 清除按钮进行清除操作doClear();if (e.target = bMulti) | (e.target = bDivision)| (e.target = bPlus) | (e.target = bMinus)| (e.target = bEqual) / 加减乘除等于按钮获取运算操作符并进行运算操作if (ForeScreen != “) / 重新输入数字进行运算操作OperatorCurrent = (String) o);doOperator(); else / 没有重新输入数字则作为上一运算符- 保证不输入连续的同一运算

14、符OperatorPre = (String) o);return true;public void doOperator() / 运算及运算结果输出操作double dFore, dBack;Double d;if (OperatorPre.equals(“) / 上一运算符没有则直接输出BackScreen = ForeScreen;/ 输入的数据转入后台并清空,用后台输出它ForeScreen = “;tfAnswer.setText(BackScreen);repaint(); else / 上一运算符存在则运算后输出dFore = (new Double(ForeScreen).do

15、ubleValue();dBack = (new Double(BackScreen).doubleValue();ForeScreen = “;/ 运算结果转入后台并清空,用后台输出它BackScreen = tfAnswer.getText();if (OperatorPre.equals(“+“) d = new Double(dBack + dFore);BackScreen = d.toString();if (OperatorPre.equals(“-“) d = new Double(dBack - dFore);BackScreen = d.toString();if (Ope

16、ratorPre.equals(“*“) d = new Double(dBack * dFore);BackScreen = d.toString();if (OperatorPre.equals(“/“) d = new Double(dBack / dFore);BackScreen = d.toString();tfAnswer.setText(BackScreen);repaint();OperatorPre = OperatorCurrent;/ 现运算符变上一运算符repaint();public void doForeScreen(String s) / 数字和小数点输出到文本

17、框操作ForeScreen += s;if (ForeScreen.length() 1 tfAnswer.setText(ForeScreen);repaint();public void doClear() / 清空操作OperatorCurrent = “;OperatorPre = “;ForeScreen = “0“;BackScreen = “;isFloat = false;tfAnswer.setText(ForeScreen);repaint();Html 代码:“JavaApplet 计算器“五、测试数据及其结果分析1 正常输入:1.88+99= C .666/33= C

18、7.33*26= 0.5-1-3= 2 结果:输出正常。六、调试过程中的问题 1、一开始计算器只能在按等号后实现运算没考虑到连续计算的需要,在采用功能合并,让加减乘除和等号都已上一运算符为准进行运算,并且在等号后以有无输入数字决定是否重新计算解决了该问题。2、计算器初始化时数据为空值会在转为 double 型后出现转换错误,故一开始就让数据取 0 并显示。在输入数据后将该 0 字符删除便可。七、程序设计总结1、通过该实验掌握了用 JAVA 小应用程序设计一个简单计算器的方法。 2、学会了编写计算器的算法、JAVA Applet 和低级事件处理模型。3、掌握了将 JAVA 小应用与 html 页面结合,并在 web 浏览器上通过该计算器实现与用户交互。4、在逐步地优化和调试中实现了一个较实用的界面。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

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


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

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

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