ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:706.89KB ,
资源ID:19292307      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19292307.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java计算器的设计实现分析课程设计报告论文Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java计算器的设计实现分析课程设计报告论文Word文件下载.docx

1、人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。2.2 系统的开发运行环境本系统开发平台: Java 本系统集成开发环境:MyEclipse和UltraEdit本系统运行环境:windowsxp总体设计1.1 系统体系结构设计3.1.1设计思路本应用程序继承自框架类(Frame),此程序使用Frame布局管理器GridLayout,在Container容器中将单行文本框放在窗体上方区域,将选项、进制转换、帮助等按钮添加到菜单条。包含各种按钮的面板Jpanel采

2、用n行m列的网格布局,然后将数字按钮和运算按钮以及控制按钮添加到面板中。同时注册事件监听器计算器总体结构如图1所示:在其上添加图1 总体结构图3.2系统功能模块及主要类设计3.2.1系统功能描述(1)基本运算,包括对整数和浮点数进行加、减、乘、除以及乘方、三角函数、指数等运算;(2)进制运算,包括十进制和二进制数、十进制和八进制之间的转换;(3)其他功能,包括对输入、输出结果的复制、粘贴、剪切和退格、清零等。3.2.2系统流程图:根据系统要求和和系统功能的划分可以得到如图2所示的流程图:Yes NO加 减 乘 sinNOyes图2 程序流程图3.2.3主要类设计public class Cal

3、culator extends Frame implements ActionListener,WindowListener/ Calculator是初始化界面,整体布局及响应用户的各种按钮操作。class WinClose implements WindowListener public void windowClosing(WindowEvent e)/ WinClose是设置计算器整个窗体的显示、退出、隐藏的操作。详细设计与实现4.1功能模块的划分界面模块:实现计算器的运算界面,该界面表示数据的按钮、表示浮点型的按钮运算符按钮和实现显示运算结果界面以及菜单选项界面。监听器模块:该模块为每

4、一个按钮设置监听器,当鼠标点击按钮时通过监听器来判断该按钮代表的什么数据、实现什么运算功能、执行什么功能等。动作响应模块:该模块通过按钮事件,进行对应的处理功能.其主要是将运算数据以浮点型类型保存在存中,然后通过判断运算符类型对数据进行相应的运算,并将运算结果以String类型在结果文本区域中显示,其中包括菜单条里的进制转换和各选项菜单的动作响应。主函数模块:调用已经设计好的函数,来实现计算器的全部功能。4.2功能模块的实现4.1.1计算器界面模块在界面设计中,应用Frame框架,Frame是独立于浏览器的可运行的窗口,所以应用Frame框架来设计计算器界面是比较合适的。在Frame框架的容器

5、分别设置菜单条JmenuBar、文本区JTextField、然后在其中设置了五个面板分别都采用GirdLayout 布局完成数字键盘和运算符的设置。其中菜单条中分别还有复制、粘贴、剪切退出,进制转换以及用法、关于的选项菜单,具体界面效果如图3所示:图3 计算器的界面效果实现该界面的部分代码如下:public class Calculator extends Frame implements ActionListener, WindowListenerprivate Container container;private GridBagLayout layout;private GridBagC

6、onstraints constraints;private JTextField displayField; /保存+,-,*,/,=命令0/定义各种组件 JPanel panel1=new JPanel(); panel1.setLayout(new GridLayout(1,5,4,4);/定义为GridLayout布局 this.add(panel1); button_sqrt=new utton(sqrt); button_plusminus=new utton(+/- panel1.add(button_sqrt);/面板的定义和按钮添加4.1.2监听器模块通过继承ActionLi

7、stener和WindonListener接口来实现事件监听。当Buttoin或Item对象上用鼠标进行点击时,将发送一个ActionEvent事件。这个事件ActionEvent事件会被使用addAtionListener()方法注册的所有ActionListener的actionPerformed()方法接收,首先为所有具有时间动作的组件用addAtionListener(this)进行监听,当被监听的组件发生事件时就进行反馈,同时进行动作事件处理。该模块的部分代码如下: button_plusminus.addActionListener(this); button_exp.addAct

8、ionListener(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.1.3动作响应模块该模块通过pub

9、lic void actionPerformed(ActionEvent e)函数来实现动作响应事件。首先通过e.getSource()来获得当前发生动作,然后根据不同的按钮产生不同动作响应,在实现动作响应之前定义了lastmand、resul、start变量界面效果图如图4所示:图4 动作响应效果图其中若鼠标点击的是数字按钮则e.getSource()获取数字 在lastmand中存储 if(e.getSource().equals(button_1)|e.getSource().equals(button_2)|.if (start)displayField.setText(/设置计算器初

10、始为空 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) /清零键的实现方0else if (e.getActionmand()=) /各按钮的动作响应方式代码displayField.copy(); else if

11、 (e.getActionmand()=剪切) 二进制) /二进制的转换if(displayField.getText()=null)若为空则弹出对话框JOptionPane.showMessageDialog(this,不能为空!请输入要进行转换的字符,消息对话框,JOptionPane.WARNING_MESSAGE);用法) /按下帮助菜单栏中用法的处理方法label_dialog.setText(sqrt,exp,log等键是先输运算符再输数字,其他运算是先输入数字再输入运算符n关于)/按下关于JOptionPane.showMessageDialog(label_dialog,成林的

12、计算器n + JAVA课程设计 详情咨询 mail:498641348qq.n, 关于计算器, JOptionPane.INFORMATION_MESSAGE) if (lastmand.equals(+)/各运算符的具体运算方法 result+= x; if(e.getSource()=dialog)dialog.setVisible(false); /隐藏对话框 elseSystem.exit(0);4.1.4动作响应模块基于前面三块模板的功能,定义一个主函数来实现计算器的所有功能,同时定义一个windowClosing 控制窗口关闭事件,其具体代码如下:public static voi

13、d main(String args) Calculator calculator=new Calculator()4.3功能模块的测试4.31整数、浮点数运算功能测试分别在计算器中点击如下算式123+789;7.5+2.6运算结果如下:图5 整数运算4.32指数、三角函数运算功能测试 分别在计算器中点击如下算式exp9;sin3.14运算结果如下:图6 指数、三角函数运算4.33二进制、八进制转换运算功能测试 在计算器中键入数字8分别进行二进制和八进制的转换运算结果如下:图7 二进制、八进制转换运算小结和展望设计,给人以创作的冲动,但也要为这次冲动承担一定的痛苦,但事后发现,这一切都是值得的

14、,本次的JAVA课程设计让我对JAVA的理论知识又有了更深一步的了解,温故而知新,开始设计之时完全没头绪,对与理论学习不够扎实的我深感“书到用时方恨少”只好再把书上介绍的相关知识重新阅读一遍,对知识进行了全面而系统的梳理,遇到难处首先是苦思冥想寻求方法,再向同学请教,终于熟练掌握了基本理论知识,而且领悟了诸多平时学习难以理解掌握的的较难的知识,学会了如何思考的方式,找到了设计的灵感。这次课程设计使我感到收获不小,使我对JAVA的设计过程有了更深的了解,促进了对理论知识的消化与吸收,也巩固和完善了本门课程的知识体系结构。设计过程中遇到了不少的麻烦,在调试过程中也出现一些平时学习过程中没有遇到过的

15、错误,通过在课程设计中老师耐心指导以及查阅相关资料,努力思考,一一解决了遇到的问题,通过这些问题,我对课本知识的理解也加深了。终上所述,课程设计诚然是一门专业课,给我们很多专业知识以及很多专也技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道理、给了我很多思想、给了我莫大的空间,大学教育当如此!参 考 文 献1 耿祥义 ,跃平. Java大学实用教程 . :电子工业, 2008.2 国宁 . Java程序设计实例教程. :中国水利.20073 王立丰 . J2EE课程设计指导 .:大学.2008.附 录源程序清单import java.awt.*;import java.awt.eve

16、nt.*;import javax.swing.*; private Container container; private GridBagLayout layout; private GridBagConstraints constraints; private JTextField displayField; /计算结果显示区 private String lastmand; private double result; /保存计算结果 private boolean start; /判断是否为数字的开始 private JMenuBar menubar; private JMenuIt

17、em m_exit,m2_ejz,m2_bjz; private Dialog dialog; private Label label_dialog; private utton button_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2, button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0, button_plus,button_minus,button_multiply,button_divide,button_poi

18、nt, button_equal,button_log,button_tan,button_cos,button_sin,button_exp; public Calculator() /构造方法设置布局、为按钮注册事件监听器 super(成林的计算器 this.setLocation(240,200); this.setSize(350,300); this.setResizable(true); this.setLayout(new GridLayout(7,1); this.addmyMenu(); /调用成员方法添加菜单 displayField=new JTextField(30);

19、 this.add(displayField); displayField.setEditable(true); start=true; result=0; lastmand = =; JPanel panel0=new JPanel(); panel0.setLayout(new GridLayout(1,4,4,4); button_exp=new utton(exp button_CE=new utton( button_cancel=new utton( JPanel panel2=new JPanel(); panel2.setLayout(new GridLayout(1,5,4,

20、4); this.add(panel2); button_7=new utton(7 button_8=new utton(8 button_9=new utton(9 button_log=new utton(log button_divide=new utton(/ JPanel panel3=new JPanel(); panel3.setLayout(new GridLayout(1,5,4,4); this.add(panel3); button_4=new utton(4 button_5=new utton(5 button_6=new utton(6 button_tan=ne

21、w utton(tan button_multiply=new utton(* JPanel panel4=new JPanel(); panel4.setLayout(new GridLayout(1,5,4,4); this.add(panel4); button_1=new utton(1 button_2=new utton(2 button_3=new utton(3 button_cos=new utton(cos button_minus=new utton( JPanel panel5=new JPanel(); panel5.setLayout(new GridLayout(

22、1,5,4,4); this.add(panel5); button_0=new utton( button_point=new utton(. button_equal=new utton( button_sin=new utton(sin button_plus=new utton( panel1.add(button_plusminus); panel1.add(button_exp); panel1.add(button_CE); panel1.add(button_cancel); panel2.add(button_7); panel2.add(button_8); panel2.

23、add(button_9); panel2.add(button_log); panel2.add(button_divide); panel3.add(button_4); panel3.add(button_5); panel3.add(button_6); panel3.add(button_tan); panel3.add(button_multiply); panel4.add(button_1); panel4.add(button_2); panel4.add(button_3); panel4.add(button_cos); panel4.add(button_minus);

24、 panel5.add(button_0); panel5.add(button_point); panel5.add(button_equal); panel5.add(button_sin); panel5.add(button_plus); button_sqrt.addActionListener(this); button_cancel.addActionListener(this); button_7.addActionListener(this); button_8.addActionListener(this); button_9.addActionListener(this)

25、; button_log.addActionListener(this); button_divide.addActionListener(this); button_4.addActionListener(this); button_5.addActionListener(this); button_6.addActionListener(this); button_tan.addActionListener(this); button_multiply.addActionListener(this); button_1.addActionListener(this); button_2.addActionListener(this);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1