精品课程设计使用面向对象的JAVA编程技术设计实现计算器含源代码

上传人:痛*** 文档编号:145528383 上传时间:2022-08-29 格式:DOC 页数:28 大小:464.55KB
收藏 版权申诉 举报 下载
精品课程设计使用面向对象的JAVA编程技术设计实现计算器含源代码_第1页
第1页 / 共28页
精品课程设计使用面向对象的JAVA编程技术设计实现计算器含源代码_第2页
第2页 / 共28页
精品课程设计使用面向对象的JAVA编程技术设计实现计算器含源代码_第3页
第3页 / 共28页
资源描述:

《精品课程设计使用面向对象的JAVA编程技术设计实现计算器含源代码》由会员分享,可在线阅读,更多相关《精品课程设计使用面向对象的JAVA编程技术设计实现计算器含源代码(28页珍藏版)》请在装配图网上搜索。

1、更多课程设计、毕业设计、论文请访问:*课程设计报告*浙江大学计算机学院2009年第一学期面向对象JAVA编程技术 课程设计题 目: 计算器类的设计与实现专业班级: 姓 名: 学 号: 指导教师: 成 绩: 摘 要编写一个简单的计算器程序。实现加、减、乘、除等功能,可以根据自己的兴趣,扩充计算器的功能。 程序应提供的基本管理功能有: 1)选择计算功能 2)计算数据的输入 3)实现加、减、乘、除等基本计算功能 4)计算结果的输出关键字:窗口组件;按钮;屏幕;监视器前 言通过这次的课程设计,更让我深刻意识到自己在学习中的弱点,同时也找到了克服这些弱点的方法,这也是一笔很大的资源。在以后的时间中,我应

2、该利用更多的时间去上机实验,多编写程序,相信不久后我的编程能力都会有很大的提高。这次课程设计,通过对程序的编制,调试和运行,使我更好的掌握了用Java实现图形界面的方法,和用监视器控制组件的过程,熟悉了各种调用的数据类型。在调试和运行过程中使我更加的了解和熟悉程序运行的环境,提高了我对程序调试分析的能力和对错误的纠正能力。课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。目 录摘 要1前 言2目 录3第1章 设计描述41.1问题描述41.2函

3、数结构41.3状态图4第2章 系统分析62.1流程图62.2需求分析6第3章 程序设计83.1窗口类程序代码83.2监视器类程序代码10第4章 测试分析144.1程序代码14(1)加法运算:14(2)减法,乘法运算操作如同加法15(3)除法运算:15(4)控制按钮:16(5)输入错误提示184.2简单操作手册18总结及致谢19参考文献20附件源程序代码21第1章 设计描述1.1问题描述编写一个简单的计算器程序。实现加、减、乘、除等功能,可以根据自己的兴趣,扩充计算器的功能。 程序应提供的基本管理功能有: 1)选择计算功能 2)计算数据的输入 3)实现加、减、乘、除等基本计算功能 4)计算结果的

4、输出1.2函数结构一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。 窗口组件:(提供用户接口)public class Calculator extends JFrame private static final long serialVersionUID = 1L; private JPanel optPanel; private JPanel numPanel; private Label resultLabel;计算接口:(监视器)class EventListener

5、 implements ActionListener double result;/ 两个运算数运算完后得到的结果 double firstNum;/ 第一个运算数 double secondNum;/ 第二个运算数 String showResult = ;/ 显示器上显示的结果 String fuhao;/ 运算符,+,-,*,/ String caozuo; String temp;/ 每按一个按钮的值 Override public void actionPerformed(ActionEvent ae) 程序运行时,显示一个窗口,等待用户输入,鼠标控制输入要计算的表达式,输入的表达式

6、显示在窗口中,用户键入“=”符号后,窗口显示出结果。硬件环境:PC兼容机,JCreate LE软件环境:Java1.3状态图 设计状态图,初始状态(S0)下显示器没有显示,利用鼠标操作可以输入小数和整数,如下状态S(小数点)和S(整数)第2章 系统分析2.1流程图2.2需求分析1.窗口(不可改变大小)2.三个控制键,Back,CE,C;3.数字键(09)以及运算操作键(+,-,*,/,=)以及小数点按钮(.);4.屏幕,初始化状态下为空第3章 程序设计3.1窗口类程序代码public class Calculator extends JFrame private static final lo

7、ng serialVersionUID = 1L; JPanel optPanel; JPanel numPanel; Label resultLabel; String optName = Back, CE, C ;/ 三个操作按钮的名字,退格,清除,清空 String numName = 7, 8, 9, +, 4, 5, 6, -, 1,2, 3, *, 0, ., =, / ; private JButton optButton = new JButton3;/ 三个操作按钮 private JButton numButton = new JButton16;/ 数字按钮,包括四个运算

8、符 EventListener eventListener = new EventListener();/ 创建事件监听者 public Calculator(String title) / 创建主窗口,title为窗口名称 super(title); resultLabel = new Label(, Label.RIGHT);/ 显示器,显示内容靠右,比较符合实际 optPanel = new JPanel();/ 放三个操作按钮 numPanel = new JPanel();/ 放数字等 optPanel.setLayout(new GridLayout(1, 3, 2, 2);/ 一

9、行三列 numPanel.setLayout(new GridLayout(4, 4, 2, 2);/ 四行四列,16个位置 super.add(resultLabel, BorderLayout.NORTH);/ 显示器在最上面 super.add(optPanel, BorderLayout.CENTER);/ 三个操作按钮在中间 super.add(numPanel, BorderLayout.SOUTH);/ 数字等在下面 for (int i = 0; i optName.length; i+) optButtoni = new JButton(optNamei); optButto

10、ni.setForeground(Color.red); optButtoni.setBackground(Color.pink); optButtoni.addActionListener(eventListener); optPanel.add(optButtoni); for (int i = 0; i numName.length; i+) numButtoni = new JButton(numNamei); numButtoni.setForeground(Color.cyan); numButtoni.addActionListener(eventListener); numPa

11、nel.add(numButtoni); super.addWindowListener(new WindowAdapter() / 关闭主面板 Override public void windowClosing(WindowEvent arg0) System.exit(0); ); super.setBounds(400, 300, 250, 200); super.setResizable(false);/ 计算机不能改变大小 super.setVisible(true); super.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

12、3.2监视器类程序代码class EventListener implements ActionListener double result;/ 两个运算数运算完后得到的结果 double firstNum;/ 第一个运算数 double secondNum;/ 第二个运算数 String showResult = ;/ 显示器上显示的结果 String fuhao;/ 运算符,+,-,*,/ String caozuo; String temp;/ 每按一个按钮的值 public void actionPerformed(ActionEvent ae) for (int i = 0; i 0

13、) showResult = showResult.substring(0, showResult.length() - 1); resultLabel.setText(showResult); else showResult = ; resultLabel.setText(showResult); / caozuo = optButton0.getLabel(); else if (ae.getSource() = optButton1) / 清除当前的输入数,如之前已存在了第一个运算数,不影响第一个运算数 showResult = ; resultLabel.setText(showRes

14、ult); temp = ; / caozuo = optButton1.getLabel(); else if (ae.getSource() = optButton2) / 清空所有的数字及运算符,回到初始状态 / caozuo = optButton2.getLabel(); showResult = ; resultLabel.setText(showResult); temp = ; fuhao = ; public static void main(String args) new Calculator(计算器);/ 创建实例 第4章 测试分析4.1程序代码(1)加法运算:鼠标点击

15、输入第一个数:输入运算符:输入第二个数:点击按钮等于:(2)减法,乘法运算操作如同加法(3)除法运算: 如果分母不为0,如同加法运算;如果为0,则显示结果如下图所示:输入被除数:输入符号:输入除数为0计算结果:(4)控制按钮:Back按钮: 按Back按钮显示结果:CE/C按钮: CE按钮:清除当前的输入数,如之前已存在了第一个运算数,不影响第一个运算数;C按钮:清空所有的数字及运算符,回到初始状态。按下CE按钮显示结果:(5)输入错误提示如果一次运算结束后,没有输入数字,直接按下运算符,或者初始状态下按下运算符,显示结果如下: 4.2简单操作手册运行程序,然后按照运行结果提示操作,按钮为鼠标

16、控制输入,操作说明:在初始状态下,显示类没有显示;输入第一个数,可以使整形或浮点型,显示器显示第一个运算数;输入运算符号,显示器显示运算符;输入第二个人数,显示器显示此数;按键“=”,显示器显示计算结果;按键CE/C,进行下一次计算,显示器没有显示。总结及致谢这次的程序软件基本上运行成功,可以简单的对已经输入的数据进行四则运算。但是程序较小,功能不全面,只是理论,并未实践。同时,这次面向对象课程设计让我们感触很深,使我们每个人都了解到的学习不应该只局限于我们的课本,因为课本上告诉我们的只是很有限的一部分,所涉及的面也是狭窄的。但是怎样在有限的范围内学习到无限的知识呢?那就要我们自己懂得竞争,懂

17、得自学,懂得充分利用身边的任何资源。应该说,我们在这次的课程设计中学到了很多知识,这并不仅仅包括书本上的知识,更重要的是我们学会了如何去和别人交流,怎样用语言去实现自己的想法,在这个过程中使我懂得了勤学好问的重要性。虽然在我的程序中有一部分是从网上搜索得来的,但我竭力将所获得的信息变成自己的资源。在我动手上机操作的同时,我在了解和看懂的基础上有所改变和创新,但是在我的程序软件中还有部分的不足,需要加以更新。同时,通过这次课程设计,我们都意识到了自己动手实践的弱势,特别是在编程方面,于是我们知道了计算机的实践操作是很重要的,只有通过上机编程才能充分的了解自己的不足。在本次课程设计中,胡月文老师给

18、予了指导和帮助,在此,特别提出感谢!参考文献1Head First 设计模式(中文版),中国电力出版社2 郭晓鹏 李存斌Visual C+高级编程及其项目应用开发,中国水利水电出版社3 DATA STRUCTURE WITH C+. William Ford,William Topp .清华大学出版社(影印版)4 李尊朝 苏军Java 语言课程设计(第二版),中国铁道出版社5数据结构与算法分析(Java版) , A Practical Introduction to Data Structures and Algorithm Analysis Java Edition Clifford A.

19、Shaffer , 张铭,刘晓丹译电子工业出版社 2001 年1月附件源程序代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends JFrame private static final long serialVersionUID = 1L; JPanel optPanel; JPanel numPanel; Label resultLabel; String optName = Back, CE, C ;/ 三个操作按钮的名字,退格,清除,清空 Strin

20、g numName = 7, 8, 9, +, 4, 5, 6, -, 1,2, 3, *, 0, ., =, / ; private JButton optButton = new JButton3;/ 三个操作按钮 private JButton numButton = new JButton16;/ 数字按钮,包括四个运算符 EventListener eventListener = new EventListener();/ 创建事件监听者 public Calculator(String title) / 创建主窗口,title为窗口名称 super(title); resultLa

21、bel = new Label(, Label.RIGHT);/ 显示器,显示内容靠右,比较符合实际 optPanel = new JPanel();/ 放三个操作按钮 numPanel = new JPanel();/ 放数字等 optPanel.setLayout(new GridLayout(1, 3, 2, 2);/ 一行三列 numPanel.setLayout(new GridLayout(4, 4, 2, 2);/ 四行四列,16个位置 super.add(resultLabel, BorderLayout.NORTH);/ 显示器在最上面 super.add(optPanel,

22、 BorderLayout.CENTER);/ 三个操作按钮在中间 super.add(numPanel, BorderLayout.SOUTH);/ 数字等在下面 for (int i = 0; i optName.length; i+) / 为每个操作按钮等添加事件监听器并加入操作面板中 optButtoni = new JButton(optNamei); optButtoni.setForeground(Color.red); optButtoni.setBackground(Color.pink); optButtoni.addActionListener(eventListener

23、); optPanel.add(optButtoni); for (int i = 0; i numName.length; i+) / 为每个数字按钮等添加事件监听器并加入操作面板中 numButtoni = new JButton(numNamei); numButtoni.setForeground(Color.cyan); numButtoni.addActionListener(eventListener); numPanel.add(numButtoni); super.addWindowListener(new WindowAdapter() / 关闭主面板 Override p

24、ublic void windowClosing(WindowEvent arg0) System.exit(0); ); super.setBounds(400, 300, 250, 200); super.setResizable(false);/ 计算机不能改变大小 super.setVisible(true); super.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); class EventListener implements ActionListener double result;/ 两个运算数运算完后得到的结果 doubl

25、e firstNum;/ 第一个运算数 double secondNum;/ 第二个运算数 String showResult = ;/ 显示器上显示的结果 String fuhao;/ 运算符,+,-,*,/ String caozuo; String temp;/ 每按一个按钮的值 Override public void actionPerformed(ActionEvent ae) for (int i = 0; i 0) showResult = showResult.substring(0, showResult.length() - 1); resultLabel.setText

26、(showResult); else showResult = ; resultLabel.setText(showResult); / caozuo = optButton0.getLabel(); else if (ae.getSource() = optButton1) / 清除当前的输入数,如之前已存在了第一个运算数,不影响第一个运算数 showResult = ; resultLabel.setText(showResult); temp = ; / caozuo = optButton1.getLabel(); else if (ae.getSource() = optButton2) / 清空所有的数字及运算符,回到初始状态 / caozuo = optButton2.getLabel(); showResult = ; resultLabel.setText(showResult); temp = ; fuhao = ; public static void main(String args) new Calculator(计算器);/ 创建实例 27

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!