




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java实训设计报告Java实训设计报告计算器专业:软件技术班级:09-23 学号:090123037姓名:范付明石家庄科技信息职业学院信息工程系2011年10月15日项目简介项目名称计算器开发人员范付明项目简介本程序名称为计算器,主要功能是实现简单的数字,运算符号,计算,删除,复位等功能。项目目的掌握计算器的各项基本功能掌握编写计算器程序的所用方法掌握Swing组件的应用掌握事件的应用主要技术Java编程语言、javaSwing技术开发环境 JDK1.6.0_24项目特点使用组件构建的C/S应用程序各项功能的组织合理搭配应用图标控制功能实现技术重点构建基于C/S架构的应用程序Swing组件应用事件监听的应用方法的编写技术难点Swing组件的应用事件监听器的使用异常处理方法简便的选择项目名称一、项目需求 本程序的主要功能:(1)单击“计算器”上的数字按钮(09)可以设置参与计算的运算数。(2)单击“计算器”上的运算符按钮(+、-、*、/、1/x、sqrt、%)可以选择运算符号。(3)单击“计算器”上的“=”按钮显示计算结果。(4)单击“计算器”上的“复位”按钮清空计算结果。(5)单击“计算器”上的“删除”按钮删除输入的最后一个数字。二、项目设计在设计计算器时,编写2个Java源文件:CalculatorWindow.java、NumberButton.java计算器除了上述Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField等。下面是2个Java源文件的总体设计。(1)CalculatorWindow.java(主类)CalculatorWindow类负责创建计算器的主窗口,该类含有main方法,计算器从该类开始执行。CalculatorWindow类有4种类型的对象,分别是:LinkedList、NumberButton、JButton、JTextField。(2)NumberButton.javaNumberButton类创建的对象是主类CalculatorWindow窗口的一个“数字”按钮。NumberButton有一个int类型的成员temp,用于标明所创建的按钮所含有的运算符号。NumberButton所创建的22个按钮被添加到CalculatorWindow窗口中。 1、CalculatorWindow类(主类)(1)数据和方法CalculatorWindow类是javax.swing包中JFrame的一个字类,并实现了ActionListener接口。类中有关数据和方法的详细说明。1)成员变量jbArray是NumberButton型数组,每个单元是一个NumberButton类创建的“数字按钮”对象,该数组长度为10。numberButton数组中的“数字按钮”含有的数字依次为09。每个“数字按钮”都注册有ActionEvent事件监听器。2)方法main(String args)方法是计算器程序运行的入口方法。CalculatorWindow()是构造方法,负责完成窗口的初始化。(2)代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class jisuanqi extends JFrame implements ActionListenerprivate JTextField jtResult=new JTextField();private JButton jb_clear=new JButton(复位);private JButton jb_delete=new JButton(删除);private static JButton jbArray=new JButton(7),new JButton(4),new JButton(1),new JButton(0), new JButton(8),new JButton(5),new JButton(2),new JButton(+/-), new JButton(9),new JButton(6),new JButton(3),new JButton(.), new JButton(/),new JButton(*),new JButton(-),new JButton(+), new JButton(sqrt),new JButton(%),new JButton(1/x),new JButton(=) ;int first=0;double qian; String fuhao; boolean clear=true,clickable=true; public jisuanqi()setFrame();addListener();public void setFrame()this.setLayout(null);this.setTitle(计算器);jtResult.setBounds(120,100,310,30);jtResult.setEditable(false);jtResult.setHorizontalAlignment(JTextField.RIGHT);this.add(jtResult);jb_clear.setBounds(290,150,60,30);this.add(jb_clear);for(int i=0;ijbArray.length;i+)for(int j=0;jjbArray0.length;j+)jbArrayij.setBounds(50+80*i,200+60*j,60,30);this.add(jbArrayij);jb_delete.setBounds(370,150,60,30);this.add(jb_delete);this.setBounds(430,130,500,500);this.setVisible(true);public void addListener()jtResult.addActionListener(this);jb_clear.addActionListener(this);jb_delete.addActionListener(this);for(int i=0;ijbArray.length;i+)for(int j=0;jjbArray0.length;j+)jbArrayij.addActionListener(this);public void actionPerformed(ActionEvent e)Object temp=e.getSource();if(temp=jb_clear)jtResult.setText();if(temp=jb_delete)String s = jtResult.getText();jtResult.setText();for (int i = 0; i s.length() - 1; i+) char a = s.charAt(i);jtResult.setText(jtResult.getText() + a);if(temp=jbArray03)/点击0按钮if(clear=false)/判断是否点击了符号位jtResult.setText();jtResult.setText(jtResult.getText()+0);if(temp=jbArray02)/点击1按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+1);clear=true;/第二次不在清空if(temp=jbArray12)/点击2按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+2);clear=true;if(temp=jbArray22)/点击3按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+3);clear=true;if(temp=jbArray01)/点击4按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+4);clear=true;if(temp=jbArray11)/点击5按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+5);clear=true;if(temp=jbArray21)/点击6按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+6);clear=true;if(temp=jbArray00)/点击7按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+7);clear=true;if(temp=jbArray10)/点击8按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+8);clear=true;if(temp=jbArray20)/点击9按钮if(clear=false)jtResult.setText();jtResult.setText(jtResult.getText()+9);clear=true;if(temp=jbArray23)/点击.按钮clickable=true;for (int i = 0; i jtResult.getText().length(); i+) if (. = jtResult.getText().charAt(i) clickable=false;break; /第一层判断是否里面含有小数点;if(clickable=true)/第二坛判断jtResult.setText(jtResult.getText()+.);tryif(temp=jbArray33)/点击+按钮qian=Double.parseDouble(jtResult.getText();fuhao=+;clear=false;if(temp=jbArray32)/点击-按钮qian=Double.parseDouble(jtResult.getText();fuhao=-;clear=false;if(temp=jbArray31)/点击*按钮qian=Double.parseDouble(jtResult.getText();fuhao=*;clear=false;if(temp=jbArray30)/点击/按钮qian=Double.parseDouble(jtResult.getText();fuhao=/;clear=false;if(temp=jbArray43)/点击=按钮double ss=Double.parseDouble(jtResult.getText();jtResult.setText();if(fuhao=+)jtResult.setText(qian+ss+);if(fuhao=-)jtResult.setText(qian-ss+);if(fuhao=*)jtResult.setText(qian*ss+);if(fuhao=/)jtResult.setText(qian/ss+);clear=false;/要清空前一次的数据if(temp=jbArray40)/点击sqrt按钮String s = jtResult.getText();if(s.charAt(0) = -)jtResult.setText(负数不能开根号); elsejtResult.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(jtResult.getText();clear=false;if(temp=jbArray42)/点击1/x按钮if (jtResult.getText().charAt(0) = 0&jtResult.getText().length() = 1)jtResult.setText(除数不能为零); elseboolean isDec = true;int i, j, k;String s = Double.toString(1 / Double.parseDouble(jtResult.getText();for (i = 0; i s.length(); i+)if (s.charAt(i) = .)break;for (j = i + 1; j s.length(); j+)if (s.charAt(j) != 0)isDec = false;break;if (isDec = true)String stemp = ;for (k = 0; k i; k+) stemp += s.charAt(k); jtResult.setText(stemp); else jtResult.setText(s);clear=false;if(temp=jbArray41)/点击%按钮jtResult.setText(0);clear=false;if (temp = jbArray13) /点击+/-按钮boolean isNumber = true; String s = jtResult.getText(); for (int i = 0; i = 0&s.charAt(i) = 9|s.charAt(i) = .|s.charAt(i) = -)isNumber = false;break;if (isNumber = true)/如果当前字符串首字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陶瓷制品装备的智能化配方设计与优化-洞察阐释
- 农村传统养老方式的优势与局限
- 医药制剂生产线项目可行性研究报告
- AI赋能安全监管思路与探讨
- 2025至2030年中国玩具眼睛行业投资前景及策略咨询报告
- 劳动关系协商机制的长效监督与评估机制
- 2025至2030年中国海绵枕头行业投资前景及策略咨询报告
- 2025至2030年中国架桥机行业投资前景及策略咨询报告
- 2025至2030年中国有机玻璃水平电泳槽行业投资前景及策略咨询报告
- 陕西省咸阳市2022-2023学年高二下学期期末文科数学试题(教师版)
- 人脸识别门禁系统使用指南
- 酒店安全设施
- 水下机器人研究报告
- 建筑项目部考勤管理制度
- 中班健康课件《我不挑食》
- 中国盐业集团有限公司招聘笔试题库2024
- 2024年人教版小学四年级信息技术(上册)期末试卷附答案
- 运动是良医智慧树知到答案2024年成都师范学院
- 四川省凉山彝族自治州 2023-2024学年八年级下学期7月期末道德与法治试题
- 2024年安徽省高考生物试卷(真题+答案)
- 《学前儿童健康教育》6-2学前儿童安全教育的目标和内容课件
评论
0/150
提交评论