当前位置:文档之家› 计算器程序设计报告

计算器程序设计报告

题目一 计算器 1.1 题目简介 用Java语言、MyEclipse工具、设计一个GUI简易计算器,编写计算器的基本运算的程序,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算,基本实现计算器的四则运算和三角函数运算功能以及开方和求对数的基本运算。本计算器只适用十进制的运算,不限制十进制的大小。编写本计算器运用java的类得调用和直接在程序中定义类,实现计算器的基本功能,在这个计算器中对于执行的操作可以进行复制和保存以便以后能直接查看运行结果本计算器保存没不得运行结果,只有点清除键是才可以清除每步的结果。

1.2 设计的内容、要求和目标 设计内容:设计一个GUI简易计算器,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算。 设计要求:由于现代用户更倾向于由鼠标方便操作的图形用户界面,所以我们采用GUI来实现计算器,并采用Swing组件,AWT事件来处理等实现具体功能。 (1)、应具有相应的界面,可参考下图进行设计: (2)、操作符号定为:“+”“-”,“*”,“/”等。 (3)、用户通过点击面板中的各种组件输入的表达式,应在上方文本框。 (4)、党用户点击“=”时,文本框中之前的内容应清空,直接显示表达式运算结果。例如:输入表达式“7*8”之后按“=”,显示结果“56”。 (5)、具有菜单栏,内有相应的编辑“复制”、“粘贴”等菜单,提供相应的功能。 设计目标:利用Java语言设计一个简单的计算器,以实现基本的加减乘除功能,还有sin、|cos、tan、log等算术运算;同时实现退格、清零等运算。

1.3 总体设计 1)、对计算器面板的整体布局 首先是对计算器的整体面板进行一个简单的设计,整体布局是采用layout(边框布局)布局,对计算器中的一些数字按钮和运算符按钮采用gridlayout布局(网格布局)。

2)、创建实现程序所需的类 整理思路,确定一个主类CalculatorWindow,然后对Dialog、HandleBack、HandleClear、HandleCos、HandleCot、HandleSin、HandleTan、HandleDigit、HandleDot、HandleDownNumber、HandleEquality、HandleLog、HandleOperation、HandlePOrN、HandlePositiveOrNegative、NumberButton、OperationButton、SelectJTree等类的创建。

3)、对所创建类算法的分析和实现

确定了主类CalculatorWindow,其他类为其所调用。编写各类的实现算法,增加面板所需的按钮,并对程序进行调试运行及分析。 模块功能图如下: 计算器的模块设计

数字键一般运算符三角函数符运算结果处理

编辑、查看、

帮助边框

实现功能所调用的类实现功能所调用的类实现功能所调用的类实现功能所调用的类实现功能所调用的类

SelectTreeCalculatorWindowDialogNumberbuttonoperationButtonHandlePositiveOrNegativeHandleSinHandleCosHandleTanHandleLogHandleBackHandleClearHandleEquality

1.4 详细设计及实现 1.4.1 操作界面设计 制作一个简单的面板Jframe,在其上面添加构造界面所需的各种组件,其构造方法为: CalculatorWindow(){ Super(); this.setBounds(100,50,650,500); this.setDdfaultCloseOperation(Jframe.EXIT_ON_CLOSE);this.setResizable(false); this.setTitle(“计算器”); int();//创建菜单及各种组件(如按钮,文本框等)getContentPane().setLayout(new BorderLayout(4,6));

1.4.2 类成员变量及方法设计

在此程序设计过程中,主要创建了类CalculatorWindow、Dialog、HandleBack、HandleClear、HandleCos、HandleCot、HandleSin、HandleTan、HandleDigit、HandleDot、HandleDownNumber、HandleEquality、HandleLog、HandleOperation、HandlePOrN、HandlePositiveOrNegative、NumberButton、OperationButton、SelectJTree。

其中CalculatorWindow类是利用layout布局来实现计算器窗口的简单布局,Dialog类是设置文本框,HandleBack类是实现退格处理,HandleClear类是实现清空处理,HandleCos、HandleCot、HandleLog 、HandleSin、HandleTan等类是实现对数据的一些基本运算处理,NumberButton类是为了实现0到9这十个数字按钮,HandleDot类是为了实现结果的直接输出,HandleEquality类是实现等于输出,HandleOperation是实现对电脑进程的操作处理,HandlePositiveOrNegative是为了实现对输入数据的必要的正负号转化的处理,HandleDigit是实现对ActionEvent事件的处理,OperationButton类是为计算器面板增加必要的操作按钮,SelectJTree是实现对计算器中帮助按钮进行树形结构的处理,并对帮助按钮的功能进行详细的说明。 制作成表格如下:

创建各类名 类成员变量 使用功能 CalculatorWindow JtextField、JtextArea、setTitlenel、elLeft、anelRight、Menu editM等 实现计算器窗口的简单布局 Dialog setBounds、super、Jframe等 设置文本框 HandleBack LinkedList、JtextField、actionPerformed、String num等 实现退格处理

HandleClear JtextField、this.list、resultShow、howComputerProcess 实现清空处理 HandleCos HandleCot HandleLog HandleSin HandleTan actionPerformed、String numOne double x、double result、list.set HandleCos、HandleCot、HandleLog HandleSin、HandleTan、math等 实现对数据的一些基本运算处理

NumberButton Jbutton、number、setForeground 实现0到9这十个数字按钮 HandleDot LinkedList、JtextField、String dot、String num等 实现结果的直接输出 HandleEquality list.size、String num、resultShow.setText等 实现等于输出

HandleOperation OperationButton b、String fuhao、 list.add、middleProcess等 实现对电脑进程的操作处理 HandlePositiveOrNegative list.size、String number1、double d、String str等 实现对输入数据的必要的正负号转化的处理 HandleDigit NumberButton、list.add、resultShow.setText等 实现对ActionEvent事件的处理 OperationButton String operateSign、setForeground等 为计算器面板增加必要的操作按钮

SelectJTree this.con、design.add、root.add、 tree.getSelectionModel、 eventTxt.setText等 实现对计算器中帮助按钮进行树形结构的处理,并对帮助按钮的功能进行详细的说明 主要程序N-S流程图如下: 开始菜单输入数据是否进行加减乘除运算是否进行三角函数运算

是否进行退格运算是否进行清零运算最终输出

编辑、查看和帮助按钮

结束是否切入正负号

1.4.3 源代码分析 此程序代码分为五个模块,文件包为Defaultpackage,计算器包中包含了主界面和各按钮相关类,实现了计算器的最基本功能;Dialog包中则为高级面板,包含能实现科学计算功能的按钮;menuitem为菜单,就是存储了实现主界面中菜单栏功能的类文件。 Defaultpackage:Dialog、HandleBack、HandleClear、HandleCos、HandleCot、HandleSin、HandleTan、HandleDigit、HandleDot、HandleDownNumber、HandleEquality、HandleLog、HandleOperation、HandlePOrN、HandlePositiveOrNegative、NumberButton、OperationButton、SelectJTree都为ActionListener,每当按钮被单击时调用actionPorformed(),实现打开面板、清除、小数点、等于、数字、四则运算、正负号、键盘输入等功能,HomeCloseListener类用于监听主界面的关闭动作,当主界面关闭,则其他打开的子界面也将关闭。此外在主界面CalculatorHome内部实现了清空,开始按钮的功能,清空则将主界面中所有文本内容清除,开始按钮则是控制输入的开始,在单击此按钮后计算机才能工作。 Advance:此包中的所有类也都是按钮监听类ActionListener,调用actionPorformed()实现科学计算,各类的功能见名知意。 Menuitem:此包中的类只实现了帮助菜单的功能,Help和HelpTree实现树形的帮助文档,Info为计算器相关信息;在主界面中添加了调用Help和Info类的构造方法,分别弹出对话框。编辑菜单的功能则在主界面CalculatorHome中实现,通过对相应的菜单项添加ActionListener(this)监听。

相关主题