资源描述
基于JAVA计算器设计和实现
学院(系): 软件学院
专 业: 软件工程
学 生:
学 号:
班 级:
指导老师:
完成日期 年 10 月
基于JAVA计算器设计和实现
[摘要]
该文档是相关对Java版计算器功效进行描述和介绍,该程序是要个图形界面简单Java计算器,含有良好界面使用人员能快捷简单进行操作。即时正确取得需要计算结果,充足降低了数字计算难度和节省了时间,对大家生活有一定帮助。能够进行简单四则运算(加、减、乘、除等)。界面简单易操作 ,具体程序实现了:
(1) 实现简单加、减、乘、除、运算。
(2) 实现了除了加、减、乘、除按钮外其它按钮功效,如:C表示清零,del表示删除。
(3) 实现了连续运算能力。
关键词:Java语言 四则运算 计算器
目 录
1,绪论 2
1.1java版计算器意义和结构 2
1.1.1java版计算器意义 2
1.1.2java版计算器论文结构 2
2,开发平台介绍相关技术介绍 2
2.1开发平台介绍 2
2.1.11JAVA平台 2
2.1.2windows系统 2
2.1.3eclipse环境-------------------------------------------------------------------------------------------2
2.2关键技术介绍 2
2.2.1JFrame 2
2.2.2按钮创建 2
2.2.3GUI------------------------------------------------------------------------------------------------------2
2.3本章小结 2
3,需求分析 3
3.1可行性分析 3
3.2需求描述 3
3.3面向对象分析(用例图) 3
3.4功效分析-------------------------------------------------------------------------------------------------------3
3.5本章小结-------------------------------------------------------------------------------------------------------3
4,系统设计 3
4.1概要设计 3
4.2具体设计 3
5,系统实现 3
6,总结和展望 4
7,参考文件 4
8,致谢 4
第一章:绪论
1,java版计算器意义和结构
(1) java版计算器意义
所谓计算器通常指是电子计算器。计算器是日常生活中十分便携有效工具,能够实现加减乘除等简单运算功效。本论文采取了java编程语言实现计算机功效。该计算器大大降低了数字计算难度而且提升了计算正确度和正确度。使用简单,适合广大工作人员和学生使用。
伴随信息时代步伐,越来越得多数字需要我们去处理,然而在我们日常生活中碰到部分基础数字运算,以往简单口算笔算,然而现在不一样了,大家对计算机手机依靠越来越高,碰到计算机问题不愿意用脑去思索,而是交由计算机或手机来完成。为了给自己设计一个能够胜任自己学习工作机会计算器,决定自己经过所学知识来编写一个简单计算机。
(2)论文结构
本文共分为8章,各章关键内容介绍以下:
第一章:首先介绍课题研究意义,java版计算器关键意义和本论文组织结构。
第二章:关键介绍系统开发平台,关键关键技术以下:Frame创建,按钮创建。
第三章:关键介绍本系统可行性分析,性能分析,用户功效需求分析,需求分析,
面向对象分析,关键功效分析。
第四章:关键介绍系统设计,概念设计,包含功效模块图,具体设计,时序图,步骤
图和概述,还有逻辑设计。
第五章:关键介绍系统实现,关键编码和实现过程。关键功效界面,界面步骤描述,
关键代码。
第六章:关键介绍总结和展望
第七章:关键介绍参考文件,在完成代码过程中参考书籍全部有哪些;
第八章:致谢:感谢老师指导,感谢同学指导,感谢同学们在学习过程中提供
素材和帮助。还有在论文和排版过程中提供热心帮助。
本章小结:
本章关键介绍了java版计算器意义,和本论文结构。
第二章 :开发平台介绍和关键技术
1,开发平台介绍
(1)Java平台
Java是一个能够在不一样操作系统(比如windows,unix等)上运行编程语言,Java平台是指运行在各终端(如pc,服务器,移动设备,嵌入式设备)系统软件。PC机上Java程序是javaSE上开发出来,服务器端java程序是javaEE开发出来,移动设备java程序是用JAVAME开发出来。
Java语言在网络编程方面应用得很广泛,作为一个新程序设计语言,它简单多变,面向对象,不依靠操作系统特点,含有很好移植性和安全性,这些特点给网络编程带来了很多便利。Java平台依据用途来区分,能够分为三个版本。
JavaSE—Java Standard Edition ,这个是Java标准版,关键用于桌面级应用和数据开发。
JavaEE-Java Enterprise Edition ,这个是Java企业版本,提供了企业级开发多种技术,关键用于企业开发,现在用最多也就是这个平台。
JavaME-Java Micro Edition,这个版本烦人java平台关键用于嵌入式和移动式开发,最常见就是手机应用软件开发。
Java作为一门优异编程语言,相对于其它类似语言含有一定优越性,这是由Java语言以下特点决定。
Java语言含有简单,面向对象,分布式,安全,可移植性,多态特点。
Java语言是一个面向对象语言,经过了解部分关键概念就能编写出多种功效代码。
Java语言关键集中用在类设计和接口功效方面,提供了继承及多态机制,对类中组员变量和方法可进行覆盖和重写,实现了代码反复使用,使代码编写简单。
Java语言不支持指针,全部访问,必需经过具体对象变量来实现,这么既保护了私有变量,同时也避免了部分错误。
Java语言编译产生文件是字节码文件,字节码文件和平台无关。
Java语言支持多线程技术,将多个程序任务分成多个并行子任务。
(2) windows系统
1980年,乔布斯介绍了一项新技术,用户图形界面,比尔盖茨也意识到这项技术潜在价值,于是率领微软开始了Winows工作。1985年又公布了第一代窗口式多任务系统,该操作系统推出,意味着PC机开始进入了图形界面,大部分操作对象全部用对应图标来表示,这种操作界面形象直观,伴随不停改善,它还增加了多个系统工具,用于自动检测硬盘,文件系统和配置信息,能够自动修复部分通常性系统错误。内部还安置了大量驱动程序,基础上包含了市面上流行多种品牌,多种型号硬件最新驱动程序,而且硬件检测能力也有了很大提升。同时,还提供了文件分配系统,可支持2G以上大分区,而对硬盘,无需重新分区和格式化,直接能够使用转换器转换。把最新多媒体技术,网络技术和Internet技术结合在了一起,使访问网络愈加方便和快捷。
技术是在不停进步,操作系统也在不停更新,没有那个版本操作系统是永恒主流,所以,我们在学习和使用某个操作系统过程中把握住它最基础方面,并在此基础上进行大胆尝试和创新,从而跟上它发展步伐。
(3) eclipse环境
Eclipse是一个开放源代码,基于Java可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于经过插件组成构建开发环境。幸运是,Eclipse附带了一个标准插件集,包含Java开发工具(Java Develepment Tools,JDK).
Eclipse是一个开放源代码软件项目,专注于为高度集成工具开发提供一个全功效,含有商业品质工业平台。它关键由Eclipse项目,Eclipse工具项目和Eclipse技术项目三个项目三个项目组成,具体包含四个部分组成---------Eclipse Platform则是一个开放可扩展IDE,提供了一个通用开发平台。它提供建造块和结构并运行集成软件开发工具基础。Eclipse Platform许可工具建造者独立开发和其它工具无缝集成工具从而无需分辨一个工具功效在哪里结束,而另外一个工具功效在哪里开始。
软件开发包是Eclipse是Eclipse Platform,JDT和PDE所生产组件合并,它们能够一次下载。这些部分在一起提供了一个含有丰富特征开发环境,许可开发者有效建造能够无缝集成到Eclipse Platform中工具。Eclipse SDK由ECLIPSE项目生产工具和来自其它开放源代码第三方软件组合而成。Eclipse项目标生产软件以GPL公布,第三方组件各自本身许可协议。
2,关键技术介绍
(1) JFrame
JavaGUI程序基础思绪是以JFrame为基础,它是屏幕上window对象,能够最小化和最大化,关闭。它基础板块是swing,swing三个基础结构块是标签,按钮,文本字段。并期望用户知道怎样处理它们。JFrame类就是处理这个问题----它是一个容器,许可程序员把其它组件添加到它里面,把它们组织起来,并把它们展现给用户。
JFrame实际上仅仅让程序员把组件放入其中并展现给用户。比起它表面上简单性,它实际上是Swing包中最复杂组件。为了最大程度地简化组件,在独立于操作系统Swing组件和实际运行这些组件系统之间,JFrame起着桥梁作用。JFrame在操作系统中是以窗口形式注册,这么就能够得到很多窗口特征。
显示文件在窗体上类也扩展了JFrame,读取文件类也扩展了JFrame;
(2) 按钮创建:
含义:对话框中一个图形元素。当激活它时,能实施指定功效。用户能够采取以下方法来激活按钮:用鼠标在其上单击,或当按钮取得聚焦时按下enter键。在button元素内部,您能够放置内容,比如文本或图像。
使用:创建按钮在窗体上,用来窗体跳转连接。点击按钮来实现跳转。
关键字:
setBounds表示按钮大小位置
setText表示按钮上显示内容
Button b=new Button()用来创建对象。
(3) initGUI
GUI全称为Graphical User Interface,简称GUI,又称图形用户接口,是指采取图形方法显示计算机操作用户界面。图形用户界面是一个人和计算机通信界面显示格式,许可用户使用鼠标等输入设备操纵屏幕上图标或菜单选项,以命令,调用文件,开启程序或实施其它部分日常任务。和经过键盘输入文本或字符命令来完成例行任务字符界面相比,图形界面有很多有优点。图形界面由窗口,下拉菜单,对话框和其对应控制机制组成,在多种样式应用程序中全部是标准化,既相同操作总是以一样方法来完成,在图形用户界面,用户看到和操作全部是图形对象。
GUI即人机交互图形化用户界面设计。GUI广泛应用是当今计算机发展重大成就之一,它极大地方便了非专业用户使用。大家以后不再需要死记硬背大量命令,取而代之是能够经过窗口,菜单,按键等方法来方便地进行操作。而嵌入式GUI含有下面多个方面基础要求:轻型,占用资源少,高性能,高可靠性,便于移植,可配置等。
3,本章小结
本章关键讲述本课程设计用到所用到关键技术,和关键知识点。本系统是在Windows系统Java平台下eclipse环境下完成,所以窗体创建,按钮创建这全部是Java经典程序开发。
第三章 :需求分析
1,可行性分析:
(1)实用性分析
在我们日常生活中,计算开支收入时,大额数字或是多倍小数计算全部需要计算器帮助,而在学习部分科目是,也常常要处理数字。即使现在计算器价格比较低廉,不过功效过于简单计算器不能满足个人需求,多功效价格比较贵,很多功效根本用不到。所以我们想用自己所学知识设计开发一个属于自己简单计算器来完成学习生活需求。
(2)经济可行性
本课程设计开发过程中,不需要其它额外经济成本,所以经济是含有良好可行性。
2,需求描述
(1)编写目标
a:复习巩固java语言基础知识,深入加深对java语言了解和掌控。经过本课程设计使我们能够全方面掌握面向对象设计相关概念和开发方法,方便能较全方面了解掌握和综合利用所学知识,提升本身编程能力。设计uige计算器界面,定义计算器所需按钮并给予给其它按钮名称,使得使用计算器时简单明了,清楚可见,操作轻松。
b:课程设计为大家提供了一个既动手又动脑,独立实践机会,将书本上理论知识和实际有机结合起来,锻炼我们分析处理实际问题能力。提升魔门适应实际,实际编程能力。给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始实施那个按钮所定义算法,生成算法并显示。
c:培养我们在项目开发中创新意思及能力,经过亲身实践,利用所学编写简单面向对象程序,提升对面向对象及java语言了解。
(2) 功效模块设计
a:加法
两个数据进行加法操作,能够为小数
b:减法
两个数据进行减法操作
c:乘法
两个数相乘操作
d:除法
两个数相除操作
e:开平方
两个非负数进行开方运算,能够是小数
3,面向对象分析
(1)含义:
面向对象分析一个新系统分析方法。它采取是面向对象风格进行系统分析和需求定义关键方法。面向对象分析关键在于了解问题控件并将其模型化。
面向对象分析采取大家认识客观事物和了解现实世界过程中常见基础法则:
a:认识对象和其属性;
b:认识对象整体及其组成部分;
c:对象形成及类区分;
d:对问题空间进行了解并抽象成模型;
面向对象分析有五个阶段:标识对象,标识结构,标识专题,定义属性,定义服务,即分五个层次建立面向对象分析模型。面向对象分析优点是使功效分析和数据分析统一概念和方法,克服了结构化分析中二者之间不一致性和协调性。
(2) :系统功效图:
加法运算
开方
减法预算
计算器
乘法运算
除法运算
相反数
图3.1
(3)用例图:
计算器
输入数据
存放数据
计算
用户
显示结果
图3.2
5,本章小结:
本章关键介绍了系统可行性分析和多种需求分析。可行性分析在第一章也有所表现,本系统含有良好发展前景,而且技术也比较常见,成熟,经济可行性良好,数据可行性也良好。Java环境对开发程序对性能需求较高。
第四章系统设计
1,概要设计
(1)含义:概要设计是一个设计师依据用户交互过程和用户需求来形成交互框架过程,其结果往往以反应交互控件部署,界面元素分组和界面整体版式页面框架图形式来展现。这是一个在用户研究和设计之间架起桥梁,使用户研究和设计无缝结合,将用户目标和需求转换成具体界面设计处理方案关键阶段。
概要设计关键任务是把需求分析得到系统扩展用例图转换成软件结构和数据结构。设计软件结构具体任务是:将一个复杂系统按功效进行模块划分,建立模块层次结构及调用关系,确定模块间接口及人机界面等。数据结构设计包含数据特征描述,确定数据结构特征,和数据库设计。显然,概要设计建立是目标系统逻辑模型。
(2) 模块图
计算器
类继承
创建按钮
创建窗体
图
图4.1
(3) 概述:标准计算器界面采取“图形界面程序(GUI)”。GUI为用户和应用程序之间交互提供了直观方便交流方法。用户使用鼠标键盘操作图像界面上按钮菜单等单位元素向计算机系统发送命令,系统运行结果以图形方法显示给用户。
2,具体设计(时序图)
(1)时序图假如所表示
结果显示界面
按钮界面
用 户
1,开始
2,点击按钮
3,接收到数据
4,获取信息,将要显示界面
5,显示
6,用户查看结果
图4.2
(2)概述:
a:用图形界面实现界面;
b:经过设置布局,控件等来丰富界面;
c:按钮键接收数据,处理后显示结果;
第五章 :系统实现
1:关键功效界面
图5.1
2:界面功效描述
(1)加法运算
本计算器能够实现多个运算数相加,比如:1+2+3
运算结果为6
(2)减法运算
本计算器能够实现多个运算数相减,比如:4-3-2
运算结果为-1
(3)乘法运算
本计算器能够实现多个运算数相乘,比如:2*3*4
运算结果为24
(4)除法运算
本计算器能够实现多个运算数相除(除数不为0)比如:15/5/3
运算结果为1,当除数为0时,计算器无法运算显示结果为0
(5)求相反数
本计算器能够求任意一个数相反数,比如:1相反数
所求结果为-1
(6)开方运算
本计算器能够对非负数进行开方运算,比如:9开方
运算结果为3
3,关键代码:
(1)窗口和按钮面板
public Calculator() {
// 主面板
panelSuper = new JPanel();
panelSuper.setLayout(null);
// 设置窗口位置
double width = Toolkit.getDefaultToolkit().getScreenSize().width;
double height = Toolkit.getDefaultToolkit().getScreenSize().height;
this.setBounds((int) (width - WIN_W) / 2, (int) (height - WIN_H) / 2,
WIN_W, WIN_H);
// 窗口配置
this.setTitle("java版计算器");
this.validate();
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// 添加计算器按钮面板
myPanel = new MyPanel();
this.add(myPanel, BorderLayout.CENTER);
}
(2)计算器显示器
jTextField = new JTextField(25);
jTextField.setHorizontalAlignment(JTextField.RIGHT);
jTextField.setEditable(false);
jTextField.setBackground(new Color(255, 255, 255));
jTextField.setText("0");
this.add(jTextField);
(3)配置按钮大小
button1.setPreferredSize(new Dimension(67, 40));
button2.setPreferredSize(new Dimension(67, 40));
button3.setPreferredSize(new Dimension(67, 40));
button4.setPreferredSize(new Dimension(67, 40));
button5.setPreferredSize(new Dimension(67, 40));
button6.setPreferredSize(new Dimension(67, 40));
button7.setPreferredSize(new Dimension(67, 40));
button8.setPreferredSize(new Dimension(67, 40));
button9.setPreferredSize(new Dimension(67, 40));
button0.setPreferredSize(new Dimension(67, 40));
buttonJia.setPreferredSize(new Dimension(67, 40));
buttonJian.setPreferredSize(new Dimension(67, 40));
buttonCheng.setPreferredSize(new Dimension(67, 40));
buttonChu.setPreferredSize(new Dimension(67, 40));
buttonDeng.setPreferredSize(new Dimension(67, 40));
buttonDian.setPreferredSize(new Dimension(67, 40));
buttonDel.setPreferredSize(new Dimension(67, 40));
buttonC.setPreferredSize(new Dimension(67, 40));
buttonZF.setPreferredSize(new Dimension(67, 40));
buttonGH.setPreferredSize(new Dimension(67, 40));
(4)计算器初始化
public void init() {
d1 = new BigDecimal("0");
d1 = new BigDecimal("0");
key = "=";
oper = '=';
jTextField.setText("0");
irst = true; // 用于标识是否进行连续操作
(5)计算
public BigDecimal operate(BigDecimal a1, char c, BigDecimal a2) {
MathContext mc = new MathContext(10, RoundingMode.HALF_DOWN);
switch (c) {
case '+':
return a1.add(a2);
case '-':
return a1.subtract(a2);
case '*':
return a1.multiply(a2);
case '/':
if (pareTo(new BigDecimal("0")) == 0) {
init();
return new BigDecimal("0");
}
return a1.divide(a2, mc);
default:
return a2;
第六章 :总结和展望
在设计程序过程中,老师和同学给了我很多帮助和支持,老师认真负责工作态度和严谨治学风格让我深受启发。和同学们之间讨论让我受益匪浅。当然,我还需要不停学习,因为在现在看来,我所设计计算器还存在很多不足,以后还需不停努力完善自己,用知识武装自己,只有使用社会发展需求适应时代发展需求,才能在竞争日益猛烈社会中立足。所以,在以后学习中,我会在以后学习中严格要求自己,期望在老师帮助下在,自己努力下,在生活中找到属于自己位置,取得更大进步。
第七章 :参考文件
[1]马世霞,《java程序设计》,机械工业出版社..1
[2]杨武,刘贞《java编程及应用》,北京:高等教育出版社.
[3]丁振凡《java语言使用教程》,北京邮电大学出版社..9
第八章 :致谢
在此我要感谢我老师在课程设计上给我们指导和给帮助,这是我们能顺利完成这次课程设计关键原因,更关键是老师在课堂上出色讲解,让我们在写课程设计时愈加完善。在此期间,我不仅学到了很多新知识,而且也开阔了视野,提升了自己设计能力。其次,我要感谢帮助过我同学,她们为我处理了很多不太明白地方,还有部分素材提供。最终,再次感谢我老师和同学,诚心说一句:谢谢!
附源代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.awt.Color;
/**
* java版计算器
*/
public class Calculator extends JFrame {
final int WIN_W = 295, WIN_H = 292;
JPanel myPanel, panelSuper;
public Calculator() {
// 主面板
panelSuper = new JPanel();
panelSuper.setLayout(null);
// 设置窗口位置
double width = Toolkit.getDefaultToolkit().getScreenSize().width;
double height = Toolkit.getDefaultToolkit().getScreenSize().height;
this.setBounds((int) (width - WIN_W) / 2, (int) (height - WIN_H) / 2,
WIN_W, WIN_H);
// 窗口配置
this.setTitle("java版计算器");
this.validate();
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// 添加计算器按钮面板
myPanel = new MyPanel();
this.add(myPanel, BorderLayout.CENTER);
}
public static void main(String[] args) {
new Calculator();
}
/**
* 计算器按钮面板类
*/
class MyPanel extends JPanel implements ActionListener {
JButton button1, button2, button3, button4, button5, button6, button7,
button8, button9, button0, buttonJia, buttonJian, buttonCheng,
buttonChu, buttonDeng, buttonDian, buttonC, buttonDel,
buttonZF, buttonGH;
JTextField jTextField; // 计算器显示器
char oper; // 操作符
String key, allKey = ".±del", jjccKey = "+-*/";
BigDecimal d1, d2;
boolean first;
public MyPanel() {
// 设置布局
this.setLayout(new FlowLayout(FlowLayout.LEFT, 4, 5));
// 计算器显示器
jTextField = new JTextField(25);
jTextField.setHorizontalAlignment(JTextField.RIGHT);
jTextField.setEditable(false);
jTextField.setBackground(new Color(255, 255, 255));
jTextField.setText("0");
this.add(jTextField);
// 计算器按钮
button1 = new JButton("1");
button2 = new JButton("2");
button3 = new JButton("3");
button4 = new JButton("4");
button5 = new JButton("5");
button6 = new JButton("6");
button7 = new JButton("7");
button8 = new JButton("8");
button9 = new JButton("9");
button0 = new JButton("0");
buttonJia = new JButton("+");
buttonJian = new JButton("-");
buttonCheng = new JButton("*");
buttonChu = new JButton("/");
buttonDeng = new JButton("=");
buttonDian = new JButton(".");
buttonDel = new JButton("del");
buttonC = new JButton("c");
buttonZF = new JButton("±");
buttonGH = new JButton("√");
button1.setPreferredSize(new Dimension(67, 40));
button2.setPreferredSize(new Dimension(67, 40));
button3.setPreferredSize(new Dimension(67, 40));
button4.setPreferredSize(new Dimension(67, 40));
button5.setPreferredSize(new Dimension(67, 40));
button6.setPreferredSize(new Dimension(67, 40));
button7.setPreferredSize(new Dimension(67, 40));
button8.setPreferredSize(new Dimension(67, 40));
butto
展开阅读全文