欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:4891631       资源大小:464.55KB        全文页数:28页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    更多课程设计、毕业设计、论文请访问:*课程设计报告*浙江大学计算机学院2009年第一学期面向对象JAVA编程技术 课程设计题 目: 计算器类的设计与实现专业班级: 姓 名: 学 号: 指导教师: 成 绩: 摘 要编写一个简单的计算器程序。实现加、减、乘、除等功能,可以根据自己的兴趣,扩充计算器的功能。 程序应提供的基本管理功能有: 1)选择计算功能 2)计算数据的输入 3)实现加、减、乘、除等基本计算功能 4)计算结果的输出关键字:窗口组件;按钮;屏幕;监视器前 言通过这次的课程设计,更让我深刻意识到自己在学习中的弱点,同时也找到了克服这些弱点的方法,这也是一笔很大的资源。在以后的时间中,我应该利用更多的时间去上机实验,多编写程序,相信不久后我的编程能力都会有很大的提高。这次课程设计,通过对程序的编制,调试和运行,使我更好的掌握了用Java实现图形界面的方法,和用监视器控制组件的过程,熟悉了各种调用的数据类型。在调试和运行过程中使我更加的了解和熟悉程序运行的环境,提高了我对程序调试分析的能力和对错误的纠正能力。课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。目 录摘 要1前 言2目 录3第1章 设计描述41.1问题描述41.2函数结构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)计算结果的输出1.2函数结构一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。 窗口组件:(提供用户接口)public class Calculator extends JFrame private static final long serialVersionUID = 1L; private JPanel optPanel; private JPanel numPanel; private Label resultLabel;计算接口:(监视器)class EventListener implements ActionListener double result;/ 两个运算数运算完后得到的结果 double firstNum;/ 第一个运算数 double secondNum;/ 第二个运算数 String showResult = ""/ 显示器上显示的结果 String fuhao;/ 运算符,+,-,*,/ String caozuo; String temp;/ 每按一个按钮的值 Override public void actionPerformed(ActionEvent ae) 程序运行时,显示一个窗口,等待用户输入,鼠标控制输入要计算的表达式,输入的表达式显示在窗口中,用户键入“=”符号后,窗口显示出结果。硬件环境: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 long 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;/ 数字按钮,包括四个运算符 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);/ 一行三列 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); optButtoni.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); numPanel.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);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 < numName.length; i+) if (ae.getSource() = numButtoni) String temp = numButtoni.getText(); if (temp.equals("+") | temp.equals("-")| temp.equals("*") | temp.equals("/") if(showResult.equals("")/如果显示器为空,则显示输入错误 resultLabel.setText("输入错误,请重新输入"); else firstNum = Double.parseDouble(showResult); fuhao = temp; resultLabel.setText(fuhao); showResult = "" / System.out.println(firstNum*2);/测试 else if (temp.equals("=") if(showResult.equals("")/如果显示器为空,则显示输入错误 resultLabel.setText("输入错误,请重新输入"); else secondNum = Double.parseDouble(showResult); if (fuhao.equals("+") result = firstNum + secondNum; resultLabel.setText("" + result); else if (fuhao.equals("-") result = firstNum - secondNum; resultLabel.setText("" + result); else if (fuhao.equals("*") result = firstNum * secondNum; resultLabel.setText("" + result); else if (fuhao.equals("/") if(secondNum=0) resultLabel.setText("分母为0,计算错误"); else result = firstNum / secondNum; resultLabel.setText("" + result); / System.out.println(secondNum*3);/测试 else showResult += temp; resultLabel.setText(showResult); if (ae.getSource() = optButton0) if (showResult.length() > 0) 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(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("计算器");/ 创建实例 第4章 测试分析4.1程序代码(1)加法运算:鼠标点击输入第一个数:输入运算符:输入第二个数:点击按钮等于:(2)减法,乘法运算操作如同加法(3)除法运算: 如果分母不为0,如同加法运算;如果为0,则显示结果如下图所示:输入被除数:输入符号:输入除数为0计算结果:(4)控制按钮:Back按钮: 按Back按钮显示结果:CE/C按钮: CE按钮:清除当前的输入数,如之前已存在了第一个运算数,不影响第一个运算数;C按钮:清空所有的数字及运算符,回到初始状态。按下CE按钮显示结果:(5)输入错误提示如果一次运算结束后,没有输入数字,直接按下运算符,或者初始状态下按下运算符,显示结果如下: 4.2简单操作手册运行程序,然后按照运行结果提示操作,按钮为鼠标控制输入,操作说明:在初始状态下,显示类没有显示;输入第一个数,可以使整形或浮点型,显示器显示第一个运算数;输入运算符号,显示器显示运算符;输入第二个人数,显示器显示此数;按键“=”,显示器显示计算结果;按键CE/C,进行下一次计算,显示器没有显示。总结及致谢这次的程序软件基本上运行成功,可以简单的对已经输入的数据进行四则运算。但是程序较小,功能不全面,只是理论,并未实践。同时,这次面向对象课程设计让我们感触很深,使我们每个人都了解到的学习不应该只局限于我们的课本,因为课本上告诉我们的只是很有限的一部分,所涉及的面也是狭窄的。但是怎样在有限的范围内学习到无限的知识呢?那就要我们自己懂得竞争,懂得自学,懂得充分利用身边的任何资源。应该说,我们在这次的课程设计中学到了很多知识,这并不仅仅包括书本上的知识,更重要的是我们学会了如何去和别人交流,怎样用语言去实现自己的想法,在这个过程中使我懂得了勤学好问的重要性。虽然在我的程序中有一部分是从网上搜索得来的,但我竭力将所获得的信息变成自己的资源。在我动手上机操作的同时,我在了解和看懂的基础上有所改变和创新,但是在我的程序软件中还有部分的不足,需要加以更新。同时,通过这次课程设计,我们都意识到了自己动手实践的弱势,特别是在编程方面,于是我们知道了计算机的实践操作是很重要的,只有通过上机编程才能充分的了解自己的不足。在本次课程设计中,胡月文老师给予了指导和帮助,在此,特别提出感谢!参考文献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. 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" ;/ 三个操作按钮的名字,退格,清除,清空 String 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); resultLabel = 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, 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); 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 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); class EventListener implements ActionListener double result;/ 两个运算数运算完后得到的结果 double firstNum;/ 第一个运算数 double secondNum;/ 第二个运算数 String showResult = ""/ 显示器上显示的结果 String fuhao;/ 运算符,+,-,*,/ String caozuo; String temp;/ 每按一个按钮的值 Override public void actionPerformed(ActionEvent ae) for (int i = 0; i < numName.length; i+) if (ae.getSource() = numButtoni) String temp = numButtoni.getText(); if (temp.equals("+") | temp.equals("-")| temp.equals("*") | temp.equals("/") if(showResult.equals("")/如果显示器为空,则显示输入错误 resultLabel.setText("输入错误,请重新输入"); else firstNum = Double.parseDouble(showResult); fuhao = temp; resultLabel.setText(fuhao); showResult = "" / System.out.println(firstNum*2);/测试 else if (temp.equals("=") if(showResult.equals("")/如果显示器为空,则显示输入错误 resultLabel.setText("输入错误,请重新输入"); else secondNum = Double.parseDouble(showResult); if (fuhao.equals("+") result = firstNum + secondNum; resultLabel.setText("" + result); else if (fuhao.equals("-") result = firstNum - secondNum; resultLabel.setText("" + result); else if (fuhao.equals("*") result = firstNum * secondNum; resultLabel.setText("" + result); else if (fuhao.equals("/") if(secondNum=0) resultLabel.setText("分母为0,计算错误"); else result = firstNum / secondNum; resultLabel.setText("" + result); / System.out.println(secondNum*3);/测试 else showResult += temp; resultLabel.setText(showResult); if (ae.getSource() = optButton0) if (showResult.length() > 0) 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(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

    注意事项

    本文(精品课程设计使用面向对象的JAVA编程技术设计实现计算器含源代码.doc)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开