《JAVA计算器课程设计(共24页).docx》由会员分享,可在线阅读,更多相关《JAVA计算器课程设计(共24页).docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上基于JAVA的计算器的设计与实现学院(系): 软件学院 专 业: 软件工程 学 生: 学 号: 班 级: 指导教师: 完成日期 2016 年 10 月基于JAVA的计算器的设计与实现摘要 该文档是关于对Java版计算器的功能进行描述和介绍,该程序是要个图形界面的简单Java计算器,具有良好的界面使用人员能快捷简单的进行操作。即时准确的获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除等)。界面简单易操作,具体程序实现了:(1) 实现简单的加、减、乘、除、运算。(2) 实现了除了加、减、乘、除按钮外
2、其他按钮功能,如:C表示清零,del表示删除。(3) 实现了连续运算能力。关键词:Java语言 四则运算 计算器 目 录 2.1.3eclipse环境-2 2.2.3GUI-2 3.4功能分析-3 3.5本章小结-3第一章:绪论1,java版计算器的意义与结构(1) java版计算器的意义 所谓计算器一般指的是电子计算器。计算器是日常生活中十分便携有效的工具,能够实现加减乘除等简单的运算功能。本论文采用了java编程语言实现计算机的功能。该计算器大大降低了数字计算的难度并且提高了计算准确度和精确度。使用简单,适合广大工作人员和学生使用。 随着信息时代的步伐,越来越得多的数字需要我们去处理,然而
3、在我们日常生活中遇到的一些基本数字运算,以往简单的口算笔算,然而现在不同了,人们对计算机手机的依赖越来越高,遇到计算机问题不愿意用脑去思考,而是交由计算机或者手机来完成。为了给自己设计一个能够胜任自己学习的工作机会的计算器,决定自己通过所学的知识来编写一个简单的计算机。(2)论文结构 本文共分为8章,各章的主要内容介绍如下: 第一章:首先介绍课题研究的意义,java版计算器的主要意义以及本论文的组织结构。 第二章:主要介绍系统开发的平台,主要关键技术如下:Frame创建,按钮的创建。 第三章:主要介绍本系统的可行性分析,性能分析,用户功能需求分析,需求分析, 面向对象分析,主要功能分析。 第四
4、章:主要介绍系统设计,概念设计,包括功能模块图,详细设计,时序图,流程 图以及概述,还有逻辑设计。 第五章:主要介绍系统实现,主要编码和实现过程。主要功能界面,界面流程描述, 核心代码。 第六章:主要介绍总结与展望 第七章:主要介绍参考文献,在完成代码的过程中参考的书籍都有哪些; 第八章:致谢:感谢老师的指导,感谢同学的指引,感谢同学们在学习过程中提供的 素材和帮助。还有在论文以及排版的过程中提供的热心帮助。本章小结: 本章主要介绍了java版计算器的意义,以及本论文结构。第二章 :开发平台简介与关键技术1,开发平台简介(1)Java平台 Java是一个可以在不同操作系统(例如windows,
5、unix等)上运行的编程语言,Java平台是指运行在各终端(如pc,服务器,移动设备,嵌入式设备)的系统软件。PC机上的Java程序是javaSE上开发出来的,服务器端的java程序是javaEE开发出来的,移动设备的java程序是用JAVAME开发出来的。 Java语言在网络编程方面应用得很广泛,作为一个新的程序设计语言,它简单多变,面向对象,不依赖操作系统的特点,具有很好的移植性和安全性,这些特点给网络编程带来了很多便利。Java的平台根据用途来区分,可以分为三个版本。 JavaSEJava Standard Edition ,这个是Java的标准版,主要用于桌面级的应用和数据开发。 Ja
6、vaEE-Java Enterprise Edition ,这个是Java的企业版本,提供了企业级开发的各种技术,主要用于企业开发,现在用的最多的也就是这个平台。 JavaME-Java Micro Edition,这个版本烦人java平台主要用于嵌入式和移动式的开发,最常用的就是手机应用软件开发。 Java作为一门优秀的编程语言,相对于其他类似的语言具有一定的优越性,这是由Java语言的如下特点决定的。 Java语言具有简单,面向对象,分布式,安全,可移植性,多态的特点。 Java语言是一种面向对象的语言,通过理解一些重要的概念就能编写出各种功能的代码。 Java语言主要集中用在类的设计和接
7、口功能方面,提供了继承及多态的机制,对类中的成员变量和方法可进行覆盖和重写,实现了代码的重复使用,使代码编写简单。 Java语言不支持指针,所有的访问,必须通过具体的对象变量来实现,这样既保护了私有变量,同时也避免了一些错误。 Java语言编译产生的文件是字节码文件,字节码文件和平台无关。 Java语言支持多线程技术,将多个程序任务分成几个并行的子任务。(2) windows系统1980年,乔布斯介绍了一项新技术,用户图形界面,比尔盖茨也意识到这项技术的潜在的价值,于是带领微软开始了Winows工作。1985年又发布了第一代窗口式多任务系统,该操作系统的推出,意味着PC机开始进入了图形界面,大
8、部分操作对象都用相应的图标来表示,这种操作界面形象直观,随着不断的改进,它还增加了几个系统工具,用于自动检测硬盘,文件系统和配置信息,可以自动修复一些一般性的系统错误。内部还安置了大量的驱动程序,基本上包括了市面上流行的各种品牌,各种型号硬件的最新驱动程序,而且硬件检测能力也有了很大的提高。同时,还提供了文件分配系统,可支持2G以上的大分区,而对硬盘,无需重新分区和格式化,直接可以使用转换器转换。把最新的多媒体技术,网络技术和Internet技术结合在了一起,使访问网络更加方便和快捷。技术是在不断进步的,操作系统也在不断更新,没有那个版本的操作系统是永恒的主流,因此,我们在学习和使用某个操作系
9、统的过程中把握住它的最基本的方面,并在此基础上进行大胆的尝试和创新,从而跟上它的发展步伐。(3) eclipse环境 Eclipse是一个开放源代码的,基于Java可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组成构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Develepment Tools,JDK). Eclipse是一个开放源代码的软件项目,专注于为高度集成的工具开发提供一个全功能的,具有商业品质的工业平台。它主要由Eclipse项目,Eclipse工具项目和Eclipse技术项目三个项目三个项目组成,具体包括四个部分
10、组成-Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与其他工具无缝集成的工具从而无需分辨一个工具功能在哪里结束,而另外一个工具功能在哪里开始。软件开发包是Eclipse是Eclipse Platform,JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效的建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由ECLIPSE项目生产的工具和来自其它开放源代码的第三方
11、软件组合而成。Eclipse项目的生产的软件以GPL发布,第三方组件各自自身的许可协议。2,关键技术简介(1) JFrame Java的GUI程序的基本思路是以JFrame为基础的,它是屏幕上window的对象,能够最小化和最大化,关闭。它的基本板块是swing,swing的三个基本构造块是标签,按钮,文本字段。并希望用户知道如何处理它们。JFrame类就是解决这个问题-它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。JFrame实际上仅仅让程序员把组件放入其中并呈现给用户。比起它表面的上的简单性,它实际上是Swing包中最复杂的组件。为了最大程度地简化组件
12、,在独立于操作系统的Swing组件与实际运行这些组件系统之间,JFrame起着桥梁作用。JFrame在操作系统中是以窗口的形式注册的,这样就可以得到许多的窗口特性。显示文件在窗体上的类也扩展了JFrame,读取文件的类也扩展了JFrame;(2) 按钮的创建:含义:对话框中的一种图形元素。当激活它时,能执行指定功能。用户可以采用以下方法来激活按钮:用鼠标在其上单击,或者当按钮获得聚焦时按下enter键。在button元素内部,您可以放置内容,比如文本或图像。使用:创建按钮在窗体上,用来窗体跳转的连接。点击按钮来实现跳转。关键字:setBounds表示按钮的大小位置setText表示按钮上显示的
13、内容Button b=new Button()用来创建对象。(3) initGUIGUI的全称为Graphical User Interface,简称GUI,又称图形用户接口,是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或者菜单选项,以命令,调用文件,启动程序或执行其他一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形界面有许多有优点。图形界面由窗口,下拉菜单,对话框以及其相应的控制机制构成,在各种样式应用程序中都是标准化的,既相同的操作总是以同样的方式来完成,在图形用户界面,用户
14、看到和操作的都是图形对象。GUI即人机交互图形化用户界面设计。GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口,菜单,按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型,占用资源少,高性能,高可靠性,便于移植,可配置等。3,本章小结本章主要讲述本课程设计用到所用到的关键技术,以及关键的知识点。本系统是在Windows系统Java平台下eclipse环境下完成的,所以窗体的创建,按钮的创建这都是Java典型的程序开发。第三章 :需求分析1,可行性分析: (1)实用性分析 在我们日常
15、生活中,计算开支收入时,大额数字或者是多倍小数的计算都需要计算器的帮助,而在学习一些科目是,也常常要处理数字。虽然现在的计算器价格比较低廉,但是功能过于简单计算器不能满足个人需求,多功能的价格比较贵,很多功能根本用不到。所以我们想用自己所学知识设计开发一个属于自己的简单计算器来完成学习生活的需求。 (2)经济可行性 本课程设计的开发过程中,不需要其他额外的经济成本,所以经济是具有良好的可行性的。2,需求描述 (1)编写目的 a:复习巩固java语言的基础知识,进一步加深对java语言的理解和掌控。通过本课程设计使我们能够全面的掌握面向对象设计的有关概念和开发方法,以便能较全面的理解掌握和综合运
16、用所学的知识,提高自身的编程能力。设计uige计算器的界面,定义计算器所需的按钮并赋予给其他按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。 b:课程设计为大家提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机结合起来,锻炼我们的分析解决实际问题的能力。提高魔门适应实际,实际编程的能力。给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成算法并显示。 c:培养我们在项目开发中创新意思及能力,通过亲身实践,利用所学编写简单的面向对象程序,提高对面向对象及java语言的理解。(2) 功能模块设计 a:加法 两个数据进行加法操作,可
17、以为小数 b:减法 两个数据进行减法操作 c:乘法 两个数相乘操作 d:除法 两个数相除操作 e:开平方 两个非负数进行开方运算,可以是小数3,面向对象分析(1)含义:面向对象分析一种新的系统分析方法。它采用的是面向对象的风格进行系统分析和需求定义的重要方法。面向对象分析的关键在于理解问题控件并将其模型化。 面向对象分析采用人们认识客观事物和理解现实世界过程中常用的基本法则: a:认识对象以及其属性;b:认识对象的整体及其组成部分;c:对象的形成及类的区分;d:对问题空间进行理解并抽象成模型;面向对象分析有五个阶段:标识对象,标识结构,标识主题,定义属性,定义服务,即分五个层次建立面向对象分析
18、的模型。面向对象分析的优点是使功能分析与数据分析统一的概念和方法,克服了结构化分析中两者之间的不一致性和协调性。(2) :系统功能图:加法运算开方 减法预算计算器乘法运算除法运算相反数图3.1(3)用例图: 计算器输入数据存储数据计算 用户显示结果图3.25,本章小结:本章主要介绍了系统的可行性分析以及各种需求分析。可行性分析在第一章也有所体现,本系统具有良好的发展前景,并且技术也比较常用,成熟,经济可行性良好,数据可行性也良好。Java环境对开发程序对性能的需求较高。第四章系统设计 1,概要设计(1)含义:概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架的过程,其结果往往以反映交
19、互控件布置,界面元素分组以及界面整体版式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起的桥梁,使用户研究和设计无缝结合,将用户目标与需求转换成具体界面设计解决方案的重要阶段。概要设计的主要任务是把需求分析得到的系统扩展用例图转换成软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分,建立模块的层次结构及调用关系,确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述,确定数据的结构特性,以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型。(2) 模块图计算器类的继承创建按钮创建窗体 图图4.1(3) 概述:标准计算器的界面采用“图形界面程序(
20、GUI)”。GUI为用户和应用程序之间的交互提供了直观方便的交流方式。用户使用鼠标键盘操作图像界面上的按钮菜单等单位元素向计算机系统发送命令,系统运行的结果以图形的方式显示给用户。2,详细设计(时序图)(1)时序图如果所示 结果显示界面 按钮界面 用 户1,开始 2,点击按钮 3,接受到数据 4,获取信息,将要显示界面 5,显示 6,用户查看结果图4.2(2)概述: a:用图形界面实现界面; b:通过设置布局,控件等来丰富界面; c:按钮键接收数据,处理后显示结果; 专心-专注-专业第五章 :系统实现1:主要功能界面图5.12:界面功能描述 (1)加法运算本计算器可以实现多个运算数相加,例如:
21、1+2+3运算结果为6 (2)减法运算本计算器可以实现多个运算数相减,例如:4-3-2运算结果为-1 (3)乘法运算本计算器可以实现多个运算数相乘,例如:2*3*4运算结果为24 (4)除法运算本计算器可以实现多个运算数相除(除数不为0)例如:15/5/3运算结果为1,当除数为0时,计算器无法运算显示结果为0 (5)求相反数本计算器可以求任意一个数的相反数,例如:1的相反数所求结果为-1 (6)开方运算本计算器可以对非负数进行开方运算,例如:9开方运算结果为33,核心代码: (1)窗口和按钮面板public Calculator() / 主面板 panelSuper = new JPanel(
22、); panelSuper.setLayout(null); / 设置窗口位置 double width = Toolkit.getDefaultToolkit().getScreenSize().width; double height = Toolkit.getDefaultToolkit().getScreenSize().height; this.setBounds(int) (width - WIN_W) / 2, (int) (height - WIN_H) / 2, WIN_W, WIN_H); / 窗口配置 this.setTitle(java版计算器); this.valid
23、ate(); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); / 添加计算器按钮面板 myPanel = new MyPanel(); this.add(myPanel, BorderLayout.CENTER); (2)计算器显示屏jTextField = new JTextField(25);jTextField.setHorizontalAlignment(JTextField.RIGHT);jTextField.setEditable(fa
24、lse);jTextField.setBackground(new Color(255, 255, 255);jTextField.setText(0);this.add(jTextField);(3)配置按钮大小button1.setPreferredSize(new Dimension(67, 40);button2.setPreferredSize(new Dimension(67, 40);button3.setPreferredSize(new Dimension(67, 40);button4.setPreferredSize(new Dimension(67, 40);butto
25、n5.setPreferredSize(new Dimension(67, 40);button6.setPreferredSize(new Dimension(67, 40);button7.setPreferredSize(new Dimension(67, 40);button8.setPreferredSize(new Dimension(67, 40);button9.setPreferredSize(new Dimension(67, 40);button0.setPreferredSize(new Dimension(67, 40);buttonJia.setPreferredS
26、ize(new Dimension(67, 40);buttonJian.setPreferredSize(new Dimension(67, 40);buttonCheng.setPreferredSize(new Dimension(67, 40);buttonChu.setPreferredSize(new Dimension(67, 40);buttonDeng.setPreferredSize(new Dimension(67, 40);buttonDian.setPreferredSize(new Dimension(67, 40);buttonDel.setPreferredSi
27、ze(new Dimension(67, 40);buttonC.setPreferredSize(new Dimension(67, 40);buttonZF.setPreferredSize(new Dimension(67, 40);buttonGH.setPreferredSize(new Dimension(67, 40);(4)计算器初始化public void init() d1 = new BigDecimal(0); d1 = new BigDecimal(0); key = =; oper = =; jTextField.setText(0); irst = true; /
28、 用于标记是否进行连续操作 (5)计算 public BigDecimal operate(BigDecimal a1, char c, BigDecimal a2) MathContext mc = new MathContext(10, RoundingMode.HALF_DOWN); switch (c) case +: return a1.add(a2); case -: return a1.subtract(a2); case *: return a1.multiply(a2); case /: if (pareTo(new BigDecimal(0) = 0) init(); re
29、turn new BigDecimal(0); return a1.divide(a2, mc); default: return a2;第六章 :总结与展望在设计程序过程中,老师和同学给了我很多帮助和支持,老师认真负责的工作态度和严谨的治学风格让我深受启发。和同学们之间的讨论让我受益匪浅。当然,我还需要不断学习,因为在目前看来,我所设计的计算器还存在很多不足,今后还需不断努力完善自己,用知识武装自己,只有使用社会发展的需求适应时代发展的需求,才能在竞争日益激烈的社会中立足。所以,在今后的学习中,我会在今后的学习中严格要求自己,希望在老师的帮助下在,自己的努力下,在生活中找到属于自己的位置,取
30、得更大的进步。第七章 :参考文献1马世霞,java程序设计,机械工业出版社.2010.12杨武,刘贞java编程及应用,北京:高等教育出版社.20043丁振凡java语言使用教程,北京邮电大学出版社.2006.9第八章 :致谢在此我要感谢我的老师在课程设计上给予我们的指导和给予的帮助,这是我们能顺利完成这次课程设计的主要原因,更重要的是老师在课堂上精彩的讲解,让我们在写课程设计时更加完善。在此期间,我不仅学到了许多新知识,而且也开阔了视野,提高了自己的设计能力。其次,我要感谢帮助过我的同学,他们为我解决了很多不太明白的地方,还有一些素材的提供。最后,再次感谢我的老师和同学,诚心说一句:谢谢!附
31、源代码:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import java.awt.*;import java.math.BigDecimal;import java.math.MathContext;import java.math.RoundingMode;import java.awt.Color; /* * java版计算器 */public class Calculator extends JFrame final int WIN_W = 295
32、, WIN_H = 292; JPanel myPanel, panelSuper; public Calculator() / 主面板 panelSuper = new JPanel(); panelSuper.setLayout(null); / 设置窗口位置 double width = Toolkit.getDefaultToolkit().getScreenSize().width; double height = Toolkit.getDefaultToolkit().getScreenSize().height; this.setBounds(int) (width - WIN_
33、W) / 2, (int) (height - WIN_H) / 2, WIN_W, WIN_H); / 窗口配置 this.setTitle(java版计算器); this.validate(); this.setResizable(false); this.setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); / 添加计算器按钮面板 myPanel = new MyPanel(); this.add(myPanel, BorderLayout.CENTER); public static void main(S
34、tring args) new Calculator(); /* * 计算器按钮面板类 */ class MyPanel extends JPanel implements ActionListener JButton button1, button2, button3, button4, button5, button6, button7, button8, button9, button0, buttonJia, buttonJian, buttonCheng, buttonChu, buttonDeng, buttonDian, buttonC, buttonDel, buttonZF,
35、 buttonGH; JTextField jTextField; / 计算器显示屏 char oper; / 操作符 String key, allKey = .del, jjccKey = +-*/; BigDecimal d1, d2; boolean first; public MyPanel() / 设置布局 this.setLayout(new FlowLayout(FlowLayout.LEFT, 4, 5); / 计算器显示屏 jTextField = new JTextField(25); jTextField.setHorizontalAlignment(JTextFiel
36、d.RIGHT); jTextField.setEditable(false); jTextField.setBackground(new Color(255, 255, 255); jTextField.setText(0); this.add(jTextField); / 计算器按钮 button1 = new JButton(1); button2 = new JButton(2); button3 = new JButton(3); button4 = new JButton(4); button5 = new JButton(5); button6 = new JButton(6);
37、 button7 = new JButton(7); button8 = new JButton(8); button9 = new JButton(9); button0 = new JButton(0); buttonJia = new JButton(+); buttonJian = new JButton(-); buttonCheng = new JButton(*); buttonChu = new JButton(/); buttonDeng = new JButton(=); buttonDian = new JButton(.); buttonDel = new JButto
38、n(del); buttonC = new JButton(c); buttonZF = new JButton(); buttonGH = new JButton(); button1.setPreferredSize(new Dimension(67, 40); button2.setPreferredSize(new Dimension(67, 40); button3.setPreferredSize(new Dimension(67, 40); button4.setPreferredSize(new Dimension(67, 40); button5.setPreferredSize(new Dimension(67, 40); button6.setPreferredSize(new Dimension(67, 40); button7.setPreferredSize(new Dimension(67, 40); button8.setPreferr