




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编号编号: 面向对象程序设计(面向对象程序设计(JAVAJAVA) 课程设计课程设计( (论文论文) )档案档案题题 目目: 保存计算过程的计算器 学学 院院: 信息学院 专专 业业: 姓姓 名名: 学学 号号: 班班 级级: 指导教师指导教师: 职职 称称: 讲师 完成日期完成日期: 2013 年 12 月 面向对象程序设计(面向对象程序设计(JAVAJAVA) 课程设计课程设计( (论文论文) )题题 目目: 保存计算过程的计算器 学学 院院: 信息学院 专专 业业: 姓姓 名名: 学学 号号: 班班 级级: 指导教师指导教师: 职职 称称: 讲师 完成日期完成日期: 2013 年 12
2、月 摘 要当下计算机技术发展迅捷,人们已经不能满足于采用人工进行大量的计算,计算器快速的计算速度和稳定的准确率很好的满足了用户的需要,然而Windows 自带的计算器所提供的功能已经无法满足人民日益增长的需求,保存计算过程的计算器更是能够让用户随时随地的查找以前的计算过程,能够提供给用户更加好的体验感受。基于上面的几点因素,保存计算过程的计算器正是在这样的需求之下应运而生的,目的旨在帮助用户快速准确的得到计算结果。本次实验课题使用了 JAVA 语言,开发平台选用 Eclipse 这个开源的编译软件,主要原因就是其强大的跨平台能力与超过 C+语言 MFC 所提供的包含框架界面设计功能。由于其是面
3、向对象的语言,所以整个代码看上去尽然有序,更加健壮、易读。对于程序本身,由于时间有限只能做出简易的计算功能,旨在实现保存计算过程这一目标,更加多的科学计算器功能可以通过模块的方式进行快速集成,体现出了面向对象的模块化设计的特性。【关键字】保存计算过程,计算器,JAVA 语言,Eclipse,模块化 AbstractWith the rapid development of computer technology nowadays, people are not satisfied with the manually way that conduct a large number of calc
4、ulations any more. Computers, which have the high speed of the calculation and stable accuracy, meet users needs well. However, the functions of Windows own calculator have been unable to meet the growing needs of people. But the calculator saving the calculation procedure enables users to search th
5、e procedure at any time and no matter where they are and it provides the users with a better and totally new experience.Taking all the facts above into consideration, the calculator that saving the calculation procedure works, in such a condition. It aims at helping the users to get the calculation
6、results as quickly as possible. For this experimental subject, JAVA language has been used.Also used Eclipse software. The main reason of it is that it has quite a powerful ability of cross platform. Besides, the function of framework interface designation surpasses the C+ MFCs. Since it is an objec
7、t-oriented language, the whole codes seem more orderly, stronger and easier to read.As for the process itself, only the simple calculations can be made due to the limited time. Nevertheless, to make the calculation procedure saved, more and more scientific calculator functions can be quickly integra
8、ted through the way of module which reflects the features of object-oriented modular design.【Key words】Save computational process;Calculator;JAVA language;Eclipse;Modularization 目 录前言前言.11 需求分析需求分析.21.1 设计目的.21.2 程序需求分析.21.3 系统目标.21.4 主要设计思想.31.5 开发环境配置.32 2 程序设计程序设计.42.1 概要设计.42.2 详细设计.72.3 设计小结.93
9、 代码编写代码编写.103.1 导入包.103.2 各模块代码.104 测试与调试测试与调试.144.1 主界面测试.144.2 计算操作.144.3 清零操作.154.4 保存操作.154.5 清除操作.165 软件发布软件发布.17总结与体会总结与体会.18参考文献参考文献.19致谢致谢.20附录附录.21南昌工学院课程设计论文 1前前 言言在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有一个计算器就会显得很麻烦。为了解决这种日常生活中的困难特意设计了这个计算器小程序。该程序不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以
10、对已计算的结果和计算步骤进行复制、粘贴等储存功能,同时具有清屏按键,让显示更加美观。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时,进行交易的过程中就可以利用该计算器进行数量、价格以及总金额的计算与保存。学生也可以利用该计算器进行数学运算,并且对计算过程进行保存,方便日后检验跟进。整个计算器的功能简单易懂,界面清新简洁,并且在日后再开发时可以方便的进行功能的添加与更改。最后,该程序使用 JAVA 作为平台开发,充分体现了其跨平台的优势,可以在 Windows、Linux、MAC OS 等系统,还有各类手持便携系统中使用,大大提升了应用范围,减小了成本。南昌工学院课程设计论文 21 1
11、 需求分析需求分析1.11.1 设计设计目的目的1、掌握 JAVA 语言编程的基础知识并能熟练运用。2、熟悉类声明与对象的使用。3、理解委托时间处理模型。4、了解 JAVA 语言的图形用户界面 JAVA SWING 的设计知识。5、运用 Eclipse 编写简单计算器程序,并实现其功能。6、掌握 Windows 环境下 JDK 的安装与配置。7、掌握 JAVA 程序的运行方法与 Eclipse 开发软件的使用方法。1.21.2 程序需求程序需求分析分析Windows 2000/XP 系统中的“计算器”是一个方便实用的计算工具,但没有提供显示计算过程和保存计算过程的功能。该计算器将加入这两个功能
12、,其余功能与自带计算器所遵循的计算规则相同。1、单击“计算器”上的数字按钮可以设置参与计算的运算数。2、单击“计算器”上的运算符按钮可以选择运算符号。3、单击“计算器”上的函数按钮可以计算出相应的函数值。4、单击“计算器”上的“=”按钮显示计算结果。5、在一个文本框中显示当前的计算过程,在一个文本区中显示以往的计算过程。6、单击“保存”按钮可以将文本区中的全部计算过程保存到文件;单击“复制”按钮可以将文本区中选中的文本复制到剪贴板;单击“清除”按钮可以清除文本区中的全部内容。通过使用所学的 SWT 构件出计算器的界面,包括添加数字按钮、运算符按钮、文本框、菜单栏、功能按钮等。然后通过对界面上面
13、按钮或者菜单栏内容的监听,使其在点击按钮的时候产生相应的效果。1.31.3 系统目标系统目标一个简单的计算器程序,用户可以利用鼠标点击数值或操作符按键完成计算的输入, 计算的结果将被显示在窗口右侧的文本框中。通过右侧底部的保存按钮,可以完成对历史步骤的保存,可以导出成文本格式。点击清除按钮,可以将文本框清空。南昌工学院课程设计论文 31.41.4 主要设计思想主要设计思想对于此计算器程序,首先要设计其 GUI 界面,总体界面有一个文本框,23 个按钮,上部的文本显示区和文本框下部的 3 个核心功能按钮。文本框放置在右侧,然后 0 到 9 以及+,-,*,/,Sin 的按钮放置到一个面板中,添加
14、到整体布局中,界面设计完成。布局设计好后再添加按钮事件,对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中, 否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。程序的运算功能结束后,输出到文本显示区,在右侧文本框中增加一条记录。通过文本框底部的保存文本框中的计算历史,或者复制文本框中的内容到剪贴板待用。如果不需要保存,通过点击清除按钮,完
15、成对文本框的初始化,整个程序循环结束。1.1.5 5 开发环境配置开发环境配置通过 Sun 公司官网下载对应版本 JDK 后,双击进行默认设置安装。结束后,必须设置 Windows 下的 Java 运行的环境变量,步骤如下:1) 在系统变量中,新建 JAVA_HOME 名称的变量,填入 JDK 安装的目录即可;2) 新建 PATH 名称的变量,变量值为%JAVA_HOME%bin;%JAVA_HOME%jrebin;3) 新建 CLASSPATH 名称的变量,变量值为.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar。完成后,通过命令提示符 CMD 输
16、入“javac”和“java version”进行验证,以确定 JDK 和环境变量正确设置。南昌工学院课程设计论文 42 2 程序程序设计设计2.12.1 概要概要设计设计2.1.12.1.1 功能框图功能框图根据所构造好的计算器的各个功能,设计出计算器运行的功能框图如图2-1 所示。图 2-1 计算器运行的功能框图设计好的程序框图中,包含有如下模块:单击数字按钮设置计算的运算数、单击运算符按钮选择运算符、单击函数按钮计算相应函数值、单击等号显示计算结果、在一个文本框中显示当前的计算过程、在一个文本区中显示以往的计算过程、单击保存按钮可以将文本区中的全部计算过程保存到文件、单击复制按钮可以将文
17、本区中选中的文本复制到剪贴板、单击清除按钮可以清除文本区中的全部内容。各个功能模块相互配合、调用,组成了一个可以保存计算过程的计算器的基本功能。保存过程的计算器单击数字按钮设置计算的运算数在一个文本框中显示计算过程单击清除按钮可以清除文本区中的全部内容单击复制按钮可以将文本区中选中的文本复制到剪贴板单击保存按钮可以将文本区中的全部计算过程保存到文件单击等号显示计算结果单击函数按钮计算相应函数值单击运算符按钮选择运算符南昌工学院课程设计论文 52.1.2.1.2 2 类组合关系类组合关系图图根据程序框图,设计出包含如下类:1、主类:CalculatorWindow2、功能类:NumberButt
18、on、OperationButton、HandleDigit、HandleDot、HandleOperation、HandlePOrN、HandleEquality、HandleSin、HandleBack、HandleClear通过上述 11 个类之间的组合关系,设计出的类之间的组合关系图如图2-2 所示。图 2-2 类之间的组合关系图计算器除了上述 11 个 Java 源文件所给出的类外,还需要 Java 系统提供的一些重要的类,如 Jbutton,JTextField,JTextArea,LinkedList 等。这些也是构成程序框架必不可少的一些类,通过调用这些类来进行计算器按钮、文本
19、区、文本框等等的构建。以上各类的详细说明将会在后文中出现,这一步主要完成了程序框架架构的设计,即模块化的设计,为各项功能的实现打下基础。CalculatorWindowLinkedListHandleDigitHandleClearHandleBackHandleSinHandleEqualityHandlePOrNHandleOperationHandleDotOperationButtonNumberButtonJTexAreaJTextFieldJButton南昌工学院课程设计论文 62.1.2.1.3 3 程序流程图程序流程图根据之前对各功能模块与各个类组合关系的设计,设计出程序运行流
20、程图如图 2-3 所示。图 2-3 程序运行流程图通过分析需求,该计算器的程序流程如图中,先各变量初始化,之后根据不同按钮监听返回的内容来选择使用不同功能运行,最后获取到等于按钮时判断是否输出结果,或者清除文本区内容之后初始化变量,结束整个循环。经过该步骤对程序运行流程的设计,整个程序由立项,功能模块确定再到功能类关系组合等,这一系列设计共同组成了程序先期的工作方向,以下开始便是进行代码实现阶段,对各个设定好的功能类进行代码编写,以实现整个保存计算过程的计算器的核心功能。开始退格初始化变量数字结束删除输入的数输出数字运算符进行计算等号输出结果清除初始化变量是否否否是是是否否是南昌工学院课程设计
21、论文 72.22.2 详细详细设计设计2.2.12.2.1 各类的功能各类的功能1、主类CalculatorWindow 类负责创建计算器的主窗口,该类包含有 main 方法。计算器从该类开始执行,其中包含 14 种类型的对象,分别是:NumberButton、OperationButton、HandleDigit、HandleDot、HandleOperation、HandlePOrN、HandleEquality、HandleSin、HandleBack 和 HandleClear 对象。 CalculatorWindow 类是 javax.swing 包中 JFrame 的一个子类,并实
22、现了 ActionListener 接口。标明该类的主要成员变量和方法的 UML 图如图 2-4所示。图 2-4 CalculatorWindow 类的 UML 图CalculatorWindow 类的 UML 图中,包含成员变量:numberButton,operationButton,小数点操作,正负号操作,退格操作,等号操作,清零操作,sin,saveButton,copyButton,clearButton,resultShow,showComputerProcess,saceComputerProcess,list,handleDigit,HandleOperation,Handle
23、Back,HandleClear,handleEquality,handleDot,handlePOrN,HandleSin。包含JFrameActionListenerCalculatorWindownumberButtonoperationButton小数点操作,正负号操作,退格操作,等号操作,清零操作,sin,saveButton,copyButton,clearButton,resultShow,showComputerProcesssaveComputerProcesslisthandleDigithandleOperationhandleBackhandleClearhandleE
24、qualityhandleDothandlePOrNhandleSinactionPeformed():voidCalculatorWindow()main():void南昌工学院课程设计论文 8方法:actionPeformed(),CalculatorWindow(),main()。南昌工学院课程设计论文 92、功能类1)NumberButton 类该类创建的对象是主类 CalculatorWindow 窗口中的一个“数字”按钮。NumberButton 类有一个 int 类型的成员 number,标明所创建的按钮所含有的数字。该类所创建的 10 个按钮被添加到 CalculatorWin
25、dow 窗口中。2)OperationButton 类该类创建的对象是主类 CalculatorWindow 窗口中的一个“运算符”按钮。OperationButton 类有一个 String 类的成员 operateSign,用于标明所创建的按钮所含有的运算符号。该类所创建的 4 个按钮被添加到CalculatorWindow 窗口中。3)HandleDigit 类该类创建的对象负责处理 ActionEvent 事件。当用户单击“数字”按钮时,该类所创建的对象负责处理和数字有关的计算过程。4)HandleOperation 类该类创建的对象负责处理 ActionEvent 事件。当用户单击“
26、运算符”按钮时,该类所创建的对象负责处理和运算符有关的计算过程。5)HandleDot 类该类创建的对象负责处理 ActionEvent 事件。当用户单击“.”按钮时,该类所创建的对象负责处理小数点。6)HandlePOrN 类该类创建的对象负责处理 ActionEvent 事件。当用户单击“+/-”按钮时,该类所创建的对象负责处理数字的正负转换。7)HandleEquality 类该类创建的对象负责处理 ActionEvent 事件。当用户单击“=”按钮时,该类所创建的对象计算有关数据。8)HandleSin 类该类创建的对象负责处理 ActionEvent 事件。当用户单击 Sin 按钮时
27、,该类所创建的对象负责计算正弦三角函数的值。南昌工学院课程设计论文 109)HandleBack 类该类创建的对象负责处理 ActionEvent 事件。当用户单击“退格”按钮时,该类所创建的对象负责进行退格操作。10)HandleClear 类该类创建的对象负责处理 ActionEvent 事件。当用户成功单击 C 按钮时,该类所创建的对象负责清除有关的计算结果。2.32.3 设计设计小结小结根据上述概要设计和详细设计得出了一份完整的程序设计清单,包括将要实现的功能类、类之间的组合关系和程序的运行流程,通过这些清单,可以有条理,分层次、模块的进行代码的编写,让自己的编程思路更加清晰,达成了程
28、序健壮性、易读性等目标。在程序的设计阶段,碰到很多棘手的问题,由于第一次进行 Java 程序的编写,对其提供的基础类不熟悉,导致在构建程序框架的时候出现诸多问题,在不断的查书、请教老师的过程中,终于使所有问题迎刃而解,让自己更加透彻的了解了 Java 界面架构类的使用方法和技巧,为之后的代码编写打下了坚实基础。南昌工学院课程设计论文 113 3 代码编写代码编写3.13.1 导入包导入包import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import java.ut
29、il.LinkedList;import java.io.*;3.23.2 各模块代码各模块代码3.2.13.2.1 HandleBackHandleBack 类类HandleBack 类实现了 ActionListener 接口,创建的对象 handleBack 是CalculatorWindow 窗口的成员之一,该类实现了退格算法。使用到如下代码进行退格判定和操作:if(num.length()=1)num=num.substring(0,num.length()-1);list.set(0,num); resultShow.setText(num);showComputerProcess
30、.setText(+num);elselist.removeLast();resultShow.setText(0);showComputerProcess.setText(0);该类中包含了成员变量:list、resultShow、showComputerProcess;包含方法:构造方法 HandleBack(LinkedList,JtextField,JtextField)、HandleBack 类实现的 ActionListener 接口中的方法。南昌工学院课程设计论文 123.2.3.2.2 2 HandleHandleClearClear 类类HandleClear 类实现了 Ac
31、tionListener 接口,创建的对象 handleBack 是CalculatorWindow 窗口的成员之一,该类实现了清零算法。使用到如下代码进行清零:resultShow.setText(0);list.clear();showComputerProcess.setText(null);该类中包含了成员变量:list、resultShow、showComputerProcess;包含方法:构造方法 HandleClear(LinkedList,JtextField,JtextField)、HandleClear 类实现的 ActionListener 接口中的方法。当用户点击“清零
32、操作”按钮时就会触发 ActionEvent 事件,执行 actionPerformed(ActionEvent)方法,将 resultShow 中显示的数字设置为 0,并清除 showComputerProcess 中显示的计算过程。3.2.3.2.3 3 HandleHandleDotDot 类类HandleDot 类实现了 ActionListener 接口,创建的对象 handleDot 是CalculatorWindow 窗口的成员之一,该类实现了处理小数点算法。使用到如下代码进行小数点的判定和处理:String dot=e.getActionCommand();String num
33、=list.getFirst();String s=null;if(num.indexOf(dot)=-1)s=num.concat(dot); list.set(0,s); elses=num; list.set(0,s);resultShow.setText(s);showComputerProcess.setText(+list.get(0);南昌工学院课程设计论文 133.2.3.2.4 4 HandleHandleDigitDigit 类类HandleDigit 类实现了 ActionListener 接口,创建的对象 handleDigit 是CalculatorWindow 窗口
34、的成员之一,该类实现了获取数字的算法。通过此语句获得点击的数字:NumberButton b=(NumberButton)e.getSource();传递、显示点击的数字:int number=b.getNumber();list.add(+number); resultShow.setText(+number); showComputerProcess.setText(+list.get(0);3.2.3.2.5 5 HandleHandleOperationOperation 类类HandleOperation 类实现了 ActionListener 接口,创建的对象handleOpera
35、tion 是 CalculatorWindow 窗口的成员之一,该类实现了获取符号的算法。通过此语句获得点击的符号:OperationButton b=(OperationButton)e.getSource();通过如下代码进行加减乘除的判断和运算:if(运算符号.equals(+)result=n1+n2;else if(运算符号.equals(-)result=n1-n2;else if(运算符号.equals(*)result=n1*n2;else if(运算符号.equals(/)result=n1/n2;该类中包含了成员变量:list、resultShow、showComputer
36、Process;包含方法:构造方法 HandleOperation(LinkedList,JtextField,JtextField)、HandleOperation 类实现的 ActionListener 接口中的方法。当用户点击运算符按钮时就会触发 ActionEvent 事件,执行 actionPerformed(ActionEvent)方法,负责处理 list 链表中存储的运算符和必要的计算。南昌工学院课程设计论文 143.2.3.2.6 6 HandleHandleSinSin 类类HandleSin 类实现了 ActionListener 接口,创建的对象 handleSin 是C
37、alculatorWindow 窗口的成员之一,该类实现了正弦函数值算法。当 list.size()=1|list.size()=2 时,需要算法:double x=Double.parseDouble(numOne);double result=Math.sin(x);String str=String.valueOf(result);list.set(0,str);resultShow.setText(str);list.removeLast(); /移掉运算符号 当 list.size()=3)时,需要算法:String numTwo=list.getLast();double x=Do
38、uble.parseDouble(numTwo);double result=Math.sin(x);String str=String.valueOf(result);list.set(0,str);resultShow.setText(str);list.removeLast(); /移掉第 2 个运算数 list.removeLast(); /移掉运算符号 该类中包含了成员变量:list、resultShow、showComputerProcess;包含方法:构造方法 HandleSin(LinkedList,JtextField,JtextField)、HandleSin 类实现的 A
39、ctionListener 接口中的方法。当用户点击“Sin”按钮时就会触发 ActionEvent 事件,执行 actionPerformed(ActionEvent)方法,将输入的数字的正弦函数值计算出来。注:由于主类 CalculatorWindow 中为窗口的创建代码,负责调用各个功能类,实现 main()方法等,所以重在对各模块代码的分析,主类的代码见附录。南昌工学院课程设计论文 154 4 测试与调试测试与调试4.14.1 主界面测试主界面测试运行 CalculatorWindow 类后,主界面如图 4-1 所示。图 4-1 主界面图图中,主界面包含:程序名称“计算器” ;左侧界面
40、:10 个数字按钮,运算符按钮,清零、退格按钮,正负数变换按钮,小数点按钮,正弦函数运算按钮和等于按钮;右侧界面:保存、复制、清除按钮和一个文本框。4.24.2 计算操作计算操作使用计算器进行加、减、乘、除操作和正弦计算操作,操作后的界面如图 4-2 所示。图 4-2 计算操作图南昌工学院课程设计论文 164.34.3 清零操作清零操作对文本区进行清零操作,将文本区重置为 0,清零操作如图 4-3 所示。图 4-3 清零操作图4.44.4 保存操作保存操作将文本框中保存的历史计算过程以文本格式“lsj.txt”进行保存,保存操作如图 4-4 所示。图 4-4 保存操作图南昌工学院课程设计论文
41、174.54.5 清除操作清除操作将所有保存在文本框中的历史计算过程清除,进行新的计算任务,清除操作前如图 4-5 所示,清除操作成功如图 4-6 所示。图 4-5 清除操作前图 4-6 清除操作成功南昌工学院课程设计论文 185 5 软件发布软件发布软件的发布可以使用 jar.exe 命令制作 JAR 文件来发布编写的软件。1)首先用文本编辑器,如 Windows 下的“记事本” ,编写一个清单文件:mymoon.mfManifestVersion: 1.0MainClass: CalculatorWindowCreatedBy: 1.2(Sun Microsystems Inc.)将 my
42、moon.mf 保存到与程序所用的字节码文件保存在相同的目录中。2)生成 JAR 文件D:*jar cfm Calculator.jar mymoon.mf *.class其中,参数 c 表示要生成一个新的 JAR 文件,f 表示要生成的 JAR 文件的名字,m 表示清单文件的名字。现在就可以将 Calculator.jar 复制到任何一个安装了 Java 运行环境的计算机上,用户双击该文件即可运行该软件。南昌工学院课程设计论文 19总结与体会总结与体会通过这次实习让我更加深刻的理解了书本上的知识,得到了一个运用JAVA 语言编写程序的实践机会,将课本上的知识变为实践。通过这两个周的实习也大大
43、的锻炼了我分析解决问题的能力,在建立代码的初期,我觉得程序框架的建立好像不难,但是越往后做越发现,越做越难,因为在往后做的过程中,发现部分类的功能无法正常实现,因此浪费了很多的时间。令人遗憾的是在这次实践中,我所做的保存计算过程的计算器并没有完成预期的功能,本来是想着挺简单的,但是实践起来真的很难,再加上时间紧迫,所以就只实现了一些简单的功能,并没有加入科学计算等功能。虽然这次实践圆满结束了,但我仍然不能放松前进的脚步,在程序的编写过程中,自己对 JAVA 这门面向对象的语言产生了浓厚的兴趣。这门独特的语言并不像 C 语言那样需要为指针地址烦恼,只是巧用搭积木的方法,便让一个带图形界面的小程序
44、运行起来,很惊叹于 JAVA 语言的作者的无限的创造能力,带给了我们后人很多便捷,也带来了许许多多优秀的程序。另外,此次课程设计让我更了解熟悉了 Java 中的图形用户界面和它的编程方式。在完成课题的过程中也不断充实了自己,学习到了很多以前没有学习到的知识,收获很大。最大的收获是在完成过程中培养的解决问题的能力。在做课程设计时必然会遇到困难,会有不会的东西,重要的不是现在会不会,而是遇到问题知道如何找到解决的途径。还使我对所学知识能够融会贯通,又不断丰富了新知识。Java 计算器设计使得我对所学的专业课有了更为深刻的认识,使得知识得到了巩固和提高。南昌工学院课程设计论文 20参考文献参考文献1
45、耿祥义,张跃平.Java 程序设计(第二版)M.北京:清华大学出版社,2008,23-49.2耿祥义.Java 2 实用教程(第三版)M.北京:清华大学出版社,2006.3吕凤翥.Java 语言程序设计(第二版)M.北京:清华大学出版社,2010.4刘升华.JAVA 从入门到实践M.北京:清华大学出版社,2008.5陈平.软件设计师教程M.北京:清华大学出版社,2004.6绕一梅. Java 语言程序设计M.北京:人民邮电大学出版社,2010.南昌工学院课程设计论文 21致致 谢谢首先要感谢曾经帮助过我的老师的悉心指导,很多专业上的疑惑都是在你帮助下解开的,然后还要感谢那些提供无私帮助的同学、
46、朋友,没有你们我的程序也不会像今天一样健壮!我还要感谢那些书籍的编著者,您们就像一双双的手在我最困难的时候帮助我渡过难关,还有那些在网络上留下资料帮助我的好心人,萍水相逢却不吝赐教让我很感动。秉承着他们的精神,我会在以后的路途中,也帮助那些同我曾经一样迷茫的朋友,为他们提供自己所学的知识,希望他们像我一样从中得到灵感,为 JAVA 程序的设计与发展做出更多贡献,在更多领域造福大众,为国家的信息科技发展注入新鲜血液。南昌工学院课程设计论文 22附附 录录CalculatorWindow 主类代码如下:import java.awt.*;import java.awt.event.*;import
47、 javax.swing.*;import javax.swing.border.*;import java.util.LinkedList;import java.io.*;public class CalculatorWindow extends JFrame implements ActionListener NumberButton numberButton; OperationButton operationButton; JButton 小数点操作,正负号操作,退格操作,等号操作,清零操作,sin; JTextField resultShow; /显示计算结果 JTextField
48、 showComputerProcess; /显示当前计算过程 JTextArea saveComputerProcess; /显示计算步骤 JButton saveButton,copyButton,clearButton; LinkedList list; /链表用来存放第一个运算数、运算符号和第二个运算数 HandleDigit handleDigit; /负责处理 ActionEvent 事件 HandleOperation handleOperation ; HandleBack handleBack; HandleClear handleClear; HandleEquality
49、handleEquality; HandleDot handleDot; HandlePOrN handlePOrN; HandleSin handleSin; public CalculatorWindow() setTitle(计算器); JPanel panelLeft,panelRight; list=new LinkedList(); resultShow=new JTextField(10);南昌工学院课程设计论文 23 resultShow.setHorizontalAlignment(JTextField.RIGHT); resultShow.setForeground(Col
50、or.blue); resultShow.setFont(new Font(TimesRoman,Font.BOLD,16); resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED); resultShow.setEditable(false); resultShow.setBackground(Color.white); showComputerProcess=new JTextField(); showComputerProcess.setHorizontalAlignment(JTextField.CENTER); sh
51、owComputerProcess.setFont(new Font(Arial,Font.BOLD,16); showComputerProcess.setBackground(Color.cyan); showComputerProcess.setEditable(false); saveComputerProcess=new JTextArea(); saveComputerProcess.setEditable(false); saveComputerProcess.setFont(new Font(宋体,Font.PLAIN,16); numberButton=new NumberB
52、utton10; handleDigit=new HandleDigit(list,resultShow,showComputerProcess); for(int i=0;i=9;i+) numberButtoni=new NumberButton(i); numberButtoni.setFont(new Font(Arial,Font.BOLD,20); numberButtoni.addActionListener(handleDigit); operationButton=new OperationButton4; handleOperation=new HandleOperatio
53、n(list,resultShow, showComputerProcess,saveComputerProcess); String 运算符号=+,-,*,/; for(int i=0;i4;i+) operationButtoni=new OperationButton(运算符号i); operationButtoni.setFont(new Font(Arial,Font.BOLD,20); operationButtoni.addActionListener(handleOperation); 小数点操作=new JButton(.);南昌工学院课程设计论文 24 handleDot=
54、new HandleDot(list,resultShow,showComputerProcess); 小数点操作.addActionListener(handleDot); 正负号操作=new JButton(+/-); handlePOrN=new HandlePOrN(list,resultShow,showComputerProcess); 正负号操作.addActionListener(handlePOrN); 等号操作=new JButton(=); handleEquality=new HandleEquality(list,resultShow, showComputerPro
55、cess,saveComputerProcess); 等号操作.addActionListener(handleEquality); sin=new JButton(sin); handleSin=new HandleSin(list,resultShow, showComputerProcess,saveComputerProcess); sin.addActionListener(handleSin); 退格操作=new JButton(退格); handleBack=new HandleBack(list,resultShow,showComputerProcess); 退格操作.add
56、ActionListener(handleBack); 清零操作=new JButton(C); handleClear=new HandleClear(list,resultShow,showComputerProcess); 清零操作.addActionListener(handleClear); 清零操作.setForeground(Color.red); 退格操作.setForeground(Color.red); 等号操作.setForeground(Color.red); sin.setForeground(Color.blue); 正负号操作.setForeground(Colo
57、r.blue); 小数点操作.setForeground(Color.blue); panelLeft=new JPanel(); panelRight=new JPanel(); panelLeft.setLayout(new BorderLayout(); JPanel centerInLeft=new JPanel();南昌工学院课程设计论文 25 panelLeft.add(resultShow,BorderLayout.NORTH); panelLeft.add(centerInLeft,BorderLayout.CENTER); centerInLeft.setLayout(new
58、 GridLayout(4,5); centerInLeft.add(numberButton1); centerInLeft.add(numberButton2); centerInLeft.add(numberButton3); centerInLeft.add(operationButton0); centerInLeft.add(清零操作); centerInLeft.add(numberButton4); centerInLeft.add(numberButton5); centerInLeft.add(numberButton6); centerInLeft.add(operati
59、onButton1); centerInLeft.add(退格操作); centerInLeft.add(numberButton7); centerInLeft.add(numberButton8); centerInLeft.add(numberButton9); centerInLeft.add(operationButton2); centerInLeft.add(sin); centerInLeft.add(numberButton0); centerInLeft.add(正负号操作); centerInLeft.add(小数点操作); centerInLeft.add(operat
60、ionButton3); centerInLeft.add(等号操作); panelRight.setLayout(new BorderLayout(); panelRight.add(showComputerProcess,BorderLayout.NORTH); saveButton=new JButton(保存); copyButton=new JButton(复制); clearButton=new JButton(清除); saveButton.setToolTipText(保存计算过程到文件); copyButton.setToolTipText(复制选中的计算过程); clear
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 认识三角形第4课时三角形的高 教学设计-2024-2025学年北师大版数学七年级下册
- 600元美容馆合同范本
- 受聘合同范本
- 劳务雇佣责任合同范本
- 双方交付款合同范本
- 保证质押合同范本
- 发廊股东入股合同范本
- 《送元二使安西》教案设计
- 劳务合同范本兼职
- 保定市电梯维保合同范本
- 《淞沪会战》课件
- 《智能制造技术基础》课件-第4章 加工过程的智能监测与控制
- 初一家长会课件96108
- 罪犯正常死亡报告范文
- 《企业文化概述》课件
- 某地源热泵毕业设计
- (三级)工业机器人运用与维护理论考试复习题库(含答案)
- 2024年广东省公务员录用考试《行测》真题及解析
- 高中英语必背3500单词表(完整版)
- 房产中介居间服务合同模板样本
- 海洋工程装备保险研究
评论
0/150
提交评论