【Jsp精品源码栏目提醒】:网学会员鉴于大家对Jsp精品源码十分关注,论文会员在此为大家搜集整理了“计算器论文(修改好的) - 计算机等级”一文,供大家参考学习
Java 程序设计 课程设计论文设计题目: Java 计算器学生姓名:指导教师:专业名称:所在院系: 2010 年 12 月 30 日 摘 要 该计算器是由 Java 语言所编写的标准计算器,可以进行十进制下的四则运算(加、减、乘、除)、开平方、百分号、求倒数,还可以实现其他按钮的功能。
添加了一个编辑、查看、帮助的主菜单并能实现其功能。
Backspace 表示逐个删除,CE 表示全部清除,C 表示一次运算完成后,单击“C”按钮即可清除当前的运算结果,再次输入时可开始新的运算,MC 表示清除储存数据,MR 表示读取储存的数据,MS 表示将所显示的数存入存储器中,存储器中原有的数据被冲走,M 表示计算结果并加上已经储存的数。
界面类似 Windows 自带的计算器。
该计算器围绕 Java 编程语言在编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用 Java 编程实现的全过程。
在编程使用 Java 语言,是目前比较流行的编程语言。
在当今这个网络的时代,java 语言在网络编程方面的优势使得网络编程有了更好的选择。
Java 语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。
关键词:Java 语言、标准、计算器 目 录摘 要 2第 1 章 标准计算器概述 4 1.1 设计目的 4 1.2 功能模块设计 4 1.3 系统功能图 4 1.4 本次设计的重大意义 5 1.5 本章小结 5第 2 章 设计实现的详细步骤 6 2. 1 使用软件介绍 6 2.2 图形界面设计方法 7 2.2.1 标准计算器界面 7 2.2.2 界面设计代码 7 2.3 程序运行效果 9 2.4 本章总结 12第 3 章 设计中遇到的重点及难点 13 3.1 设计中的重点13 3.2 设计中的难点13 3.2.1 设计难点 1:布局 13 3.2.2 设计难点 2:代码 13 3.2.3 设计难点 3:运行结果 14 3.3 本章总结14第 4 章 本次设计中存在不足与改良方案 15 4.1 设计不足15 4.2 改良方案15 4.3 本章总结18结 论 19参考文献 20致 谢 21指导教师评语22答辩委员会评语23 第 1 章 标准计算器概述1.1 设计目的 1)复习、巩固 Java 语言的基础知识,进一步加深对 Java 语言的理解和掌握; 2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的 理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高 学生适应实际,实践编程的能力; 3)培养学生在项目开发中团队合作精神、创新意识及能力。
1.2 功能模块设计以下为标准计算器的基本功能:(1)加法 两个数据进行加操作,可以为小数。
(2)减法 两个数据进行减操作,可以为负数相减。
(3)乘法 两个数据进行乘操作。
(4)除法 两个数据进行相除。
(5)四则混合运算 对任何数进行任意运算(6)开平方 对任意一个数进行开方运算,可以是小数。
(7)百分号 对任意一个数进行百分号运算。
(8)求倒数 对任意一个数进行求倒数运算。
(9)各菜单项功能 实现每一个菜单项的功能(10)各功能键功能 实现每一个功能键的功能,如 MS、MR、M、Backspace、CE、C 等。
1.3 系统功能图 表 1-1 计算器基本功能图 加法运算 开平方运算 标准计算器 减法运算 倒数运算 乘法运算 百分号运算 互 换 除法运算 实现了功能键功能 四则混合运算 科学计算器 实现了菜单项功能 连续四则运算 乘方、立方运算 N 次方运算 sin、cos、tan 值运 N 的截乘运算1.4 本次设计的重大意义 通过本次设计能够更好的掌握 Java 编程技巧,增强实践编程能力,以及 团队合作能力,为以后的编程道路奠下坚实的基础。
这次编写的 java 计算器是用来进行简单运算的,随着人们通信或了解信息的越来越数据化,特别是要求高速度的获取想要的信息,计算器的要求越来越高,不仅是在其容量上越来越大,特别是在其功能上要求的实现越来越多,数据类型和精确度越来越准确。
该程序是一个基于 Java 的程序设计界面设计的功能简单的计算器,实现了加、减、乘、除,求倒,百分比,等功能,而且还具有保存等记忆功能,还具有清除,归零等功能。
它具有简单方便的特点,是人们在运用计算机时必不可少的一个工具。
1.5 本章小节 通过本章的学习,对该计算器有了初步的了解,标准计算器的概念在你的脑中已初步形成 ,这次程序设计在设计类的时候。
考虑到了简单明了。
这们设计的优点是:条理清晰,容易理解,容易修改。
第 2 章 设计实现的详细步骤2.1 使用软件介绍 本次设计使用的软件是 eclipse SDK。
eclipse SDK 是一个开放源代码的、基于 Java 的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse 附带了一个标准的插件集, 包括 Java 开发工具 (Java DevelopmentTools,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版。
Eclipse 是著名的跨平台的自由集成开发环境(IDE) 。
最初主要用来 Java语言开发, 但是目前亦有人通过插件使其作为其他计算机语言比如 C和 Python的开发工具。
Eclipse 的本身只是一个框架平台,但是众多插件的支持使得Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。
许多软件开发商以 Eclipse 为框架开发自己的 IDE。
Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建, 起始于 1999年 4 月。
IBM 提供了最初的 Eclipse 代码基础,包括 Platform、JDT 和 PDE。
目前由 IBM 牵头,围绕着 Eclipse 项目已经发展成为了一个庞大的 Eclipse 联盟,有 150 多家软件公司参与到 Eclipse 项目中,其中包括 Borland、Rational RedSoftware、 Hat 及 Sybase 等。
Eclipse 是一个开发
源码项目, 它其实是 VisualAge for Java 的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其开放
源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。
近期还有包括 Oracle 在内的许多大公司也纷纷加入了该项目,并宣称 Eclipse 将来能成为可进行任何语言开发的 IDE 集大成者,使用者只需下载各种语言的插件即可。
虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse的目标不仅限于此。
Eclipse 还包括插件开发环境(Plug-in DevelopmentEnvironment,PDE) ,这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。
由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere StudioWorkbench,它构成了 IBM Java 开发工具系列的基础。
例如,WebSphere StudioApplication Developer 添加了对
JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。
Eclipse 的主要组成: Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由 Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT 和 PDE.JDT 支持 Java 开发、CDT 支持 C 开发、PDE 用来支持插件开发,Eclipse Platform 则是一个开放的可扩展 IDE,提供了一个通用的开发平台。
它提供建造块和构造并运行集成软件开发工具的基础。
Eclipse Platform 允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
Eclipse SDK(软件开发者包)是 Eclipse Platform、JDT 和 PDE 所生产的组件合并,它们可以一次下载。
这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到 Eclipse Platform 中的工具。
Eclipse SDK 由 Eclipse 项目生产的工具和来自其它开放源代码的第三方软件组合而成。
Eclipse 项目生产的软件以 CPL 发布,第三方组件有各自自身的许可协议。
2.2 图形界面设计方法2.2.1 标准计算器界面 图 2-1 标准计算器界面 计算器界面由一个文本框、一个菜单栏及 27 个按钮组成。
由于按钮太多,所以在原有的面板中又加入一个面板,放运算符和数字键,代码实现如下:2.2.2 界面设计代码//以下为计算器所引入的全部变量 private String strquotquot // jve:decl-index0://str字符串中所存放的内容为文本框中的内容 private double data_one //data_one中存放每次运算的结果 private char OperatorA//Operator字符型成员变量,程序根据它的值来决定进行何种运算 static double m//m为静态变量,储存内存中的数据 private boolean ffalse//f为逻辑型数据,判断是否为第一次按运算符 DecimalFormat dfnew DecimalFormatquot0.0quot//df为双精度,定义其精度 private double data_two0 //每次运算的运算数//程序中所用包说明及注释import javax.swing.SwingUtilitiesimport java.awt. //包含用于创建用户界面和绘制图形图像的所有类import java.awt.BorderLayout //提供围绕 Swing 组件绘制特殊边框的类和接口import javax.swing. //提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同import java.awt.Font//包含字体设置的所有类import java.awt.Color//包含字体颜色设置的所有类import java.awt.event.InputEvent//包含输入事件的所有类import java.awt.event.KeyEvent//包含键盘事件的所有类import java.io.IOException //包含输入输出异常的所有类import java.text.DecimalFormat//设置数值精度//程序中所用面板说明及注释private JPanel getJPanel1 if jPanel1 null GridLayout gridLayout new GridLayout//定义jPanel1的布局为4行5列,水平垂直间距都为5 gridLayout.setRows4//jPanel分为4行 gridLayout.setColumns5 jPanel分为5列 gridLayout.setHgap5 //水平距为5 gridLayout.setVgap5//垂直间距为5 jPanel1 new JPanel//创建一个新的面板 jPanel1.setLayoutgridLayout//设置面板的布局方式为gridLayout jPanel1.setBoundsnew Rectangle54 69 192 116//设置面板的大小 return jPanel1 2.3 程序运行效果(1)程序运行主要界面如下:A.乘法运算B. 4.1 2 B.四则混合运算5 3 -2 3 / 2 C.开平方 9 sqrtD.百分号 3 E.倒数 5 1/x2.4 本章总结 本章主要介绍了用 java 创建计算器的部分代码以及运行后的效果图。
运行java 计算器以后出现的那个框架图就是我们所说的 java 图形用户界面(GUI),它是程序与用户进行交流的图像窗口,为应用程序提供一个图形化的界面,程序通过 GUI 与用户交互,GUI 通过事件机制响应用户和程序的交互。
如当用户单击某个按钮时就会产生动作事件,要处理产生的事件,需要在特定的方法中编写处理事件的程序。
这样,当产生某种事件时就会调用处理这种事件的方法,从而实现用户与程序的交互。
另外 GUI 能使一个应用程序具有与众不同的 与 “外观” “感觉”。
有了 GUI,用户就不用花很多时间去记忆各个键盘序列的功能,从而把更多的时间投入到有效地使用应用程序本身上。
第 3 章 设计中遇到的重点及难点3.1 设计中的重点 在设计过程中,最重要的就是代码的套用、图形界面的设计、按钮与面板的布局、以及代码的输写。
计算器能不能做出来,做的完不完美就集中在这几个方面了。
在这次设计中,遇到的重点有以下两点: (1)Java 计算器在支行时会出现 IOException 异常。
处理方法是在遇到异常时用 trycatch 方法对异常进行捕获。
(2)java 计算器中还用到了继承 继承是面向对象方法中一个十分重要的的概念, 并且是提高软件开发效率的重要原因之一。
继承实际上是存在于面向对象程序中的两个类之间的一种关系。
继承的实现主要有以下几个步骤。
(1)确定父类。
根据将创建的子类需要选择一个相应的类作为继承父类。
新定义的子类可以从父类那里自动继承所有非私有的属性和方法作为自己的成员。
选择一个恰当的父类可以达到事半功倍的效果。
(2)定义子类。
Java 中的继承是通过 extends 关键字来实现的,在定义类时使用 extends 关键字指明新定义类的父类,就在两个类之间建立了继承关系。
(3)实现子类的功能。
子类具体要实现的功能由类体中相应的域和方法来实现,其编写和一般的类是完全相同的。
通过继承,子类拥有父类的所有非私有成员。
使用继承具有以下的好处:降低了代码编写中的冗余度,更好地实现了代码复用的功能,从而提高了程序编写的效率;由于降低了代码的冗余度,使得程序在维护时就变得非常的方便。
3.2 设计中的难点3.2.1 设计难点 1:布局 计算器的界面虽然是按照系统中的计算器为模型的,但是由于按钮太多,使得计算器的布局就相对的难一点了。
3.2.2 设计难点 2:代码 代码的运用是计算器设计成功的关键所在,每一个按钮上的代码都不一样,不一样的按钮实现的功能也不一样,尤其是小数点和等号的代码,因为这两个按钮关系着整个计算器的运算,计算器能否设计成功就在这两个按钮上了。
而这两个按钮代码的编写既是重点也是难点, 稍稍有一点的错误就有能够运算出正确结果。
在编写 java 计算器时有异常出现。
异常是这次设计中的重点也是一个难点。
任何计算机语言的程序都难免有漏洞,捕获错误最理想的是在编译期间,最好在试图运行程序以前。
Java 支持的异常处理功能比其他语言提供的更灵活。
当 java 程序执行中发生错误时,错误事件对象可能导致的程序运行错误称为异常,异常会输出错误消息,使其知道该如何正确地处理遇到的问题。
当 java 运行系统在得到一个异常对象时,它将会寻找处理这一异常的代码,找到能够处理这种类型异常的方法后, 运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获catch异常。
如果 java 运行时系统找不到可以捕获异常的方法,则运行时系统将会终止,相应的 java 程序也将退出。
这次在 java记事本程序用到的就是 trycatch 来捕获的异常。
3.2.3 设计难点:运行结果 运行结果也是难点之一,你的代码编写再正确运行不出结果也是徒劳的,所以代码正确了那也不算是全正确,只有代码和运行结果全都正确那才是真起码的正确呢。
3.4 本章总结 本章主要讲述了一些在计算器设计过程中的重难点, 通过对这些重难点的掌握,不管是在知识的运用还是在整体布局上都提高了程序设计者的水平。
通过这一章我们了解到了继承和异常的处理。
在面向对象的程序设计中,通过采用继承的机制来组织、设计系统中的类,可以提高程序的抽象程序,使之更接近于人类的思维方式,同时也可以提高程序开发效率,降低维护的工作量。
我们还知道了一些异常处理的情况,异常是在运行时发生的错误,使用 java 异常处理子系统,就可以用一种结构化的可控方式来处理运行时的错误。
在使用 trycatch 来捕获异常时。
这两个关键字要一起使用,只有 try 而没有 catch或者是只有 catch 而没有 try 都是不可以的。
当 try 描述的代码段遇到异常发生时,计算机控制权由 try 转移到 catch 异常处理代码块。
当抛出一个异常时,异常会由相应的 catch 语句来捕获并处理。
第 4 章 本次设计中存在不足与改良方案4.1 设计不足 想要成功地设计一个计算器,那必定要经历无数次的失败之后才能达到你真正想要的结果,或者说是令人满意的结果。
在本次的设计过程中出现了许许多多的不足之处,下面是本人在设计过程中发现的不足之处: 1不能清楚的知道 MC、MR、MS、M以及 C、CE 这几个按扭实现的功能,通过查阅资料知道能这几个按钮的功能后,又无法实现这几个按扭的功能; 2Backspace 键功能的实现存在的不足。
3数字按钮 0、、以及小数点等几处存在的不足。
4 四则混合运算的实现。
5菜单上的快捷键的实现,以及帮助菜单不能调出系统中的帮助菜单等。
4.2 改良方案 有问题就要解决。
这是一个学者所必须要拥有的东西,所以经过多方查阅,以及多次运行验证以上问题都有一个不错的改良方案。
下面具体的改良方案: 1 CE 表示全部清除,C 表示一次运算完成后,单击“C”按钮即可清除当前的运算结果,再次输入时可开始新的运算,MC 表示清除储存数据,MR 表示读取储存的数据,MS 表示将所显示的数存入存储器中,存储器中原有的数据被冲走,M 表示计算结果并加上已经储存的数。
以上为这些功能键要实现的功能,以下为这些功能的实现方法 //以下为MC所要实现的代码 jToggleButton1.setTextquotquot//清除存储数字并清除jToggleButton1中的quotMquot jTextField1.setTextquot0.quot //以下为 MR 实现的代码 ifjToggleButton1.getText.trimquotquot jTextField1.setTextquotquotm //以下为 MS 实现的代码 mDouble.parseDoublejTextField1.getText.trim//保存编辑框中的数字并在jToggleButton1中显示quotMquot jToggleButton1.setTextquotMquot jTextField1.setTextquot0.quot strquotquot //以下为 M实现的代码 mmDouble.parseDoublejTextField1.getText.trim//将编辑框中的数字与存储的数字相加 //以下为 C 实现的代码 pointIsTypedfalse//清除全部运算的结果 strquotquot ffalse OperatorA data_one0 data_two0 m0 jTextField1.setTextquot0.quot //以下为 CE 实现的代码 pointIsTypedfalse//清除一次运算 strquotquot jTextField1.setTextquot0.quot 2 Backspace 表示逐个删除,下面是按钮实现的代码:pointIsTypedfalse ifstr.lengthgt1//只有在字符串长度大于1的时候此键才能发挥其功能 ifstr.containsquot.quottrue ampampstr.lastIndexOfquot.quotstr.length-1//只有在字符串中包含有小数点以及小数点的位置是最.
上一篇:
CMMI第一季试题
下一篇:
"夜"