Java计算器课程设计报告

上传人:tia****nde 文档编号:36948460 上传时间:2018-04-04 格式:DOC 页数:4 大小:42.50KB
返回 下载 相关 举报
Java计算器课程设计报告_第1页
第1页 / 共4页
Java计算器课程设计报告_第2页
第2页 / 共4页
Java计算器课程设计报告_第3页
第3页 / 共4页
Java计算器课程设计报告_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Java计算器课程设计报告》由会员分享,可在线阅读,更多相关《Java计算器课程设计报告(4页珍藏版)》请在金锄头文库上搜索。

1、Java 计算器- 0 - Java 计计算器算器 Java 课课程程设计报设计报告告姓姓 名:名: * 学学 号:号: * 专专 业:业: * Java 计算器- 1 -一.程序要实现的功能:基础功能:类似 windows 计算器-普通计算器所具有的,数的输入、加、减、乘、除、开根号、求倒数、退格、清空,以及数字储存器中的 MR(显示)、MC(清空) 、M+(相加) 、MS(储存)扩展功能: 类似 windows 计算器-科学计算器所具有的,各种函数(包括正三角反三角函数)计算,不同进制转换,逻辑与或非等操作。二程序算法&功能实现(大概)以下为运算功能简易示意图:否是是将屏幕中的数字压入运算

2、栈,将当前运算符压入运算栈调用单目运算函数的方法对当前数字进行计算,并将结果覆盖原数字是否双目运算符调用数字按钮事件监听是否数字开始否不同进制转换:此功能独立于计算器其他功能,计算器运行过程中设定一个变量 carry 储存当前进制转态,每次运算时先将屏幕显示的数字转化成十进制然后带入运算,对于要显示在计算器屏幕的结果也要先进行十进制转换为当前进制然后显示。三.遇到问题及解决方案Java 计算器- 2 -1.1.普通计算器到科学计算器的界面转换普通计算器到科学计算器的界面转换: :科学计算器的界面显然比普通计算器界面要复杂,按钮要多,而无论怎样修改布局都无法完整得在科学计算器和普通计算器之间切换

3、。解决方案:将计算器的界面布局的类设为扩展 JPanel 的类 CreateButton,该类中设置两个方法,一个方法进行科学计算器的界面布局,一个方法进行普通计算器的界面布局,两个方法依靠 CreateButton 类构造函数种的参数决定调用哪个方法,在主的类里面若要在科学计算器和普通计算器之间切换,只要为当前面板 new一个 CreateButton,并设置好参数,就可以换一个界面。2.2.不同进制输入输出与运算问题不同进制输入输出与运算问题: :由于科学型计算器涉及不同进制的输入输出与运算,而不同的进制运算规则稍有不同,因此不同进制输入输出与运算就成了一个问题。解决方案:设置一个全局变量

4、表示当前进制状态,而程序运行过程处理数据都以十进制形式,也就是仅在显示时,按照当前进制状态,将十进制转化为相应进制。3.JAVA3.JAVA 已有的函数计算精度不够已有的函数计算精度不够: :例如 sin 函数计算,java 对 sin 函数计算的参数是弧度制,但是如果用Math.sin()计算 Pi/6(即 sin30 度) ,那么结果是 0.4999999999999999 而不是 0.5。同样,cos,tan 也都出现这种情况。查出原因:Java 中对 PI 的计算只是估算,精度不够。解决方案:如果要计算 sin x , (x 是角度) ,那么先用 Math.sin(x/180*Math

5、.PI) 得到不精确的值 sinx,再将用 Math.rint(sinx*100000000)/100000000.0 进行舍入处理。便得到想要的结果。4.4.运算符重复输入运算符重复输入: :正常情况下是输入一个数值,然后按下运算符按钮,数值,和运算符先后进栈,Java 计算器- 3 -然后再按一次同样的按钮时,运算符再次进栈,造成栈内运算符错位。解决方案:设置一个转态检查机制,也就是设置一个变量储存之前输入一个数字,那么下一次就只能是运算符,如果之前输入的是运算符,那么下一步只能输入数字。运用同样的方法解决了小数点重复,括号重复问题。除以上问题以外,这次程序遇到最多的问题就在使用 用于处理

6、运算的类里,因为该类涉及堆栈操作,如果外部传入参数不符合一般算式的罗列规则,很容易引起空操作,数据丢失,数字重复计算,无限循环等各种错误。这一点上,虽然 Java 没有指针,但似乎在这里碰到的问题,必须得以指针的方式来思考。五.资源列表及说明 本次课程设计代码包括 4 个 java 文件: EvaluateExpression.javaEvaluateExpression.java ExpressStack.javaExpressStack.java CreateButton.javaCreateButton.java Calcuate.javaCalcuate.java其中其中: : Exp

7、ressStack.javaExpressStack.java 是新建的堆栈类,用于创建和处理堆栈数据EvaluateExpression.javaEvaluateExpression.java 是计算表达式类,通过创建堆栈,将传入的数字或运算符储存并做相应的运算 然后返回运算结果CreateButton.javaCreateButton.java 计算器界面按钮布局及其功能方法的类,该类扩展 JPanel 类,布局计算器界面, 并实现了各个按钮的功能。Calcuate.javaCalcuate.java 主类,创建菜单栏,并 new 出相应的布局界面 CreateButton ()然后在窗口 中显示。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号