1、计算器java课程设计简单计算器计算器java课程设计一简单计 算器好茨4巒戊JAVA程序设计课程设计报告简单计算器卫口 Tfp10级计科一班吕海莲 2012-12-25一、 设计内容和要求1、 简单计算器模拟程序的基本要求模拟Windows中附件里面的计算器软件,能实现整数的加、减、乘、除四则 运算。2、 需要实现的主要功能该计算器模拟程序使用Java的awt包和Swing包的类库设计图形界面的计 算器显示用户界面并且使用图形界面中的事件event委托机制来处理事件响应, 以及用Java语言设计实现整数的加、减、乘、除四则运算。(附加功能:淸零和 异常处理机制)二、 系统分析与概要设计1、
2、面板JPanel txtpanel:用于放置文本框Panel btnpanel:用于放置按钮(09 和+,-,*/,=)2、 显示部分(1)第一个面板:txtpanel位置以及排列方式BorderLayout.NORTHtxtpanel.add(txtinput):添加文本框到 txtpanel 面板中(2)第二个面板:btnpanel排列方式:setLayout(gl)3、基本按钮btnpanel.add(b9);btnpanel.add(b5);btnpanel.add(bl);btnpanel.add(b7) btnpanel.add(b8)btnpanel.add( multiply)
3、 btnpanel.add(b4)btnpanel.add(b6) btnpanel.add(divide)btnpaneLadd(add);btnpanel.add(b2) btnpaneLa(kl(b3)btnpaneLadd(bO) .add(bdes) btnpaneLadd(equal); btnpaneLadd(subtract)以上是在第二个面板btnpanelH中添加的0到9和+,-,*/,=的按钮。4、附加功能(1)“清零”:用于清空文本框和下一次的运算(2)“异常处理”除数为零:当除数为零时,弹出“除数不能为零”窗体 错误输入:当只单击运算符时,弹出“错误输入”窗体三、详细
4、设计和编码1、总体功能图结果输出“1、 类的定义及关系Jsq类继承JFrame类创建主界面,在主界面上由文本框JTextField和 JButton组件构成,JTextField和JButton组件分别放置在两个不同的面板JPanel 上,同时利用按钮注册监听器,获取事件源。添加实现0-9和加、减、乘、除 按钮并实现四则运算并获得运算结果以及“清零”和“异常处理机制”。2、 运行效果图0 W零3.源代码import Javax.swing.*;Import Java.awt.*;import Java.awt.event.*;public class Calculator extends JF
5、rame implements ActionListenerJPanel txtpanel.btnpanel;JTextField txtinput;JButton bl,b2,b3,b4,b5,b6,b7,b&b9,b0,bdes,multiply,divide,add, subtract9cleai;equal;GrldLayout gl;double dl,c!2;String s;public Calculator()supei(”计算器”); txtpanel=new JPanel(); btnpanel=new JPanel();txtinput=new JTextFiel(l(2
6、5); txtinput.setEditable(false); txtinpiit.setHorizontalAlignment(JTextField.RIGHT); txtinpiiLsetText(tftparseDouble(txtinput.getText(); s=7n;txtinput.setText(ntt);else if(obj=multiply) dl=Double.parseDouble(txtinput.getText();txtinputsetText(n,t);else if(obj=equal)if(s=,+n) d2=d l+Double.parseDoubl
7、e(txtinput.getText(); txtinput.setText(Double.toStrlng(d2); else if(s=M-f,) d2=dl-Double.parseDouble(txtlnpuLgetText(); txtinput.setText(Doiible.toString(d2);else if(txtinputequals(txtinputgetText()&o bj=subtract) d2=dl-Double.parseDouble(txtinpiit.getText(); txtinput.setText(Double.toStrlng(d2); el
8、se if(s=,7M)if(Double.parseDouble(txtinput.getText()=0) JOptionPane.showMessageDialog(this, n 除数不能为 On); d2=dl/Double.parseDouble(txtinpuLgetText(); txtinput.setText(Double.toStrlng(d2);else if(s=,l*H) d2=dl*Double.parseDoiible(txtinput.getText(); txtlnput.setText(Doiible.toString(d2);catch(Exceptlo
9、n ouch) JOptionPane.showMessageDialog(null/9错误输入,errort JOptionPane.ERROR_MESSAGE); public static void main(String args)try UIManager.setLookAndFeel(lfcom.siinjava.swing.plaf. windows. VVindowsLookAndFee 1“);catch(Exceptlon e)new CalculatorQ;四、测试结果本次课程设计的计算器能够满足加、减、乘、除四则基本运算,而且通过 自己的努力为此计算器添加了两个附加的功
10、能:“清零”和“异常处理机制”, 并能很好的实现其功能。但是此计算器的功能还是很单薄,不能进行开方、取余、三角函数等其他 计算器的常用功能。一是因为这些功能相对复杂一些,二是自己有点懒惰。所 以造成此计算器功能不是很完善。五、 小结在此次的课程设计实践中,我学到了教科书上没有的东西。这次课程设计, 我按照课程设计的要求,分块实现程序的功能。在实践中我遇到许多的问题, 通过同学的帮助和翻阅资料以及网上査询,最后都克服,最终我成功的完成了 这次课程设计。从中我充分理解了 Java面对对象的特性,通过编写这个相对复 杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题 简单化,从而解决问题。这次编写的程序大部分是通过调用各包中的方法来实 现的,这也让我充分理解了包和类调用的关系。并为其增加了两个功能“清零” 和“异常处理机制”。由于这次编写的程序相对比较复杂,所以不能一次性编写、 调试,也由此让我学会把程序分块,逐个编写、调试。在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌 握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础。六、 参考文献1张思民.Java语言程序设计M清华大学出版社.2007.2 2耿祥义.Java 2使用教程(第三版)M清华大学出版社.2006.8