Java网络程序设计实验指导书.doc_第1页
Java网络程序设计实验指导书.doc_第2页
Java网络程序设计实验指导书.doc_第3页
Java网络程序设计实验指导书.doc_第4页
Java网络程序设计实验指导书.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一:Java 基本语法实验目的:了解 Java 的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握 Java 基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想,熟悉类的封装方法以及如何创建类和对象,熟悉成员变量和成员方法的特性,熟悉类的继承性和多态性的作用,熟悉包、接口的使用方法,掌握OOP方式进行程序设计的方法。 实验内容:1程序代码如下编译运行程序,分析程序的运行结果。 public class TestIf public static void main(String args) boolean leap; int year=2005; if (year%4=0 & year%100!=0) | (year%400=0) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); year=2008; / 方法 2 if (year%4!=0) leap=false; else if (year%100!=0) leap=true; else if (year%400!=0) leap=false; else leap=true; if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); year=2050; / 方法 3 if (year%4=0) if (year%100=0) if (year%400=0) leap=true; else leap=false; else leap=false; else leap=false; if (leap=true) System.out.println(year+ 年是闰年); else System.out.println(year+ 年不是闰年); 2程序代码如下编译运行程序,分析程序的运行结果。class SwitchTest public static void main(String args) throws java.io.IOException char a; System.out.println(Enter a number from 1-3:); a=(char)System.in.read(); switch(a) case1:System.out.println(win a Car!);break; case2:System.out.println(picked the goat);break; case3:System.out.println(get to keep your 100); break; default:System.out.println(entry); 3改正源程序中错误,分析错误原因和程序的运行结果class TestFor public static void main (String args) int fahr,cels; System.out.println(Celsius Fahrenheit); for(cels=0;cels=100;cels+=5) fahr=cels*9/5+32; System.out.println(cels+fahr); char a; outer:/this is the label for the outer loop for(int i=0;i10;i+) for(int j=0;j10;j+) a=(char)System.in.read(); if(a=b) break outer; if(a=c) continue outer; 3请编译运行程序,分析程序的运行结果。import java.io.*; TestWhile public static void main(String args) throws IOException char ch; System.out.println(按 1/2/3 数字键可得大奖!); System.out.println(按空格键后回车可退出循环操作.); while (ch=(char)System.in.read()!= ) System.in.skip(2); / 跳过回车键 switch (ch) case 1: System.out.println(恭喜你得大奖,一辆汽车!); break; case 2: System.out.println(不错呀,你得到一台笔记本电脑!); break; case 3: System.out.println(没有白来,你得到一台冰箱!); break; default: System.out.println(真不幸,你没有奖品!下次再来吧。); 4编写程序实现如下功能:输出九九乘法表的程序。 5编写一个Java应用程序,除了主类外,该程序中还有4个类:People、ChinaPeople、AmericanPeolpe和BeijingPeople。要求如下:People类有访问权限是protected的double型成员变量:height和weight,以及public void speakHello()、public void averageHeight()和public void averageWeight()方法。ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。要求ChinaPeople类重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。AmericanPeolpe类是People的子类,新增了public void americaBoxing()方法。要求AmericanPeolpe类重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。BeijingPeople类是ChinaPeople类的子类,新增了public void beijingOpera()方法。要求ChinaPeople类重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。6定义一个抽象类Shape,其中包括一个抽象方法area(),设计“矩形”、“圆”、“三角形”等类继承Shape类,其area()方法分别表示计算矩形面积、圆面积、三角形的面积。分别创建代表“矩形”、“圆”、“三角形”的三个对象存入一个Shape类型的数组中,通过调用area()方法将数组中各类图形的面积输出。7 定义接口DiagArea,其中包含方法double getDiagonal()求对角线厂,double getArea()求面积,定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,并有相应的构造方法,定义一个方法完成一次直接显示边长、面积和对角线长),在另一类的主方法中使用测试该类。实验二 多线程程序设计和IO程序设计实验目的:1. 理解线程的概念、线程的生命周期,掌握多线程的编程:继承Thread类与使用Runnable接口。2. 掌握字节流和字符流的基本使用方法。3. 能够创建、读写、更新文件。实验内容: 1下面程序用创建Thread类的子类的方法实现多线程,编译下面程序,写出运行结果。 class Fruitthread extends Thread public FruitThread (string str) super(str); public void run() for(init i = 0;i5;i+) system.out.println(i+” ”+getName(); try sleep(init)(Math.random()*1000); catch(InterruptedException e) class TwoFruit public static void main(string args) new FruitThread (“苹果”).start(); new FruitThread(“梨”).start(); 2下面程序用用实现Runnable接口的方法实现多线程,编译下面程序,写出运行结果。 class outputClass implements Runnable String name; outputClass(String s) name = s; public void run() for(int i=0;i3;i+) System.out.println(name); Thread.yield(); class runThreads public static void main(String argv) outputClass out1=new outputClass(“Thread 1”); outputClass out2=new outputClass(“Thread 2”); Thread t1=new Thread(out1); Thread t2=new Thread(out2);T1.start();T2.start(0; 3编写一个应用程序,通过多线程实现窗口中标签字的颜色不断变化,按钮中文字不断改变。4编写程序实现如下功能:读入一个文件的内容拷贝到另一个文件中去。参考代码如下import java.io.*;class FileStreamsTestpublic static void main(String args) try FileInputStream fis=new FileInputStream(einput.txt); FileOutputStream fos=new FileOutputStream(eoutput.txt); int c; while(c=fis.read()!=-1) fos.write(c); fis.close(); fos.close(); catch(FileNotFoundException e) System.err.println(FileStreamsTest: +e); catch(IOException e) System.err.println(FileStreamsTest: +e); 实验三 Internet寻址实验目的1. 熟悉网络编程的基本过程2. 掌握网络程序的基本调试方法3. 学习InetAddress类的应用4. 理解Internet寻址的基本概念实验内容1. 利用InetAddress类编写一个能够获取本机地址的Java程序。2. 利用InetAddress类编写一个既能把域名解析为地址的程序,又能把地址解析为域名的Java程序。实验四 URL编程实验目的掌握URL类和URLConection类的使用;实验内容使用URL类或URLConection类编写一个功能较为完整、界面美观的HTML浏览器。实验五 使用TCP协议的Socket网络程序设计实验目的:掌握Socket通讯机制,掌握Socket和ServerSocket类和相关方法实验内容:1. 使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的hello请求时会回应一个hello,对客户端的其他请求不响应。2. 使用Socket和ServerSocket类编写一个简单的二人聊天室。实验六 基于UDP的图像传输实验目的:掌握DatagramSocket类的使用实验内容: 编写客户/服务器程序,客户端使用DatagramSocket对象将数据包发送到服务器,请求获取服务器端的图像。服务器端将图像文件包装成数据包,并使用DatagramSocket对象将该数据包发送到客户端。首先将服务器端的程序编译通过,并运行起来,等待客户的请求。程序模板如下:客户端模板:Client.javaimport .*;import java.awt.*; import java.awt.event.*;import java.io.*;class ImageCanvas extends Canvas Image image=null; public ImageCanvas() setSize(200,200); public void paint(Graphics g) if(image!=null) g.drawImage(image,0,0,this); public void setImage(Image image) this.image=image; class Client extends Frame implements Runnable,ActionListener Button b=new Button(获取图像); ImageCanvas canvas; Client() super(I am a client); setSize(320,200); setVisible(true); b.addActionListener(this); add(b,BorderLayout.NORTH); canvas=new ImageCanvas(); add(canvas,BorderLayout.CENTER); Thread thread=new Thread(this); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); thread.start(); public void actionPerformed(ActionEvent event) byte b=请发图像.trim().getBytes(); try InetAddress address=InetAddress.getByName(); DatagramPacket data=【代码1】 /创建数据包,该数据包的目标地址和端口分别是 /address和1234,其中的数据为数组b中的全部字节。 DatagramSocket mailSend=【代码2】 /创建负责发送数据的DatagramSocket对象。 【代码3】 / mailSend发送数据data。 catch(Exception e) public void run() DatagramPacket pack=null; DatagramSocket mailReceive=null; byte b=new byte8192; ByteArrayOutputStream out=new ByteArrayOutputStream(); try pack=new DatagramPacket(b,b.length); 【代码4】 /创建在端口5678负责收取数据包的DatagramSocket对象。 catch(Exception e) try while(true) mailReceive.receive(pack); String message=new String(pack.getData(),0,pack.getLength(); if(message.startsWith(end) break; out.write(pack.getData(),0,pack.getLength(); byte imagebyte=out.toByteArray(); out.close(); Toolkit tool=getToolkit(); Image image=tool.createImage(imagebyte); canvas.setImage(image); canvas.repaint(); validate(); catch(IOException e) public static void main(String args) new Client(); 服务器端模板:Server.javaimport .*;import java.io.*;public class Server public static void main(String args) DatagramPacket pack=null; DatagramSocket mailReceive=null; ServerThread thread; byte b=new byte8192; InetAddress address=null; pack=new DatagramPacket(b,b.length); while(true) try mailReceive=【代码1】/创建在端口1234负责收取数据包的 /DatagramSocket对象。 catch(IOException e1) System.out.println(正在等待); try mailReceive.receive(pack); address=【代码2】 /pack返回InetAddress对象。 System.out.println(客户的地址:+address); catch (IOException e) if(address!=null) new ServerThread(address).start(); else continue; clas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论