《java课程设计 简易计算器.docx》由会员分享,可在线阅读,更多相关《java课程设计 简易计算器.docx(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、java课程设计 简易计算器 攀枝花学院 学生课程设计(论文) 题目:实现计算器功能的应用程序 学生姓名:冯斌学号:202210804004 所在院(系):数学与计算机学院 专业:软件工程 班级:软件工程班 指导教师:吴建兵职称:讲师 2022年 6 月20 日 攀枝花学院教务处制 攀枝花学院本科学生课程设计任务书 注:任务书由指导教师填写。 摘要 计算器一般是指“电子计算器”,该名词由日文传入中国。计算器是能进行数学运算的手持机器,拥有集成电路芯片,结构简单,功能较弱,但由于它使用方便、操作简单、价格低廉,因而广泛运用于商业交易中,也是必备的办公用品。 该程序是一个图形界面的简单的java计
2、算器,使用人员能快捷简单地进行操作。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,以及求倒数,求相反数),有退格功能, 归零表示初始化,界面颜色为灰白,该程序支持键盘操作。 关键字计算器,程序,运算,操作 目录 摘要. I 1 绪论 (1) 1.1课程设计的目的 (1) 1.2课程设计的任务与要求 (1) 2 需求分析 (2) 2.1功能需求 (2) 2.2出错处理 (2) 2.3数据处理 (2) 2.4系统环境要求 (2) 3 概要设计 (3) 3.1界面及功能描述 (3) 3.2简要的设计流程 (4)
3、 4详细设计 (5) 4.1计算器界面的设置 (5) 4.2类层次中各个类的描述 (5) 5 系统运行测试 (8) 5.1初始运行界面 (8) 5.2按键测试 (8) 5.3运算符重复输入测试 (9) 5.4被除数为0的测试 (9) 5.5 BACKSPACE按键越界操作 (9) 5.6优先级程序计算 (10) 5.7输出测试 (10) 6 总结 (11) 参考文献 (12) 附录(源代码) (13) 1 绪论 1.1 课程设计的目的 计算器在我们的生活中常常会使用到,本次课程设计,通过界面以及其中的逻辑处理,完成了四则运算的处理。通过awt包或者swing包中的界面设计部分对界面设计的细节可
4、以有更多的了解。利用面向对象的思想,将各个组件的事件响应分别用不同的类表达出来。面向对象的思想从很大程度上可以让程序的思路更加清晰,而且可重用性很高。对于具有相同事件响应的组件则可以调用相同的类来处理事件。除此之外,利用栈的知识来解决运算符优先的问题也让我们对java中的栈有了更多的了解。 1.2 课程设计的任务与要求 a. 使用Java的awt包或Swing包的类库设计图形界面的计算器 b 该计算器能够完成加减乘除的四则混合运算(注意运算优先级) c 使用图形界面中的事件委托机制来处理事件响应 2 需求分析 2.1 功能需求 用户能够完成四则混合运算+、-、*、/,并且计算器能够自动的识别运
5、算符的优先级,根据输入的运算公式,自动计算出相应的结果。同时完成计算器中的backspace、ce按钮,能够完成消除或者删除的功能。 2.2 出错处理 当用户如果按下的是除零的操作,显示框将显示“被除数不能为0”。 当用户如果连续多次按下运算符,计算器自动记忆第一次运算符,并且做防连续输入相同的运算符或者是不同的运算符。 当用户在同一个数据中多次输入小数点,计算器能够自动判断小数点重复,自动只记忆第一个小数点。 当用户在同一个数据中输入多个负号,计算器能够自动做重复检查,不显示多余的负号。 当用户在使用backspace功能删除越界数据时候,计算器自动做相应处理。 2.3 数据处理 在程序的起
6、始,建立了两个栈,分别用来存储操作数和操作符。在计算器的核心运算代买中,运用这两个栈来实现算法中的优先级的处理,使用“#”号来标记目标计算公式的结束。目标计算公式通过计算器的键盘实现输入,当按下“=”号之后,计算器通过调用计算器核心函数来实现数据的处理。 2.4 系统环境要求 操作系统:WIN XP或更高版本 开发语言:java 开发工具:eclipse 3 概要设计 3.1 界面及功能描述 (1)界面布局。创建一个面板,先将所有按钮:所有数字键和运算符键等放在面板上,采用网格布局,具体设计为4行,4列的网格,十六个格子。再添加一个1行4列的网格布局来放置三个功能键:归零,退格,输出。然后,对
7、以上两个面板,采用BorderLayout布局,将按键面板放在计算机的中部,功能键面板放右上角,作为一个新的面板。最后,将文本框放在左上角,新面板放中央,采用边界布局管理器,做为界面的整体布局,这样界面布局就搞定了。 (2)按退格键,将返回到前一次输入状态。 (3)按归零键,输入的数字第一个数字为零。 3.2 简要的设计流程 图3.1 简要的设计流程图 4 详细设计 4.1 计算器界面的设置 本程序的实现使用了swing和awt两个包,主题程序界面按键根据微软计算器的布置界面进行设置,采用比较人性化的常规按键排布。返回计算结果的“=”号键使用了两倍于普通按键面积的设计,使的击中的概率更加大。
8、整体界面是采用了BorderLayout布局,通过4个panel进行布局的详细划分,panel3用来存储位于panel4左下角的GridLayout(1,2,4,4)布局,panel1、panel2、panel3分别用来表示BorderLayout的上中下三个模块。 Panel1中添加了一个Label display,display用来作为显示器,实时的显示输入和计算的数据。其中display需要设置为右对齐和只读属性。 Panel2中添加数字输入键和基本操作符键,panel采用了GridLayout布局,将整个panel2平分为4*4个空间,其中,数字键采用了15磅字体和蓝色文字,操作符采用
9、了15磅字体和红色文字,是的界面更加显眼和便于区分。 Panel4中首先划分为GridLayout(1,2,4,4),在Panel4中,再次使用了GridLayout(1,2,4,4)将panel4的左侧一分为二,左边为panle3,这个的基础上程序往panel3中添加了backspace和ce两个按键,在Panel4的右侧单元格中添加了“=”号按钮,这个时候的“=”号就是相当于两个普通按钮的长度和大小。 整个程序界面的设计工作基本完成。 4.2 类层次中各个类的描述 本次课程设计一共分为了5个类,每个类都各自完成不同的功能。 class MyCalculator: 类MyCalculator
10、是主类,含有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; JBu
11、tton 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 OPNT = new Stack (); /用来记录操作数的栈 Stack OPTR = new Stack (); /用来记录操作符的栈,栈底压入“#”,取到了“#代表已到栈底 boolean pointswitch = true;/小数点开关 boolean oprateswitch = false;/运算符开关 boolean siginswitch = true;/ 正负号开关 方法: public void actionPerformed(ActionEvent e)