JAVA实验报告书

上传人:沈*** 文档编号:79260718 上传时间:2022-04-23 格式:DOC 页数:31 大小:330.50KB
返回 下载 相关 举报
JAVA实验报告书_第1页
第1页 / 共31页
JAVA实验报告书_第2页
第2页 / 共31页
JAVA实验报告书_第3页
第3页 / 共31页
点击查看更多>>
资源描述
JAVA实验报告书实验一、安装JDK并熟悉java的运行环境一、实验目的 熟悉JAVA的运行环境及学习简单的编程。二、预习内容安装工具软件的基本方法。三、实验设备与环境 装有JAVA语言工具软件 (JCreator )的微机若干四、实验内容 安装JCreator及JAVA的核心编译程序J2SDK。1、打开JCreator的安装盘安装JCreator。2、在相同目录下安装J2SDK。3、打开JCreator软件对J2SDK文件进行配置。4、编写一应用程序,在屏幕上显示“HELLO WORLD”。 Public class Hello public static void main(String args) System.out.println(HELLO WORLD);5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”。运行结果:HELLO WORLD五、注意事项 认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六、实验心得与体会通过本次试验的练习,我熟悉了JAVA的运行环境,知道了怎样创建project,class,学会了简单的Java编程。实验二、基本语法练习一、 实验目的 熟悉Java的基本语法编写应用程序接收命令行参数编写应用程序接收用户从键盘的输入掌握字符串与数组的基本方法二、预习内容 java编程的基本结构 三、实验设备与环境 装有JAVA语言工具软件 (JCreator )的微机若干四、实验内容 编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。(1)编辑Average.java,设保存在D:myjava目录下。 public class Average public static void main(String args ) double n,sum=0; for (int l=0;ljava Average.java(3)执行。键入如下命令。注意,命令行参数之间用空格分隔。 D:myjavajava Average.java“12.34”“34.45”“21212121”注意:1) 参数的个数可以利用args.length来取得。2) 参数“12.34”“34.45”“21212121”分别赋给了main方法的参数arges0、arges1 和arges2。3) 由于arges0、arges1和arges2是String类型的,所以要利用Double.valueOf(String s)方法将String类型转化成Double类型,再用double Value()方法求出double类型的值。运行结果:12.34 34.45 21212121 end Average=70722.596666667 编写一个应用程序,接受用户从键盘输入的摄氏温度,然后将其转化成等效的华氏度温度。方法一:利用System .in.read()方法可以接受从键盘输入的unicode码,编写一个循环取键值,循环出口为当输入回车时,即判断键值是否为13,若是,则退出循环。(1) 编辑Accept.java,设保存在D:myjava目录下。import java.io.*;class Accpet public static void main(String args) int c=0; String s=; System.out.println(输入摄氏度:(0数值100)); /System.in.read()语句需要加try/cacth()捕获异常 try while (c!=13) /当输入的不是回车 c=System.in.read(); s=s+(char)c; /将int型转化成char型,再连接成字符串 catch (Exception e)int celsius=Integer.parseInt(s.trim();double fahre=1.8*celsius+32;System.out.println(转化成华氏度为:+fahre);注意:1)in是System类的一个属性,System.in的返回类型是InputStream类型。输入字节流的父类,InputStream类中的read()方法可以读取一个用户从键盘上输入的键值。System.im.read()的返回值是整型,因此需要先转化成字符型后再连接成字符串。2) System.im.read()需要用try/catch机制来捕获异常。3)将字符串转化成响应的整型数值后再利用公式计算出华氏温度。方法二:由于InputStream类中的read()方法只能读取一个键值,所以需要利用循环才能读出用户从键盘输入的一串字符,有没有读取一行字符的命令呢?我们可以利用Java中类的嵌套来实现。由于BufferedReaser类有读取一行字符串的方法,所以可以这样去定义对象:BuffereReaser br=new BuffereReaser(new InputStreamReader(System.in);(1) 编辑Accpe1.java,设保存在D:myjava目录下。import java.io.BufferedReader; import java.io.InputStreamReader; public class Accept1 public static void main(String args ) String s=; System.out.println(输入摄氏度:(0数值100)); BufferedReader br=new BufferedReader(new InputStreamReader(System.in);try s=br.readLine();catch(Exception e)int cel=Integer.parseInt(s.trim();double f=cel*1.8+32;System.out.println(s+摄氏度转化成华氏度为:+f);实验结果:输入摄氏度:(0数值100)1转化成华氏温度:33.8编写应用程序,按升序顺序输出一维数组中的元素。排序的方法有很多,常用的有选择发和冒泡法,在此使用选择法。(1) 编辑Sort.java,设保存在D:myjava目录下。public class Sort /* * param args */public static void main(String args) int a=3,2,6,4,8,12,0,97,1;int temp;int k;for(int i=0;ia.length-1;i+) k=i;for(int j=i+1;jaj)k=j;temp=ai;ai=ak;ak=temp;for(int n=0;n0?s:0); public double earnings() return weeklySalary; public String toString() return Boss+super.toString();/定义CommissiomWorker类,为Employee的子类final class CommissionWorker extends Employee private double salary; private double commission; private int quantity; public CommissionWorker(String first,String last,double s,double c,int q) super(first,last); setSalary(s); setCommission(c); setQuantity(q); public void setSalary(double s) salary=(s0?s:0); public void setQuantity(int q)quantity=(q0?q:0);public void setCommission(double c) commission=(c0?c:0); public double earnings() return salary+commission+quantity; public String toString() return CommissionWorker+super.toString(); /定义PieceWorker类,为Employee的子类 final class PieceWorker extends Employee private double wagePiece;private int quantity;public PieceWorker(String first,String last,double w,int q) super(first,last); setWage(w); setQuantity(q); public void setWage(double w) wagePiece=(w0?w:0); public void setQuantity(int q) quantity=q; public double earnings() return wagePiece+quantity; public String toString() return PieceWorker+super.toString(); /定义HourlyWorker类,为Employee的子类 class HourlyWorker extends Employee private double wage; private double hours; public HourlyWorker(String first,String last ,double w,double h) super(first,last); setWage(w); setHours(h); public void setWage (double w) wage=(w0?w:0); public void setHours(double h) hours=(h=0&h168?h:0); public double earnings() return wage+hours; public String toString() return HourlyWorker+super.toString(); class Text public static void main(String args ) /使用超类声明ref Employee ref; String output=;/分别定义各子类 Boss b=new Boss(Hohn,Smith,800.00); CommissionWorker c=new CommissionWorker(Sue,Hones,400.00,3.0,150); PieceWorker p=new PieceWorker(Bob,Lewis,2.5,200); HourlyWorker h=new HourlyWorker(Karen,price,13.75,40);/使用子类分别实例化ref=b;output+=ref.toString()+earned $+ref.earnings()+n+b.toString()+earned $+b.earnings()+n;System.out.print(output);ref=c;output+=ref.toString()+earned $+ref.earnings()+n+c.toString()+earned $+c.earnings()+n;System.out.print(output);ref=p;output+=ref.toString()+earned $+ref.earnings()+n+p.toString()+earned $+p.earnings()+n;System.out.print(output);ref=h;output+=ref.toString()+earned $+ref.earnings()+n+h.toString()+earned $+h.earnings()+n;System.out.print(output);实验结果: 包的建立与使用(1) 编辑Calculate.java,设保存在D:myjava目录下。package mypackage;public class Calculate public int a; public Calculate(int a) this.a=a;System.out.println(from constrartion+this.a); public double volume(double height,double width,double depth) return height*width*depth; public int add(int x, int y) return x+y; public void a() System.out.println(from constration+a); 编译,查看D:myjava目录下是否生成了myoackage文件夹,在该文件夹中是否有Calculate.class文件。 (2) 编辑Interfaceclass.java,设保存在D:myjava目录下。import mypackage.Calculate;class PackageDemo public static void main(String args ) Calculate c=new Calculate(10); double s=c.volume(5,6,7); System.out.println(s); int b; b=c.add(5,6); c.a(); 运行结果:from constrartion10210.0五、注意事项认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六:实验心得与体会 面向对象编程是Java编程中的重要内容,通过本次编程,我掌握了接口的编写和使用,理解了继承、多态,掌握了包的编写以及如何使用包中的类,在Java中,不支持多继承,但支持多接口,所以熟练掌握接口的使用与编写很重要。实验四、异常处理实验一、实验目的 异常的生产及捕获自定义异常及其使用二、预习内容 面向对象的基本知识三、实验设备与环境 装有JAVA语言工具软件 (JCreator )的微机若干四、实验内容 异常的捕获计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。编辑Ex1.java,保存在D:myjava目录下。import java.io.*;import java.io.BufferedReader; import java.io.InputStreamReader;class Ex1public static void main(String args ) try BufferedReader strin=new BufferedReader (new InputStreamReader(System.in); System.out .print(请输入除数:); String cl=strin .readLine(); int a=Integer .parseInt(cl); System.out .print(请输入被除数:); cl=strin .readLine(); int b=Integer .parseInt(cl); int c=b/a; System .out .println(商为:+c); /捕获与I/O有关的异常 catch(IOException e) e.printStackTrace(); /*捕获数值转化时的异常,如不能将字符转化成数值 catch(IOException e) e.printStackTrace () ; */ /捕获数值转化时的异常,如不能将字符转化成数值 catch(NumberFormatException e) System .out .println(请输入整数!); e .printStackTrace(); /捕获除数为0的异常 catch(ArithmeticException e) System .out .println(除数不可以0!); e .printStackTrace(); 编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。试验结果:1.请输入除数:0请输入被除数:12除数不可以0!2.请输入除数:3o请输入整数!定义异常编写程序包含自定义异常,当输入数值为13和4时抛出该异常。编辑Ex2.java,设保存在D:myjava目录下。 class Ex2 extends Exception Ex2(String msg) super(msg); class MyEx private int x; void setX(int x) this.x=x; void f1() throws Ex2 if(x=13) throw new Ex2(I dont like 13!); else if(x=4) throw new Ex2(I dont like 4!); else System .out.println(100/x);public static void main(String args ) MyEx a=new MyEx(); try a.setX(5); /a.setX(13);/a.setX(4);/a.setX(0);a.f1(); catch(Ex2 e) System .out.println(get message:+e.getMessage(); 编译并运行,分别取消注释上面程序中被注释的语句。当释放a.setX(13)语句后,查看运行结果,当释放a.setX(4)语句后,查看运行结果。试验结果:20 当释放a.setX(13)后,实验结果为:get message:I dont like 13! 当释放a.setX(4)后,实验结果为:get message:I dont like 4!五、注意事项认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六、实验心得与体会程序运行过程中常常会出现各种情况,因此就有异常的产生。通过本次试验,我知道了异常的生产及如何捕获,也学会了自定义异常以及它的使用。实验六、图形图像实验一、实验目的 了解Java.awt包中提供的Font类、Color类、Graphics类和Image类掌握设置控制GUI组件字体和颜色的一般方法掌握使用Graphics绘制线条、矩形、圆角矩形、椭圆、弧等基本图形掌握使用Graphics绘制图象二、预习内容 绘制图形的基本方法三、实验设备与环境 装有JAVA语言工具软件 (JCreator )的微机若干四、实验内容 绘制图形编辑Gra.java,保存在D:myjava目录下。import java.applet.*;import class paint(Graphicds g) Font f1=new Font(“Helvetica”,Font.PLAIN,28); public void paint(Graphicds g) g.setFont(f1); g.setCorol(Corcol,blue); g.drawString(“我是美丽的大气球!”,120,50); g.setCorol(Corol.green); g.drawOval(100,20,200,100); g.setCorol(Corol.black);g.fillOval(180,60,10,10);g.fillOval(180,60,10,10);g.setCorol(Cotol.red);g.drawArc(130,50,50,180,180);g.setColor(Color.yellow);g.drawLine(150,120,150,250); (1) 编译Gra.java。(2) 编辑Gra.java,要求与Gra.class在同一目录下。(3) 运行Gra.htm。实验结果:五、注意事项认真填写实验报告遵守实验室各项制度,服从实验指导教师的安排按规定的时间完成实验六、实验心得与体会 Java提供的Java.awt包可以很方便的实现图形图像的绘制。通过这次实验的练习,我了解了Java.awt包中提供的Font类、Color类、Graphics类和Image类,掌握了设置控制GUI组件字体和颜色的一般方法,也学会了使用Graphics绘制线条、矩形、圆角矩形、椭圆、弧等基本图形,掌握了如何使用Graphics绘制图象。实验七、GUI(图形用户接口)实验一、实验目的 掌握用MouseListener和MouseMotionListener接口处处理鼠标事件Mouse Event的方法。掌握制作菜单及处理菜单事件的方法掌握创建对话框及定位、显示、激活和关闭对话框的方法二、预习内容 图形用户接口编程所需的基本类及使用方法三、实验设备与环境 装有JAVA语言工具软件 (JCreator )的微机若干四、实验内容 制作一个简单的画板编辑Mou.java,设保存在D:myjava目录下。import java.applet.*;import java.awt.*;import java.awt.event.*;public class Mou extends Applet implements MouseMotionListener int x= -1,y= -1; public void init() setBackground(Color.cyan); addMouseMotionListener(this); public void paint(Graphics g) if(x!= -1&y!= -1) g.setColor(Color.red); g.drawLine(x,y,x,y); public void mouseDragged(MouseEvent e) x=(int)e.getX(); y=(int)e.getY(); public void mouseMoved(MouseEvent e) /由于使用的是Listener,需要将其他不重载的方/法,列举在这里 public void update(Graphics g) paint(g); 编译并运行查看结果.实验结果:菜单的编写编辑TestMenu.java,设保存在D:myjava目录下。import java.applet.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class TestMenu /定义主类 public static void main(String args) MyMenuFrame mf=new MyMenuFrame(); mf.setSize(new Dimension(300,200); /指定窗口初始大小 mf.setVisible(true); /使窗口可见,默认为不可见 /定义窗口class MyMenuFrame extends Frame implements ActionListener,ItemListenerprivate static final long serialVersionUID = 1L; MenuBar m_MenuBar; Menu menuFile,menuEdit,m_Edit_Paste; MenuItem mi_File_Open,mi_File_Close,mi_File_Exit,mi_Edit_Copy; MenuItem pi_New,pi_Del,pi_Pro,mi_paste_All,mi_Paste_Part; CheckboxMenuItem mi_Edit_cut; PopupMenu popM; TextArea ta; MyMenuFrame() super(拥有菜单的窗口); /指定窗口标题 ta=new TextArea(no choice,5,20); ta.addMouseListener(MouseListener) new HandleMouse(this); /文本域响应鼠标事件 add(Center,ta); /创建弹出式菜单 popM=new PopupMenu(); pi_New=new MenuItem(新建); pi_New.addActionListener(this); popM.add(pi_New); pi_Del=new MenuItem(删除); pi_Del.addActionListener(this); popM.add(pi_Del); pi_Pro=new MenuItem(属性); pi_Pro.addActionListener(this); popM.add(pi_Pro);/将弹出式菜单加在文本域上 ta.add(popM); m_MenuBar=new MenuBar(); /创建菜单栏 menuFile=new Menu(文件); /创建菜单项、菜单自项并指定快捷键 mi_File_Open=new MenuItem(打开,new MenuShortcut(o); mi_File_Close=new MenuItem(关闭); mi_File_Exit=new MenuItem(退出); mi_File_Exit.setShortcut(new MenuShortcut(x); mi_File_Open.setActionCommand(打开); mi_File_Close.setActionCommand(退出); mi_File_Open.addActionListener(this); mi_File_Close.addActionListener(this); /自身作为监视器 mi_File_Exit.addActionListener(this); menuFile.add(mi_File_Open); menuFile.add(mi_File_Close); menuFile.addSeparator(); menuFile.add(mi_File_Exit); m_MenuBar.add(menuFile); menuEdit=new Menu(编辑); mi_Edit_Copy=new MenuItem(复制); mi_Edit_cut=new CheckboxMenuItem(剪切); m_Edit_Paste=new Menu(粘贴); MenuItem mi_Paste_All = new MenuItem(全部粘帖); MenuItem mi_Paste_Part=new MenuItem(部分粘贴); mi_Edit_Copy.addActionListener(this); mi_Edit_cut.addItemListener(this); m_Edit_Paste.add(mi_Paste_Part); m_Edit_Paste.add(mi_Paste_All); mi_Paste_Part .addActionListener(this); mi_Paste_All.addActionListener(this); menuEdit.add(mi_Edit_Copy); menuEdit.add(mi_Edit_cut); menuEdit.addSeparator(); menuEdit.add(m_Edit_Paste); m_MenuBar.add(menuEdit); this.setMenuBar(m_MenuBar); /在窗口中添加菜单栏 public void actionPerformed(ActionEvent e) if(e.getActionCommand()=退出) dispose(); System.exit(0); elseta.setText(e.getActionCommand(); public void itenStateChanged(ItemEvent e) if(e.getSource()=mi_Edit_cut)if(CheckboxMenuItem)e.getSource().getState() ta.setText(choose+(CheckboxMenuItem)e.getSource().getLabel();/将时间小时在文/本框中显示else ta.setText(no choose+(CheckboxMenuItem)e.getSource().getLabel();Overridepublic void itemStateChanged(ItemEvent arg0) / TODO Auto-generated method stub class HandleMouse extends MouseAdapter /处理鼠标事件类 MyMenuFrame m_Parent; HandleMouse(MyMenuFrame mf) m_Parent=mf; public void mouseReleased(MouseEvent e) /鼠标按键松开事件弹出菜单 if(e.isPopupTrigger()/检查鼠标事件是否是由弹出菜单引发的m_Parent.popM.show(Component)e.getSource(),e.getX(),e.getY(); 编译并运行TestMenu.class查看结果。实验结果:使用Dialog实验消息对话框和一般对话框编辑TestDialog.java,设保存在D:myjava目录下。 import java.awt.*;import java.awt.event.*;public class TestDialog public static void main(String args ) new MyDialogFrame(); class MyDialogFrame extends Frame implements ActionListener,ComponentListener Dialog MegDlg,InOutDlg; Button btn1,btn2,bnY,btnN,btnR; TextField tf=new TextField(no imformation,45); TextField gerMeg=new TextField(inout imformation,10); MyDialogFrame() super(use dialog); btn1=new Button(隐藏); btn2=new Button(询问); bnY=new Button(是); btnN=new Button(否); btnR=new Button(返回); setLayout(new FlowLayout(); add(tf); add(btn1); add(btn2); btn1.addComponentListener(this); this.addWindowListener(new WinAdpt();/Frame响应窗口关闭事件 btn1.addActionListener(this); btn2.addActionListener(this); bnY.addActionListener(this); btnN.addActionListener(this); btnR.addActionListener(this); setSize(350,150); public void actionPerformed(ActionEvent e) /实现Action Listener中的方法 if(e.getActionCommand()=隐藏) MegDlg=new Dialog(this, true?,true); Panel p1=new Panel(); p1.add(new Label(continue?); MegDlg.add(Center,p1); Panel p2=new Panel(); p2.add(bnY); p2.add(btnN); MegDlg.add(Douth,p2); MegDlg.setSize(200,100); MegDlg.setVisible(true); else if(e.getActionCommand()=响应) InOutDlg=new Dialog(this, input the imformation); InOutDlg.add(Center,gerMeg); InOutDlg.add(South,btnR); InOutDlg.setSize(200,100); InOutDlg.addComponentListener(this); InOutDlg.show(); else if(e.getActionCommand()=是) MegDlg.dispose(); btn1.setVisible(false); else if(e.getActionCommand()=否) MegDlg.dispose(); else if(e.getActionCommand()=返回) tf.setText(gerMeg.getText()+是对话
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!