1、 学院计算机及应用专业二学位毕 业 论 文题目:基于 java 语言的计算器设计与实现专 业 计算机及应用 准考证号 学生姓名 指导教师 2013 年 12 月 20 日2摘 要随着网络的时代的到来,java 语言在网络编程方面的优势使得网络编程有了更好的选择。Java 语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用本课程是 Java 面向对象程序设计,体现的是面向对象而不是面向过程,它与面向过程有很大的区别,它避免了面向过程中很多容易出错的内容,例如:指针等,在面向对象的设计中,注意体现的是面向对象的几大机制,继承、封装、多态和抽象,在面向过程的设计中的多继承 Jav
2、a 采用了接口来代替实现, 在主菜单中包含有帮助科学类型转换以及选项等多种功能,使用者可以通过使用菜单项实现类型转换和退出的等功能,并且添加了相关的组件进行按钮处理和相应的键盘事件处理。该计算器围绕 Java 编程语言在编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用 Java 编程实现的全过程。在编程使用 Java 语言,是目前比较流行的编程语言。在当今这个网络的时代,java 语言在网络编程方面的优势使得网络编程有了更好的选择。Java 语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。本文围绕 Java 编程语言在网
3、络编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用 Java 编程实现的全过程。java 语言,是目前比较流行的编程语言。经过 10 多年的发展,java 已经渗透到全球每个角落。在当今这个网络的时代,java 语言在网络编程方面的优势使得网络编程有了更好的选择。Java 语言最令人瞩目的特点是具有跨平台性,使其不受平台不同的影响,并得到了广泛的应用。 设计内容:设计 GUI 界面的计算器。用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除等混合运算。关键词:Java 语言,标准,计算器,运算3目录第一章 绪论 .31.1 开发的目的及
4、意义 .31.2 背景以及现状 .31.3 设计目的及思路 .41.4 功能模块设计 .41.5 设计步骤 .51.6 系统功能图 .51.7 本章小节 .5第二章 需求分析 .62.1 设计要求: .62.2 系统目标 .62.3 主体功能 .62.4 开发环境 .6第三章 程序设计 .83.1 课程设计目的 .83.2 计算机面板设计 .83.3程序设计的基本思路 .93.4 本章小结 .9第四章 功能的实现 .94.1 界面功能 .94.2 运行调试及讨论分析 .104.4 测试存在的问题 .164.5 本章小结 .16第五章 总结 .165.1 主要困难问题 .165.2 主要收获 .
5、175.3 本章小结 .18参考文献 .18致谢 .19程序源代码: .194第一章 绪论1.1 开发的目的及意义所谓计算器一般指的就是电子计算器。计算器能进行数学运算的手持机器,拥有集成电路芯片,但是结构简单,比现代电脑结构简单的多,可以说是第一代的电子计算机也就是电脑,并且功能也比较软弱,但是也较为方便与廉价,可以广泛用于商业交易中,是必备的办公用品之一。计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的功能。本论文采用java 编程语言实现计算器功能。该计算器大大的降低了数字计算的难度并且提高了计算的准确度和精确度。使用简单,适合广大工作人员和中小学生使
6、用。随着信息时代的步伐加快,越来越多的数据数字需要我们去处理,然而在我们日常生活办公中遇到的一些基本的数字运算,以往简单的口算笔算,然而现在不同了,人们对计算机 ,手机的依赖越来越高,遇到计算问题不愿用脑去思考,而是交由手机或是电脑来完成。为了给自己设计一个能够胜任自己学习的工作机会的计算器。以决定自己通过用所学的知识来编写一个简单的计算器。本计算器可以进行简单的数学四则运算(加、减、乘、除)但是仅限于十进制下,还可以进行简单的科学计算开方、平方、正弦、余弦、正切、的计算,最多可以输入 18 位数,可以保存上一次所存的计算结果,C 表示初始化,界面主是 JSP,后台为 Java 代码,其操作简
7、便,不仅能锻炼自己的编程能力,还可以根据自己的需要来编写适合自己的计算器。 1.2 背景以及现状随着计算机技术的迅速发展,计算机已成为我们生活不可缺少的部分。计算机带给我们的方便也越来越明显。然而,计算器在我们生活的重要性已经渗透在我们生活每个角落,如何设计出更简单,更方便,功能更强大的计算器,已成为一个热门话题。该计算器是由 Java 语言所编写的标准计算器,可以进行十进制下的四则运算比如加、减、乘、除、正弦、余弦、正切、指数清零等高中数学中的基本运算。C 表示文本框内数据清除添加了一个选项、进制转化、帮助的主菜单并能实现其功能。退格表示逐个删除,CE 表示全部清除,C 表示一次运算完成后,
8、单击“C”按钮即可清除当前的运算结果,再次输入时可开始新的运算,java 语言,是目前比较流行的编程语言。经过 10 多年的发展,java 已经渗透到全球每个角落。在当今这个网络的时代,java 语言在网络编程方面的优势使得网络编程有了更好的选择。该设计是通过 java 编程技术来设计的一个图形界面的计算器的应用程序以完成简单的算数运算。通过这次课程设计,我增强了对 java 应用的熟练程度,发现问题并及时向老师和同学请教并改正,是我的 java 知识水平有了更大的提高,同时扩展了我对java 知识的进一步了解和认识,强化了我的编程能力。51.3 设计目的及思路(1)复习巩固 java 语言的
9、基础知识,进一步加深对 java 语言的理解和掌控。通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用 Java Applet 图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松(2)课程设计为大家提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机结合起来,锻炼我们的分析解决实际问题的能力。提高我们适应实际,实践编程的能力。给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,
10、生成数据并显示(3)培养我们在项目开发中创新意识及能力,通过亲身实践,利用所学编写简单的面向对象程序,提高对面向对象及 JAVA 语言的理解。除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。至于其中的进制转换功能的实现则是直接调用 Java 中进制转换的函数,给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。1.4 功能模块设计以下为标准计算器的基本功能:(1)加法 两个数据进行加操作,可以为小数。(2)减法两个数据进行减操作,可以为负数相减。(3)乘法两个数相乘
11、操作。(4)除法两个数相除操作。(5)开平方对任意一个数进行开方运算,可以是小数。(6)求余对任意一个数进行求余运算。6(7)倒数正弦、余弦、正切和余切的运算。(8)转换将十进制数转换为二进制以及将二进制转换为十进制。1.5 设计步骤(1)课程设计任务及要求。(2)需求分析。(3)设计思路-工作原理、功能规划。(4)详细设计-数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释) 、界面等。(4)运行调试与分析讨论-给出运行屏幕截图,分析运行结果,有何改进想法等。(5)设计体会与小结-设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。(6)参考文献(
12、必须按标准格式列出,可参考教材后面的参考文献格式)(7) 报告按规定排版打印,要求装订平整。(8) 课设报告的装订顺序如下:封面-目录-正文-附录(代码)1.6 系统功能图计算器减法运算加法运算乘法运算除法运算正/余弦开平方运算Exp 运算二进制与十进制转换71.7 本章小节通过本章的学习,对该计算器有了初步的了解,标准计算器的概念在你的脑中已初步形成 ,这次程序设计在设计类的时候。考虑到了简单明了。这们设计的优点是:条理清晰,容易理解,容易修改。第二章 需求分析2.1 设计要求:由于现代用户更倾向于由鼠标方便操作的图形用户界面,所以我们采用 GUI来实现计算器,并采用 Swing 组件,AW
13、T 事件处理等实现具体功能。 需求分析:在我们日常生活中,计算开支、收入时,大额数字或是多倍小数的计算都需要计算器的帮助,而在学习一些科目时,也常常要处理数字。虽然现在的计算器价格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,不仅操作不便,很多功能也根本用不到。所以我们想用自己所学设计开发一个属于自己的简单计算器来完成日常学习生活的需求2.2 系统目标一个简单的计算器程序。用户可以利用鼠标点击数值或操作符按键完成计算的输入,计算的结果将被显示在窗口上部的文本框中。 2.3 主体功能(1)使用图形用户界面:一个文本框;0-9 数字按钮;加、减、乘、除运算符;“等于”符号;复位按
14、钮。(2)完成整数、实数的四则运算(加、减、乘、除)8(3)通过按钮点击实现数据的复位(清零) ;(4)正弦余弦的计算2.4 开发环境本次设计使用的软件是 eclipse SDK。 eclipse SDK 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。 Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java 的下一代 IDE 开发环境,2001
15、 年 11 月贡献给开源社区,现在它由非营利软件供应商联盟 Eclipse 基金会(Eclipse Foundation)管理。 2003 年,Eclipse 3.0 选择 OSGi 服务平台规范为运行时架构。 2007 年 6 月,稳定版 3.3 发布。2008 年 6 月发布代号为 Ganymede 的 3.4 版。2009 年 7 月发布代号为 GALILEO 的3.5 版。Eclipse 是著名的跨平台的自由集成开发环境(IDE) 。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C+和 Python 的开发工具。Eclipse 的本身只是一个框架平
16、台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE。Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建,起始于 1999 年 4 月。IBM 提供了最初的 Eclipse 代码基础,包括 Platform、JDT 和 PDE。目前由 IBM 牵头,围绕着 Eclipse 项目已经发展成为了一个庞大的 Eclipse 联盟,有 150 多家软件公司参与到 Eclipse 项目中,其中包括Borland、Rational Software、Red Hat 及 Syb
17、ase 等。Eclipse 是一个开发源码项目,它其实是 Visual Age for Java 的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle 在内的许多大公司也纷纷加入了该项目,并宣称 Eclipse 将来能成为可进行任何语言开发的IDE 集大成者,使用者只需下载各种语言的插件即可。虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in De
18、velopment Environment,PDE) ,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 9IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、se
19、rvlet、EJB、XML、Web 服务和数据库访问的支持。Eclipse 的主要组成:Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由 Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT 和 PDE.JDT 支持 Java 开发、CDT 支持C 开发、PDE 用来支持插件开发,Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。
20、Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。Eclipse SDK(软件开发者包)是 Eclipse Platform、JDT 和 PDE 所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到 Eclipse Platform 中的工具。Eclipse SDK 由 Eclipse 项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse 项目生产的软件以 CPL 发布,第三方组件有各自自身的许可协议。第三章 程序设计
21、3.1 课程设计目的(1)复习巩固 java 语言的基础知识,进一步加深对 java 语言的理解和掌控(2)课程设计为大家提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机结合起来,锻炼我们的分析解决实际问题的能力。提高我们适应实际,实践编程的能力。(3)培养我们在项目开发中创新意识及能力,通过亲身实践,利用所学编写简单的面向对象程序,提高对面向对象及 JAVA 语言的理解。3.2 计算机面板设计首先,设计对输入数字的进行转换,不进行转换操作则默认为十进制,然后进行符号转换操作以及正弦函数等,接着可以进行加减乘除等运算,添加“退格” 、 “C”按钮进行退格和清空操作,清空操作
22、显示“0” ,最后在帮助中显示开发人信息。计算器面板设计103.3程序设计的基本思路计算结果显示区设计private JTextField displayField保存+,-,*,/,=命令private String lastCommand保存计算结果private double result判断是否为数字的开始private boolean start设置布局、为按钮注册事件监听器public Calculator()调用成员方法添加菜单this.addmyMenu()按钮的单击事件处理方法public void actionPerformed(ActionEvent e)退格键的实现方法选项 进制转换 帮助(输出区域)sqrt +/- exp 退格 C7 8 9 log /4 5 6 tan *1 2 3 cos -0 . = sin +