四则运算计算器程序设计javaGUI.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
四则运算计算器程序设计(java-GUI ) 北京林业大学信息学院 闫煜鸿 一、 实例描述 用户通过按钮输入一个四则混合运算表达式,当按下‘= ’时能够计算并显示计算结果, 如果用户输入的表达式有错误则要给出ERROR 提示。 二、 实例分析 本实例需要用户通过按钮输入四则混合运算表达式,那么程序界面需要提供数字和符号 的按钮,同时还需要能够显示输入和输出结果的控件。为了便于布局和管理,使用三个 JButton 数组存放所有的按钮对象,分别为数字键(0 到9 以及小数点)、运算符键(加、 减、乘、除、括号、等号等)和功能键(包括重置、后退、说明等)。用于显示信息的控件 使用JLable 类型的对象lable。 用户通过数字键和运算符按钮输入表达式并在lable 控件中显示,当按下‘= ’键的时候, 计算表达式的值并显示在显示控件中。由于用户在输入表达式的过程中存在这很多的不确定 因素,为了防止这些不确定因素引起的程序错误,对表达式的处理集中在用户按下‘= ’按 钮的时候,同时其他按钮不可使用(‘重置’除外),点击‘重置’后方可继续使用。三个 功能键能够实现不同的功能,‘重置’可将已输入的内容清除,‘后退’可以向前删除一个 字符,‘说明’则在显示控件中显示说明内容。 当进行按下‘= ’键时,进行表达式的求值。表达式求值的过程参见数据结构与算法设 计部分。 三、 布局设计 如右图所示的布局方式, 整体分为三部分,使用三个 中间容器即可实现此种布局。 构造方法用于布局的实现, 在构造方法中申明和初始化 三个中间容器 p1、p2、p3, 其中p1 存放显示控件,位于 窗体的上部;p2 存放数字键, 位于窗体的左部;p3 存放功能键和运算符按钮,位于窗体的右部。p1 使用FlowLayout 布局, 并设置对齐方式为左对齐;p2 和p3 使用GridLayout 布局,网格规模分别为4*3 和3*3 。窗 体布局使用BorderLayout 布局,按图所示分别使p1 在 NORTH 位置,p2 在WEST 位置,p3 在CENTER 位置。 布局的方式有多种多样,读者可以有自己的创新,不局限与这一种布局方式。 四、 事件处理响应 通过实现ActionListener 接口中的 public void actionPerformed(ActionEvent e)方法,将事 件处理全部集中在 actionPerformed(ActionEvent e)方法中。首先在构造方法中为所有的 JButton 对象添加监听器,在actionPerformed(ActionEvent e)方法中,首先有一个JButton 类 型的变量用来获取事件源的引用,然后程序根据事件源的不同做出不同的响应。 在实例分析中提到在某些时刻有些按钮不能使用,这就需要一个boolean 类型的成员变 p 量来确定这些按钮是否可以使用,其初始值为true 。当p 为true 的时候,所有的数字键、 运算符按钮和功能键中的后退键均可使用。这些按钮的功能都是对lable 的内容进行修改, 数字键和运算符按钮在lable 后添加该按钮表示的字符, ‘后退’则删除lable 末尾的一个字 符。 当事件源为 ‘= ’按钮时,除了在 label 后添加字符‘= ’,还要调用自定义的方法 EvaluateExpression()得到表达式的值并将此值添加在lable 之后,同时将p 的值设为false 。 此时数字键和运算符按钮以及‘后退’键都不可使用。 当事件源为‘重置’按钮时,将lable 中的字符清空,同时恢复p 的值为true 。 当事件源为‘说明’按钮时,在lable 中显示说明文字,同时设置p 的值为false ,以防 止用户输入的表达式错误。 五、 数据结构与算法设计 如何根据用户输入的字符串表达式计算表达式的值呢?这里介绍使用堆栈来计算表达 式的值的方法。 首先是关于堆栈的描述。使用 java.util 包中的 StackE泛型类可以创建一个堆栈对象。 堆栈对象可以调用public E push(E item)方法实现入栈操作,及在栈顶插入元素item;调用 public E pop()方法实现出栈操作,及删除并返回栈顶元素;调用public bo

文档评论(0)

0520 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档