java课程设计-计算器实际与实现(共13页)

上传人:6**** 文档编号:39792798 上传时间:2021-11-12 格式:DOC 页数:14 大小:193.50KB
返回 下载 相关 举报
java课程设计-计算器实际与实现(共13页)_第1页
第1页 / 共14页
java课程设计-计算器实际与实现(共13页)_第2页
第2页 / 共14页
java课程设计-计算器实际与实现(共13页)_第3页
第3页 / 共14页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上学号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计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等)1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。2.2 系统的开发运行环境本系统开发平台: Java 本系统集成开发环境:MyEclipse和UltraEdit 本系统运行环境: windows xp 3 设计过程3.1 系统体系结构设计 本应用程序继承自框架类(Frame),此程序使用Frame布局管理器GridLayout,在Container容器中将单行文本框放在窗体上方区域,将选项、进制转换、帮助等按钮添加到菜单条。包含各种按钮的面板Jpanel采用n行m列的网格布局,然后将数字按钮和运算按钮以及控制按钮添加到面板中。同时注册事件监听器: 计算器总体结构如图1所示:图1总体分析图3.2系统功能模块 3.2.1系统功能描述(1)基本运算,包括对整数和浮点数进行加、减、乘、除以及乘方、三角函数、指数等运算;(2)进制运算,包括十进制和二进制数、十进制和八进制之间的转换; (3)其他功能,包括对输入、输出结果的复制、粘贴、剪切和退格、清零等。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.1功能模块的划分(1)界面模块:实现计算器的运算界面,该界面表示数据的按钮、表示浮点型的按钮运算符按钮和实现显示运算结果界面以及菜单选项界面。(2)监听器模块:该模块为每一个按钮设置监听器,当鼠标点击按钮时通过监听器来判断该按钮代表的什么数据、实现什么运算功能、执行什么功能等。(3)动作响应模块:该模块通过按钮事件,进行对应的处理功能其主要是将运算数据,以浮点型类型保存在内存中,然后通过判断运算符类型对数据进行相应的运算,并将运算结果以String类型在结果文本区域中显示,其中包括菜单条里的进制转换和各选项菜单的动作响应。(4)主函数模块:调用已经设计好的函数,来实现计算器的全部功能。4.2功能模块的实现4.2.1计算器界面模块 在界面设计中,应用Frame框架,Frame是独立于浏览器的可运行的窗口,所以应用Frame框架来设计计算器界面比较合适。在Frame框架的容器分别设置菜单条JmenuBar、文本区JTextField、然后在其中设置了五个面板分别都采用GirdLayout 布局完成数字键盘和运算符的设置。实现该界面的部分代码如下: public class Calculator extends Frame implements ActionListener, WindowListener private Container container; private GridBagLayout 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_plusminus=new JButton(+/-); panel1.add(button_sqrt);/面板的定义和按钮添加4.2.2监听器模块 通过继承ActionListener和WindonListener接口来实现事件监听。当Buttoin或Item对象上用鼠标进行点击时,将发送一个ActionEvent事件。这个事件ActionEvent事件会被使用addAtionListener()方法注册的所有ActionListener的actionPerformed()方法接 收,首先为所有具有时间动作的组件用addAtionListener(this)进行监听,当被监听的组件发生 事件时就进行反馈,同时进行动作事件处理。该模块的部分代码如下: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);/为对话框注册窗口事件监听器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.getSource().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.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.getActionCommand()=二进制) /二进制的转换if(displayField.getText()=null)若为空则弹出对话框JOptionPane.showMessageDialog(this,不能为空!请输入要进行转换的字符, 消息对话框,JOptionPane.WARNING_MESSAGE); else if (e.getActionCommand()=用法) /按帮助菜单栏用法的处理方法label_dialog.setText(sqrt,exp,log等键是先输运算符再输数字,其他运算是先输 入数字再输入运算符n); else if (e.getActionCommand()=关于)/按关于菜单栏用法的处理方法JOptionPane.showMessageDialog(label_dialog,Java的计算器n + JAVA课程设计 + 详情咨询mail:n, 关于计算器, JOptionPane.INFORMATION_MESSAGE) if (lastCommand.equals(+)/各运算符的具体运算方法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 implements WindowListener public void windowClosing(WindowEvent e)4.3功能模块的测试图 3 初始化界面图 4 求平方根图 5 cos 运算图 6 exp 运算结果图 7 加减运算小结设计,给人以创作的冲动,但也要为这次冲动承担一定的痛苦,但事后发现,这一切都是值得的,本次的JAVA课程设计让我对JAVA的理论知识又有深一步的了解,温故而知新,开始设计之时完全没头绪,对与理论学习不够扎实的我深感“书到用时方恨少”只好再把书上介绍的相关知识重新阅读一遍,对知识进行了全面而系统的梳理,遇到难处首先是苦思冥想寻求方法,再向同学请教,终于熟练掌握了基本理论知识,而且领悟了诸多平时学习难以理解掌握的的较难的知识,学会了如何思考的方式,找到了设计的灵感。在反反复复的学习中,我终于作出一我涉及到的仅仅是计算器的一部分简单内容,离实际的需求肯定还有差距。由于我的知识浅薄,经验不足及阅历颇浅,在设计方面还有很多不足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。这次课程设计使我感到收获不小,促进了对理论知识的消化与吸收,也巩固和完善了本门课程的知识体系结构。设计过程中遇到了不少的麻烦,在调试过程中也出现一些平时学习过程中没有遇到过的错误,通过在课程设计中老师耐心指导以及查阅相关资料,努力思考,一一解决了遇到的问题,通过这些问题,我对课本知识的理解也加深了。 终上所述,课程设计诚然是一门专业课,给我们很多专业知识以及很多专也技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道理、给了我很多思想、给了我莫大的空间,大学教育当如此!5 参考文献1丁振凡主编.Java语言实用教程.北京:北京邮电大学出版社.20072李刚主编.疯狂Java讲义.北京:电子工业出版社.20083埃史尔主编.Java编程思想.北京:机械工业出版社.2007
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


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

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


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