2022年面向对象的程序设计-设计一个简单的计算器应用程序[归 .pdf
《2022年面向对象的程序设计-设计一个简单的计算器应用程序[归 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象的程序设计-设计一个简单的计算器应用程序[归 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华南农业大学理学院(面向对象的程序设计) 课程设计实验题目:设计一个简单的计算器应用程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 简易计算器应用程序的制作问题陈述设计一个计算器应用程序,用于进行简单的加减乘除四则运算。需求分析1 设计思想要设计一个计算器应用程序, 则计算器必须要进行简单的四则运算功能,并且可以通过人机互动来进行操作。计算器功能主要包括下面几个方面:*计算简单的加减乘除四则运算;*通过鼠标点击输入数字信息
2、;*显示计算结果;*计算器具有返回功能:按AC 键不会清除重现存储器的内容;返零功能;2 设计划分用 JAVA 布局管理器来创建图形界面(包括TextField,Button) ,框架和面板主要分成三大块:框架、显示面板、和数字面板;具体分布如下:3 界面布局按一般计算器表面布局, 主要以网格的行数和列数在创建布局管器的构造方法中通过参数进行设置, 另外边界布局管理器。 这两种布局结合最适合计算器,大方美观。主框架主面板显示面板数字面板功能面板相应对象各组件按钮各组件按钮名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整
3、理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 4 设计要求和步骤第一步,设计图形界面。采用边界布局管理器把三个面板添加到框架上,再采用网格布局管理器, 把标准 AWT 组件添加到界面上。第二步,根据各按钮需要,标明对象名,便于计算操作。第三步,设定各按钮的特性。第四步,实例化所有按钮、设置其前景色并注册监听器。第五步,运行 APPLET *运行小应用*测试各按钮的性能,是否满足问题要求。5、编译环境编码语言: JAVA 编译环境: JDK 1.5.0_11 概要设计1 设计方案要求整个程序分三部分, 首先是确定程序交互的对象, 每个组件要用有意义
4、的标签标明,设计出一个大体的框架,再添加面板,各面板设计分布相互独立,各面板中的按钮分布也相互独立, 其各自响应的事件都会由各自的监听动作事件所决定。当 Jbutton 被按下时会产生一个动作事件(action event)。各编码要有适当的注释。2 面板设置为了美观和整齐, 采用了网格布局管理器进行编排显示面板和按钮排列。为了更好看,还可以添加计算器的背景色。 采用边界布局管理器排面板, 合理有效。由整体界面可知,显示信息主要设置在顶部(则北面),功能键设置在左面(则西面),数字按钮和运算按钮主要设置在右面(则在东面)。各按扭均有相应的数字或字母作为标签。3 主要模块概要(1) 主框架模块存
5、储则是以非记忆的模式,通过读取缺省静态数据和允许用户进行动态的受限操作实现的。 处理则是通过存储的数据, 根据需要对参数进行修改、返回等操作。具体变量声明界面设置大小如下:根据数据运算需要,数据均用双精度储存。public class Counter extends Frame /声明三个面板的布局名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - GridLayout gl1,gl2,gl3; Panel p0,p1,p2,p3
6、; JTextField tf1; TextField tf2; Button StringBuffer str;/显示屏所显示的字符串double x,y;/x 和 y 都是运算数int z;/Z 表示单击了那一个运算符.0表示+,1 表示-,2 表示*,3 表示/ static double m;/记忆的数字 . public Counter() /实例化三个面板的布局. /实例化所有按钮、设置其前景色并注册监听器. /构造监听器. . setResizable(false); setBackground(Color.pink); setBounds(100,100,320,280); s
7、etVisible(true); (2) 驱动模块public static void main(String args) new Counter(); (3) 事件监听器模块class Bt implements ActionListener public void actionPerformed(ActionEvent e2) try if ( ) . else if ( ) . 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - -
8、 - (4) 异常处理模块catch(NumberFormatException e) tf1.setText(数字格式异常 ); catch(StringIndexOutOfBoundsException e) tf1.setText(字符串索引越界 ); 4 事件处理为了响应一个事件,需要建立事件监听器与触发事件的某个组件之间的联系,通过给组件添加一个监听器的方式就可建立监听器与被监听器的组件之间的联系。如程序中各个按钮ButtonListener 代表一个动作监听器,通过按数字按钮进行输送信息,使内部储存信息并处理输出相关信息。Jbutton button = new Jbutton(
9、); Button.addActionListener(new ButtonListener(); 由于为了方便程序需要, 并没有采用按钮数组化, 每一个按钮都附带一个动作监听器,可以灵活调用。5 功能设计本程序的设计功能比较简单, 除了加减乘除之外, 还有倒数, 平方和百分比的计算功能。 对于广大中小学生的学习有巨大的帮助。使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间。6 对象窗口的设计为了使用者更好的使用本计算器,计算器的窗口化设计跟日常生活中的计算器一样。外观醒目美观。如:名师资料总结 - - -精品资料欢迎下载 - - - - -
10、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 调试分析1 数据调试分析本设计主要目的就是进行简单的四则运算,因此现以随机数进行测试:输入信息显示结果信息操作从 09数字数字输入输入 1 点 5 小数点插入输入 2 和-2 正负符号插入输入 2+5 加号、等号输入加法运算输入 2*5 乘法运算输入 10/2 除法运算输入 16-2 减法运算输入 16 清除操作输入 16 和 1/X 倒数运算输入 2 和% 百分数操作输入 16 和 sqrt 平方操作输入 16 和 Backspace 返
11、回操作2 异常处理测试在四则运算过程中, 0 不能作为除数,当数据不能被除尽时,结果通常保留双精度,当输入数据不当时,也会产生各种异常反应。如:信息输入显示结果异常原因输入 16 除以 0 因为 0 不能作为除数输入运算符没有输入数字直接输运算符输入 sqrt 和 Backspace 不是有效的数字信息输入 1/X 和 sqrt 运算抛出异常驻名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 3 信息处理测试如上是对计算器中的各
12、个部分的测试,现在是对计算器的综合测试:数据输入显示结果45+248*6 15330 486/2-4286 -4043.0 4869的开方69.778220097804 56 的% 0.56 468 的倒数0.002136752136752137 通过核对以上数据计算 ,显示结果较为准确,且精确度也比较高。故符合要求。程序的改进本程序核心在于模拟操作系统, 对信息进行统一的中转及处理。 在程序功能上,还缺少一连串信息通道, 很多运算符号并没具备, 很多其他的运算方法运行不了。因此,程序在框架结构上还可进行改进,加入一个信道类,来实现各类间的消息传递。加多其他功能类,更完善计算器的功能选取择。另
13、外,由于水平所限, 进行运算操作过程中, 本计算器还不能识别运算符的优先级运算, 因此本程序还不能直接运算组合运算式,方程式等。 程序的外观界面及布局还不尽人意,今后改进中,可增加其他亲各元素,令外观更好看。参考文献1JAVA 程序设计教程(第五版) 美 JohnLewis WilliamLoftus 著,电子工业出版社;2JAVA 项目案例导航杨小平编著科学出版社3JAVA 编程技巧宛廷岂著机械工业出版社名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - -
14、- - - - - - - 总结JAVA 不仅仅是一门语言, 而且已经形成了一门技术。 它包括 JAVA 软件技术、JAVA 虚拟机技术、 JAVA 嵌入技术、 JAVA 信息综合处理技术和JAVA 应用技术等。要学好JAVA,我知道一定要学会编程,如果你不编程序,就永远学不会 JAVA。但是,对于如何学习 JAVA 程序设计语言, 如何将 JAVA 的编程技巧应用到实际生活之中,并循序渐进地进行JAVA 程序设计。也是我一直在探索的问题。对于一个程序的开发, 最重要就是构思思想和开发的步骤。就像本程序编写过程中,只要确立了其核心思想, 和主要步骤后, 那编译原代码只是一个按号入座的步骤。尽管
15、中间会遇到很多错误,但只要思路清楚,分块设计,抓住最重要的思路线索,不断的修改,就可以完成。这只是一个小部分。对于一个程序的需求分析往往是最难的, 也是最伤头脑的。 这也许就是别人所说的预期工作是占了整个设计的一半时间。通过一个学期的学习,也许我并没有真正把握JAVA 编程的真谛。不过我也总结了一些经验。就是实践 -理解-再实践,从中深入理解JAVA 的思想,在不断实践过程中,不断地吸取JAVA 编程的知识和技巧。子日: “知之者不如好之者,好之者不如乐之者。 ”要学好一门语言,我们就必须不断的输入、修改、编译、运行每一个实例程序,每运行一个程序,都可能给我们一些新的启示。编程路上没有孤独者,
16、 每一个程序方案的设计都是琳琅满目,没有什么程序是最好的,只有最适合的。也没有什么程序是最完美的,只有更改进的。所以在本程序中,同样也是存在着缺陷,如果要更加完善,还需要很多的改进。这是我感到无力之处。拥有的知识实在太薄弱了,难以解决改进方案。自知自己的无知, 在今后的编程路上, 我会更加努力学习, 提高自己的编程能力和编程技巧,努力攻破编程路上一个一个的难关,尽自己所能,做到最好!名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - -
17、- 附录 1 模块 UML 图Counter Main(args:String):void Frame setResizable(): void setBackground():void setBounds():void setVisible():void setHorizontalAlignment( JtextField.RIGHT) setEnabled():void setText():void Counter G11: GridLayout G12: GridLayout G13: GridLayout P0: Panel P1: Panel P2: Panel P3: Panel
18、Tf1: JtextField Tf2: TextField Str: StringBuffer Bt: Button windowClosing(WindowEvent):void setForeground(Color):void ActionListener actionPerformed(ActionEven):void getSource():void getText():void getActionCommand():void toString():double 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
19、心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 附录 2 源程序代码/*/ /计算器程序/ 作者:/ 班级:/ 日期:/* import java.awt.*; import java.awt.event.*; import java.lang.*; import javax.swing.*; public class Counter extends Frame /声明三个面板的布局GridLayout gl1,gl2,gl3; Panel p0,p1,p2,p3; JTextField tf1; TextField tf2; Button b
20、0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26; StringBuffer str;/显示屏所显示的字符串double x,y;/x 和 y 都是运算数int z;/Z 表示单击了那一个运算符.0 表示+,1 表示-,2 表示*,3 表示/ static double m;/记忆的数字public Counter() gl1=new GridLayout(1,4,10,0);/实例化三个面板的布局gl2=new GridLayout(4,1,0,15
21、); gl3=new GridLayout(4,5,10,15); tf1=new JTextField(27);/显示屏tf1.setHorizontalAlignment(JTextField.RIGHT); tf1.setEnabled(false); tf1.setText(0); tf2=new TextField(10);/显示记忆的索引值tf2.setEditable(false); /实例化所有按钮、设置其前景色并注册监听器b0=new Button(Backspace); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年面向对象的程序设计-设计一个简单的计算器应用程序归 2022 面向 对象 程序设计 设计 一个 简单 计算器 应用程序
限制150内