java设计计算器的毕业论文要点.pdf

上传人:tbuqq 文档编号:5197258 上传时间:2020-02-19 格式:PDF 页数:30 大小:1.09MB
返回 下载 相关 举报
java设计计算器的毕业论文要点.pdf_第1页
第1页 / 共30页
java设计计算器的毕业论文要点.pdf_第2页
第2页 / 共30页
java设计计算器的毕业论文要点.pdf_第3页
第3页 / 共30页
java设计计算器的毕业论文要点.pdf_第4页
第4页 / 共30页
java设计计算器的毕业论文要点.pdf_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《java设计计算器的毕业论文要点.pdf》由会员分享,可在线阅读,更多相关《java设计计算器的毕业论文要点.pdf(30页珍藏版)》请在三一文库上搜索。

1、数学计算机学院 (计算机及应用二学位) 软件工程课程设计报告 题目:基于 java 语言的计算器设计与实现 准考证号 : 姓名: 指导教师: 报告成绩: 日期: 2013 年 12 月 20 日 第 1 页 目录 第一章:概论 2 1.1 设计目的及思路 2 1.2 功能模块设计 2 1.3 设计步骤 3 1.4 系统功能图 4 第二章 需求分析 4 2.1 设计要求: 4 2.2 系统目标 5 2.3 主体功能 5 2.4 开发环境 5 第三章 程序设计 7 3.1 课程设计目的 7 3.2 计算机面板设计 7 3.3 程序设计的基本思路 . 8 第四章 功能的实现 9 4.1 界面功能 9

2、 4.2 运行调试及讨论分析 10 第五章 总结 16 5.1 主要困难问题 16 5.2 主要收获 17 参考书籍 18 第 2 页 第一章:概论 1.1 设计目的及思路 (1)复习巩固java 语言的基础知识,进一步加深对java 语言的理解和掌控。通过本 课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能 较全面地理解、 掌握和综合运用所学的知识,提高自身的编程能力。利用 Java Applet 图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名 称,使得使用计算器时简单明了,清晰可见,操作轻松 (2)课程设计为大家提供了一个既动手又动脑,

3、独立实践的机会,将课本上的理论知 识和实际有机结合起来,锻炼我们的分析解决实际问题的能力。提高我们适应实际, 实践编程的能力。给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时 就开始执行那个按钮所定义的算法,生成数据并显示 (3)培养我们在项目开发中创新意识及能力,通过亲身实践, 利用所学编写简单的面 向对象程序,提高对面向对象及JAVA语言的理解。 除数字的输入为直接进行输入外,其他运算例如+、- 、* 、/ 、开平方等算法要求 计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用Java 中进制转换的函数, 给各个按钮进行算法,利用鼠标点击

4、事件,当鼠标点击某个按钮时就开始执行那个按 钮所定义的算法,生成数据并显示。 1.2 功能模块设计 以下为标准计算器的基本功能: (1)加法 两个数据进行加操作,可以为小数。 (2)减法 两个数据进行减操作,可以为负数相减。 (3)乘法 两个数相乘操作。 (4)除法 第 3 页 两个数相除操作。 (5)开平方 对任意一个数进行开方运算,可以是小数。 (6)求余 对任意一个数进行求余运算。 (7)倒数 正弦、余弦、正切和余切的运算。 (8)转换 将十进制数转换为二进制以及将二进制转换为十进制。 1.3 设计步骤 (1)课程设计任务及要求。 (2)需求分析。 (3)设计思路 - 工作原理、功能规划

5、。 (4)详细设计 - 数据分析、算法思路、类设计、功能实现(含程序流程图、主要代 码及注释)、界面等。 (4)运行调试与分析讨论- 给出运行屏幕截图,分析运行结果,有何改进想法等。 (5)设计体会与小结- 设计遇到的问题及解决办法,通过设计学到了哪些新知识, 巩固了哪些知识,有哪些提高。 (6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式) (7) 报告按规定排版打印,要求装订平整。 (8) 课设报告的装订顺序如下:封面-目录 -正文 - 附录 ( 代码 ) 第 4 页 1.4 系统功能图 第二章需求分析 2.1 设计要求: 由于现代用户更倾向于由鼠标方便操作的图形用户界面,所

6、以我们采用GUI 来实现计算器,并采用Swing 组件, AWT 事件处理等实现具体功能。 需求分析:在我们日常生活中,计算开支、收入时,大额数字或是多倍小数的计算都 需要计算器的帮助,而在学习一些科目时,也常常要处理数字。虽然现在的计算器价 格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,不仅操作 不便,很多功能也根本用不到。所以我们想用自己所学设计开发一个属于自己的简单 计算器来完成日常学习生活的需求 计算器 减法运算 加法运算 乘法运算 除法运算 正/余弦 开平方运 算 Exp 运算 二进制与 十进制转 第 5 页 2.2 系统目标 一个简单的计算器程序。用户可以利用鼠

7、标点击数值或操作符按键完成计算的输入, 计算的结果将被显示在窗口上部的文本框中。 2.3 主体功能 (1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等 于”符号;复位按钮。 (2)完成整数、实数的四则运算(加、减、乘、除) (3)通过按钮点击实现数据的复位(清零); (4)正弦余弦的计算 2.4 开发环境 本次设计使用的软件是eclipse SDK 。 eclipse SDK 是一个开放源代码的、基于 Java 的可扩展开发平台。 就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发 环境。幸运的是, Eclipse 附带了一个标准的插件集,包括 Jav

8、a 开发工 具(Java Development Tools ,JDT ) 。 Eclipse最初是由 IBM公司开发的替代商业软件Visual Age for Java 的下一代 IDE开发环境,2001年 11 月贡献给开源社区, 现在它由非营利软 件供应商联盟 Eclipse 基金会( Eclipse Foundation)管理。 2003 年, Eclipse 3.0选择 OSGi服务平台规范为运行时架构。 2007 年 6 月,稳定 版 3.3 发布。 2008 年 6 月发布代号为 Ganymede 的 3.4 版。2009年 7 月发 布代号为 GALILEO 的 3.5 版。

9、Eclipse是著名的跨平台的自由集成开发环境(IDE) 。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+ 和 Python 的开发工具。 Eclipse的本身只是一个框架平台,但是众多插件 的支持使得 Eclipse 拥有其他功能相对固定的IDE软件很难具有的灵活性。 许多软件开发商以Eclipse 为框架开发自己的IDE。 Eclipse 最初由 OTI和 IBM两家公司的 IDE产品开发组创建,起始 第 6 页 于 1999年 4月。IBM提供了最初的 Eclipse代码基础,包括 Platform 、JDT 和 PDE 。目前由 IBM牵头,围绕

10、着 Eclipse 项目已经发展成为了一个庞大的 Eclipse联盟,有 150 多家软件公司参与到Eclipse项目中,其中包括 Borland 、Rational Software、Red Hat 及 Sybase等。Eclipse 是一个开 发源码项目,它其实是 Visual Age for Java的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其开放源码,任何人都可以免费得到, 并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包 括 Oracle 在内的许多大公司也纷纷加入了该项目,并宣称Eclipse 将来能 成为可进行任何语言开发的I

11、DE 集大成者,使用者只需下载各种语言的插 件即可。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。 Eclipse 还包括插件开发环境( Plug-in Development Environment ,PDE ) ,这个组件主要针对希望扩展 Eclipse 的 软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由 于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给 用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等 的发挥场所。 基于 Eclipse 的应用程

12、序的突出例子是 IBM 的 WebSphere Studio Workbench ,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB 、XML 、Web 服务和数据库访问的支持。 Eclipse的主要组成: Eclipse是一个开放源代码的软件开发项目, 专注于为高度集成的工 具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目三个项目组成, 具体包括四个 部分组成 Eclipse Platfo

13、rm 、JDT 、CDT和 PDE.JDT支持 Java 开发、CDT 支持 C开发、 PDE用来支持插件开发, Eclipse Platform则是一个开放的 可扩展 IDE,提供了一个通用的开发平台。 它提供建造块和构造并运行集成 软件开发工具的基础。 Eclipse Platform允许工具建造者独立开发与他人 工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工 具功能在哪里开始。 第 7 页 Eclipse SDK (软件开发者包)是Eclipse Platform、JDT和 PDE 所 生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰 富特性的开发环境,

14、允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。 Eclipse SDK 由 Eclipse 项目生产的工具和来自其它 开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 CPL发布, 第三方组件有各自自身的许可协议。 第三章程序设计 3.1 课程设计目的 (1)复习巩固java 语言的基础知识,进一步加深对java 语言的理解和掌控 ( 2)课程设计为大家提供了一个既动手又动脑,独立实践的机会,将课本上的理论 知识和实际有机结合起来,锻炼我们的分析解决实际问题的能力。提高我们适应实际, 实践编程的能力。 ( 3)培养我们在项目开发中创新意识及能力,通过

15、亲身实践, 利用所学编写简单的 面向对象程序,提高对面向对象及JAVA语言的理解。 3.2 计算机面板设计 首先, 设计对输入数字的进行转换,不进行转换操作则默认为十进制,然后进 行符号转换操作以及正弦函数等,接着可以进行加减乘除等运算,添加“退格”、“C” 按钮进行退格和清空操作,清空操作显示“0” ,最后在帮助中显示开发人信息。 计算器面板设计 第 8 页 3.3 程序设计的基本思路 计算结果显示区设计 private JTextField displayField 保存 +,-,*,/,=命令 private String lastCommand 保存计算结果 private doubl

16、e result 判断是否为数字的开始 private boolean start 设置布局、为按钮注册事件监听器 public Calculator() 调用成员方法添加菜单 this.addmyMenu() 选项 进制转换帮助 ( 输出区域 ) sqrt +/- exp 退格 C 7 8 9 log / 4 5 6 tan * 1 2 3 cos - 0 . = sin + 第 9 页 按钮的单击事件处理方法 public void actionPerformed(ActionEvent e) 退格键的实现方法 if(input.equals(“C“) if(str.length()0)

17、displayField.setText(str.substring(0,str.length()-1); / 清零键的实现方法 input.equals(“CE“) displayField.setText(“0“); start=true; 第四章功能的实现 4.1 界面功能 功能及界面设计: 功能 1:按下数字键在液晶平上会显示数字,这时计算器最基本的 功能。 功能 2:输入数字后,点击进制转换 , 可转换成二、 八进制;按“exp” “log ”键,则进行 e 次幂运算和自然对数运算;按“tan ” “cos” “sin ” 则进行三角函数运算。 功能 3:按“ +” “- ” “*”

18、 “/ ”分别进行四则运算 功能 4:在任何时候按下“ +/- ”键,计算器文本框上的数字置反号。 功能 5:第一次按下“运算”键,再按下数字键,将重新输入第二个 数字。再次按下“运算”键,将算出前两个数字运算的结果,然后按下数 字,将又重新输入新的数字。 功能 6:按下“ C”键向前退格,按下“ CE ”键,数据被全部清除 功能 7:按下“帮助”键查看制作人信息 功能 8:按下“选项”键,点“退出”键退出 第 10 页 4.2 运行调试及讨论分析 (1)刚开始界面 (2)启动计算器:按键“ 选项 “ ,也可以退出界面。 第 11 页 (3)进制转换:二进制与八进制之间的相互转换 (4)帮助:

19、用法sqrt和 exp 是先输运算符再输数字 (5)7 的开方运算:先按sqrt再按 7,然后按“ =”号。 第 12 页 (6)e 的 3 平方的运算:先按exp 再按 3,最后按“ =” (7)两数相乘45*73=3285.0 第 13 页 (8)退格键 第 14 页 (9)正负号按钮实现 (10)正弦的运算:45 度的正弦值 第 15 页 还可实现加法,减法,除法,余弦、正切、余切和对数等功能。 将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会 出现一个JavaApplet计算器界面。 在调试过程中可能会出现有界面但是不能运行小程 序,那是因为没有初始化小程序,那时

20、我们应该在主函数中将小程序进行初始化,这 样小程序才能运行! 在调试和运行完全正确后,我们就可以按照自己的医院将小程序进行简单测试, 例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序师正确的。有 时候我们还要输入不同范围的值进行测试,可能会发现更多的错误,因为有时候我们 定义数据的范围可能会过小或输入数据会越界,到时我们就可以改正以适应更多更大 的运算。 有时候我们会不自觉的选择一种最优函数方法尽量将自己的代码简单规范而又 不缺少题目所要求的功能,那就要求我们翻阅很多参考书和查阅很多资料。其实 javaApplet图形界面的布局也是我们要讨论的范围,如何使得界面更加美观是我们要

21、探讨的! 有时候我们可能会到书上或网上找到一些满足我们要求的程序代码,在此我们应该取 其优秀的简单易理解代码作为我们设计程序的代码,作为初学者参考和借用部分外部 程序是不可避免,但是我认为前提我们应该看懂那些程序代码,要知其所以然,那样 才达到我们学程序的目的,但不主张完全照搬,否则就会没意义了! 第 16 页 第五章总结 5.1 主要困难问题 5.1.1设计难点1:布局 计算器的界面虽然是按照系统中的计算器为模型的,但是由于按钮太 多,使得计算器的布局就相对的难一点了。 5.1.2设计难点2: 代码 代码的运用是计算器设计成功的关键所在,每一个按钮上的代码都不 一样,不一样的按钮实现的功能也

22、不一样,尤其是小数点和等号的代码, 因为这两个按钮关系着整个计算器的运算,计算器能否设计成功就在这两 个按钮上了。而这两个按钮代码的编写既是重点也是难点,稍稍有一点的 错误就有能够运算出正确结果。 在编写 java 计算器时有异常出现。异常是这次设计中的重点也是一个 难点。 任何计算机语言的程序都难免有漏洞,捕获错误最理想的是在编译期 间,最好在试图运行程序以前。Java 支持的异常处理功能比其他语言提供 的更灵活。当 java 程序执行中发生错误时,错误事件对象可能导致的程序 运行错误称为异常,异常会输出错误消息,使其知道该如何正确地处理遇 到的问题。 当 java 运行系统在得到一个异常对

23、象时,它将会寻找处理这一异常的 代码,找到能够处理这种类型异常的方法后,运行时系统把当前异常对象 交给这个方法进行处理,这一过程称为捕获(catch) 异常。如果java 运行 时系统找不到可以捕获异常的方法,则运行时系统将会终止,相应的java 程序也将退出。 这次在 java 记事本程序用到的就是try,catch来捕获的异 常。 5.1.3设计难点3:运行结果 运行结果也是难点之一,你的代码编写再正确运行不出结果也是徒劳 的,所以代码正确了那也不算是全正确,只有代码和运行结果全都正确那 才是真起码的正确呢。 第 17 页 5.2 主要收获 这次的程序设计,从一个简单的计算器就可以看出JA

24、VA的程序设计不是那么简 单,仅仅是一个小小的计算器,就已经有很多需要注意的问题,一不小心就会出错, 还会有很多地方没怎么明白,而计算器的设计是最简单的几个设计其中之一,可见, 平时的知识积累是很重要的。没有知识的积累,再简单的东西也不可能设计出来。课 程设计还让我们练习了动手能力,使我们平时学习的知识得以在实际中应用,不会学 死书,活学活用,很大程度上提高了我们的能力,对以后的学习、工作、生活也会有 一定的帮助。 通过此次的程序设计,让我了解了JAVA的更多知识, 使平时的知识可以 运用,更好的理解了JAVA这门课程。 JAVA是一门优秀的编程语言,具有面向对象、与平台无关,安全、稳定和多线

25、程 等特点,是目前软件设计中极为健壮的语言。通过此次的课程设计实践,我们不但进 一步理解掌握了课上老师教授的知识,而且通过查找资料学会了课上没有的东西,进 一步理解了面向对象的含义,发现了很多它比面向过程突出的地方,第一次接触了图 形界面,初步了解了GUI 方面的知识。在实践中我们遇到了很多问题,但我们都努力 克服了。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知 识,收获很大。最大的收获是在弯完成过程中培养的解决问题的能力,在做项目时必 然会遇到困难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找 到解决的途径。还使我对所学知识能够融会贯通,又不断丰富了新知

26、识。Java 计算器 设计使得我们对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。 5.3 本章总结 通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程 中我遇到了很到问题, 不过在老师和同学们的帮助和自己的思考下还是很好的完成了。 这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓 展思维。它还让我学会了在网上查阅那些无限的资料。我深刻地体会到自己所学知识 得浅薄, 当课程结束以后感觉自己已经掌握了Java 的真谛, 但是在课程设计中我才发 现自己仅仅握了一点皮毛而已,存在的一些问题全暴露出来了。 获得了知识当然是最重要的,另外,通

27、过这次学习,我还结识了很多来自不同学 院的朋友,课下与他们沟通、交流、切磋经验,了解更广泛的专业知识与各学院之间 的文化以及介绍不同学科之间的差别、共性。在交流中,我们青年人的人生观及理想 抱负都洋溢在青春魅力的脸上,对未来充满了信心与渴望。 第 18 页 这次计算器的设计与程序的实现,让我收到很大的启发。也遇到了很多的困难,但是 更加得到了同学们的帮助,让我很好的完成了设计与实现。也是我认识到自己编写程 序的缺点,特别是在监听器的实现上,总不能顺利的编写,经过了很多很多的调试, 看来实践出真理啊。这让我明白了要多加练习,也坚定了要上下而求索的决心。 参考书籍 1 张海藩 . 软件工程导论M.

28、 第四版 . 北京 : 清华大学出版社,2003. 23-25 2 王少锋 . 面向对象技术UML教程 M. 北京 : 清华大学出版社,2004. 18-20 1 耿祥义 , 张跃平 .Java2 实用教程 ( 第三版 )M.北京:清华大学出版社,2006 2 耿祥义 .Java课程设计 ( 第三版 )M. 北京:清华大学出版社,2004 3 张跃平 .Java2实用教程实验指导与习题解答(第三版)M. 北京:清华大学出版 社, 2004 程序源代码: import java.awt.*; import java.awt.event.*; import javax.swing.*; publi

29、c class Calculator extends Frame implements ActionListener, WindowListener private Container container; private GridBagLayout layout; private GridBagConstraints constraints; private JTextField displayField; /计算结果显示区 private String lastCommand; /保存 +,-,*,/,=命令 0 private double result; /保存计算结果 第 19 页

30、private boolean start; /判断是否为数字的开始 private JMenuBar menubar; private JMenuItem m_exit,m2_ejz,m2_bjz; private Dialog dialog; private Label label_dialog; private JButton button_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2, button_3,button_4,button_5,button_6,button_7,button_8,button

31、_9,button_0, button_plus,button_minus,button_multiply,button_divide,button_point, button_equal,button_log,button_tan,button_cos,button_sin,button_exp; public Calculator() /构造方法设置布局、为按钮注册事件监听器 super(“Calculator“); this.setLocation(240,200); this.setSize(350,300); this.setResizable(true); this.setLayo

32、ut(new GridLayout(7,1); this.addmyMenu(); /调用成员方法添加菜单 displayField=new JTextField(30); this.add(displayField); displayField.setEditable(true); start=true; result=0; lastCommand = “=“; JPanel panel0=new JPanel(); panel0.setLayout(new GridLayout(1,4,4,4); 第 20 页 JPanel panel1=new JPanel(); panel1.setL

33、ayout(new GridLayout(1,5,4,4); this.add(panel1); button_sqrt=new JButton(“sqrt“); button_plusminus=new JButton(“+/-“); button_exp=new JButton(“exp“); button_CE=new JButton(“退格 “); button_cancel=new JButton(“C“); JPanel panel2=new JPanel(); panel2.setLayout(new GridLayout(1,5,4,4); this.add(panel2);

34、button_7=new JButton(“7“); button_8=new JButton(“8“); button_9=new JButton(“9“); button_log=new JButton(“log“); button_divide=new JButton(“/“); JPanel panel3=new JPanel(); panel3.setLayout(new GridLayout(1,5,4,4); this.add(panel3); button_4=new JButton(“4“); button_5=new JButton(“5“); button_6=new J

35、Button(“6“); button_tan=new JButton(“tan“); button_multiply=new JButton(“*“); JPanel panel4=new JPanel(); panel4.setLayout(new GridLayout(1,5,4,4); this.add(panel4); 第 21 页 button_1=new JButton(“1“); button_2=new JButton(“2“); button_3=new JButton(“3“); button_cos=new JButton(“cos“); button_minus=ne

36、w JButton(“-“); JPanel panel5=new JPanel(); panel5.setLayout(new GridLayout(1,5,4,4); this.add(panel5); button_0=new JButton(“0“); button_point=new JButton(“.“); button_equal=new JButton(“=“); button_sin=new JButton(“sin“); button_plus=new JButton(“+“); panel1.add(button_sqrt); panel1.add(button_plu

37、sminus); panel1.add(button_exp); panel1.add(button_CE); panel1.add(button_cancel); panel2.add(button_7); panel2.add(button_8); panel2.add(button_9); panel2.add(button_log); panel2.add(button_divide); panel3.add(button_4); panel3.add(button_5); panel3.add(button_6); panel3.add(button_tan); panel3.add

38、(button_multiply); panel4.add(button_1); 第 22 页 panel4.add(button_2); panel4.add(button_3); panel4.add(button_cos); panel4.add(button_minus); panel5.add(button_0); panel5.add(button_point); panel5.add(button_equal); panel5.add(button_sin); panel5.add(button_plus); button_sqrt.addActionListener(this)

39、; button_plusminus.addActionListener(this); button_exp.addActionListener(this); button_CE.addActionListener(this); button_cancel.addActionListener(this); button_7.addActionListener(this); button_8.addActionListener(this); button_9.addActionListener(this); button_log.addActionListener(this); button_d

40、ivide.addActionListener(this); button_4.addActionListener(this); button_5.addActionListener(this); button_6.addActionListener(this); button_tan.addActionListener(this); button_multiply.addActionListener(this); button_1.addActionListener(this); button_2.addActionListener(this); button_3.addActionList

41、ener(this); button_cos.addActionListener(this); button_minus.addActionListener(this); button_0.addActionListener(this); 第 23 页 button_point.addActionListener(this); button_equal.addActionListener(this); button_sin.addActionListener(this); button_plus.addActionListener(this); this.addWindowListener(n

42、ew WinClose(); /注册窗口监听器 this.setVisible(true); private void addmyMenu() / 菜单的添加 JMenuBar menubar=new JMenuBar(); this.add(menubar); JMenu m1=new JMenu(“ 选项 “); JMenu m2=new JMenu(“ 进制转换 “); JMenuItem m1_exit=new JMenuItem(“退出 “); m1_exit.addActionListener(this); JMenuItem m2_ejz=new JMenuItem(“二进制 “

43、); m2_ejz.addActionListener(this); JMenuItem m2_bjz=new JMenuItem(“八进制 “); m2_bjz.addActionListener(this); JMenu m3 = new JMenu(“ 帮助 “); JMenuItem m3_Help = new JMenuItem(“用法 “); m3_Help.addActionListener(this); dialog = new Dialog(this,“提示 “,true); /模式窗口 dialog.setSize(240,80); label_dialog = new L

44、abel(“,Label.CENTER); /标签的字符串为空,居 中对齐 dialog.add(label_dialog); dialog.addWindowListener(this); /为对话框注册窗口事件监 第 24 页 听器 m1.add(m1_exit); menubar.add(m1); m2.add(m2_ejz); m2.add(m2_bjz); menubar.add(m2); m3.add(m3_Help); menubar.add(m3); public void actionPerformed(ActionEvent e) /按钮的单击事件处理方 法 if(e.ge

45、tSource().equals(button_1)|e.getSource().equals(button_2)| e.getSource().equals(button_3)|e.getSource().equals(button_4)| e.getSource().equals(button_5)| e.getSource().equals(button_6)| e.getSource().equals(button_7)| e.getSource().equals(button_8)| e.getSource().equals(button_9) |e.getSource().equa

46、ls(button_0)| e.getSource().equals(button_point)|e.getSource().equals(button_plusminus) | e.getSource().equals(button_cancel)|e.getSource().equals(button_CE) /非运算符的处理方法 String input=e.getActionCommand(); if (start) displayField.setText(“); start=false; if(input.equals(“+/-“) displayField.setText(dis

47、playField.getText()+“-“); 第 25 页 if(!input.equals(“+/-“) String str=displayField.getText(); if(input.equals(“退格 “) /退格键的实现方法 if(str.length()0) displayField.setText(str.substring(0,str.length()-1); else if(input.equals(“C“) /清零键的实现方法 displayField.setText(“0“); start=true; else displayField.setText(di

48、splayField.getText()+input); else if (e.getActionCommand()=“二进制 “) /二进制的转换 int n=Integer.parseInt(displayField.getText(); displayField.setText(Integer.toBinaryString(n); else if (e.getActionCommand()=“八进制 “) /八进制的转换 int n=Integer.parseInt(displayField.getText(); displayField.setText(Integer.toOctalS

49、tring(n); else if (e.getActionCommand()=“退出 “) /选项中退出的处理方法 第 26 页 System.exit(0); else if (e.getActionCommand()=“用法 “) /按下 帮助 菜单栏中用 法的处理方法 label_dialog.setText(“sqrt,exp等键是先输运算符再输数字n“); dialog.setLocation(400,250); dialog.setVisible(true); else /各运算符的识别 String command=e.getActionCommand(); if(start) lastCommand=command; else calculate(Doub

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1