- 72
- 0
- 约1.21万字
- 约 11页
- 2018-10-09 发布于重庆
- 举报
Java计算器课程设计文档和代码
一.课程设计的目的
计算器在我们的生活中常常会使用到,本次课程设计,通过界面以及其中的逻辑处理,
完成了四则运算的处理。通过awt包或者swing包中的界面设计部分对界面设计的细节可以有更多的了解。利用面向对象的思想,将各个组件的事件响应分别用不同的类表达出来。面向对象的思想从很大程度上可以让程序的思路更加清晰,而且可重用性很高。对于具有相同事件响应的组件则可以调用相同的类来处理事件。除此之外,利用栈的知识来解决运算符优先的问题也让我们对java中的栈有了更多的了解。
1
二.课程设计的任务与要求
a. 使用Java的awt包或Swing包的类库设计图形界面的计算器 b 该计算器能够完成加减乘除的四则混合运算(注意运算优先级) c 使用图形界面中的事件委托机制来处理事件响应
2
三.需求分析
1.该计算器完成的功能有:
用户能够完成四则混合运算+、-、*、/,并且计算器能够自动的识别运算符的优先级,根据输入的运算公式,自动计算出相应的结果。同时完成计算器中的backspace、ce按钮,能够完成消除或者删除的功能。
2.出错处理
当用户如果按下的是除零的操作,显示框将显示“被除数不能为0”。
当用户如果连续多次按下运算符,计算器自动记忆第一次运算符,并且做防连续输入相同的运算符或者是不同的运算符。
当用户在同一个数据中多次输入小数点,计算器能够自动判断小数点重复,自动只记忆第一个小数点。
当用户在同一个数据中输入多个负号,计算器能够自动做重复检查,不显示多余的负号。 当用户在使用backspace功能删除越界数据时候,计算器自动做相应处理。
3.数据处理
在程序的起始,建立了两个栈,分别用来存储操作数和操作符。在计算器的核心运算代买中,运用这两个栈来实现算法中的优先级的处理,使用“#”号来标记目标计算公式的结束。目标计算公式通过计算器的键盘实现输入,当按下“=”号之后,计算器通过调用计算器核心函数来实现数据的处理。
3
四.类层次中各个类的描述(包括属性和方法)
本次课程设计一共分为了5个类,每个类都各自完成不同的功能。
? class MyCalculator: 类MyCalculator是主类,含有main()函数, 通过new CalFrame()来运行程序。
? class CalFrame: 类CalFrame完成的功能是计算器界面的设计,并且将每个组件都添加事件响应。具体的事件响应操作将在其他的类中逐一实现。 ? class HandleWin:点击关闭windows窗口的控制类。
? class HandleNum:字符串输入控制类。
? Class HandleEqual:等号出发事件的响应机制类。 属性包括:
0~9的数字键
JButton num1; JButton num2; JButton num3; JButton num4; JButton num5; JButton num6; JButton num7; JButton num8; JButton num9; JButton num0;
+ - * / 四个控制按钮 JButton plus;
JButton minus;
JButton mutiply;
JButton divide;
. +/- 两个按钮
JButton point;
JButton sign;
Backspace ce = 三个按钮
JButton bs;
JButton ce;
JButton equal;
将这些按钮按照一定的顺序添加到现实面板中。
Panel p1,p2,p3,p4;
//为了布局的方便,利用borderLayout,通过几个面板来添加
Stack lt;Doublegt; OPNT = new Stack lt;Doublegt; ();
//用来记录操作数的栈
Stack lt;Stringgt; OPTR = new Stack lt;Stringgt; ();
//用来记录操作符的栈,栈底压入“#”,取到了“#quot;代表已到栈底
boolean pointswitch = true;//小数点开关
boolean oprateswitch = false;//运算符开关
boolean siginswitch = true;// 正负号开关
4
方法: public void actionPerformed(ActionEvent e)
当按下了控制按钮,根据搜索控制开关来确定能否继续添加,各个相应的处理机制。 public double segmentation(String myString)
字符串优先级计算代码的核心函数。
public int compare(char c
您可能关注的文档
- DSP精品课程管理系统毕业设计.doc
- DSP研究性学习报告基本概念和技能 《近代数字信号处理》课程研究性学习报告.doc
- DSP研究性学习报告频谱计算《数字信号处理》课程研究性学习报告.docx
- DSP语音信号处理课程设计报告书语音信号处理GUI工具箱设计.doc
- DSP课程设计CPU内部AD转换.doc
- dsp课程设计基于DSP的信号发生器设计.docx
- DSP课程设计报告书基于DSP的指纹识别系统设计.doc
- DSP课程设计多波形信号发生器.doc
- DSP课程设计报告基于matlabGUI的IIR低通数字滤波器设计.docx
- DSP课程设计报告滤波器算法设计最小系统设计.doc
- 七年级语文上册期末模拟试卷1(解析版).docx
- 七年级语文上册期末模拟试卷1(原卷版).docx
- 七年级语文上册期末模拟试卷2(原卷版).docx
- 七年级语文上册期末模拟试卷2(解析版).docx
- 期末测试卷(二)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(二)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(三)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(原卷版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
- 期末测试卷(一)(解析版)2024—2025学年七年级语文上册期末测试卷(全国版).docx
原创力文档

文档评论(0)