java计算器实验报告_第1页
java计算器实验报告_第2页
java计算器实验报告_第3页
java计算器实验报告_第4页
java计算器实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

**职业技术学院信息工程系2.z.---.可修编.课程设计论文设计题目:java计算器学生:指导教师:专业名称:所在院系:-.z.摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。该程序是一个图形界面的java计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。(2)实现除了加、减、乘、除按钮外其他按钮功能。(3)给软件添加一个编辑、查看、帮助的主菜单。(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。(5)科学型计算器与标准计算器之间的菜单切换。Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。与此相对,Swing组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。目录第1章概要设计 11.1查找资料 11.2选题 11.3标准型计算器界面设计11.4本章小节 3第2章程序整体设计说明 42.1程序中所用到的变量 42.2程序部分源代码及注释 42.3本章小节 15第3章程序运行效果 163.1程序运行主界面 163.2程序中各按钮运行界面 163.3本章小节 20第4章设计中遇到的重点及难点 214.1设计中遇到的重点 214.2设计中的遇到的难点 214.3本章小节 23第5章本次设计中存在不足与改良方案 245.1本次设计中存在的不足 245.2本次设计的改良方案 245.3本章小节24结论 25参考文献 26致 27指导教师评语 28答辩委员会评语 29-.z.第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。计算机正以其前所未有的惊人速度向前发展,新的研究成果、新的实用软件不断涌现。计算机应用也普及到各行各业、深入到人类各种社会活动和生产中。为了便于对大量信息的处理,运用计算机软件实现自动管理成为了必然的趋势。其实,“计算器”早已有了一个很长的历史,人们从很早就已经开始进行科学计算了,在人类不断探索不断进步的过程中计算器的用途越来越广,计算结果越来越精确,只有精确的结果才能使社会更加进步,使人类更能准确的掌握数据所反应的社会现象,并根据准确的数据反应进一步研究进步,所有计算已经成为人们生活学习的一个重要工具,对人类来说必不可少。1.2选题Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。图形界面的实现:考虑到简单、实用、高效等特点,就选择了Swing来完成实现,在选择组件上,文本编辑区就选用了jTe*tField作为主要输入输出部件、数字则是选用了Swingponents的utton按钮、简易菜单主要是选用了SwingMenus里面的JMenu控件、菜单所包含的选项是选用SwingMenus的JMenuItem和jRadioButtonMenuItem两个控件。1.3标准型计算器界面设计JAVA文件的建立(1)建立一个名称为“proj_jsq”Java工程,在该工程中添加一个可视化的Java类。类所在的package文件包名称为:pack_jsq;类名:JFra_jsq;类中包含一个main函数()。(2)界面的设计:图1.1标准型计算器界面图1.2数字按钮字体颜色设置图1.3功能按钮字体颜色设置(3)保持代码简洁复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。(4)功能实现在整个设计中要保持完整性,能够实现计算器中最基本的功能,如加、减、乘、除等。明确任务用java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,余数,三角函数,多数连续运算,科学计数法等功能。1.4本章小结通过第一章我们可以了解到这次java课程设计的一个总的概况。掌握了java程序编辑器、图形界面以及文件操作的实现。这次程序设计在设计类的时候考虑到了简单明了。我们设计的优点是:条理清晰,容易理解,容易修改。第2章程序整体设计说明2.1程序中所用到的变量(1)控件变量:JMenu//定义菜单JMenuItem//菜单中项的实现JMenuBar//菜单栏的实现。将JMenu对象添加到菜单栏以构造菜单。JRadioButtonMenuItem//选中一个的时候,禁用另外一个取消选中的时候,释放禁用的那一个JTe*tField//JTe*tField是一个显示用户输入输出的文本区域。JPanel//JPanel作为一个容器,可以包容一些组件,然后将这个JPanel对象作为一个组件添加到另一个容器(称作父容器)中。JToggleButton//用于记录存中是否存在用户保存的数据信息。utton//是用户进行计算时主要的使用工具,一般为其添加actionPerformed事件。(2)其它变量privatedoubledata_One;//用来存储运算的数据privatedoubledata_Two;//用来存储运算的数据privatecharOperator='A';//存放运算符privatebooleanpointIsTyped=false;//判断输入的数据是否是小数privateintmemoryi;//存储存中的整数数据privatedoublememoryd;//存储存中的小数数据2.2程序部分源代码及注释窗体中的菜单栏图解:程序框架图为应用程序提供一个图形化的界面本次设计运行出的程序框架图如图2-1所示编辑查看编辑查看帮助复制粘贴数字分组科学型标准型关于计算器帮助主题(1)复制菜单的功能实现代码如下:(2)粘贴菜单的功能实现代码如下:(3)科学型菜单的功能实现代码下:(4)数字分组的功能实现代码如下:(5)帮助主题菜单的功能实现代码如下:(6)关于计算器菜单的功能实现代码如下:①新建一个VisualClass类文件(名为JDia_About):图2-2关于计算器的介绍②为关于计算器菜单添加actionperformed事件:程序中各个按钮的功能实现:(1)计算器中数字(0~9)按钮所实现的功能代码如下:(2)点按钮的代码如下:①在文件的开头定义一个布尔型的变量:②在点按钮的actionPerformed事件中添加如下代码:(3)正负号按钮功能的实现代码如下:(4)计算器中四则运算符(+、-、*、/)实现的功能代码如下:(5)按钮实现的功能代码如下:(6)按钮实现的功能代码如下:(7)按钮实现的功能:按百分比的形式显示乘积结果。输入一个数,单击“*”,输入第二个数,然后单击“%”。例如,50*25%将显示为12.5。也可执行带百分数的运算。输入一个数,单击运算符(“+”、“-”、“*”或“/”),输入第二个数,单击“%”,然后单击“=”。例如,50+25%(指的是50的25%)=62.5。(8)按钮实现的功能代码如下:①在文件初始位置定义一个变量:②在四个运算符号代码添加:③等于号的代码如下:(9)为JTe*tField控件添加键盘输入(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(jTe*tField1.getTe*t()); if((b*180/Math.PI)%180==0){ a=0; str="0."; jTe*tField1.setTe*t(str); } elseif(b*180/Math.PI==30){ a=Math.sin(b); str=df.format(a); jTe*tField1.setTe*t(str); } else{ a=Math.sin(b); str=Double.toString(a); jTe*tField1.setTe*t(str); str=""; pointIsTyped=false; } } elseif(bj==0){ if(Double.parseDouble(jTe*tField1.getTe*t())%180==0){ a=0; str="0."; jTe*tField1.setTe*t(str); } elseif(Double.parseDouble(jTe*tField1.getTe*t())==30){ a=Math.sin((Double.parseDouble(jTe*tField1.getTe*t()))*Math.PI/180); str=df.format(a); jTe*tField1.setTe*t(str); } else{ a=Math.sin((Double.parseDouble(jTe*tField1.getTe*t()))*Math.PI/180); str=Double.toString(a); jTe*tField1.setTe*t(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计算器中还用到了将数据存入存的方法。主要的实现步骤如下:首先在类文件的开头部分定义两个存变量:②理解与存数据有关的四个按钮的含义:MC—清除存数据;MR—读取存数据;MS—将数据保存到存中;M+—使计算结果与存数据相加;③最后根据每个按钮的含义编写相应代码就轻而易举了。4.2设计中遇到的难点在本次的java计算器的设计实现过程中,遇到很多难点,主要的难点如下:(1)计算结果的精确度问题对于计算精确度问题的解决步骤如下:①在类文件开头引入一个限定格式的语句:DecimalFormatdf=newDecimalFormat("0.0**************");②在每个输出结果的地方都引用这个格式:str=df.format(data_One);jTe*tField1.setTe*t(str);(2)实现键盘输入①0~9十个数字按钮的键盘输入:②Backspace按钮的键盘输入:③Esc按钮的功能如下:4.3本章小结通过这一章我们了解到了在JAVA中如何更好的运用变量,同时我们也学会了对混合运算的实现,使我们的计算器能够完成更加复杂的运算,另外本章引入了限定数字输出格式的语句,使运算结果更加精确简单,还介绍了如何实现键盘输入数据,使计算器不仅能够使用按钮进入计算,同时也可以用键盘来运算,使用起来更加方便快捷,使用户使用起来更加简便。对于难点的解决,也让我们学到了更多的知道,完善了自己对JAVA课程更加深一步的认识。第5章本次设计存在不足与改良方案5.1本次设计中存在的不足在本次设计中主要有以下几个方面是不完善的。(1)数字分组上存在不足:编写数字分组菜单的代码时,只实现了表面的现象,只能在输入数据以后再选择数字分组菜单才能实现数据的分组格式,而且格式不能保持不变,如果想要每个数字都以分组的形式显示,只能每个数据都重新选择一次数字分组菜单。(2)科学型计算器上部分按钮功能没有实现:由于科学型计算器比较复杂,涉及到的数学知道比较多,所以部分按钮的功能没能实现该有的功能。5.2本次设计的改良方案①整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便,能实现比较简单的混合运算。②科学计算器实现的功能多于标准型,比标准型计算器能够实现更加多的运算,基本达到了科学计算器的标准。③科学计算器添加上数字分组、科学计数法和三角函数功能,使程序更加完善。5.3本章小结通过对本程序的改良,这个程序将会更加完善,问题都是我们自己发现的,只要我们多做,就会发现问题,只有发现问题还会去想怎样去解决问题。这样系统就会不断的改善,不断的提高。结论通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论