1、第 1 页 共 11 页 JavaJava 面向对象程序设计面向对象程序设计 课程报告课程报告 课程设计题目:计算器课程设计题目:计算器 第 2 页 共 11 页 计算器计算器 一一 设计的内容要求设计的内容要求 参考 Windows 附件中的计算器,使用 Java 语言设计并实现一个简单 的计算器。(界面使用 AWT或 SWING) 二二. . 设计思想设计思想 2.1 根据图形用户界面设计方法设计计算器版面。 容器类(窗口-Window 类 ,面板-Panel 类),框架类-Frame, Button 类,Label 类,TextField 类等类的构造方法,菜单(菜单栏、 菜单项)的建立
2、于应用。 事件处理机制:监听器类 WinClose(),actionPerformed()。 2.2 计算器计算功能实现,即按钮监听器的实现 自定义变量: x,y 为操作数,op 为操作符。根据单击按钮不同进行 不同的操作,详见处理按钮单击事件方法 actionPerformed (ActionEvent e)(计算功能算法)流程图。 第 3 页 共 11 页 三三. . 详细设计详细设计 3.1 calculator()函数(计算器版面设计)流程图: 开始 新建计算器窗口 f 新建菜单 创建菜单项并添加至菜单 新建并设置文本行 textp 新建并设置缓存区 mcache 新建并设置计算器上
3、button并注册监听器 新建面板 p0 p1 p2 p3 将 textp 添加至 p0,并设置 p0 大小 将”backspace”CE”C”添加至 p1,并设置 p1 大小及布局 将”MC”MR”MS”M+”添加至 p2,并设置 p2 大小及布局 将其他 button添加至 p3,并设置 p3 大小及布局 将面板 p0 p1 p2 p3 添加至 f 第 4 页 共 11 页 3.2 处理按钮单击事件方法 actionPerformed(ActionEvent e)(计算器 计算功能算法)流程图: 开始 Textp.setText(“0” Str.setLength(0) Y N 单击”CE
4、” 单击”C” Textp.setText(“0” Str.setLength(0) N Y 单击”+/-“ 将 textp 中数据正负变号 单击”+” 将 textp 中数据赋给 x, str.setLength (0) y=0,op=0 N Y N Y 单击”-“ 将 textp 中数据赋给 x,str.setLength(0) y=0,op=1 将 textp 中数据赋给 x,str.setLength(0) y=0,op=2 单击”*” N Y N Y 设置窗口 f的属性 为 f注册事件监听器 Winclose 结束 第 5 页 共 11 页 单击”%” N N N N Y Y Y 将
5、 textp 中数据乘以 0.01 y=0 单击”1/x” textp 中数据为 0 给 textp 赋”除 数不能为 0” 将 textp 中数 据取倒数 str.setLength(0); y=0 单击”0” textp 中数据为 0 N N N Y Y Y 在 textp 中数据后加”0”,并赋值给 y 单击”backspace” textp 中数据为 0 str 长度为 1 去掉 textp 数据的最后一 位,并将 str 的长度减 1 将 textp 赋 0,str.setLen gth(0) N Y 第 6 页 共 11 页 第四部分第四部分 运行效果图运行效果图 4.1 运行初始
6、图: 4.2 计算功能测试图: -2+21.4 将 textp 中数据赋给 y N Y 单击”1”9” 将单击数字插入到 textp 中数据 后,并将 textp 中数据赋给 y 将 textp 赋 0,并 str.stelength(0); 结束 第 7 页 共 11 页 五五. . 代码实现代码实现 import java.awt.*; import java.awt.event.*; public class Mycounter public static void main(String argn) new MyFrame().launchFrame(); class MyFrame extends Frame Button btn; Button btn_add,btn_sub,btn_mul,btn_div,btn_dot,btn_cr,btn_as,btn_eq,btn_sq,btn_bs; TextField tf; Panel p; Boolean isDot,operated,equaled; dou