版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上学号xxxxxx面向对象程序设计课程设计报告题目:计算器设计与实现专业:班级:姓名:指导教师: 成绩:xx201x年 x月xx日 专心-专注-专业目录1 设计内容及要求11.1设计内容11.2设计任务及具体要求12 概要设计12.1 功能需求12.2 系统的开发运行环境23 设计过程23.2系统功能模块34 设计结果与分析44.1功能模块的划分44.2功能模块的实现4小结105 参考文献111 设计内容及要求1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节
2、约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等)1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂
3、时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。2.2 系统的开发运行环境本系统开发平台: Java 本系统集成开发环境:MyEclipse和UltraEdit 本系统运行环境: windows xp 3 设计过程3.1 系统体系结构设计
4、 本应用程序继承自框架类(Frame),此程序使用Frame布局管理器GridLayout,在Container容器中将单行文本框放在窗体上方区域,将选项、进制转换、帮助等按钮添加到菜单条。包含各种按钮的面板Jpanel采用n行m列的网格布局,然后将数字按钮和运算按钮以及控制按钮添加到面板中。同时注册事件监听器: 计算器总体结构如图1所示:图1总体分析图3.2系统功能模块 3.2.1系统功能描述(1)基本运算,包括对整数和浮点数进行加、减、乘、除以及乘方、三角函数、指数等运算;(2)进制运算,包括十进制和二进制数、十进制和八进制之间的转换; (3)其他功能,包括对输入、输出结果的复制、粘贴、剪
5、切和退格、清零等。3.2.2系统流程图根据系统要求和和系统功能的划分可以得到如图2所示的流程图:图2程序流程图3.2.3主要类设计public class Calculator extends Frame implements ActionListener;WindowListener/ Calculator是初始化界面,整体布局及响应用户的各种按钮操作class WinCloseimplementsWindowListenerpublic void windowClosing(WindowEvent e)/ WinClose是设置计算器整个窗体的显示、退出、隐藏的操作。4 设计结果与分析 4
6、.1功能模块的划分(1)界面模块:实现计算器的运算界面,该界面表示数据的按钮、表示浮点型的按钮运算符按钮和实现显示运算结果界面以及菜单选项界面。(2)监听器模块:该模块为每一个按钮设置监听器,当鼠标点击按钮时通过监听器来判断该按钮代表的什么数据、实现什么运算功能、执行什么功能等。(3)动作响应模块:该模块通过按钮事件,进行对应的处理功能其主要是将运算数据,以浮点型类型保存在内存中,然后通过判断运算符类型对数据进行相应的运算,并将运算结果以String类型在结果文本区域中显示,其中包括菜单条里的进制转换和各选项菜单的动作响应。(4)主函数模块:调用已经设计好的函数,来实现计算器的全部功能。4.2
7、功能模块的实现4.2.1计算器界面模块 在界面设计中,应用Frame框架,Frame是独立于浏览器的可运行的窗口,所以应用Frame框架来设计计算器界面比较合适。在Frame框架的容器分别设置菜单条JmenuBar、文本区JTextField、然后在其中设置了五个面板分别都采用GirdLayout 布局完成数字键盘和运算符的设置。实现该界面的部分代码如下: public class Calculator extends Frame implements ActionListener, WindowListener private Container container; private Gri
8、dBagLayout layout; private GridBagLayout layout; private GridBagConstraints constraints; private JTextField displayField; /保存+,-,*,/,=命令定义各种组件 JPanel panel1=new JPanel(); panel1.setLayout(new GridLayout(1,5,4,4);/定义为GridLayout布局 this.add(panel1); button_sqrt=new JButton("sqrt"); button_plu
9、sminus=new JButton("+/-"); panel1.add(button_sqrt);/面板的定义和按钮添加4.2.2监听器模块 通过继承ActionListener和WindonListener接口来实现事件监听。当Buttoin或Item对象上用鼠标进行点击时,将发送一个ActionEvent事件。这个事件ActionEvent事件会被使用addAtionListener()方法注册的所有ActionListener的actionPerformed()方法接 收,首先为所有具有时间动作的组件用addAtionListener(this)进行监听,当被监听
10、的组件发生 事件时就进行反馈,同时进行动作事件处理。该模块的部分代码如下:button_plusminus.addActionListener(this); button_exp.addActionListener(this); button_CE.addActionListener(this);/各按钮的监听器设置this.addWindowListener(new WinClose(); /注册窗口监听器this.setVisible(true); dialog.add(label_dialog); dialog.addWindowListener(this);/为对话框注册窗口事件监听器
11、JMenuItem m1_exit=new JMenuItem("复制"); m1_exit.addActionListener(this);/设置菜单按钮的监听器 4.2.3动作响应模块 该模块通过public void actionPerformed(ActionEvent e)函数来实现动作响应事件。首先通过e.getSource()来获得当前发生动作,然后根据不同的按钮产生不同动作响应,在实现动作响应之前定义了lastCommand、resul 、start变量界面效果,其中若鼠标点击的是数字按钮则e.getSource()获取lastCommand ,if(e.g
12、etSource().equals(button_1)|e.getSource().equals(button_2)|if (start)displayField.setTiext("");/设置计算器初始为空if(input.equals("+/-")displayField.setText(displayField.getText()+"-") if(!input.equals("+/-")当首先输入的符号是+/-时初始if(input.equals("退格") /退格键的实现方if(str
13、.length()>0)displayField.setText(str.substring(0,str.length()-1); lse if(input.equals("C") /清零键的实现方displayField.setText("0"); else if (e.getActionCommand()="复制") /各按钮的动作响应方式代码displayField.copy(); else if (e.getActionCommand()="剪切") else if (e.getActionComma
14、nd()="二进制") /二进制的转换if(displayField.getText()=null)若为空则弹出对话框JOptionPane.showMessageDialog(this,"不能为空!请输入要进行转换的字符"," 消息对话框",JOptionPane.WARNING_MESSAGE); else if (e.getActionCommand()="用法") /按'帮助'菜单栏用法的处理方法label_dialog.setText("sqrt,exp,log等键是先输运算符再
15、输数字,其他运算是先输 入数字再输入运算符n"); else if (e.getActionCommand()="关于")/按'关于'菜单栏用法的处理方法JOptionPane.showMessageDialog(label_dialog,"Java的计算器n" + "JAVA课程设计" + "详情咨询mail:n", "关于计算器", JOptionPane.INFORMATION_MESSAGE) if (lastCommand.equals("+&quo
16、t;)/各运算符的具体运算方法result+= x;public void windowClosing(WindowEvent e) if(e.getSource()=dialog)dialog.setVisible(false);/隐藏对话框elseSystem.exit(0); 基于前面三块模板的功能,定义一个主函数来实现计算器的所有功能,同时定义一个windowClosing 控制窗口关闭事件,其具体代码如下:public static void main(String args) Calculator calculator=new Calculator() Calss WinClose
17、 implements WindowListener public void windowClosing(WindowEvent e)4.3功能模块的测试图 3 初始化界面图 4 求平方根图 5 cos 运算图 6 exp 运算结果图 7 加减运算小结设计,给人以创作的冲动,但也要为这次冲动承担一定的痛苦,但事后发现,这一切都是值得的,本次的JAVA课程设计让我对JAVA的理论知识又有深一步的了解,温故而知新,开始设计之时完全没头绪,对与理论学习不够扎实的我深感“书到用时方恨少”只好再把书上介绍的相关知识重新阅读一遍,对知识进行了全面而系统的梳理,遇到难处首先是苦思冥想寻求方法,再向同学请教,终于熟练掌握了基本理论知识,而且领悟了诸多平时学习难以理解掌握的的较难的知识,学会了如何思考的方式,找到了设计的灵感。在反反复复的学习中,我终于作出一我涉及到的仅仅是计算器的一部分简单内容,离实际的需求肯定还有差距。由于我的知识浅薄,经验不足及阅历颇浅,在设计方面还有很多不足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。这次课程设计使我感到收获不小,促进了对理论知识的消化与吸收,也巩固和完善了本门课程的知识体系结构。设计过程中遇到了不少的麻
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年规范化设备采购协议范例
- 2024年设备维护保养服务协议
- 2024年基站场地租赁协议模板
- 店铺出租协议文本 2024 年
- 2024泵车租赁协议定制集锦
- 2024年商业街店铺租赁协议
- 2024年专业委托信用担保服务协议
- 2024年规范化小型物流服务协议
- 2024年定制反担保保障协议
- 2024年度房产指标交易协议模板
- 广州版四年级上册Unit9说课
- 血管外科试题合集
- 新版人教版小学数学一年级上册课程纲要
- 形势与政策-论朝鲜半岛局势
- 通达信指标公式源码主力动向
- 潜油泵及潜油泵加油机讲义
- 医患沟通内容要求记录模板(入院、入院三日、术前、术后、出院)
- 第8章 腹部检查(讲稿)
- 浅谈深度教学中小学数学U型学习模式
- 湿法脱硫工艺计算书
- (医学PPT课件)NT检查规范
评论
0/150
提交评论