Java程序设计实验报告-计算器.doc

上传人:夏** 文档编号:549871577 上传时间:2023-12-08 格式:DOC 页数:19 大小:256.50KB
返回 下载 相关 举报
Java程序设计实验报告-计算器.doc_第1页
第1页 / 共19页
Java程序设计实验报告-计算器.doc_第2页
第2页 / 共19页
Java程序设计实验报告-计算器.doc_第3页
第3页 / 共19页
Java程序设计实验报告-计算器.doc_第4页
第4页 / 共19页
Java程序设计实验报告-计算器.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Java程序设计实验报告-计算器.doc》由会员分享,可在线阅读,更多相关《Java程序设计实验报告-计算器.doc(19页珍藏版)》请在金锄头文库上搜索。

1、 Java程序设计实验报告题 目 计算器 姓 名 学 号 学 院 软件学院 专 业 软件工程 年 级 2009 级 指导教师 2010年 4 月 9 日一、实验目的1、 熟练掌握java面向对象编程。2、 选择合适的数据结构实现需求。3、 熟练使用各种控制结构。4、 掌握GUI组件、事件处理技术。二、实验任务1、 设计一个简易的计算器,可以进行四则运算:加、减、乘、除等(限于十进制下)程序要求:(1)应具有相应的界面,可参考下图进行设计: 图示1 图示2(2)操作符号定为:“+”,“-”,“*”,“/”,“(”,“)”等。(按国际惯例设计)(3)用户通过点击面板中的各种组件输入的表达式,应在上

2、方文本框中显示。(4)当用户点击“=”时,文本框中之前的内容应清空,直接显示表达式运算结果。例如:输入表达式“3+2*(8-5)”之后按“=”,显示结果“9”。(5)具有菜单栏,内有相应的编辑“复制”、“粘贴”等菜单,提供相应的功能。(6)以上部分为必须完成的内容。2、选作功能,可参考windows系统附带计算器: (1)具有相应的科学计算功能。例如“图示2”中的各种科学计算功能。三、开发工具与平台1.开发工具:Eclipse默认是一个和Jbuilder类似的Java开发工具,但它不仅仅只 是Java开发工具,只要装上相应的插件,eclipse也可作为其它语言的开发工具。如C/C+插件(CDT

3、)。2.开发平台:JDK1.5四、设计思路1.界面设计 (1)制作一个简单的面板JFrame,在其上面添加构造界面所需的各种组件其构造方法为:calculate()super();this.setBounds(10, 10, 300, 250);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);this.setTitle(计算器);init();/创建菜单及各种组件(如按钮,文本框等)getContentPane().setLayout(new BorderLayout(3,3);getCo

4、ntentPane().add(panelCenter,BorderLayout.CENTER);getContentPane().add(panelNorth,BorderLayout.NORTH);(2)实现构造菜单及文本框等组件的函数init(),如下实现:Public void Init()/菜单项的构造形成; editor.add(copy);editor.addSeparator();editor.add(paste); editor.setMnemonic(E);look.setMnemonic(V);help.setMnemonic(H); copy.setAccelerato

5、r(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK); paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK); help.add(about); bar.add(editor);bar.add(look);bar.add(help); setJMenuBar(bar);/将菜单添加到JFrame; /* 接下来是文本或结果显示区及Backspace、功能键(CE、C)和的添加,采用 GridBagLayout布局方式,将它

6、们放在北部panelNorth面板。 其次,是数字键及其他功能键的的使用,我这里采用的是网格布局,setLayout(new GridLayout(4,6,5,5);将它们放在主面板中心区域。 这里给出网格包布布局的两个重要方法,由于代码段较长,故将其他的代码放在后面附录;private void makeShow(GridBagLayout gridBag,GridBagConstraints constraints, Component component) gridBag.setConstraints(component, constraints);/ 网格包布布局; panelNort

7、h2.add(component);private void addButton(GridBagLayout gridBag,/网格包布布局重要方法;GridBagConstraints constraints, Component component) gridBag.setConstraints(component, constraints); panelNorth1.add(component);总体界面如下:2.逻辑设计 为了能够得到我们想要的操作,比如让那些数字参与运算,做什么运算等等,我们就需要为每个按钮添加响应事件,通过响应事件来完成我们预期的结果。以下我们来分析下重要的事件是如

8、何响应的:.String str = e.getActionCommand();/ TODO Auto-generated method stubif(str.equals(Backspace)/点击 BackspacehanderBackspace();else if(str.equals(CE)/点击了CE的功能是清除当前显示的数值bool = false;show.setText(0);else if(str.equals(C)/点击了C的功能是清零copyText=;Div = 0.0;CalculateResult =;bool = false;show.setText(0);els

9、e if(str.equals(MC)/MC清楚存储器内容handerMC();else if(str.equals(MR)/MR将存于存储器的值显示在文本框中handerMR();else if(str.equals(MS)/MS将显示框得文字存于存储器handerMS();else if(str.equals(M+)/M+将显示框的数与存储器中的数相加并进行存储handerM();else if(0123456789.indexOf(str)=0)/按下的是数字键或者小数点正负号handerCenter(str);else if(str.equals(%)/将当前显示框里的数字用百分比表示

10、( x/100)String current = show.getText();double a = 0;if(!current.isEmpty() a = Double.parseDouble(current); Double result =(Double) a/100; String s4 = result.toString(); if(!isInt(s4) show.setText(s4);else show.setText(s4.substring(0,s4.indexOf(.); bool = true; else handerOperation(str);/响应的是运算符;处理运

11、算符操作3. 程序测试 程序测试过程中无较大BUG,基本上轻松搞定。五、实验总结 这是我第一次正式的java程序设计实验,感觉能够把学到的东西用到实际中是件非常有趣的事,更重要的是让我们真正明白了学贵致用的道理。 由于时间有限,本程序未能做到科学计算器,同时在这里也感谢老师的指导和同学的帮助。六、 附录public class calculate extends JFrame implements ActionListener /* * param args */private JMenuBar bar = new JMenuBar();private JMenu editor =new JM

12、enu(编辑(E);private JMenuItem copy =new JMenuItem(复制);private JMenuItem paste =new JMenuItem(粘贴);private JMenu look = new JMenu(查看(V);private JMenu help = new JMenu(帮助(H);private JMenuItem about = new JMenuItem(关于);private String copyText ;private JPanel panelWest= new JPanel();private JPanel panelCenter = new JPanel();/放Number键private JPanel panelNorth = new JPanel();/放功能键1与文本框private JPanel panelNorth1 = new JPanel();private JPanel panelNorth2 = new JPanel();/放显示框private JPanel panelEast = new JPanel();/放运算键;private String strNorth = new StringBackspace,CE,C;/功能键1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 能源与动力工程

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号