版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA程序设计课程设计报告简单计算器学 号: 101210109 姓 名: 王 锦 锦 班 级: 10级计科一班 指导教师: 吕 海 莲 成 绩: 完成时间: 2012-12-25 一、 设计内容和要求1、简单计算器模拟程序的基本要求 模拟Windows中附件里面的计算器软件,能实现整数的加、减、乘、除四则运算。 2、需要实现的主要功能 该计算器模拟程序使用Java的awt包和Swing包的类库设计图形界面的计算器显示用户界面并且使用图形界面中的事件event委托机制来处理事件响应,以及用java语言设计实现整数的加、减、乘、除四则运算。(附加功能:清零和异常处理机制)二、 系统分析与概要设
2、计1、面板 JPanel txtpanel:用于放置文本框 Panel btnpanel: 用于放置按钮(0-9和+,-,*,/,=) 2、显示部分 (1)第一个面板:txtpanel 位置以及排列方式BorderLayout.NORTH txtpanel.add(txtinput):添加文本框到txtpanel面板中 (2)第二个面板:btnpanel 排列方式:setLayout(gl) 3、基本按钮 btnpanel.add(b7) btnpanel.add(b8) btnpanel.add(b9); btnpanel.add(multiply) btnpanel.add(b4) btn
3、panel.add(b5); btnpanel.add(b6) btnpanel.add(divide) btnpanel.add(b1); btnpanel.add(b2) btnpanel.add(b3) btnpanel.add(add); btnpanel.add(b0) .add(bdes) btnpanel.add(equal); btnpanel.add(subtract) 以上是在第二个面板btnpanelH中添加的0到9和+,-,*,/,=的按钮。4、附加功能(1)“清零”: 用于清空文本框和下一次的运算(2)“异常处理” 除数为零:当除数为零时,弹出“除数不能为零”窗体 错
4、误输入:当只单击运算符时,弹出“错误输入”窗体 三、 详细设计和编码1、总体功能图运行输入计算的数值值单击运算符号,再单击等于符号单击运算符号,弹出一个消息框,提醒错误输出结果YN1、类的定义及关系 Jsq类继承JFrame类创建主界面,在主界面上由文本框JTextField和JButton组件构成,JTextField和JButton组件分别放置在两个不同的面板JPanel上,同时利用按钮注册监听器,获取事件源。添加实现0-9和加、减、乘、除按钮并实现四则运算并获得运算结果以及“清零”和“异常处理机制”。2、运行效果图3、源代码import javax.swing.*;import java
5、.awt.*;import java.awt.event.*;public class Calculator extends JFrame implements ActionListenerJPanel txtpanel,btnpanel;JTextField txtinput;JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clear,equal;GridLayout gl;double d1,d2;String s;public Calculator()super(计算器);txtpanel=n
6、ew JPanel();btnpanel=new JPanel();txtinput=new JTextField(25);txtinput.setEditable(false);txtinput.setHorizontalAlignment(JTextField.RIGHT);txtinput.setText();b1=new JButton(1);b2=new JButton(2);b3=new JButton(3);b4=new JButton(4);b5=new JButton(5);b6=new JButton(6);b7=new JButton(7);b8=new JButton(
7、8);b9=new JButton(9);b0=new JButton(0);bdes=new JButton(.);add=new JButton(+);subtract=new JButton(-);multiply=new JButton(*);divide=new JButton(/);clear=new JButton(清 零);equal=new JButton(=);clear.addActionListener(new ActionListener() public void actionPerformed(ActionEvent argh) btnCancelActionPe
8、rformed(););b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b0.addActionListener(this);bdes.addActionList
9、ener(this);multiply.addActionListener(this);divide.addActionListener(this);add.addActionListener(this);subtract.addActionListener(this);equal.addActionListener(this);getContentPane().add(txtpanel,BorderLayout.NORTH);txtpanel.add(txtinput);txtpanel.add(clear);gl=new GridLayout(4,4,5,5);btnpanel.setLa
10、yout(gl);getContentPane().add(btnpanel);btnpanel.add(b7);btnpanel.add(b8);btnpanel.add(b9);btnpanel.add(multiply);btnpanel.add(b4);btnpanel.add(b5);btnpanel.add(b6);btnpanel.add(divide);btnpanel.add(b1);btnpanel.add(b2);btnpanel.add(b3);btnpanel.add(add);btnpanel.add(b0);btnpanel.add(bdes);btnpanel.
11、add(equal);btnpanel.add(subtract);setSize(250,220);setVisible(true);setLocation(300,200);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);public void btnCancelActionPerformed() txtinput.setText();public void actionPerformed(ActionEvent e) tryObject obj=e.getSource();if(obj=b1)txtinput.setText
12、(txtinput.getText()+1);else if(obj=b2)txtinput.setText(txtinput.getText()+2);else if(obj=b3)txtinput.setText(txtinput.getText()+3);else if(obj=b4)txtinput.setText(txtinput.getText()+4);else if(obj=b5)txtinput.setText(txtinput.getText()+5);else if(obj=b6)txtinput.setText(txtinput.getText()+6);else if
13、(obj=b7)txtinput.setText(txtinput.getText()+7);else if(obj=b8)txtinput.setText(txtinput.getText()+8);else if(obj=b9)txtinput.setText(txtinput.getText()+9);else if(obj=b0)txtinput.setText(txtinput.getText()+0);else if(obj=bdes)txtinput.setText(txtinput.getText()+.);else if(obj=add) d1=Double.parseDou
14、ble(txtinput.getText();s=+;txtinput.setText();else if(obj=subtract) d1=Double.parseDouble(txtinput.getText();s=-;txtinput.setText(); else if(obj=divide) d1=Double.parseDouble(txtinput.getText();s=/;txtinput.setText();else if(obj=multiply) d1=Double.parseDouble(txtinput.getText();s=*;txtinput.setText
15、();else if(obj=equal) if(s=+) d2=d1+Double.parseDouble(txtinput.getText();txtinput.setText(Double.toString(d2);else if(s=-) d2=d1-Double.parseDouble(txtinput.getText();txtinput.setText(Double.toString(d2);else if(txtinput.equals(txtinput.getText()&obj=subtract) d2=d1-Double.parseDouble(txtinput.getT
16、ext();txtinput.setText(Double.toString(d2); else if(s=/) if(Double.parseDouble(txtinput.getText()=0)JOptionPane.showMessageDialog(this, 除数不能为0);d2=d1/Double.parseDouble(txtinput.getText();txtinput.setText(Double.toString(d2);else if(s=*) d2=d1*Double.parseDouble(txtinput.getText();txtinput.setText(D
17、ouble.toString(d2); catch(Exception ouch) JOptionPane.showMessageDialog(null,错误输入,error,JOptionPane.ERROR_MESSAGE); public static void main(String args) try UIManager.setLookAndFeel (com.sun.java.swing.plaf.windows.WindowsLookAndFeel);catch(Exception e)new Calculator();四、 测试结果本次课程设计的计算器能够满足加、减、乘、除四则
18、基本运算,而且通过自己的努力为此计算器添加了两个附加的功能:“清零”和“异常处理机制”,并能很好的实现其功能。但是此计算器的功能还是很单薄,不能进行开方、取余、三角函数等其他计算器的常用功能。一是因为这些功能相对复杂一些,二是自己有点懒惰。所以造成此计算器功能不是很完善。五、 小结 在此次的课程设计实践中,我学到了教科书上没有的东西。这次课程设计,我按照课程设计的要求,分块实现程序的功能。在实践中我遇到许多的问题,通过同学的帮助和翻阅资料以及网上查询,最后都克服,最终我成功的完成了这次课程设计。从中我充分理解了Java面对对象的特性,通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于机器视觉的电池绝缘膜片缺失自动检测装置研究与应用
- 基于智能算法的热轧板坯库垛位优化策略与应用实践
- 教育行风培训-规范中小学教辅材料管理工作教育大会
- 智能体价值公式2026年应用型人工智能指数2026
- 2026年院感试题附答案(口腔科)
- 2026年选调生招录笔试综合能力测试题及完整答案
- 智能网联车辆个性化运动控制与测试评价方法 课件 第2章 面向个性化自动驾驶的自然驾驶数据分析
- 2026年应急避难场所管理运维综合测评卷及答案
- 2026年税务考试试题及答案
- 2026年放射科规培结业考试题库及答案
- 6.3 文化自信日益增强课件(25张内嵌视频)- 2026-2027学年统编版道德与法治九年级上册
- 2026算法推动下新大众文艺发展研究报告
- 中国邮政集团招聘考试历年真题
- 2026年秋季开学初中开学第一课(感恩教育)课件
- 新人教版二年级上册数学总复习教案
- 免疫与免疫规划课件-2026-2027学年八年级上册生物学人教版
- 肛肠术后疼痛的护理社会支持
- 2026年某大型央企十五五企业级数据编织(Data Fabric)架构与主动元数据管理平台初步设计方案新版
- 回复客户投诉的的质量整改函(6篇)
- 火电厂施工方案大全
- 消防监控室值班服务方案
评论
0/150
提交评论