




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可视化程序设计计算器可视化程序设计书-计算器 课题介绍该计算器的设计主要是运用Java软件,进行数字的简单加、减、乘、除、开方、清零等工作,实现计算器的基本运行功能。程序设计的可行性本程序主要运用到的是:(1)包的引用; Java中每个接口或类都来自不同的包,不论是Java API中的类还是自定义的类与接口都需要隶属于某一个包。当程序中只有一个类组成时并不会给程序带来什么影响,但是随着代码的增多,免不了出现同名问题,而且多个类放在一个文件夹中也不好和管理;Java中的包名规则要求包全部使用小写字母,如本程序中的java.awt;类包的导入:import 包名,如本程序中的import java.awt*;其中*代表所有类;(2)this关键字;如果一个方法中含有与成员变量同名的局部变量,则方法中对该变量的访问以局部变量进行访问,也就是说,方法体中的局部变量发改了成员变量。如果在该范围内访问成员变量,就必须使用this关键字。 (3)if条件语句;、if条件语句是一个重要的编程语句,它是指程序在某个条件成立的情况下执行某段程序,如果条件不成立就执行另外的语句,if条件语句可以分为简单的if条件语句、ifelse语句和ifelse if多分支语句。(4)类的继承;继承在面向对象开发思想中是一个非常重要的概念,通过继承可以使用以前定义的类的成员方法和成员变量,经过简单的程序编码就可以构建功能强大的新类。实现继承是通过extends关键字在声明类的时候指定其父类:【修饰符】 class 类名extends父类名。本程序中的Window是子类,Fram是父类。(5)方法的重写与super关键字;继承某个父类而生成的新的子类不但拥有父类的变量与方法,还可以为子类添加新的成员变量和成员方法,以增强父类的功能。甚至还可以在子类中为父类的某个方法定义多个重载方法,增加该类的灵活性。但是,有时候父类的方法并不能完全适应于子类,或者子类需要有不同的行为。这种情况下,子类可以重写父类的某个方法,或者说是覆盖父类的某个方法。只要在子类中定义与父类相同的方法,就可以了。当然也可以用super关键字来引用父类的方法,避免了一些繁琐的程序语句。(6)修饰符;修饰符包含public修饰符, private修饰符, protected修饰符, 默认权限修饰符等。 (7)数字类型转换;数据类型转换就是吧数据的类型转换变为另一种类型。Java对数据类型的转换有严格的规定,数据从占用存储空间较小的类型转换为占用存储空间较大的数据类型时,不用做现实的类型转换(即自动类型转换);反之则必须做强制类型转换。(8)Swing:包括JFram窗体,布局管理器,按钮组件,文本框组件;JFram是Swing技术中的窗体类,在开发应用程序时可以通过继承java.swing.JFram类创建一个窗体,在这个窗体中添加组件,同时为组件设置事件监听器,处理一些最大化,最小化,关闭,调整大小等窗体事件。JFram窗体类包含一个容器类,所有放置在窗体上的组件实际上都是放置在这个容器类中的。这个容器作为JFram类的一个封装属性,通过getContentPane( )方法可以获取它。不同的布局管理器将按照不同的布局摆放组件。这样,就不用指定组件的位置与大小,同时避免了跨平台的组件重叠现象。常用的布局管理器包括绝对布局管理器,流布局管理器,边界布局管理器和网格布局管理器。按钮组件,它用于出发特定动作。Swing中提供了很多种按钮,包括提交按钮,复选框、单选框按钮等,这些按钮都是从AbstractButton类中继承而来的。文本框用来或编辑一个单行文本,在Swing中通过javax.swing.JTextField类课创建文本框组件对象。(9)GUI事件处理:事件监听器,窗体事件等等;事件监听器用于监听指定的事件类型,它们是Swing定义的不同的接口的实现对象。程序开发离不开窗体,所有组件都要放在窗体中呈现给用户。那么,对应于窗体的事件处理是必不可少的,窗体在系统中有不同的状态,例如打开窗体时处于激活状态,当选择其他窗体时,该窗体又处于未激活状态。当单击窗体的最小化按钮、关闭按钮时将会触发相应的事件方法。程序设计分析本程序代码用到的类包括:jisuanqi ; Window 两大类。在类jisunqi 中包含了主方法(void main(String args)),并且实例化对象my,为计算器。第二个类Window继承了父类Frame。创建了StringBuffer类的实例对象 m, 整型变量p, JTextField类的实例对象 tex, JButton类的实例对象 b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, jia, jian, cheng, chu, deng, dian , qingling, kaifang。构造方法Window(String s),super是指在Window这个方法体重引用父类Fram的方法。tex=new JTextField(18); b0=new JButton( 0 ); b1=new JButton( 1 ); b2=new JButton( 2 ); kaifang=new JButton( );等语句分别为tex, b0 , b1, b2, b3, b4, b5, b6, b7 , b8, b9, dian, jia, jian, cheng, chu, deng, qingling, kaifang赋初值。添加流布局管理器FlowLayout,运用类似add(tex)等语句,将上述对象(tex, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, dian, jia,jian, cheng, chu, qingling, kaifang)添加到到管理器中。运用类似b0.addActionListener(this)等语句,添加事件监听器。setBounds(200,200,160,280)语句设置窗体大小和位置,setVisible(true)语句设置窗体可见,setResizable(false)语句设置不可改变大小,setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)语句设置窗体默认关闭方式。public void actionPerformed()为一个方法,主要对计算器的用作进行设计,如“ + ”,“ - ”,“ * ”,“ / ”,“ ”的运算方法。程序实现import java.awt.*;import java.awt.event.*;public class MyJisuanqi / 09142102陈文华public static void main(String args)Window my=new Window(计算器); class Window extends Frame implements ActionListener / 09142102陈文华 StringBuffer m=new StringBuffer(); int p; JTextField tex; JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,jia,jian,cheng,chu,deng,dian,qingling,kaifang;Window(String s) super(s);StringBuffer s2=new StringBuffer(); String s; tex=new JTextField(18); b0=new JButton( 0 ); 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( 8 ); b9=new JButton( 9 ); dian=new JButton( . ); jia=new JButton( + ); jian=new JButton( - ); cheng=new JButton( ); chu=new JButton( / ); deng=new JButton( = ); qingling=new JButton( 清零 ); kaifang=new JButton( ); setLayout(new FlowLayout(); add(tex); add(b0); add(b1); add(b2); add(b3); add(b4); add(b5); add(b6); add(b7); add(b8); add(b9); add(dian); add(jia); add(jian); add(cheng); add(chu); add(kaifang); add(qingling); add(deng); b0.addActionListener(this); 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); jia.addActionListener(this); jian.addActionListener(this); cheng.addActionListener(this); chu.addActionListener(this); dian.addActionListener(this); deng.addActionListener(this); qingling.addActionListener(this); kaifang.addActionListener(this); setBounds(200,200,160,280); setResizable(false); setVisible(true);validate();/*WindowAdapter是一个匿名内部类,相当于WindowListener的子类*添加一个事件监听器*/ addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent ee) System.exit(0); ); public void actionPerformed(ActionEvent e) if(e.getSource()=b0) m=m.append(0); tex.setText(String.valueOf(m); if(e.getSource()=b1) m=m.append(1); tex.setText(String.valueOf(m); if(e.getSource()=b2) m=m.append(2);tex.setText(String.valueOf(m); if(e.getSource()=b3) m=m.append(3); tex.setText(String.valueOf(m); if(e.getSource()=b4) m=m.append(4); tex.setText(String.valueOf(m); if(e.getSource()=b5) m=m.append(5); tex.setText(String.valueOf(m); if(e.getSource()=b6) m=m.append(6); tex.setText(String.valueOf(m); if(e.getSource()=b7) m=m.append(7); tex.setText(String.valueOf(m); if(e.getSource()=b8) m=m.append(8); tex.setText(String.valueOf(m); if(e.getSource()=b9) m=m.append(9); tex.setText(String.valueOf(m); if(e.getSource()=jia) m=m.append(+); tex.setText(String.valueOf(m); if(e.getSource()=jian) m=m.append(-); tex.setText(String.valueOf(m); if(e.getSource()=cheng) m=m.append(*); tex.setText(String.valueOf(m); if(e.getSource()=chu) m=m.append(/); tex.setText(String.valueOf(m); if(e.getSource()=dian) m=m.append(.); tex.setText(String.valueOf(m); String mm=String.valueOf(m); int p1=mm.indexOf(+); int p2=mm.indexOf(-); int p3=mm.indexOf(*); int p4=mm.indexOf(/); if(p1!= -1) p=p1; else if(p2!=-1) p=p2; else if(p3!=-1) p=p3; else if(p4!=-1) p=p4; if(e.getSource()=deng) String m1=mm.substring(0,p); String m2=mm.substring(p+1); String ch=mm.substring(p,p+1); System.out.println(m1); System.out.println(m2); System.out.println(ch); if(ch.equals(+) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1+n2; String su=String.valueOf(sum); tex.setText(su); if(ch.equals(-) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1-n2; String su=String.valueOf(sum); tex.setText(su); if(ch.equals(*) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1*n2; String su=String.valueOf(sum); tex.setText(su); if(ch.equals(/) float n1=Float.parseFloat(m1); float n2=Float.parseFloat(m2); float sum=n1/n2; String su=String.valueOf(sum); tex.setText(su); if(e.getSource()=qingling) StringBuffer kk=new StringBuffer(); m=kk; tex.setText(0); System.out.println(mm); if(e.getSource()=kaifang) String t=tex.getText(); float num=Float.parseFloat(t); double nub=Math.sqrt(num); tex.setText(String.valueOf(nub); 程序所得结果如图所示程序设计总结,心得体会目前已开发的程序设计语言有许多种,我们接触到的就有C语言以及Java等,另外还有些我们并不熟悉的C+、Delphi、VC等编程语言,其中最典型的当属C、C+和Java。Java是由Sun公司开发的能够跨越多平台的,可移植性高的一种面向对象的编程语言,也是目前最先进,特征最丰富,功能最强大的计算机语言。Java自从面世以来一直以易学易用,功能强大的特点得到广泛应用。其强大的跨平台特性使Java程序可以运行在任何一个系统平台上,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据恢复及维护服务合同
- 软件安全防护技术服务合同
- 房子补偿维修协议书
- 整体转让农庄协议书
- 废桶回收合同协议书
- 招标建设合同协议书
- 招生承包合同协议书
- 承接婚纱租赁协议书
- 情侣合同定制协议书
- 拒绝超限超载协议书
- 虚拟商业创新创业实训智慧树知到答案2024年西安工业大学
- 三年级数学下册计算题大全(每日一练共18份)
- 阀门产品质量证明书
- 高二语文九日齐山登高省公开课金奖全国赛课一等奖微课获奖课件
- 2024-2030年中国桦树汁行业市场发展趋势与前景展望战略分析报告
- 食品工程系畜产品加工技术教案
- 入股合作的协议书(2024版)
- 安徽省合肥市瑶海区第三十八中学2023-2024学年八年级下学期期末语文试题(解析版)
- 广东省深圳市南山区2023-2024学年七年级下学期期末英语试题
- 偏差行为、卓越一生3.0版
- 2024年四川省成都市中考英语试卷(含官方答案)
评论
0/150
提交评论