设计一个图形界面的计算器完成简单的算术运算-JAVA课程设计Word文档格式.docx
- 文档编号:3727280
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:33
- 大小:20.67KB
设计一个图形界面的计算器完成简单的算术运算-JAVA课程设计Word文档格式.docx
《设计一个图形界面的计算器完成简单的算术运算-JAVA课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《设计一个图形界面的计算器完成简单的算术运算-JAVA课程设计Word文档格式.docx(33页珍藏版)》请在冰点文库上搜索。
(2)程序检查:
30分;
(3)答辩回答问题:
20分
(3)课程设计报告:
40分;
5)参考文献:
[1]耿祥义.《Java2实用教程(第三版)》北京清华大学出版社2006.8
[2]朱福喜.《Java语言程序设计》.北京清华大学出版社.2005
[3]朱福喜,尹为民,余振坤.《Java语言与面向对象程序设计》.武汉 武汉大学出
版社.2002
6)课程设计进度安排
内容 天数 地点
构思及收集资料7 图书馆
编码与调试 5 实验室
撰写论文3 图书馆、实验室
学生签名:
09年 01月 05日
课程设计论文评审意见
(1)考勤(10分):
优()、良()、中()、一般()、差();
(2)程序检查(30分):
(3)答辩回答问题(20分):
(4)设计报告(40分):
评阅人:
职称:
讲师年月日
目录
一、课设任务及要求 1
二、需求分析2
三、设计思路3
四、详细设计5
五、运行调试与分析讨论 9
六、设计体会与小结 14
七、参考文献15
附录 16
中文摘要
Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器,显示了Java的魅力:
跨平台、动感的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。
另一方面,Java技术也不断更新。
Java平台由Java虚拟机和Java应用编程接口构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java分为三个体系J2SE,J2EE,J2ME。
说起计算器,值得我们骄傲的是,最早的计算工具的诞生地是中国。
在17世纪初,西方国家的计算工具才有了较大的发展,英国数学家纳皮尔发明的"
纳皮尔算筹"
英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺
不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,进而成为了现代社会应用广泛的计算工具。
关键词:
javaJava平台 计算器课设任务及要求
1.课设任务
这次课程设计选择的题目为设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算。
这次课程设计的基本要求为设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算,且有小数点、正负号、求倒数、退格和清零功能。
拓展功能根据自己的能力添加。
这次课程设计的我选择添加的拓展功能为开平方根,平方,立方,判断素数,求log的功能。
本程序主要练习使用布局管理器设计一个计算器的界面,并练习使用事件监听器处理数据的输入,并完成相关的计算。
数据和运算符号的存储采用动态链表这种数据结构实现。
这次课程设计选择的Java运行环境为:
WindowsXPsp3+Eclipse+JDK1.6
二、需求分析
1.系统功能需求分析
计算器是现在一个普遍应用的工具,能够解决许多人所无法计算的数据,节省大量宝贵的时间。
2.系统功能分析
为了实现计算器系统的功能.主要有二个功能模块:
输入、输出。
3.系统设计原则
基于计算器系统要具有适用性广、操作简便等特点.本系统预计要达到以下几个目标:
1、满足以上的功能要求;
2、能够运行在常见的计算机及其配置上;
三、设计思路
1.关于布局问题
本次课程设计程序继承来自框架类Frame,总体布局上选用布局管理器BorderLayout:
1将单行文本框加入到“North”区域
2将面板panel加入到“Center”区域,同时panel包含了各种数字按钮和符号按钮。
面板panel采用Girdlayout布局,选用5行*5列,将各种按钮添加到面板panel,并增加按钮监听事件。
布局完成后的效果图如下:
2.关于数据存储问题
计算器完成的是一个数学表达式,本次课程设计我选用的是使用链表
Linkedlist类来存储数字和运算符号。
程序运行后,输入的所有数字及运算符号都全部存储在链表中,待最后运算时,再一一求出来进行计算。
3.关于事件监听的处理问题
计算器的各种按钮都需要一个对象来进行监视,以便对发生的事件做出处理。
计算器的各种按钮通过调用相应的方法将某个对象作为自己的监视器。
例如计算器中的数字按钮,其方法为:
AddActionListener监视器;
对于获取了监视器的数字按钮,通过相应的操作就会导致事件的发生,并通知监视器,监视器就会做出相应的处理。
四、详细设计
1.计算器系统主要功能模块
1、系统主要模块实现的功能
系统输入模块实现数字以及计算符号输入的功能,输出模块的结果在文本框中实现显示。
2、系统输入窗体实现的效果
系统输入窗体设计效果如图所示:
上图为按数字键1234567890后,在文本框中的显示
3、系统主要模块功能描述功能描述:
菜单项“计算器”主要服务于使用者.它包含了“输入”、“输出”、两个功能。
输入功能:
当使用者将数字输入后,会出现数字的显示;
当使用者将计算符号输入时候会有计算符号的录入。
输出功能:
点击“输出”选项后.可实现计算的结果。
2.系统的实现1 系统源文件类之间的关系计算器系统共有3个java源文件:
Calculator,NumberButton,OperationButton。
主要类之间的主要关系如图下图所示
计算器系统的类关系图
2、系统源文件类实现的功能
Calculator.java文件生成的类该JAVA文件生成的类负责创建计算器的主窗口及各种运算的实现。
该类含有main方法,整个程序从此类开始执行
NumberButton.java该文件生成的类负责为主类创建数字按钮对象,使用鼠标单击数字按钮可依次输入参加运算的数值的各位数字
OperationButton.java该文件生成的类负责为主类创建运算符号按钮对象。
使用鼠标单击运算符号可选择所要进行的运算
下表为表格形式
序号 文件名主要功能
1Calculator.java 该JAVA文件生成的类负责创建计算器的主窗口。
2NumberButton.java该文件生成的类负责为主类创建数字按钮对象,使用鼠标单击数字按钮可依次输入参加运算的数值的各位数字
3OperationButton.java该文件生成的类负责为主类创建运算符号按钮对象。
3.系统类的成员变量及方法描述
1主类Calculator
①成员变量
Calculator类成员变量表
成员变量描述变量类型名称
数字按钮数组NumberButton[]NumberButton
运算符号按钮数组OperationButton[]OperationButton
小数点按钮JButton小数点按钮正负号按钮JButton正负号按钮退格按钮JButton退格按钮
平方按钮JButton平方按钮清零按钮JButton清零按钮等号按钮JButton等号按钮
显示计算结果JTextFieldresultShow储存数据的链表LinkedListmylist求平方根JButtonsqrt
判断素数 JButton 素数
log JButton log
立方按钮 JButton 立方按钮倒数按钮 JButton 倒数按钮
②方法
Calculator类方法
名称 功能 备注
Calculator 创建窗口 构造方法
ActionPerfomed 处理ActionPerfomed事件接口方法
Main 程序开始运行
(2)NumberButton类①成员变量
NumberButton类变量
成员变量描述变量类型 名称按钮代表的数字 Intnumber
NumberButton类方法方法名功能 备注
NumberButton创建数字按钮 构造方法
getNumber获取按钮代表的数字
(3)OperationButton类
OperationButton类成员变量成员变量描述变量类型 名称
按钮代表的符号 StringOperator
OperationButton类方法方法名功能 备注
OperationButton 创建符号按钮 构造方法
getOperator 获取按钮代表的符号
五、运行调试与分析讨论
1.测试加法运算按键12+20得出的结果如下图
2.测试减法运算按键12-20得出的结果如下图
3.测试乘法运算按键12*20得出的结果如下图
4.测试除法运算按键12/20得出的结果如下图
5测试退格运算,按键123456789,按退格键3次,得到的结果如下图
6.测试倒数运算,按键5,再按倒数键“1/X”,得到的结果如下图
7.测试平方键,按键4,再按平方键,得到的结果如下图
8.测试立方键,按键4,再按立方键,得到的结果如下图
9.测试开平方键,按键4,再按键“sqrt”,得到的结果如下图
10测试素数键,按键29,再按键“素数”,得到的结果如下图六、设计体会与小结
这次课程设计总体上来说难度不大,但是个别细节遇到很多的问题。
在课设过程中,我自己学习了swing的使用以及数据结构中的链表用java的实现。
在这次课程设计中,我学习到了很多布局方面的知识,还有就是链表的实现。
数据结构已经很久没有用过了,刚上手时感觉有些生疏,但是随着时间的推移,用
java实现链表也渐渐的变得顺手了。
这次课程设计的程序构架很简单,没有用到很困难的算法,但是这样编写
出来的程序也有优点,就是修改的时候一目了然。
总的来说,时间虽紧,这次课程设计学习的东西很是挺多的。
最后感谢在课程设计中帮助过我的同学和老师。
七、参考文献
[3]朱福喜,尹为民,余振坤.《Java语言与面向对象程序设计》.武汉 武汉大学出版社.2002
附录程序代码packageTZB;
importjava.awt.*;
import//.nt.*;
importjavax.swing.*;
import//.der.*;
import//.kedList;
publicclassCalculatorextendsJFrameimplementsActionListenerNumberButtonnumberButton[];
OperationButtonoprationButton[];
JButton小数点按钮,正负号按钮,退格按钮,平方按钮,等号按钮,清零按钮,sqrt,素数,log,立方按钮,倒数按钮;
JPanelpanel;
JTextFieldresultShow;
String运算符号[] "
+"
"
-"
*"
/"
;
LinkedListmylist;
boolean等号 false;
JTextAreablank;
//GUI的设计及监视器的添加
publicCalculator
super"
计算器"
;
mylist newLinkedList;
numberButton newNumberButton[10];
forinti 0;
i 9;
i++numberButton[i] newNumberButtoni;
numberButton[i].addActionListenerthis;
oprationButton newOperationButton[4];
i 4;
i++
oprationButton[i] newOperationButton运算符号[i];
oprationButton[i].addActionListenerthis;
小数点按钮 newJButton"
."
正负号按钮 newJButton"
+/-"
等号按钮 newJButton"
"
平方按钮 newJButton"
平方"
立方按钮 newJButton"
立方"
倒数按钮 newJButton"
1/x"
退格按钮 newJButton"
退格"
清零按钮 newJButton"
C"
sqrt newJButton"
sqrt"
log newJButton"
log"
素数 newJButton"
素数"
清零按钮.setForegroundColor.blue;
退格按钮.setForegroundColor.blue;
等号按钮.setForegroundColor.blue;
平方按钮.setForegroundColor.blue;
立方按钮.setForegroundColor.blue;
倒数按钮.setForegroundColor.blue;
正负号按钮.setForegroundColor.blue;
小数点按钮.setForegroundColor.blue;
//.e;
素数.setForegroundColor.blue;
退格按钮.addActionListenerthis;
清零按钮.addActionListenerthis;
等号按钮.addActionListenerthis;
小数点按钮.addActionListenerthis;
正负号按钮.addActionListenerthis;
平方按钮.addActionListenerthis;
立方按钮.addActionListenerthis;
倒数按钮.addActionListenerthis;
sqrt.addActionListenerthis;
log.addActionListenerthis;
素数.addActionListenerthis;
resultShow newJTextField10;
//.HT;
resultShow.setFontnewFont"
TimesRoman"
Font.PLAIN,24;
resultShow.setBordernewSoftBevelBorderBevelBorder.LOWERED;
//.te;
resultShow.setEditablefalse;
panel newJPanel;
panel.setLayoutnewGridLayout5,5;
//GridLayout布局5*5
panel.addnumberButton[1];
panel.addnumberButton[2];
panel.addnumberButton[3];
panel.addoprationButton[0];
panel.add清零按钮;
panel.addnumberButton[4];
panel.addnumberButton[5];
panel.addnumberButton[6];
panel.addoprationButton[1];
panel.add退格按钮;
panel.addnumberButton[7];
panel.addnumberButton[8];
panel.addnumberButton[9];
panel.addoprationButton[2];
panel.add倒数按钮;
panel.addnumberButton[0];
panel.add正负号按钮;
panel.add小数点按钮;
panel.addoprationButton[3];
panel.add等号按钮;
panel.addsqrt;
panel.add立方按钮;
panel.add素数;
panel.addlog;
panel.add平方按钮;
addpanel,BorderLayout.CENTER;
addresultShow,BorderLayout.NORTH;
addWindowListenernewWindowAdapterpublicvoidwindowClosingWindowEventeSystem.exit0;
setVisibletrue;
setBounds400,240,400,300;
setResizabletrue;
validate;
publicvoidactionPerformedActionEvente
ife.getSourceinstanceofNumberButton//触发数字
NumberButtonb NumberButtone.getSource;
ifmylist.size 0
intnumber b.getNumber;
mylist.add"
+number;
//查看链表动态变化
forinti 0;
i mylist.size;
//.ntmylist.geti+"
"
//.ntln;
resultShow.setText"
等号 false;
elseifmylist.size 1&
&
等号 falseintnumber b.getNumber;
Stringnum Stringmylist.getFirst;
Strings num.concat"
mylist.set0,s;
resultShow.setTexts;
等号 true
mylist.removeFirst;
resultShow.setText"
elseifmylist.size 2
elseifmylist.size 3intnumber b.getNumber;
Stringnum Stringmylist.getLast;
Strings num.concat"
mylist.set2,s;
elseife.getSourceinstanceofOperationButton//触发运算符
OperationButtonb OperationButtone.getSource;
ifmylist.siz
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 一个 图形界面 计算器 完成 简单 算术 运算 JAVA 课程设计