JAVA计算器论文Word下载.docx
《JAVA计算器论文Word下载.docx》由会员分享,可在线阅读,更多相关《JAVA计算器论文Word下载.docx(27页珍藏版)》请在冰点文库上搜索。
1.4本章小节3
第2章程序整体设计说明4
2.1程序中所用到的变量4
2.2程序部分源代码及注释4
2.3本章小节15
第3章程序运行效果16
3.1程序运行主界面16
3.2程序中各按钮运行界面16
3.3本章小节20
第4章设计中遇到的重点及难点21
4.1设计中遇到的重点21
4.2设计中的遇到的难点21
4.3本章小节23
第5章本次设计中存在不足与改良方案24
5.1本次设计中存在的不足24
5.2本次设计的改良方案24
5.3本章小节24
结论25
参考文献26
致谢27
指导教师评语28
答辩委员会评语29
第1章概要设计
1.1查找资料
21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。
计算机正以其前所未有的惊人速度向前发展,新的研究成果、新的实用软件不断涌现。
计算机应用也普及到各行各业、深入到人类各种社会活动和生产中。
为了便于对大量信息的处理,运用计算机软件实现自动管理成为了必然的趋势。
其实,“计算器”早已有了一个很长的历史,人们从很早就已经开始进行科学计算了,在人类不断探索不断进步的过程中计算器的用途越来越广,计算结果越来越精确,只有精确的结果才能使社会更加进步,使人类更能准确的掌握数据所反应的社会现象,并根据准确的数据反应进一步研究进步,所有计算已经成为人们生活学习的一个重要工具,对人类来说必不可少。
1.2选题
Java程序编辑器是:
图形界面、线程、流与文件等技术的综合应用。
图形界面的实现:
考虑到简单、实用、高效等特点,就选择了Swing来完成实现,在选择组件上,文本编辑区就选用了jTextField作为主要输入输出部件、数字则是选用了SwingComponents内的JButton按钮、简易菜单主要是选用了SwingMenus里面的JMenu控件、菜单内所包含的选项是选用SwingMenus内的JMenuItem和jRadioButtonMenuItem两个控件。
1.3标准型计算器界面设计
1.3.1JAVA文件的建立
(1)建立一个名称为“proj_jsq”Java工程,在该工程中添加一个可视化的Java类。
类所在的package文件包名称为:
pack_jsq;
类名:
JFra_jsq;
类中包含一个main函数(
)。
(2)界面的设计:
图1.1标准型计算器界面
图1.2数字按钮字体颜色设置
图1.3功能按钮字体颜色设置
(3)保持代码简洁
复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。
(4)功能实现
在整个设计中要保持完整性,能够实现计算器中最基本的功能,如加、减、乘、除等。
1.3.2明确任务
用java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;
平方根,倒数,余数,三角函数,多数连续运算,科学计数法等功能。
1.4本章小结
通过第一章我们可以了解到这次java课程设计的一个总的概况。
掌握了java程序编辑器、图形界面以及文件操作的实现。
这次程序设计在设计类的时候考虑到了简单明了。
我们设计的优点是:
条理清晰,容易理解,容易修改。
第2章程序整体设计说明
2.1程序中所用到的变量
(1)控件变量:
JMenu//定义菜单
JMenuItem//菜单中项的实现
JMenuBar//菜单栏的实现。
将JMenu对象添加到菜单栏以构造菜单。
JRadioButtonMenuItem//选中一个的时候,禁用另外一个取消选中的时候,释放禁用的那一个
JTextField//JTextField是一个显示用户输入输出的文本区域。
JPanel//JPanel作为一个容器,可以包容一些组件,然后将这个JPanel对象作为一个组件添加到另一个容器(称作父容器)中。
JToggleButton//用于记录内存中是否存在用户保存的数据信息。
JButton//是用户进行计算时主要的使用工具,一般为其添加actionPerformed事件。
(2)其它变量
privatedoubledata_One;
//用来存储运算的数据
privatedoubledata_Two;
privatecharOperator='
A'
;
//存放运算符
privatebooleanpointIsTyped=false;
//判断输入的数据是否是小数
privateintmemoryi;
//存储内存中的整数数据
privatedoublememoryd;
//存储内存中的小数数据2.2程序部分源代码及注释
2.2.1窗体中的菜单栏图解:
程序框架图为应用程序提供一个图形化的界面本次设计运行出的程序框架图如图2-1所示
图2-1程序框架图
(1)复制菜单的功能实现代码如下:
(2)粘贴菜单的功能实现代码如下:
(3)科学型菜单的功能实现代码下:
(4)数字分组的功能实现代码如下:
(5)帮助主题菜单的功能实现代码如下:
(6)关于计算器菜单的功能实现代码如下:
①新建一个VisualClass类文件(名为JDia_About):
图2-2关于计算器的介绍
②为关于计算器菜单添加actionperformed事件:
2.2.2程序中各个按钮的功能实现:
(1)计算器中数字(0~9)按钮所实现的功能代码如下:
(2)
点按钮的代码如下:
①在文件的开头定义一个布尔型的变量:
②在点按钮的actionPerformed事件中添加如下代码:
(3)
正负号按钮功能的实现代码如下:
(4)计算器中四则运算符(+、-、*、/)实现的功能代码如下:
(5)
按钮实现的功能代码如下:
(6)
(7)
按钮实现的功能:
按百分比的形式显示乘积结果。
输入一个数,单击“*”,输入第二个数,然后单击“%”。
例如,50*25%将显示为12.5。
也可执行带百分数的运算。
输入一个数,单击运算符(“+”、“-”、“*”或“/”),输入第二个数,单击“%”,然后单击“=”。
例如,50+25%(指的是50的25%)=62.5。
(8)
①在文件初始位置定义一个变量:
②在四个运算符号代码内添加:
③等于号内的代码如下:
(9)为JTextField控件添加键盘输入(keyTyped)事件:
其中包括0~9十个数字,Backspace和Ese等按钮的实现功能代码:
(10)内存数据处理的功能代码:
①
清除内存数据:
②
读取内存数据:
③
保存数据到内存中:
④
使计算结果与内存中的数据相加:
2.2.3科学型计算器中部分按钮功能的实现:
(1)求数字阶乘按钮的代码如下:
(2)求数字对数按钮的代码如下:
①log函数的代码如下:
②ln函数的代码如下:
(3)求数字的三角函数(sin、cos、tan)按钮的代码如下:
以sin函数为例代码如下:
(cos和tan同理)
DecimalFormatdf=newDecimalFormat("
0.0"
);
doublea;
doubleb;
if(bj==1){b=Double.parseDouble(jTextField1.getText());
if((b*180/Math.PI)%180==0){
a=0;
str="
0."
jTextField1.setText(str);
}
elseif(b*180/Math.PI==30){
a=Math.sin(b);
str=df.format(a);
jTextField1.setText(str);
else{
a=Math.sin(b);
str=Double.toString(a);
jTextField1.setText(str);
str="
"
pointIsTyped=false;
}
elseif(bj==0){
if(Double.parseDouble(jTextField1.getText())%180==0){
a=0;
str="
elseif(Double.parseDouble(jTextField1.getText())==30){
a=Math.sin((Double.parseDouble(jTextField1.getText()))*Math.PI/180);
str=df.format(a);
else{
a=Math.sin((Double.parseDouble(jTextField1.getText()))*Math.PI/180);
str=Double.toString(a);
jTextField1.setText(str);
str="
pointIsTyped=false;
}
(4)求数字的平方按钮的代码如下:
(5)Int按钮功能的代码如下:
(6)PI按钮功能的代码如下:
2.3本章小节
本章主要讲述的是计算器设计的整个过程,其中包括设计计算器界面主要使用到的控件和各按钮功能的实现代码,以及整个程序中所使用到的变量,虽然本章表述的设计过程比较详细,但是仍有不足之处,部分变量值的变化没有包含在内,需要用户根据自己的需要进行调整,在此就不做详细的说明了。
第3章程序运行效果:
3.1程序运行主要界面:
(1)标准型计算器与科学型计算器之间的切换:
图3-1计算器之间的换切
3.2计算器部分按钮运行主要界面:
(1)加减乘除运算:
(以除法为例:
9/4和9/0)
图3-29/4运算图
图3-39/0运算图
(2)开平方根运算:
图3-4开平方运算图
(3)百分号运算:
图3-5百分号运算图
(4)求倒数据运算:
①有效值的倒数据运行效果:
图3-6倒数运算图
②0求倒数运算:
图3-70求倒数运算图
(5)求负数的平方根:
图3-8负数求平方根
3.3本章小结
本章主要介绍了用java创建计算器的运行后的效果图。
运行java计算器以后出现的那个框架图就是我们所说的java图形用户界面(GUI),它是程序与用户进行交流的图像窗口,为应用程序提供一个图形化的界面,程序通过GUI与用户交互,GUI通过事件机制响应用户和程序的交互。
如当用户单击某个按钮时就会产生动作事件,要处理产生的事件,需要在特定的方法中编写处理事件的程序。
这样,当产生某种事件时就会调用处理这种事件的方法,从而实现用户与程序的交互。
另外GUI能使一个应用程序具有与众不同的“外观”与“感觉”。
有了GUI,用户就不用花很多时间去记忆各个键盘序列的功能,从而把更多的时间投入到有效地使用应用程序本身上。
第4章设计中遇到的重点及难点
4.1设计中遇到的重点
在这次设计中,遇到的重点有以下两点:
(1)Java计算器在进行混合运算时,不能准备的进行计算,后面输入的数值会覆盖先前输入的数据,造成数据丢失。
主要的解决步骤分为以下几点:
①在文件开头部分定义一个标志性布尔型变量sign,并赋初值为false;
②在加号、减号、乘号、除号的代码里添加if判断语句,如果sign值为false,就另Operator的值为相应的运算符,并改变sign的值为true;
③如果sign的值为true,则执行与等号代码相同的switch…case…选择分支语句;
④最后在四个运算符按钮代码的switch语句的最后分别添加一句
、
、
。
(2)java计算器中还用到了将数据存入内存的方法。
主要的实现步骤如下:
1首先在类文件的开头部分定义两个内存变量:
②理解与内存数据有关的四个按钮的含义:
MC—清除内存数据;
MR—读取内存数据;
MS—将数据保存到内存中;
M+—使计算结果与内存数据相加;
③最后根据每个按钮的含义编写相应代码就轻而易举了。
4.2设计中遇到的难点
在本次的java计算器的设计实现过程中,遇到很多难点,主要的难点如下:
(1)计算结果的精确度问题
对于计算精确度问题的解决步骤如下:
①在类文件开头引入一个限定格式的语句:
0.0##############"
②在每个输出结果的地方都引用这个格式:
str=df.format(data_One);
jTextField1.setText(str);
(2)实现键盘输入
①0~9十个数字按钮的键盘输入:
②Backspace按钮的键盘输入:
③Esc按钮的功能如下:
4.3本章小结
通过这一章我们了解到了在JAVA中如何更好的运用变量,同时我们也学会了对混合运算的实现,使我们的计算器能够完成更加复杂的运算,另外本章引入了限定数字输出格式的语句,使运算结果更加精确简单,还介绍了如何实现键盘输入数据,使计算器不仅能够使用按钮进入计算,同时也可以用键盘来运算,使用起来更加方便快捷,使用户使用起来更加简便。
对于难点的解决,也让我们学到了更多的知道,完善了自己对JAVA课程更加深一步的认识。
第5章本次设计存在不足与改良方案
5.1本次设计中存在的不足
在本次设计中主要有以下几个方面是不完善的。
(1)数字分组上存在不足:
编写数字分组菜单内的代码时,只实现了表面的现象,只能在输入数据以后再选择数字分组菜单才能实现数据的分组格式,而且格式不能保持不变,如果想要每个数字都以分组的形式显示,只能每个数据都重新选择一次数字分组菜单。
(2)科学型计算器上部分按钮功能没有实现:
由于科学型计算器比较复杂,涉及到的数学知道比较多,所以部分按钮的功能没能实现该有的功能。
5.2本次设计的改良方案
①整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便,能实现比较简单的混合运算。
②科学计算器实现的功能多于标准型,比标准型计算器能够实现更加多的运算,基本达到了科学计算器的标准。
③科学计算器添加上数字分组、科学计数法和三角函数功能,使程序更加完善。
5.3本章小结
通过对本程序的改良,这个程序将会更加完善,问题都是我们自己发现的,只要我们多做,就会发现问题,只有发现问题还会去想怎样去解决问题。
这样系统就会不断的改善,不断的提高。
结论
通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。
这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。
它还让我学会了在网上查阅那些无限的资料。
我深刻地体会到自己所学知识得浅薄,当课程结束以后感觉自己已经掌握了Java的真谛,但是在课程设计中我才发现自己仅仅握了一点皮毛而已,存在的一些问题全暴露出来了。
当然,我还需要不断的学习,因为在目前看来,我所设计的计算器还存在很多不足。
学习还要继续,今后还应不断努力完善自己,用知识武装自己。
只有适应社会发展的需求,适应时代发展的需求,才能在竞争日益激烈的社会中立足。
所以,在今后的学习中,我会严格要求自己,希望在老师的帮助下,自己的努力下,在生活中找到属于自己的位置,可以在生活发光发亮。
参考文献
[1]马世霞,《java程序设计》,机械工业出版社.2010.1
[2]杨武,刘贞《java编程及应用》,北京:
高等教育出版社.2004
[3]张居敏,《java程序设计经典教程》,电子工业出版社.2008.1
[4]冯智圣,《java程序设计习题解析与上机指导》,北京:
冶金工业出版社会,200
[5]印旻,《Java与面向对象程序设计教程》,高等教育出版社,2004.4
[6]林智扬,范明,《JavaSwing程序设计》,中国铁道出版社,2005.5
致谢
论文完成的前提是老师给我提供了舒适的工作、学习环境,并给予我悉心的关怀与指导。
在此表示衷心地感谢。
老师认真负责的工作态度、严谨的治学风格,使我深受启发;
开发的同时,和同学们之间的相互探讨也使我获益匪浅。
一个月时间内,我除基本学会开发java程序外更重要的是学到了兢兢业业,奋发向上的精神,这种精神是我今后人生前进道路上的一种力量。
所以我再次感谢老师和我的同学们。
在本次Java课程设计中,首先要感谢我的指导老师李成楠老师教给了我很多的Java的编程知识,编程思想,还有要感谢我的同学,是他们在我遇到困难时给了我指导,帮助我解决了很多难题。
指导教师评语
指导教师:
年月日
答辩委员会评语
答辩委员会签字: