网络编程实验报告.doc_第1页
网络编程实验报告.doc_第2页
网络编程实验报告.doc_第3页
网络编程实验报告.doc_第4页
网络编程实验报告.doc_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

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

文档简介

1、网络编程技术实验报告一实验目的:网络编程技术是计算机科学与技术专业、网络工程专业、软件工程专业的一门专业基础课程。本课程以Java技术为主讲授,Java语言是当前最流行的网络 编程语言。 本课程是一门实用性和综合运用性都很强的课程,实践教学环节是教学过程中必不可少的重要内容。通过实验,让学生熟悉JDK中的主要内容,掌 握用JDK调试和运行程序的方法,掌握网络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法和技术,能够熟练使用 JAVA设计、编写 程序,特别是基于 TCP/IP的Socket 编程,并能运用这些知识方法完成C/S和B/S结构程序的设计工作。通过实验,提高学生使用

2、Java语言程序设计开发的能 力,提高应用面向对象技术分析和解决实际问题 的能力,并在此基础上强化学生的实践意识、提高其分析问题、解决问题的能力以及动手能力和创新能力。二实验要求要求学生熟悉JDK中的主要内容,掌握用 JDK调试和运行程序的方法,掌 握网 络编程的基本思想和开发方法、面向对象编程的思想,JAVA中的基本方法 和技术,能够熟练使用JAVA设计、编写程序,特别是基于 TCP/IP的Socket编程,并能运用 这些知识方法完成 C/S和B/S结构程序的设计工作。要注意培养学 生良好的编程习惯, 自始至终贯彻课程中所介绍的程序设计风格。为保证尽量在统一安排的上机时间内完成程序设计任务,

3、学生应事先做问题分析,并做静态检查。学生应记录实验中所遇到的问题,并写出详细的实验报告。课前准备上机程序,上机认真调试,课后撰写实验报告,实验报告包括实验目的、实验内容、源 程序、实验结果及分析。实验一java 基本语法实验目的:了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、 运算符与表达式, 掌握顺序结构、 选择 结构和循环结构语法的程序设计方法。实验要求:1、编写一个声明Java 不同数据类型变量的程序。2、编写使用不同选择结构的程序。3、编写使用不同循环结构结构的程序。实验内容:1、编写一个声明Java不同数据类型变量的程序。public

4、class DataTypespublic static void main(String args)byte b=127;short s=32767;int i=2147483647;long l=9223372036l;/ 为什么 long 表示的数比Int 还小?char c='c'float f=1.23F;double d=0.9E-3;boolean bool=true;System.out.println(" b="+b);System.out.println(" s="+s);System.out.println(&quo

5、t; i="+i);System.out.println(" l="+l);System.out.println(" c="+c);System.out.println(" f="+f);System.out.println(" d="+d);System.out.println(" bool="+bool);/ public class Testifpublic static void main(String args)boolean leap;int year=2014;if(ye

6、ar%4=0&&year%100!=0)|(year%400=0)/System.out.println(year+" 年是闰年");elseSystem.out.println(year+" 年不是闰年");/ 方法二 /year=2008;if(year%4!=0)leap=false;else if(year%100!=0)leap=true;else if(year%400!=0) leap=false;elseleap=true;if(leap=true)System.out.println(year+" 年是闰年&q

7、uot;);elseSystem.out.println(year+" 年不是闰年");/ 方法三 /year=2050;if(year%4=0)if(year%100=0)if(year%400=0) leap=true;else leap=false;else leap=false;elseleap=false;if(leap=true)System.out.println(year+" 年是闰年");elseSystem.out.println(year+" 年不是闰年");2、编写使用不同选择结构的程序。/ 使用 switch

8、 语句 /1. 编写程序用Switch 语句实现从键盘上都1 , 2,3 时,屏幕提示不同的信息import java.io.*;class SwitchTestpublic static void main(String args) throw IOExceptionchar a;System.out.println("Enter a number from 1-3:");a=(char)System.in.read();switch(a)case '1':System.out.println("win a Car!");break;c

9、ase '2':System.out.println("picked the goat");break;case '3':System.out.println("get to keep your100!");break; default:System.out.println("entry");3、编写使用不同循环结构结构的程序。/for 循环语句import java.io.*;class ForTestpublic static void main(String args)throws IOExcep

10、tionint 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 lable for the outer loopfor(int i=0;i<10;i+)for(int j=0;j<10;j+)a=(char)System.in.read();if(a='b')

11、break outer;if(a='c')continue outer;/while 循环语句/import java.io.*;class WhileTestpublic static void main(String args)throws IOExceptionchar ch;System.out.println(" 按 1/2/3 数字可获大奖!");System.out.println(" 按空格键后回车可退出循环操作");while(ch=(char)System.in.read()!=' ') System.

12、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(" 真不兴,你没有奖品!下次再来");/ 多重循环pub

13、lic class Mul99public static void main(String args) int i,j, n=9;System.out.print(" * |");for(i=1;i<10;i+)System.out.print(" "+i);System.out.print("n|");for(i=1;i<10;i+)System.out.print("-");System.out.println();for(i=1;i<=n;i+)System.out.print("

14、 "+i+" |");for(j=1;j<=i;j+)System.out.print(" "+i*j);System.out.println();实验感想:实验二 面向对象编程试验实验目的:通过编程和上机实验理解 Java语言是如何体现面向对象编程基本思想,熟悉类的封装方法以及如何创建类和对象,熟悉成员变量和成员方法的特性,熟悉类的继承性和多态性的作用,熟悉包、接口的使用方法,掌握OOP 方式进行程序设计的方法。实验要求:1、编写程序实现类的定义和使用。2、编写不同成员和不同成员方法修饰方法的程序。3、编写体现类的继承性(成员变量、成员

15、方法、成员变量隐藏)的程序和多态性(成员方法重载、构造方法重载)的程序。4、编写接口的定义和使用的程序。5、编写包的定义和使用的程序。实验内容 -1. 日期类输出当前日期import java.io.*;public class Date private int year,month,day;/private static thisYear;public Date(int y,int m,int d)this.year=y;this.month=m;this.day=d;public void read(int y,int m,int d) int y=System.in.read();int

16、 m=System.in.read();int d=System.in.read(); public void set(int y,int m,int d)if(m>=1&&m<=12) return m;elseSystem.out.println(" 该日期错误");if(d>=1&&d<=31) return d;else System.out.println(" 该日期错误"); public void show( )System.out.println(this.day+"/&q

17、uot;+this.month+"/"+this.year); public static void main(String args)throws IOExceptionDate s=new Date();s.read();s.set(); s.show();/2. 桌子类public class Table private String name;private int longs;private int weight;private intheight;private intwidth;public Table(String n,int l,int we,int h,

18、int wi) =n;this.longs=l;this.weight=we;this.height=h; this.width=wi;int Area() return this.longs*this.width;public void Display() System.out.println(" 桌 子 名 称 : "++"n"+" 重 量 :"+this.weight+"n"+" 桌面宽度:"+this.width+"n"+"

19、; 桌面长度:"+this.longs+"n"+" 桌子高度:"+this.height+"n"+" 桌子面积"+this.Area();public void ChangeWeight(int s) this.weight=s;public static void main(String args) Table T=new Table("xiaozuo",9,3,5,3);T.Area();T.Display();T.ChangeWeight(90);T.Display();/cla

20、ss StaticDemostatic int x;int y;public static int getX()return x;public static void setX(int newX)x=newX;public int getY()return y;public void setY(int newY)y=newY;public class TestDemopublic static void main(String args)System.out.println(" 静态变量"+StaticDemo.getX();System.out.println("

21、; 实例变量"+StaticDemo.getY();/ 非法编译时将出错StaticDemo a=new StaticDemo();StaticDemo b=new StaticDemo();a.setX(1);a.setY(2);b.setX(3);b.setY(4);System.out.println(" 静态变量a.x="+a.getX();System.out.println(" 静态变量a.y="+a.getY();System.out.println(" 静态变量b.x="+b.getX();System.ou

22、t.println(" 静态变量b.x="+b.getY();3. 继承和多态的作用/*Date:2014.11.23 9:56:00author:Devon function: 功能?创建Rodent (啮齿动物): Mouse (老鼠), Gerbil (沙鼠), Hamster (大频 鼠)等的一个继承分级结构。在基础类中,提供适用于所有Rodent 的方法,并在衍生类中覆盖它们,从而根据不同类型的Rodent采取不同的行动。创建一个 Rodent数组,在其中填充不同类型的Rodent,然后调用自己的基础类方法,看看会有什么情况发生。*/class RodentRod

23、ent r=new Rodent4; public void TowTooth() public static void main(String args)Rodent rodent=new Rodent();Mouth mouth=new Mouth();Gerbil gerbil=new Gerbil();Hamster hamster=new Hamster();r0=rodent,r1=mouth,r2=gerbil,r3=hamster;for(int i=0,i<r.lenth,i+) ri.TowTooth(); class Mouae extends Rodent cla

24、ss Gerbil extends Mouse class Hamster extends Gerbil interfaceTest.java4、接口的定义和使用public class InterfaceTest public static void main(String args)double x;circle y= circle;y.circle(2);x=y.calculate.area();System.out.println("n 面积为:"+x+"n");interface cal_area double PI=3.14;double c

25、laculate_area(); class circle implements cla_area double r; circle(double r) this.r=r;/ 实现接口中的抽象方法,求圆面积 public double calculate_area() return PI*r*r;5、包的定义和使用?创建自定义包Mypackage/ package Mvpackage; / 声明存放类的包 import java.util. * ;/ 引用 java.util 包public class Test_YMD private int year,month,day;public st

26、atic void main(String args) public Test_YMD(int y,int m,int d) year = y;month = (m>=1) & (m<=12) ? m :1); day = (d>=1) & (d<=31) ? d :1);public Test_YMD() this(0,0,0);public static int thisyear() return Calendar.getInstance().get(Calendar.YEAR);返回当年的年份public int year() return yea

27、r;/ 返回年份public String toString()return year+"-n"+month+"n-"+day;/ 返回转化为字符串的年-月 -日/import Mypackage.KY4_1_YMD;/ 引用 Mypackage 包中的 KY4_1_YMD 类public class YMD_2 private String name;private Test_YMD birth;public static void main(String args)YMD_2 a = new YMD_2("张驰”,1990,1,11);a.

28、output();public YMD_2(String nl,Test_YMD dl)name = nl;birth = dl;public YMD_2(String nl,int y,int m,int d)this(nl,new Test_YMD(y,m,d);/ 初始化变量与对象public int age() / 计算年龄return TESt_YMD.thisyear() - birth.yearO;/ 返回当前年与出生年的差即年龄public void output()System.out.println(" 姓名 :"+name);System.out.pr

29、intln(" 出生日期:"+birth.toString();System.out.println(" 今年年龄:"+age();实验感想:实验三 异常处理程序设计实验目的:了解Java中异常处理(exception)的作用及常用的异常类,掌握异常处理的设计方 法。实验要求:理解系统异常处理的机制和创建自定义异常的方法。实验内容:Class InsufficientFoundsException extends Exceptionprivate BankAccount m-ba;private double getAmount;Insufficient

30、FoundsException(BankAccount ba,double dAmount)super("Insufficient founds in account");m-ba=ba;getAmount=dAmount;public String toString()StringBuffer sb=new StringBuffer();sb.append("Insufficient founds in account");sb.append(m-ba.getAccountNumber();sb.append("nBalance was&qu

31、ot;);sb.append(m-ba.Balance()sb.append("ngetAmount was");sb.append(getAmount);return sb,toString();public class TestExceplpublic static void main( string args )int 1=0;String greeting= "Hello", "Only", "Test"while(I<4)trySystem.out.println(greetingI);catch(

32、ArrayIndexOutofBoundsException esystem.out.println( " 越界 ");I = -l finally system, out.println(" 总会运行"I+/public class Excep2Testpublic static void main(String args) System.out.println(" 这是一个异常处理的例子n");tryint i=10;catch (ArithmeticException e) System.out.println(" 异

33、常是:"+e.getMessage();finally System.out.println("flnally 语句被执行”);试验感想:实验四:多线程程序设计实验目的:理解线程的概念、线程的生命周期,掌握多线程的编程:继承Thread 类与使用Runnable 接 口。实验要求:另一种是在用户自己的掌握两种创建线程的方法:一种是创建用户自己的线程子类,类中实现Rimable 接口。实验内容:/Thread 线程class FruitThread extends Threadpublic FruitThread(String str)super(str);public vo

34、id run()for(int i=0;i<5;i+)System.out.println(i+" "+getName();trysleep(int)(Math.random()*3000);catch(InterruptedException e)public class TowFruitpublic static void main(String args)FruitThread apple=new FruitThread(" 苹果 ");FruitThread banana=new FruitThread(" 香蕉 ");

35、apple.start();banana.start();class TowFruit1 implements Runnable String name;public TowFruit1(String name)=name;public void run()for(int i=0;i<3;i+)System.out.println(name);Thread.yield();public static void main(String args) TowFruit1 apple=new TowFruit1(" 苹果 ");TowFruit1 banan

36、a=new TowFruit1(" 香蕉 ");Thread t1=new Thread(apple);Thread t2=new Thread(banana);t1.start();t2.start();System.out.println("Hello World!");public class ThreadVSRunnable extends Thread implements Runnable String name;public ThreadVSRunnable(String str)super(str);name=Tstr;public vo

37、id run()for(int i=0;i<20;i+)System.out.println(" 第 "+i+"Thread"+getName();/ System.out.println(name);/sleep/*trysleep(int)(Math.random()*10000);catch(InterruptedException e) */yeild/Thread.yield();public static void main(String args) FruitThread apple=new FruitThread("Thr

38、ead 生产的FruitThread banana=new FruitThread("Thread 生产的 apple.start();banana.start();FruitThread apple1=new FruitThread("Runnable 生产的苹果 ");香蕉 ");苹果 ");FruitThread banana1=new FruitThread("Runnable 生产的 香蕉 ");Thread t1=new Thread(apple1);Thread t2=new Thread(banana1);t

39、1.start();t2.start();/System.out.println("Hello World!");实验结果:实验感想:实验五:系统I/O 程序设计实验目的:理解数据流的概念、Java 流的层次结构及文件的概念;熟悉图形用户界面基本组件的使用方法,熟悉如何使用布局管理器对组件进行管理及如何使用Java的事件处理机制。实验要求:1、掌握字节流和字符流的基本使用方法。2、能够创建、读写、更新文件。3、 掌握在 Applet 容器中添加组件的方法, 掌握使用布局管理器对组件进行管理的方法。4、理解Java的事件处理机制,掌握为不同组件编写事件处理程序的方法5、掌握编

40、写独立运行的窗口界面的方法。6、了解对话框及Java Swing 组件的使用方法。实验内容:public class IOinTestpublic static void main(String args)byte buffer=new byte255;System.out.println(" 请在下面输入一行字符:n");try System.in.read();catch(Exception e)System.out.println(" 读取输入字符出错,错误信息为:"+e.toString()+"n");System.out.p

41、rintln(" 您刚才输入的一行字符为:n");String inputStr=new String(buffer,0);System.out.println(inputStr);/package com.devon.demo01;import java.io.*;class FileStreamsTest public static void main(String args) try FileInputStream fis = new FileInputStream("D:/einput.txt");FileOutputStream fos = n

42、ew 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);/package com.devon.d

43、emo01;import java.awt.*;import java.applet.Applet;public class ButtonTest extends Applet Label ll;Button bl, b2, b3, b4, b5, b6;public void init() setLayout(new GridLayout(3, 3); / 设置网格布局(3 行 3 列共 9 个网格)ll = new Label(" 标签 1");bl = new Button(" 按钮 1");b2 = new Button("按钮2&qu

44、ot;);b3 = new Button("按钮3");b4 = new Button("按钮4");add(ll);add(bl);add(b2);add(b3);add(new Label();add(b4);add(new Button(" 按钮 5");add(new Button(" 按钮 6");add(new Label("标签 2");/package com.devon.demo01;import java.awt.*;import java.awt.Color;import

45、java.applet.Applet;public class ComponentTest extends Applet public void init() / 设置最底层# Applet 容器为顺序布局setFont(new Font("Ariar", Font.PLAIN, 20);Label l = new Label("这是最底层的 Applet 容器中白标签",Label.CENTER);add(l);Panel panel1 = new Panel();add(panel1);panel1.setBackground(Color.blue)

46、;panel1.setForeground(Color.red);panel1.setLayout(new BorderLayout();/ 设置边界布局panel1.add("North", new Button(" 北 ");panel1.add("South", new Button(" 南 ");panel1.add("East", new Button(" 东 ");panel1.add("West", new Button(" 西 &

47、quot;);panel1.add("Center", new Label(" 这是在 Panell 面板中部添加的标签");Panel panel2 = new Panel();add(panel2);panel2.setLayout(new GridLayout(3, 1); / 设置网格布局Choice c = new Choice();/ 创建下拉式列表c.addItem(" 北京 ");c.addItem(" 上海");c.addItem(" 天津");Label ll = new L

48、abel("这是在Panel2面板中的标签");Button b1 = new Button("Panel2 中的按钮");panel2.setBackground(Color.green);panel2.add(ll);panel2.add(b1);panel2.add(c);/4、从标准设备中输入若干行英文句子,直到输入" bye告束,将这些字符串 写入文件package com.devon.demo01;import java.io.*;public class bye public static void main(String arg

49、s ) throws IOException System. out .println( "Please input some sentences end with 'bye':");BufferedReaderkeyinnew BufferedReader( new InputStreamReader(System. in );String s;RandomAccessFile f = new RandomAccessFile( "e:bye.txt" , "rw"); boolean ss; while ( s =

50、 keyin .readLine() != null ) ss = s .endsWith( "bye");if ( ss) System. exit (0);else System. out .println( s);f .seek( f.length();f.writeUTF( s);5、从键盘输入一个整型数,一个双精度型和一个字符串,用 DataOutputStream将这些数据输出到文件中,然后用DatalnputStream从文件中读出这些数据并打印到标准 输出设备package com.devon.demo01;import java.io.BufferedRe

51、ader;import java.io.DataOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.IOException;public class TestDataOutputStream public static void main(String args ) throws IOException BufferedReader bf = new

52、 BufferedReader( new InputStreamReader(System. in );File newFile = new File("e:TestDataOutputStream.txt");try FileOutputStreamfOut = new FileOutputStream(newFile );DataOutputStreamdOut = new DataOutputStream(fOut );System. out .println( "Please input Integer:");int i = Integer. p

53、arseInt ( bf .readLine();System. out .println( "Please input Float:" );float f = Float. parseFloat ( bf .readLine();System. out .println( "Please input Double:" );double d = Double. parseDouble ( bf .readLine(););System. out .println( "Please input Boolean: boolean b = new Boolean( bf .readLine().booleanValue();dOut .writeInt( i);dOut .writeFloat( f);dOut .writeDouble( d);dOut .writeBoolean( b);dOut .close(); catch (FileNotFoundException e) System. out .println(e); catch (IOException e) System. out .println(e);6、一个窗口中

温馨提示

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

评论

0/150

提交评论