计算器java程序设计报告总体设计,java程序设计实验报告-计算器

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

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

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

3、va 开发工具,但它不仅仅 只 是 Java 开发工具,只要装上相应的插件,eclipse 也可作为其它语言的开发 工具。如 C/C+插件(CDT)。 2.开发平台:开发平台:JDK1.5四、设计思路四、设计思路1.界面设计界面设计 (1)制作一个简单的面板 JFrame,在其上面添加构造界面所需的各种组件 其构造方法为:calculate() super(); this.setBounds(10, 10, 300, 250); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this。

4、.setTitle(“计算器“);init();/创建菜单及各种组件(如按钮,文本框等)getContentPane().setLayout(new BorderLayout(3,3); getContentPane().add(panelCenter,BorderLayout.CENTER); getContentPane().add(panelNorth,BorderLayout.NORTH);(2)实现构造菜单及文本框等组件的函数 init(),如下实现: Public void Init() /菜单项的构造形成;editor.add(copy);editor.addSeparator(。

5、);editor.add(paste);editor.setMnemonic(E);look.setMnemonic(V);help.setMnemonic(H);copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_M ASK);paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_M ASK);help.add(about);bar.add(editor);bar.add(look);bar.add(hel。

6、p);setJMenuBar(bar);/将菜单添加到 JFrame;/* 接下来是文本或结果显示区及 Backspace、功能键(CE、C)和的添加, 采用 GridBagLayout 布局方式,将它们放在北部 panelNorth 面板。其次,是数字键及其他功能键的的使用,我这里采用的是网格布局, setLayout(new GridLayout(4,6,5,5);将它们放在主面板中心区域。 这里给出 网格包布布局的两个重要方法,由于代码段较长,故将其他的代码放在后面附 录;private void makeShow(GridBagLayout gridBag, GridBagConstr。

7、aints constraints, Component component) gridBag.setConstraints(component, constraints);/ 网格包布布局;panelNorth2.add(component); private void addButton(GridBagLayout gridBag,/网格包布布局重要方法; GridBagConstraints constraints, Component component) gridBag.setConstraints(component, constraints); panelNorth1.add(c。

8、omponent); 总体界面如下:2.逻辑设计逻辑设计为了能够得到我们想要的操作,比如让那些数字参与运算,做什么运算等 等,我们就需要为每个按钮添加响应事件,通过响应事件来完成我们预期的结 果。以下我们来分析下重要的事件是如何响应的:.String str = e.getActionCommand();/ TODO Auto-generated method stub if(str.equals(“Backspace“)/点击 Backspace handerBackspace(); else if(str.equals(“CE“)/点击了CE的功能是清除当前显示的数值 bool = fal。

9、se; show.setText(“0“); else if(str.equals(“C“)/点击了 C 的功能是清零 copyText=“; Div = 0.0; CalculateResult =“; bool = false; show.setText(“0“); else if(str.equals(“MC“)/MC 清楚存储器内容 handerMC(); else if(str.equals(“MR“)/MR 将存于存储器的值显示在文本框中 handerMR(); else if(str.equals(“MS“)/MS 将显示框得文字存于存储器 handerMS(); else if。

10、(str.equals(“M+“)/M+将显示框的数与存储器中的数相加并进行 存储handerM(); else if(“.“.indexOf(str)=0)/按下的是数字键或者小数点正负号 handerCenter(str); else if(str.equals(“%“)/将当前显示框里的数字用百分比表示( x/100) String current = show.getText(); double a = 0; if(!current.isEmpty()a = Double.parseDouble(current);Double result =(Double) a/100;String。

11、 s4 = result.toString();if(!isInt(s4)show.setText(s4); else show.setText(s4.substring(0,s4.indexOf(“.“);bool = true; else handerOperation(str);/响应的是运算符;处理运算符操作 3.程序测试程序测试程序测试过程中无较大 BUG,基本上轻松搞定。五、实验总结五、实验总结这是我第一次正式的 java 程序设计实验,感觉能够把学到的东西用到实际 中是件非常有趣的事,更重要的是让我们真正明白了学贵致用的道理。由于时间有限,本程序未能做到科学计算器,同时在这里也感。

12、谢老师的指导 和同学的帮助。6 6、附录附录public class calculate extends JFrame implements ActionListener /* param args*/ private JMenuBar bar = new JMenuBar(); private JMenu editor =new JMenu(“编辑(E)“); private JMenuItem copy =new JMenuItem(“复制“); private JMenuItem paste =new JMenuItem(“粘贴“); private JMenu look = new J。

13、Menu(“查看(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 panelNor。

14、th1 = new JPanel(); private JPanel panelNorth2 = new JPanel();/放显示框private JPanel panelEast = new JPanel();/放运算键;private String strNorth = new String“Backspace“,“CE“,“C“;/ 功能键 1 private String strCenter = new String“7“,“8“,“9“,“4“,“5“,“6“,“1“,“2“,“3“,“0“,“+/-“,“.“; private String strEast = new Strin。

15、g“/“,“sqrt“,“*“,“%“,“- “,“1/x“,“+“,“=“; private StringstrWest = new String“MC“,“MR“,“MS“,“M+“;private JButton buttonCenter = new JButtonstrCenter.length; private JButton buttonEast= new JButtonstrEast.length; private JButton buttonNorth = new JButtonstrNorth.length; private JButton buttonWest = new JButtonstrWest.length;private String ch=new String();/保存当前运算符 private Double Div;/保存中间运算数 priva。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值