基于JAVA的计算器程序设计_第1页
基于JAVA的计算器程序设计_第2页
基于JAVA的计算器程序设计_第3页
基于JAVA的计算器程序设计_第4页
基于JAVA的计算器程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

齐鲁理工学院课程设计说明书(论文)题 目 基于 JAVA 的计算器程序设计 课 程 名 称 JAVA 程序设计-课程设计 二 级 学 院 计算科学与信息工程学院 专 业 计算机科学与技 班 级 2016 级专升本班 学 生 姓 名 陈超 学 号 161053020130 设 计 地 点 宿舍 指 导 教 师 设计起止时间:2016 年 11 月 28 日至 2016 年 12 月 8 日目录一、设计任务及要求 .1二、总体设计方案 .1三、开发平台与开发技术 .13.1 开发平台 .13.2 开发技术 .11.JAVA 语言: .12.JAVA 语言特点与优势: .2四、系统设计分析 .34.1 用户需求分析 .34.2 可行性分析 .3五、设计算法分析 .35.1 模块调用层次图 .35.2 核心算法描述 .55.3 系统特点: .6六、源代码展示 .7六、运行与测试 .14六、结论与心得 .16参考文献 .161基于 JAVA 的计算器程序设计一、设计任务及要求任务:设计一款基于 JAVA 的简易计算器。要求:(1)使用图形用户界面:一个文本框;0-9 数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮;(2)完成整数、实数的四则运算(加、减、乘、除) ;(3)通过按钮点击实现数据的复位(清零) ;(4)实数运算中小数位的精度一致。二、总体设计方案对于此计算器程序,首先要设计其 GUI 界面,总体界面有一个文本框,18个按钮,总体界面用 BorderLayout 布局。文本框放置在最 NORTH,然后 0 到 9 以及+,-,*,/的按钮放置到一个面板 Panel 中,添加到整体布局的 CENTER,界面设计完成。布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。这是计算器中的一种:简单计算器,本项目用到了 Java 中的 GUI 界面和swing 组件以及 awt 布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和运算符键就能进行简单的加、减、乘、除求模四则运算 ;还能通过用户自己在文本框中输入数字,进行简单运算;如果输入有误时可以按 Clear 撤销后重新输入新数据。三、开发平台与开发技术3.1 开发平台Eclipse:Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Kit,JDK) 。23.2 开发技术1.JAVA 语言:Java 是一门面向对象编程语言,不仅吸收了 C+语言的各种优点,还摒弃了 C+里难以理解的多继承、指针等概念,因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java 可以编写桌面应用程序、 Web 应用程序、分布式系统和嵌入式系统应用程序等。2.JAVA 语言特点与优势:(1)简单性Java 看起来设计得很像 C+,但是为了使语言小和容易熟悉,设计者们把 C+语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。Java 还剔除了 C+的操作符过载和多继承特征,并且不使用主文件,免去了预处理程序。因为 Java 没有结构,数组和串都是对象,所以不需要指针。Java 能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。(2)面向对象Java 是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法,而不是严格地用过程来思考。(3)分布性Java 设计成支持在网络上应用,它是分布式语言。Java 既支持各种层次的网络连接,又以 Socket 类支持可靠的流 ( stream) 网络连接,所以用户可以产生分布式的客户机和服务器。(4)编译和解释性Java 编译程序生成字节码 ( byte-code) ,而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java 程序可以在任何实现了 Java 解释程序和运行系统( run-time system) 的系统上运行。(5)稳健性Java 原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java 消除了某些编程错误,使得用它写可靠软件相当容易。(6)安全性Java 的存储分配模型是它防御恶意代码的主要方法之一。Java 没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java 编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的 Java 代码中的存储引用在运行时由 Java 解释程序决定实际存储地址。3(7)可移植性Java 使得语言声明不依赖于实现的方面。例如,Java 显式说明每个基本数据类型的大小和它的运算行为 (这些数据类型由 Java 语法描述) 。Java 环境本身对新的硬件平台和操作系统是可移植的。Java 编译程序也用 Java 编写,而 Java 运行系统用 ANSIC 语言编写。(8)高性能Java 是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java 设计者制作了“及时”编译程序,它能在运行时把 Java 字节码翻译成特定 CPU(中央处理器)的机器代码,也就是实现全编译了。(9)多线索性Java 是多线索语言,它提供支持多线索的执行 (也称为轻便过程) ,能处理不同任务,使具有线索的程序设计很容易。Java 的 lang 包提供一个 Thread 类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。(10)动态性Java 语言设计成适应于变化的环境,它是一个动态的语言。例如,Java 中的类是根据需要载入的,甚至有些是通过网络获取的。四、系统设计分析4.1 用户需求分析点击按钮中的数字键和运算符键就能进行简单的加、减、乘、除、求模、求倒数、开根号等运算,如果输入有误时可以按 Clear 撤销后重新输入新数据4.2 可行性分析也成为可行性研究,实在调查的基础上,针对新软件的开发是否具备必要性和可能性,对新软件的开发从技术、经济、社会等方面进行分析和研究,以避免投资失误,保证新软件的开发成功。(1)技术可行性主要分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。该软件采用的开发工具是 Eclipse,它有十分强的功能扩展能力,而且它完全满足计算器的开发实现的要求。因此,软件的软件开发平台已经成熟可行。硬件的容量、可靠性也能完全满足。(2)经济可行性本软件开发成本低,在经济上是可以接受的,并且本软件实施后可显4著提高工作效率。五、设计算法分析5.1 模块调用层次图【1】变量描述数组:1 JButton b = new JButton10; 创建按钮类型的数组,为数字键 0-9 这 10 个按钮。全局变量:(1)JFrame frame;创建一个 jFrame 类型的框架,为 frame,用来存放需要显示的一些东西。(2)JTextField show;创建一个 JtextField 类型的展示框,为 show。上面用来显示输出或计算的结果。(3)double sum = 0, getValue;创建一个类型为双精度的变量,其初始值为 0.返回计算后得到的值。(4)JDialog about;创建一个类型为 Jdialog 的对话框 abhout,其显示的该计算器的一些关于内容。(5)final int slength = 30;创建一个为类型为整形的 slength,其值为 30,意味该计算器显示的有效长度最大值为 30,超过 30 的话,计算器将不能够全部显示。6 JButton bc, c, ce, ab, jia, jian, cheng, chu, equ, point, sqrt, ds, bfh,zf;创建类型为 Jbuttond 的按钮退格,清空,复位,关于,加,减,乘,除,等号,小数点,2 次方根,倒数,百分号,正负号,当按下这些按钮的话,便会触发相应的监听器,根据这些监听器的设置,执行对应的程序。57 int i = 0, j = 0, p = 0, l, action;创建类型为整形的初始化书 i、j、p。这几个按钮在算法初始化时实现。8 Panel dispMain = new Panel()创建类型为 panel 的面板 dispMain,用来存放另一些控件。函数:1 public void disp() 创建无值函数 disp() ,用来存放界面所需要展示的元素,包括有面板,按钮,弹出对话框,显示框等。2 public void actionPerformed(ActionEvent e)创建无值函数 actionPerformed(ActionEvent e),其允许的输入值类型为 ActionEvent e,在里面编写的是加减陈除等一些算法。3 public void setSum()创建无值函数 setSum() ,显示出经过算法计算出的结果,4 public void windowClosing(WindowEvent e)创建无值函数 windowClosing(WindowEvent e) ,当显示程序界面右上角的 x 时,将关闭程序。5 public static void main(String args)创建静态无值函数 main 主函数,用来调用以上所示的函数。【2】程序流程1 系统模块调用层次图Main()disp()65.2 核心算法描述通过该步骤可实现累加功能:setSum();j+;p = 0;i = 0;action = ?判断最后一个操作数的类型:else if (e.getSource() = equ) / 等号 ,运算最后一个操作数switch (action) case 1:show.setText(String.valueOf(sum += getValue);break;case 2:show.setText(String.valueOf(sum -= getValue);break;case 3:show.setText(String.valueOf(sum *= getValue);break;case 4:show.setText(String.valueOf(sum /= getValue);break;设定数字按钮的触发算法:for (l = 0; l 10; l+) / 09数字键触发if (e.getSource() = bl) if (i = 0)show.setText(“);String s = show.getText();if (s.length() slength)show.setText(show.getText() + e.getActionCommand();if (e.getSource() = b0 if (e.getSource() != b0 actionPerformed(ActionEvent e)setSum() windowClosing(WindowEvent e)7i+;/ i用来标记数字键触发的状态设定计算器关闭的方法:public void windowClosing(WindowEvent e) if (e.getSource() = about)about.setVisible(false);else if (e.getSource() = frame)System.exit(0);为按钮绑定监听器:about.addWindowListener(this);5.3 系统特点 :该计算器基本运算没有问题,清零、正负号、求倒数、退格功能都能很好的实现,总体能完成一个计算器的基本功能,但仍有许多地方需要改进,比如小数点的实现所存在的一些问题,虽然在基本的运算过程当中不会造成太大影响,但这依然不能认为是一个很好的计算器,同时,在另一方面,该计算器还没能很好的实现连续计算的功能,必须每次按下等号按钮计算出结果后才能用产生的结果接着进行下一次的计算,改进的方法是在运算符上同时注册 Result类,让运算符同时拥有计算结果的功能.六、源代码展示import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Label;import java.awt.Panel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.SwingConstants;8class CalcBody implements ActionListener JFrame frame;JTextField show;JButton bc, c, ce, ab, jia, jian, cheng, chu, equ, point, sqrt, ds, bfh,zf;/ 按钮 退格,清空,复位,关于,加,减,乘,除,等号,小数点,2 次方根,倒数,百分号,正负号JButton b = new JButton10; / 按钮数组,数字键 09double sum = 0, getValue;int i = 0, j = 0, p = 0, l, a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论