ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:163.77KB ,
资源ID:6400056      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6400056.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java语言所编程设计的标准计算器毕业设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java语言所编程设计的标准计算器毕业设计.docx

1、java语言所编程设计的标准计算器毕业设计武汉工商学院信息工程学院项目名称: 计算器 学生姓名: 董莹 学 号: 14406005 班 级: 物联1班 指导教师: 李凤麟 2015年12月29日摘 要本计算器是由java语言所编程设计的标准计算器,该计算器能够实现计算器最基本的运算功能,可以进行十进制下简单的四则运算(加法、减法、乘法、除法)、求余,且有小数点、正负号、求倒数、退格和清零功能。利用Java GUI图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,在设计完计算器的界面后还需要建立事件监听函数,还有获取事件源标签函数,等一系列的函数来实现计算其内部功能的

2、实现。使得使用计算器时简单明了,清晰可见,操作轻松。该课程设计涉及的知识范围广泛,需要查阅大量的资料。通过本课程设计能够使学生本身较全面的掌握面向对象程序设计的有关概念和开发方法,通过对已学知识的运用以及拓展,是学生能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。关键字:java语言,计算器,算法目 录1 需求分析 12 系统分析 23.1.1 界面设计 33.1.2 初步设计思路 33.2 详细设计 43.2.1 程序流程图 43.2.2 程序主要代码及说明 54.1 界面的实现 84.2 基本运算功能的实现 851 加法运算 952 减法运算 953 倒数运算 954 取余数

3、运算 1055 开方运算 1056 负数运算 115.7 退格运算 115.8 清零运算 12总结与心得 13参考文献 141 需求分析随着人类生活水平的提高,人类的需求也在不断的增加,数据出现在生活中的每一个角落,因此计算机便成了必不可少的生活工具。随着数据量的不断增加,古老的计算工具已经被人类淘汰,只有计算器才能代替计算这一项艰巨的任务。计算器的优点在于运算速度快,携带更加便捷,价格便宜,操作更加方便。在这个生活节奏极其快速的时代,没有计算器将会带来意想不到的麻烦。因此计算器的诞生其实是一种必然的事件。计算器功能主要包括:加、减、乘、除、取余、小数点、正负号、求倒数、开根号,退格和清零功能

4、。其中基本运算功能分别通过handleNumber和 handleOperator函数来实现。例如加法运算的实现,在handleOperator函数下用If语句进行判断字符串operator与字符串“+”是否相等,如果相等,函数handleNumber和 handleOperator共同作用下实现加法运算功能。同样计算器的其他运算减法,乘法,除法等都是需要进行operator与字符串“-”、“*”、“/”等字符串的比较来实现相应的功能。该系统功能的模块图如图1.1所示。系统功能模块图1.12 系统分析整个计算器的程序中运用窗体容器JFrame以及面板容器JPanel,引用接口(事件侦听器)Ac

5、tionListener。程序布局选用了网格布局(GridLayout),边界布局(BorderLayout),基本控件包括文本框控件(JTextField)。根据程序设计要求要实现各种功能,如加、减、乘、除,以及求余、小数点、正负号、求倒数、退格和清零功能。那么一开始就需要创建一个计算器界面,其次还要选用网格布局,便于各类按钮之间的分布。之后,计算器上的功能需要以按钮的形式呈现在窗口内,需要定义JButton类,并实例化对象。创建构造函数,初始化计算器,设置窗口大小及位置、颜色布局。并设置面板将各部分的组件放置在单独的面板内,设置面板的位置。最后将各部分面板整合在一个大窗口内。定义多种处理事

6、件函数,保证程序能够正常执行。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生(例如输入的数据为非字符串),所以该程序中最后还需要有异常处理机制。3 概要设计与详细设计3.1 概要设计3.1.1 界面设计思路设计一个计算器界面,首先要了解界面的布局情况,其次要明白计算器基本框架。如何才能实现计算器的最基本界面,即包括所有控件大容器是如何创建的。通过查阅相关资料可知JFrame是窗体类,JPanl是面板类。首先创建窗口,让计算器的各部分控件有一个位置去存放,而控件有需要通过中间桥梁面板才能存放在窗体中,所以需要将所有控件放在相应的面板内,由于控件数目多,需要利用字符串来定义各部分控件。

7、还有需要利用构造函数给计算器命名,以及设置JFrame窗口的大小以及位置分布还有颜色等的设置。3.1.2 初步设计思路(1)根据设计出来的图形界面,首先应该设计其GUI界面,总体的界面有一个文本框,23个按钮,总体界面采用了GridLayout和BorderLayout布局,将文本框放置在最北方,然后将数字以及算术按钮放置到一个面板Panel内,并且将该部分内容置于界面的南方,完成界面的设计。(2)根据界面可知设计计算流程首先要点击数字,通过数值按钮可以将数值添加到文本框内,因为有些运算设计的数值有好几位数,所以需要将输入的数值保存到一个字符串当中,当再次点击数字按钮时将之前输入的数字与新的数

8、字拼接起来,一起添加到文本框中,直到点击运算符按钮,将文本框中的字符串保存在一个字符串变量中,然后重置文本框内容,输入运算符隐藏到文本框内,随后输入第二个数据,用相同的方法保存数据,输入完毕后,通过控制等号运算符将字符串数据转换成双精度类型,然后就计算出结果,并显示在文本框中。(3)基本运算都能够实现之后,该系统为满足计算的需求,还设置了前清零、退格、开方、求余数等运算。清零只需要直接重置文本框内容。退格功能采用substring函数截取字符串长度来实现退格功能。还有双精度数的运算,需要用到if循环语句对数字进行控制输出。3.2 详细设计3.2.1 程序流程图程序流程图3.1.23.2.2 程

9、序主要代码及说明程序采用继承JFrame类,利用数组来定义JButton按钮,使界面获得多个按钮,同时在程序中引用监听接口,采用4行5列的网格布局,来完成计算器界面的基本设置。设置窗体方面,设置JFrame为可见,默认为不可见。最后对按钮进行计算分析,分别设定处理数据的handleNumber方法,运算符控制的handleOperator方法,处理退格handleBackspace方法、以及计算结果的方法等等。一步一步的实现计算器的基本功能。(1)处理数据的方法private void handleNumber(String key) if (firstDigit) / 输入的第一个数字 re

10、sultText.setText(key); else if (key.equals(.)& (resultText.getText().indexOf(.) 0) text = text.substring(0, i - 1); if (text.length() = 0) resultText.setText(0); firstDigit = true; operator = =; else resultText.setText(text); 功能说明:首先获取文本框内的数据,然后需要判断该数据的长度,定义一个int型的变量i来判断数据长度,如果文本框数据长度大于0,则退格,将数据的自后一

11、个字符去掉,当数据长度i等于0时,表示文本框内无数据内容,则此时退格表示初始化计算器内的数值。否则显示新输入的内容。4 编码实现4.1 界面的实现计算器整个程序主要采用网格布局的方式,所以一开始需要导入GridLayout的包,还有控件JButton包, 窗体JFrame包,面板JPanel包,以及界面内部的文本框需要导入的JTextField包。程序一开始需要定义一个自定义类mi让他继承窗体JFrame并引用行为监听接口ActionListener。然后定义一个字符串数组String KEYS是控件获得相关运算符的名字,以及功能键的名字,初始化控件字符串数组长度以及文本框内容。编写构造函数,

12、将窗口标题设置为“简易计算器”。同时定义一个init函数初始化计算器,设置面板背景颜色为灰色,设置窗口位置(x,y)坐标为(500,500)。初始化计算器将文本框内容设置为右对齐方式,同时将文本框的颜色设置为白色。初始化计算器按钮,将数字与运算符键放在同一个面板内,实例化一个面板的对象calckeysPanel,通过对象调用方法setLayout来设置数字键与运算键在文本框中处的位置。通过for循环来控制控件数。初始化功能键,将功能键放置到一个面板内,并设置面板位置。新建一个大的面板,将开始建立的两个小面板放在这个大面板内,然后调整盖大面板的位置。另外再建一个新面板放置文本框,设置其位置。因为

13、JFrame不能直接添加组件,需要用getContentPane()函数获取内容面板,再在内容面板上进行添加组件,最后是整体布局,将文本框面板放在最北方,大面板放在窗体中间,整个窗体布局建造完成。4.2 基本运算功能的实现(1)基本运算的实现(加、减、乘、除、取余、开方、取负数、倒数)将输入的第一个数值保存到一个字符串当中,当再次点击数字按钮时将之前输入的数字与新的数字拼接起来,一起添加到文本框中,直到点击运算符按钮,将文本框中的字符串保存在一个字符串变量中,然后重置文本框内容,输入运算符隐藏到文本框内,随后输入第二个数据,用相同的方法保存数据,输入完毕后,按“=”键获得结果。而开方、取余数、

14、求倒数这三个运算符的操作数只有一个,即输入操作数后保存到字符串当中直接输入运算符按等号键直接获取结果。(2)功能的实现面板内有多种按钮存在时,需要定义一个获取事件源标签label,调用getContentPane函数,将事件源标签与用户按压的按钮进行比较,以保证计算器能够正确无误的执行指令,例如如果点击的是退格键,则文本框数据的最末一位数会消失,其他功能按钮原理类同。5 程序运行结果51 加法运算加法运算结果被设置在文本框内,并且是以右对齐的方式至于文本框内,当再次输入数据时,计算器将自动清除执行过的数据,继续执行下一步运算。加法运算结果如下图5.1所示(运算案例:12+56)。加法运算结果图

15、5.152 减法运算减法运算结果被设置在文本框内,并且是以右对齐的方式至于文本框内,当再次输入数据时,计算器将自动清除执行过的数据,继续执行下一步运算。减法运算结果如下图5.2所示(运算案例:97-67)。减法运算结果图5.253 倒数运算既可以直接输入数据进行倒数运算,还可以先求出一个数据的倒数然后再执行其他的运算符,程序能够正常执行,毫无影响,同时当输入的数据为0时,文本框内会报错,提示用户0是没有倒数的。倒数运算结果如下图5.3所示(运算案例:2)。倒数运算结果图5.354 取余数运算取余数运算通过“%”这一运算符实现数据的运算,执行此运算时,除数也不能够为0,否则将失去取余数运算的意义

16、。取余数运算结果如下图5.4所示(运算案例:5%8)。取余数运算结果图5.455 开方运算执行开方运算需要注意的是开根数必须大于或等于零,否则执行结果将会报错。开方运算结果如下图5.5所示(运算案例:16)。开方运算结果图5.556 负数运算输入一个数字,大小范围不限,然后输入负数运算按钮执行结果。负数运算结果如下图5.6所示(运算案例:26)。负数运算结果图5.65.7 退格运算执行退格运算符时需要注意的是,被清除掉的数字是从右往左的第一个数字,如果该数据经过多次执行退格运算符后,文本没有任何内容,则backspace的含义表示初始化计算器里面的数据。退格运算结果如下图5.7所示(运算案例:

17、-26)。退格运算结果图5.75.8 清零运算清零运算与初始化运算有一定的区别,清零运算会将数值变成0,当下次直接输入数据时数据左边会多出一个零来,因此如果想要是数据清空时最好不要选择此按钮。清零运算结果如下图5.8所示(运算案例:-2)。清零运算结果图5.8总结与心得一学期一次的课程设计终于接近尾声了,其实一开始我还是有点小担心的,但是又有点小小的喜悦,担心是因为课程设计是一项艰巨的任务,需要花大量的时间查阅相关的资料,将所学知识进行整合总结。但是相对于C语言来说,我还是很自信的觉得Java比C语言学得更好,基本的语法已经掌握。通过对这次的计算器窗体的编写,我更加熟悉了java图形用户界面的

18、设计原理和程序的结构以及java awt和swing的组合。学会将书本上的知识运用在实际中,提升了编程能力,尤其在Java GUI图形界面的布局方面学到颇多,以前布局很乱并且很多布局都是无效的。在编写程序过程中我还是遇到了不少的困难,比如说按钮布局大小及其位置不能够得到很好地调节,还有对于按钮的颜色调节不知道该用什么方法,通过在网上查找资料案例才了解到了setForeground这个函数可以控制按钮颜色。还有其他的一些问题,通过查阅大量的资料和同学的互相帮助,解决了遇到的一些问题,该程序充分发挥了Java GUI界面布局的优越性。另外按钮功能的实现也是本次课程设计的一大难点,怎样实现那些功能是关键。这次课程设给我的感受就是:只要你有心去努力思考问题,查阅资料,就不怕你完成不了课程设计。参考文献1博彦科技.编程高手ASPM.北京大学出版社,2000.94-972王冬青.JAVA课程设计与开发的思考J.中国电化教育.2002.103耿祥义,张跃平. JAVA实用教程M. 清华大学出版社,2003.5.1:1-3544 孙涌. 现代软件工程M.北京希望电子出版社,2003.8:1-2465 萨师煊,王珊. 数据库系统概论M. 高等教育出版社,2002.2:3-460语言类综合项目实训报告成绩评定分 数: 评阅日期: 评阅教师:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1