tceic.com
学霸学习网 这下你爽了
相关文章
当前位置:首页 >> IT/计算机 >>

面向对象程序设计(Java)实验指导书09信管

南昌工程学院 《面向对象程序设计(Java)》 实验指导书

09 信息管理与信息系统 专业

雷金娥编 2011 年 9 月





程序的编辑、 实验一 Java Application 程序的编辑、编译和运行 ..................................... 2 实验二 Java 程序设计基础 .................................................................................. 4 实验三 类的封装 ................................................................................................... 6 实验四 类的继承 ..................................................................................................... 7 实验五 类的多态 ..................................................................................................... 9 实验六 接口与实现接口的类 ............................................................................. 13 实验七 异常的抛出、捕获并处理 ..................................................................... 15 实验八 图形用户界面设计 ................................................................................. 20 实验九 线程设计 ................................................................................................. 22 实验十 输入/输出流与文件操作 ......................................................................... 24 实验十一 网络通信 ............................................................................................... 26 实验十二 数据库应用设计 ................................................................................. 29

1

实验一

程序的编辑、 Java Application 程序的编辑、编译和运行

一、实验目的 1.熟悉 JDK 开发环境。 2.熟悉 Edit 编辑器的使用。 3.掌握 Java Application 的程序结构和开发过程。 二、实验设备和仪器 电脑 三、实验内容及要求 1.JDK 开发环境 (1)JDK1.4.1 开发环境安装在“C:\JDK1.4.1\”目录下。 (2)设置环境变量 PATH 和 CLASSPATH(如果在 autoexec.bat 中没有进行设置) 。 进入命令行(MS-DOS)方式,进行如下设置: SET PATH=C:\JDK1.4.1\BIN;%PATH% SET CLASSPATH=.; %CLASSPATH% 2.Edit 编辑器 3.掌握 Java Application 程序开发过程 四、实验原理及步骤 1.实验原理 一个 java 应用程序是由若干个类组成的, 其中最多能有一个 public 类。 有且只能有一个类含有 main 方法。Java 源程序的扩展名为 java。Java 源程序的名字必须和 public 类的类名相同,如果没有 public 类,只要和其中任一类的类名相同就行。编译 java 源程序会产生字节码(.class )文件,源程序有几个 类就会产生几个 class 文件。运行时,只运行含有 main 方法的 class 文件。 2.步骤 (1)打开 Edit 编辑器。 (2)键入如下程序: import java.io.*; public class HelloWorld1{ public static void main(String arg[]){ System.out.println("Hello World!"); } } (3)检查无误后(注意大小写)保存文件。可将文件保存在“D:\Java\”目录中,注意文件名为

2

HelloWorld1.java。 (4)进入命令行(MS-DOS)方式,设定当前目录为“D:\Java\”,运行 Java 编译器: D:\Java>javac HelloWorld1.java (5)如果输出错误信息,则根据错误信息提示的错误所在行返回 Edit 编辑器进行修改。常见错 误是类名与文件名不一致、当前目录中没有所需源程序、标点符号全角等。 如果没有输出任何信息或者出现“deprecation”警告,则认为编译成功,此时会在当前目录中生成 HelloWorld1.class 文件。 (6)利用 Java 解释器运行这个 Java Application 程序,并查看运行结果。 D:\Java>java HelloWorld1 五、实验结果分析及实验报告要求 1.写出 JAVA 开发环境配置按步骤 2.编写、运行一个简单的 JAVA 应用程序,将源代码写清楚

3

实验二
一、实验目的 1.掌握标识符的定义规则。 2.掌握表达式的组成。 3.掌握各种数据类型及其使用方法。

Java 程序设计基础

4.理解定义变量的作用,掌握定义变量的方法。 5.掌握各种运算符的使用及其优先级控制。 6. 掌握 Java 数组的声明、初始化以及使用方法,理解 Java 数组是 Java 对象的含义。 7. 掌握 String 类的常用成员方法。 二、实验设备和仪器 电脑 三、实验内容及要求 1.定义一个数组,具有以下方法: public static int max(int table[]); public static int min(int table[]); public static void sort(int table[]); public static int indexOf(int table[],int key); public static boolean isSorted(int table[]); 2.找出一个二维数组的鞍点。 3. 判断该字符串是否是回文,回文是如下形式的字符串:abcdcba 四、实验原理及步骤 1.实验原理 Java 中数据类型分为基本数据类型与复合数据类型, 相应地变量分为基本类型与引用类型。 基本 类型变量有 8 种,而类、接口和数组变量是引用类型。基本类型变量使用和 C 及 C++完全一样, 但引用类型的使用有点与 C 中的指针相同(注意 Java 中并没有指针的概念) 。 引用类型变量的使用有引用空间与数据空间的概念, 当变量声明时只是给该变量分配引用空间 (或 可以理解为地址空间) ,数据空间并没有分配。 例如定义:Mydate today; today=new Mydate(); 定义的变量名 today 为引用空间的变量名

实例化 Mydate 类的一个对象,也即产生了数据空间用于存放该对象的数

据。并且将该对象的地址赋给 today,这样对象名 today 就指向了相应的数据空间。 数组的定义和使用举例 int a[]=new int[6]; 程序的流程控制结构和 C 语言基本类同,有顺序结构、选择结构、循环结构。但初学面向对

4

象编程容易犯程序结构上的毛病,许多同学编出的程序和面向过程语言的一样只是换成 Java 的语 法。原则上面向对象编程的结构,应该以类为基本组织单位。 2.步骤 略 五、实验结果分析及实验报告要求

1. 总结出 Java 基本语法和 C 语言语法的区别。 2. 写出上述三个程序代码。要求记录编译和执行 Java 程序当中的系统错误信息提成 示,并给出解决办法。

5

实验三

类的封装

一、实验目的 通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想, 了解类的封装方法, 以及如 何创建类和对象,了解成员变量和成员方法的特性,掌握面向对象程序设计的方法。 二、实验设备和仪器 电脑 三、实验内容及要求 编写Point类包括横坐标x,纵坐标y,声明构造方法和拷贝构造方法,声明若干get()和set ()方法获得和设置坐标,声明move()方法将当前坐标移动若干位置。 四、实验原理及步骤 1、 设计类来描述真实客观世界中的事物, 使用类的成员变量来表示事物的属性和状态, 使用类的 成员方法来提供对成员变量的访问或修改 2、 使用修饰符来限定类的成员变量或成员方法的属性 有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符 来实现这个目的。 常用的修饰符如下: public private protected package static final transient volatile 不同修饰符的访问控制权限如表3.1 所示。 访问权限修 饰符 public private protected package √ √ √ √ 表 3.1 五、实验结果分析及实验报告要求 将上述程序运行,写出运行结果,并分析。 √ √ √ √ √ 类 子类 包 所有类 和包 √

6

实验四 实验四 类的继承
一、实验目的 1.掌握类的继承方法。 2.掌握变量的继承。 3.掌握方法的继承。 二、实验设备和仪器 电脑 三、实验内容及要求 1 掌握子类定义方法 2 理解成员变量的继承与隐藏 3 理解方法的继承 四、实验原理及步骤

1. 类的继承性练习
新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改。新 类还可添加新的变量和方法。这种现象就称为类的继承。 当建立一个新类时, 不必写出全部成员变量和成员方法。 只要简单地声明这个类是从一个已定义 的类继承下来的,就可以引用被继承类的全部成员。被继承的类称为父类或超类(superclass), 这个新类称为子类。 Java 提供了一个庞大的类库让开发人员继承和使用。设计这些类是出于公用的目的,因此,很 少有某个类恰恰满足你的需要。 你必须设计自己的能处理实际问题的类, 如果你设计的这个类仅仅 实现了继承,则和父类毫无两样。所以,通常要对子类进行扩展,即添加新的属性和方法。这使得 子类要比父类大,但更具特殊性,代表着一组更具体的对象。继承的意义就在于此。 4.1、 创建父类 4.1、 创建父类 定义一个表示长方形的类Rectangle,其中包含两个private 的double型的成员变量length和 width分别表示长方形的长和宽,定义一个有参数的构造方法Rectangle(double length, double width), 在其中为长方形对象初始化, 定义一个无参数的构造方法, 在其中调用有参数的构造方法, 使创建的对象的长和宽都为0。再定义用来求长方形周长的方法perimeter()和求面积的方法 area()。 4.2、 创建子 4.2、 创建子类 定义一个长方体类Cuboid,使其继承Rectangle类,其中包含一个表示高的double型成员变量 height;定义一个构造方法Cuboid(double length, double width, double height);再定义一个 求长方体表面积的方法area(double height)和求体积的方法volume()。编写一个名为CuboidTest
7

的应用程序,求一个长、宽和高都为10的长方体的体积。 五、实验结果分析及实验报告要求 将上述程序运行,写出运行结果,并分析。

8

实验五 类的多态 实验五 类的多态
一、实验目的

1.掌握成员变量的隐藏和方法的覆盖; 2.掌握 this 和 super 关键字的使用; 3.理解 final 类和 abstract 类的含义,掌握如何定义和使用 final 类和 abstract 类;
4. 掌握多态的概念, 二、实验设备和仪器 电脑 三、实验内容及要求

1 2

理解方法的重载 理解方法的覆盖
类的继承发生在多个类之间,而类的多态只发生在同一个类上。在一个类中,可以定义多个同

名的方法,只要确定它们的参数个数和类型不同。这种现象称为类的多态。多态使程序简洁,为程 序员带来很大便利。在OOP 中,当程序要实现多个相近的功能时,就给相应的方法起一个共同的名 字,用不同的参数代表不同的功能。这样,在使用方法时不论传递什么参数,只要能被程序识别就 可以得到确定的结果。类的多态性体现在方法的重载(overload)上,包括成员方法和构造方法的 重载。 4.1、 4.1、 方法的重载 (1) 程序功能:使用同名方法对两个、三个或用数组容纳的一组数进行排序 (2) 程序源代码如下。

class IntSort { public String sort(int a, int b) { if (a>b) return a+" "+b; else return b+" "+a; } public String sort(int a, int b, int c) { int swap; if (a<b) { swap=a; a=b; b=swap;

9

} if (a<c) { swap=a; a=c; c=swap; } if (b<c) { swap=b; b=c; c=swap; } return a+" "+b+" "+c; } public String sort(int arr[]) { String s=" "; int swap; for (int i=0; i<arr.length; i++) for (int j=0; j<arr.length-1; j++) if (arr[j]>arr[j+1]) { swap=arr[j]; arr[j]=arr[j+1]; arr[j+1]=swap; } for (int i=0; i<arr.length; i++) s=s+arr[i]+" "; return s; } } public class EXP3_11 { public static void main(String[] args){ IntSort s=new IntSort(); int a=30, b=12, c=40; int arr[]={34,8,12,67,44,98,52,23,16,16}; System.out.println("两个数的排序结果:"+s.sort(a,b)); System.out.println ("三个数的排序结果:"+s.sort(a,b,c)); System.out.println ("数组的排序结果:"+s.sort(arr)); } }
实验记录内容要求:写出上述程序的运行结果,并总结方法重载的合法条件。 4.2、 4.2、 构造函数的重载 构造方法的名称和类同名,没有返回类型。尽管构造方法看起来和一般的成员方法没有差别,但 它不是方法,也不是类的成员。因此,构造方法不能直接调用,只能由new 操作符调用。构造方法

10

对于类是十分重要的, 对象的初始化任务要靠构造方法来完成。 重载构造方法的目的是提供多种初 始化对象的能力,使程序员可以根据实际需要选用合适的构造方法来初始化对象。 实验记录内容:找出实验四中的父子类中的构造方法重载语句。 4.3、 4.3、 方法的覆盖 通过继承子类可以继承父类中所有可以被子类访问的成员方法, 但如果子类的方法与父类方法同 名,则不能继承,此时称子类的方法覆盖了父类的方法,简称为方法覆盖(override)。方法覆盖 为子类提供了修改父类成员方法的能力。例如,子类可以修改层层继承下来的Object 根类的 toString 方法, 让它输出一些更有用的信息。 下面的程序显示了在子类Circle 中添加toString 方 法,用来返回圆半径和圆面积信息。 (1) 下列有一个Circle类,要求编写两个方法覆盖Object 类的equals方法(如果两个圆半径相等 就认为两个圆相等)和toString方法(输出结果:圆半径:x厘米,圆面积y平方厘米,其中x,

y是相应的值)
class Circle { private int radius; public Circle(int r) { this.setRadius(r); } public void setRadius(int r) { radius = r; } public int getRadius() { return radius; } public double area() { return 3.14159 * radius * radius; } /* 此处定义toString()方法定义 */ public boolean equals(Object o) { Circle c = (Circle) o; return radius == c.radius; } /* 此处定义equals()方法定义 */ public String toString() {

11

return "圆半径:" + radius + "圆面积为:" + 3.14 * radius * radius; } } public class Test { public static void main(String args[]) { Circle c1 = new Circle(10); Circle c2 = new Circle(10); System.out.println("\n" + c1.equals(c2) + c1.toString()); }

抽象类的编程应用。 编程应用 4.4 抽象类的编程应用。 编写一个能产生三个柱体对象,分别是底部形状分别是Circle、Triangle(三角形), Rectangle(长方形)的情况,并计算相应体积。 思路:该程序有两种实现方式。 1)定义三个柱体类,分别是CirclePillar类、TrianglePillar类、RectanglePillar 类,分别生成三个类的实例,但该方法的缺陷是什么? 2)设计一个Shape抽象类,该类有一个抽象方法area(),设计一个Pillar(柱体)类, 该类有两个成员变量:Shape和height,并创建3个实例:底部形状分别为Circle、Triangle(三角 形), Rectangle(长方形)的柱体类,并计算相应体积。 实验记录要求:写出相应代码。 五、实验结果分析及实验报告要求 分析程序运行结果

12

实验六 实验六
一、实验目的

接口与实现接口的类

1. 理解接口的概念和作用 2. 掌握接口的定义 3. 掌握如何实现接口 4. 掌握 API 基础 5. 掌握 String 类型和其他基本数据类型之间的相互转换
二、实验设备和仪器 电脑 三、实验内容及要求 1. 产生三个柱体对象,分别是底部形状分别是Circle、Triangle(三角形), Rectangle(长方形) 的情况,并计算相应体积。(提示定义一个Pillar类,成员变量底面积用Shape接口实现) 2.编程判断用户输入的电子邮箱、电话号码(包括家庭电话和手机号码)是否合法,并将该程序打 包至tools包下。 3.写出String和基本数据类型(int、boolean、double)相互类型转换的语句。 四、实验原理及步骤 1.接口概念和定义 1.接口概念和定义 接口 概念: 概念:Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没 有方法的实现, 因此这些方法可以在不同的地方被不同的类实现, 而这些实现可以具有不同的行为 (功能) 。 定义 [public] interface 接口 { [public] [static] [final] 数据类型 成员变量=常量值; [public] [abstract] 返回值类型 成员方法[(参数列表)]; } 2.实现接口的类 2.实现接口的类 定义: [修饰符] class 类<泛型> [extends 父类] [implements 接口列表]
13

[extends 父接口列表 ]

实现接口的非抽象类必须实现所有接口中的所有抽象方法,否则声明为抽象类。 3.正则表达式 可以表示字符串的组成规则,由字符和量词构成。 1). 预定义字符类(转义字符序列): 预定义字符类(转义字符序列):

\d——代表任何数字字符,即[0-9] \D——代表任何非数字字符 \w——代表任何单字字符(字母a~z、A~Z、下划线、0~9),即[a-zA-Z_0-9] \W——代表任何非单字字符 \s——代表任何空白字符 \S——代表任何非空白字符 没有预定义字符类的字符,可在方括号[]指明,如[246]表示2或者4或者6三个字符 2). 表示匹配字符的个数: ″量词——表示匹配字符的个数: 量词 表示匹配字符的个数

*——代表匹配字符个数为0个或多个 +——代表匹配字符个数为1个或多个 ?——代表匹配字符个数为0个或1个 {n}——代表匹配字符个数正好为n个 {n,}——代表匹配字符个数至少为n个 {n,m}——代表匹配字符个数至少为n个,最多为m个 ackage打包语句 4. package打包语句 格式: package mypackage ; 必须放在程序的第一行, 其作用是将当前程序的class文件打包至mypackage包 (文件夹) 中。 5.String和其他基本类型转换 .String和其他基本类型转换 1)将字符串转换成基本类型数据 通过各个基本类型的类方法parseXXX来实现的 2)将基本类型数据转换成字符串 通过String的类方法valueOf来实现, 该方法有多个重载, 一般形式为: s.valueOf(parament) 五、实验结果分析及实验报告要求 填写实验内容的结果,要详细

14

实验七 实验七
一、实验目的 1. 了解异常类的作用 2. 掌握对异常的捕获和处理方式 二、实验设备和仪器 电脑 三、实验内容及要求

异常的抛出、 异常的抛出、捕获并处理

将每个知识点都进行上机实践,具体内容见实验原理与步骤。 四、实验原理及步骤

1、 使用 try…catch 语句处理异常 1.1、 1.1、 异常类型匹配的处理方式
(1) 程序功能: 在程序中主动产生一个 ArithmeticException 类型被 0 除的异常, 并用 catch 语 句捕获这个异常。 最后通过 ArithmeticException 类的对象 e 的方法 getMessage 给出异常的 具体类型并显示出来。
(2) 程序源代码如下。

public class EXP5_1{ public static void main(String[] arg3) { System.out.println("这是一个异常处理的例子\n"); try { int i=10; i /=0; } catch (ArithmeticException e) { e.printStrackTrace(); } finally { System.out.println("finally 语句被执行"); } } } 实验记录要求:写出上述程序的输出结果。

1.2、 1.2、 包含多个 catch 子句的异常处理方式
(1) 程序功能::在 try 子句中设计两个可能出现的异常,当 a 为 0 时会发生异常。另外一个是

15

肯定的异常,因为数组 c 的长度为 1,定义 c[42]是为法的。通过两个 catch 子句分别来捕获 异常。
(2) 程序源代码如下。

public class EXP5_3{ public static void main(String[] args) { try { int a=args.length; System.out.println("\na = "+a); int b=42/a; int c[]={1}; c[42]=99; } catch (ArithmeticException e) { System.out.println("发生了被 0 除:"+e); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界:"+e); } } } 实验记录要求:上述源代码运行结果,总结多个 catch 语句捕获异常方式。

2、 使用 throw 语句抛出异常
在上面的实验中,可以发现,异常对象是 Java 运行时由系统抛出的。抛出异常也可以通过使用 throw 语句实现。throw 是 Java 语言的关键字,用来告知编译器此处要发生一个异常。throw 后 面要跟一个新创建的异常类对象,用于指出异常的名称和类型。 (1) 程序源代码如下。 public class EXP5_4 { static void throwProcess() { try { throw new NullPointerException("空指针异常"); } catch (NullPointerException e) { System.out.println("\n在throwProcess方法中捕获"+e.getMessage()); throw e; } } public static void main(String args[]) { throwProcess(); }

16

} 实验报告要求:请写出该程序运行结果。

3、 使用 throws 语句
throws 子句一般用来表明在使用该方法时可能抛出异常但不捕获的异常。异常由系统来处理。 throws 子句也可以指出抛出异常是 RuntimeException 或自定义异常类,即异常的类型,以便准 备调用其它方法捕获它,这种情况一般需要两个方法来分别处理抛出异常和处理异常。 (1) 程序功能: 在这个程序中的 mathod 方法中使用 throws 子句抛出异常, main 方法中捕获处 在 理异常。
(2) 程序源代码如下,请在横线内填入相应的代码。

import java.io.*; public class EXP5_5{ IllegalAccessException { static void mathod() System.out.println("\n 在 mathod 中抛出一个异常"); new IllegalAccessException(); } public static void main(String args[]) { try { mathod(); } catch (IllegalAccessException e) { System.out.println("在 main 中捕获异常:"+e); } } }

4、 使用 finally 子句
当一个异常被抛出时,程序的执行流程就不再是连续的了,会跳过某些语句,甚至会由于没有 与之匹配的 catch 子句而过早地返回,结束程序的运行。为了确保一段代码不管发生什么异常都 能被执行, 可以使用 finally 子句。 每个 try 语句至少都要有一个与之相配的 catch 或 finally 子 句。 从一个方法中返回到调用它的另外一个方法, 可以通过 return 语句或通过一个没有被捕获的异 常,但 finally 子句总是在返回前被执行。 (1) 程序功能:在类 EXP5_6 的 mathodA 方法中使用 try 子句捕获异常,使用 finally 子句处理 异常。
(2) 程序源代码如下。

class EXP5_6{ static void mathodA() {
17

try { System.out.println("\nmathodA 抛出一个异常"); throw new RuntimeException(); } finally { System.out.println("执行 mathodA 的 finally"); } } static void mathodB() { try{ System.out.println("mathodB 正常返回"); return; } finally { System.out.println("执行 mathodB 的 finally"); } } public static void main(String args[]) { try { mathodA(); } catch (Exception e) { mathodB(); } } }

5、 创建自定义的异常类
(1) 程序功能:通过继承 Exception 异常类创建一个自定义异常类 MyException,然后再创建一 个主类 EXP5_7 使用自定义异常类 MyException。
(2) 程序源代码如下。

class MyException extends Exception { private int x; MyException(int a) { x=a; } public String toString() { return "自定义异常类MyException"; } } public class EXP5_7 { static void mathod(int a) throws MyException { System.out.println("\t 此处引用 mathod ("+a+")");
18

if (a>10) throw new MyException(a); // 主动抛出MyException System.out.println("正常返回"); } public static void main(String args[]) { try { System.out.println("\n 进入监控区,执行可能发生异常的程序段"); mathod(8); mathod(20); mathod(6); } catch ( ) { System.out.println("\t 程序发生异常并在此处进行处理"); System.out.println("\t 发生的异常为:"+e.toString()); } System.out.println("这里可执行其它代码"); } }

五、实验报告要求: 实验报告要求 请按实验内容要求写出实验报告。

19

实验八 实验八
一、实验目的

图形用户界面设计

1. 掌握 Java 图形组件和布局管理器的使用 2. 掌握使用 Java 事件处理机制的使用 3. 掌握图形界面的各种控件的使用如:标签、文本框、按钮、复选框、列表框、窗框等 二、实验设备和仪器 实验设备和仪器 电脑 三、实验内容及要求 设计一个简单计算器,如下图所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作 符+,-,×,÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。

1.运用一种或多种布局管理器,绘制出一个简单的计算器; 2. 为按钮注册事件监听器,使其点击按钮,并在显示区域同步显示当前输入或运算结果; 3. 编译运行程序,检查计算器的正确性; 四、实验原理及步骤 原理: 原理: 通过图形用户界面(GUI) ,用户和程序之间可以方便地进行交互。javax.swing 包中的组件类可以 帮助我们完整界面的设计。 javax.swing 包的 JComponent 类是 java.awt 包中的 Container 类的一个直接子 类、Component 类的间接子类。javax.swing 包中的 JFrame 类和 JDialog 类分别是 java.awt 包中 Frame 类和 Dialog 类的直接子类、Window 类的间接子类。在学习 GUI 编程时,必须很好地理解并掌握两个 概念:容器类和组件类,必须很好地掌握 java 的事件处理机制。 步骤: 步骤: 1.在纸上设计好计算器的布局,考虑好使用哪些布局管理类能实现你设计的布局。

20

2.设计界面:定义一个 Frame 类的子类 MyFrame,并将所有按钮和文本框组件定义为其成员,通 过布局类设计每个组件在 MyFrame 中的位置。 3.计算器上每个组件所产生的事件,对应的事件处理接口有哪些方法,哪个方法是处理当前事件 的方法,等等。为每个按钮增加监听器,可用类 MyFrame 的当前对象 this 作为监听器。 4 .MyFrame 实 现 事件接 口 ActionListener, 即重 写 actionPerformed 方 法. 主要的算法就 在 actionPerformed 方法中. 5. 设计好算法。当单击数字按钮时会在文本框中显示相应的数字,表示此数字即将参与运算。当 单击第一个运算符时, 要做的工作是将文本框中数字作为一个运算对象保存到变量 one 中,并将此运算 符保存到变量 fu 中,等待另一个运算对象的输入。当单击第二(或第三…)运算符时,要做的工作是 将当前文本框中的数字和 one 的值按 fu 中的运算符进行运算,并将运算结果存到 one 中,依次类推直 到遇到“=”结束。 五、实验结果分析及实验报告要求 1.采用布局管理器进行界面的布局; 2. 学会对不同的事件用相应的事件处理器; 3.写出实验报告。 要求记录编译和执行 Java 程序当中的系统错误信息提材示, 并给出解决办法。 (附 运行界面、源代码) 。

21

实验九 实验九 线程设计
一、实验目的 1. 掌握多线程的概念及线程实现的两种方法。 2. 掌握 Java 线程的状态及状态的改变。 3. 掌握 Java 程序音频、图像的处理。 二、实验设备和仪器 电脑 三、实验内容与要求 实验内容与要求 编程实现一副牌发牌程序,发送由 1~52 组成的一个随机数序列,发牌程序可参照教材 217 页。 四、实验原理及步骤 Java 中提供了 2 种创建线程的方法: (1)继承 Thread 类 (2)实现 Runnable 接口 这两者都在 java.lang 包下。 方法一 继承 Thread 类 public Thread (); public Thread (Runnable target); public Thread (Runnable target,String name); public Thread (String name); 这种方法创建线程的代码一般如下: public class Thread1 extends Thread //定义 Thread 类的子类 Thread1,成为线程类。 { //Thread1 构造方法 public void run() //覆盖 Thread 类的 run()方法 { //定义线程的操作 } } 方法二:实现 Runnable 接口 例如: public class Runnable1 implements Runnable { int k=0; public Runnable1(int k) { this.k = k; } public void run() { int i = k; System.out.println(); while (i<50) { System.out.print(i+" "); i+=2; }

22

} public static void main (String args[]) { Runnable1 r1 = new Runnable1(1); //创建线程体的目标对象 Runnable1 r2 = new Runnable1(2); Thread t1=new Thread(r1); //以目标对象创建线程 Thread t2=new Thread(r2); t1.start(); t2.start(); } } 五、实验结果分析及实验报告要求 实验报告仅仅只需写出和教材 217 页不同的代码即可。

23

实验十 输入/ 实验十 输入/输出流与文件操作
一、实验目的 掌握基于字节流进行输入/输出的方法、基于字符流进行输入/输出的方法、字节流与字符流之间的转 换方法、对于字节文件和字符文件的读写方法,以及对输入/输出过程中可能发生的异常的处理方法。 二、实验设备和仪器 电脑 三、实验内容及要求 1、用字节输入输出流和字符输入输出流将键盘输入内容保存成文件 a.txt,并实现文件复制到 b.txt。

2、有纯文件“Early-Precaution.txt” ,
将这篇短文内所有大写字母改成小写,并将更改后的短文写到纯文本文件”joke.txt” 里。 There was an American couple who had no children, so they wanted to adopt a child. Finally, an orphanage contacted them, saying, "We have a baby for adoption.It's a Russian orphan." The couple was delighted and went to bring the baby home. On the way home, they stopped by a university to enroll in a Russian course. "Why do you want to learn Russian? The English that we speak is a very good language," the university secretary asked."Well, we just adopted a Russian baby. When he begins to speak Russian in a few years, we are afraid that we might not be able to understand him," the couple replied. 四、实验原理及步骤 当程序需要读取磁盘上的数据或将程序中的数据存储到磁盘时,就可以使用输入/输出流,简称 I/O 流。I/O 流提供一条通道程序,可以使用这条通道读取”源”中的数据,或把数据送到”目的地”。 FileOutputStream 类 创 建 的 对 象 称 为 文 件 字 节 输 出 流 , 可 按 字 节 将 数 据 写 入 到 文 件 中 。 FileInputStream 类创建的对象称为文件字节输入流,可按字节读取文件中的数据。FileReader 类创建的 对象称为文件字符输入流,可按字符读取文件中的数据。Filewriter 类创建的对象称为文件字符输出流, 可按字符将数据写入到文件中。BufferedReader 类创建的对象称为缓冲输入流,该输入流的指向必须是 一个 Reader 流,称为 BufferedReader 流的底层流。底层流负责将数据读入到缓冲区,BufferedReader 流 的源就是这个缓冲区,缓冲输入流再从缓冲区读取数据。BufferedWriter 类创建的对象称为缓冲输出流, 可以将 BufferedWriter 和 FileWriter 连接在一起,FileWriter 流称为 BufferedReader 流的底层流。 BufferedWriter 将数据写入缓冲区,底层流负责将数据写到最终的目的地。

24

1.BufferedWriter 对象调用 newLine()可以向文件写入回行。 2.BufferedReader 对象调用 readLine()方法可以读取文件的一行。 五、实验结果分析及实验报告要求 写出实验代码即可。

25

实验十一 实验十一 网络通信
一、实验目的 1. 掌握网络计算、服务器和客户机等基本概念。 2. 掌握套接字与机器标识的概念以及 InetAddress 类的使用。 3. 掌握使用 ServerSocket、Socket 类实现套接字的编程。 4. 了解使用 DatagramSocket、DatagramPacket 实现 UDP 网络编程。 二、实验设备和仪器 电脑 三、实验内容及要求 实验内容及要求 1. 编写一个程序能利用 URLConnection 所对应的 url,如”http://www.nit.edu.cn”的内容读取出来。 2. 编写图形用户界面的程序实现聊天功能,界面如图 14.2 和 14.2 所示:

图 13.12 服务器端界面

13.13 客户端界面

3. 使用 ServerSocket 类与 Socket 类编写一个简单的客户/服务器程序,实现的功能是客户向服务器 发送一个字符串,服务器程序将该字符串转换成大写字母输出。 四、实验原理及步骤 1. URLConnection 类 创建 URLConnection 对象之前必须先创建一个 URL 对象, 然后通过调用 URL 类提供的 openConnection ()方法,就可以获得一个 URLConnection 类的对象。URLConnection 类的构造方法如下: public URLConnection(URL):用于创建一个指定 URL 的连接对象。 但是,用 URLConnection 的构 造方法来创建 URLConnection 类对象时, 并未建立与指定 URL 的连接, 还必须调用 URLConnection 类的 connect()方法才能建立连接。 openConnection()方法的定义如下: public URLConnection openConnection(); 下面是使用 URL 类的 openConnection()方法建立连接的几条语句: 例如:URL url=new URL(“http://www.nit.edu.cn”); URLConnection connection=url.openConnection(); URLConnection 类中的主要方法

26

方法名 void connect() Object getContent() String getContentEncoding() int getContentLength() String getContentType() long getDate() long getExpiration() InputStream getInputStream() long getLastModified() OutputStream getOutputStream() 2. Socket 通信

功能说明 建立 URL 连接 获取该 URL 的内容 获取响应数据的内容编码 获取响应数据的内容长度 获取响应数据的内容类型 获取响应数据的创建时间 获取响应数据的终止时间 获取该连接的输入流 获取响应数据的最后修改时间 获取该连接的输出流

TCP 通信中与 Socket 通信相关的两个类,一个是代表服务器端套接字的 ServerSocket 类,另一个 是代表客户端套接字的 Socket 类。 2.1 Socket 类 客户端可以通过构造一个 Socket 类对象来建立与服务器的连接。 Socket 类的主要方法 方法名 void close() InetAddress getInetAddress() 功能说明 关闭 Socket 连接 获取当前连接的远程主机的 Internet 地址

InputStream getInputStream() InetAddress getLocalAddress() int getLocalPort() OutputStream getOutputStream()

获取 Socket 对应的输入流 获取本地主机的 Internet 地址 获取本地连接的端口号 获取该 Socket 的输出流

int getPort() void shutdownInput() void shutdownOutput() 2.2 ServerSocket 类

获取远程主机端口号 关闭输入流 关闭输出流

ServerSocket 类用在服务器端,用来监听所有来自指定端口的连接,并为每个新的连接创建一 个 Socket 对象。之后客户端便可以与服务器端开始通信了。

27

ServerSocket 类的主要方法 方法名 Socket accept() void close() InetAddress getInetAddress() int getLocalPort() int getSoTimeout() void timeout) 获取该服务器 Socket 所侦听的端口号 获取连接的超时数 功能说明 接收该连接并返回该连接的 Socket 对象 关闭此服务器的 Socket 获取该服务器 Socket 所绑定的地址

setSoTimeout(int 设置连接的超时数,参数表示 ServerSocket 的 accept() 方法等待客户连接的超时时间。如果 参数值为 0 , 表示永远不会超时,进入阻塞状 态 这也是它的默认值

五、实验结果分析及实验报告要求 写出源代码、记录过程

28

实验十二 实验十二
一、实验目的 1. 通过实验掌握 SQL 命令的使用;

数据库应用设计

2. 使用 J2SDK 中提供的 JDBC-ODBC 桥连接数据库; 3. 使用的数据库系统不受限制,比如可以用 Sql server,Access。 4.Java 如何调用存储过程。 二、实验设备和仪器 电脑 三、实验内容及要求 编程实现如下功能:在数据库中建立一个表,表名为学生,其结构为:编号、姓名、性别、年 龄、JAVA 语言、数据结构、微机原理、总分。在表中输入多条记录。将表每条记录按照总分大到 小的顺序显示在屏幕上。查找并显示姓名为“张三”的记录。 (要求图形界面) 四、实验原理及步骤 原理: 原理: 1. JDBC 驱动程序按照连接方式的不同可以分为两种类型: Type 1:JDBC-ODBC Bridge Type 2:Pure JDBC Driver 2. JDBC 基本流程 (1) (2) (3) (4) (5) (6) (1) 建立 ODBC 数据源(可选) 装入 JDBC 驱动程序 建立连接 执行 SQL 语句 检索结果 关闭连接

装入 JDBC 驱动程序。加载 Driver 类,然后自动在 DriverManager 中注册的方式有两种: 1) 通过调用方法 Class.forName() 。这种方法将显式地加载驱动程序类。 2) 通过将驱动程序添加到 java.lang.System 的属性 jdbc.drivers 中。

(2)

建立连接。与数据库建立连接的标准方法是调用方法: 1). DriverManger.getConnection(String url) 2). DriverManger.getConnection(String url, Properties info)

29

3). DriverManger.getConnection(String url, String user, String password) (3) 执行 SQL 语句。JDBC 提供了三个类,用于向数据库发送 SQL 语句。Connection 接口中的三 个方法可用于创建这些类的实例。 1). Statement 由方法 createStatement 所创建。 Statement 对象用于发送简单的 SQL 语句。 2). PreparedStatement,由方法 prepareStatement 所创建。PreparedStatement 对象用 于发送带有一个或多个输入参数的 SQL 语句。 3). CallableStatement,由方法 prepareCall 所创建。CallableStatement 对象用于执行 SQL 存储程序——一组可通过名称来调用(就像函数的调用那样)的 SQL 语句。 (4) 检索结果。 语句发送以后, SQL 返回的结果通常存放在一个 ResultSet 类的对象中, ResultSet 对象可以看作是一个表, 这个表中包含由 SQL 返回的列名和相应的值, ResultSet 对象中维持 了一个指向当前行的指针, 通过一系列的 getXXX 方法, 可以检索当前行的各个列并显示出来。 (5) 关闭连接。 在对象使用完毕后, 应当使用 close()方法解除与数据库的连接, 并关闭数据库。

步骤: 步骤: 1. 通过 JDBC-ODBC 桥驱动程序访问 Sqlserver 数据库。 在 D:盘的根目录建一个名为“student”的数据库,在其中建立一个名为“student”的表,表的结构 如下: 表 15. 1 列名 Sno Sname Ssex Sage Sdept 输入下表中数据: 表 15.2 Student 表数据 Sno 95001 95002 95003 95004 Sname 李勇 刘晨 王敏 张立 Ssex 男 女 女 男 Sage 20 19 18 19 Sdept CS IS MA IS Student 表的结构 是否为空 否 否 是否主码 是

数据类型 CHAR(5) VARCHAR2(10) CHAR(4) NUMBER(2) CHAR(4)

建立一个名为“student”的 ODBC 数据源,它与“student”数据库相连。 编写一应用程序访问该数据库。要求程序运行后,先在“student”表中插入一行数据,数据如下: 学号:99999,姓名:李明,性别:女,年龄:20,所在系:CS 接下来程序输出所有女同学的信息。最后要求把“李明”的记录删除。 五、实验结果分析及实验报告要求 写出源代码

30


推荐相关:

面向对象程序设计(Java)实验指导书09信管.doc

面向对象程序设计(Java)实验指导书09信管 - 实验一 Java Appli

《java程序设计》实验指导书(09高职).doc

java程序设计实验指导书(09高职) - 山东信息职业技术学院 java 实验报告 实验一 一、实验目的 1.掌握 Java 编程环境的搭建过程; 2.掌握 Jcreator pro 软件...

面向对象程序设计(Java)实验指导书.doc

面向对象程序设计(Java)实验指导书 - 南昌工程学院 《面向对象程序设计(Java)》 实验指导书 10 信息管理与信息系统 专业 雷金娥编 2012 年 9 月 目 实验一 ...

09Java面向对象上机实验指导书.doc

09Java面向对象上机实验指导书_IT/计算机_专业资料。山东建筑大学JAVA实验报告 ...实验四:类和对象程序设计一、实验目的及任务 理解面向对象封装性、继承性和多态...

(1969186)JAVA 面向对象程序设计实验指导书2014级20150124.doc

Java 面向对象程序设计实验指导书 (自编教材) 课程代码: 19691

信管java实验(综合设计)指导书.txt

信管java实验(综合设计)指导书 JAVA实验指导书JAVA实验指导书隐藏>> 中南民族大学管理学院 《面向对象程序设计(Java)实验指导书 张晴 《面向对象程序设计(Java)》...

面向对象程序设计(Java)实验指导书09信管.doc

面向对象程序设计(Java)实验指导书09信管 - 南昌工程学院 《面向对象程序

面向对象程序设计JAVA-实验指导书.doc

军天下wolfer贡献于2011-03-09 0.0分 (0人评价)暂无用户评价 我要评价 ...面向对象程序设计JAVA-实验指导书面向对象程序设计JAVA-实验指导书隐藏>> 目 录...

Java面向对象程序设计课程设计任务书.doc

Java面向对象程序设计课程设计任务书 - 《Java 面向对象程序设计》课程设计任务书 学年学期:2011-2012 学年第 2 学期 专业班级:09 信息管理与信息系统 指导教师:...

JAVA面向对象程序设计实验指导书.doc

JAVA面向对象程序设计实验指导书 - J实 验指导书 苏守宝 王宁 编写 软件工程教研室 组编 计算机科学与技术系教学工作委员会 审定 AVA面向对象程序设计 面向对象...

Java面向对象程序设计及应用实验指导书1_12.doc

Java面向对象程序设计及应用实验指导书1_12 - Java 面向对象程序设计及应用 实验指导书 董东 张朝昆 2009.2 1 目录 实验 1 Java 开发环境 ...

《面向对象程序设计与Java》课程设计--学生信息管理系....doc

面向对象程序设计Java》 课程设计 题目:学生信息管理系统 院、 系: 计算机系 学科专业: 信息管理与信息系统 学生姓名: 学号: 指导教师: 2009 年 11 月 ...

面向对象程序设计 实验指导书(学生版本).doc

面向对象程序设计 实验指导书(学生版本)_工学_高等教育_教育专区。面向对象程序设计 (JAVA) 主讲教师:拓守恒 陕西理工学院 数学与计算机科学学院 信息与计算科学...

面向对象程序设计Java实验计划书-张勇.doc

面向对象程序设计Java实验计划书-张勇 - 巢湖学院 2011 系别: 计算机与信息工程学院 系别: 计算机与信息工程学院 实验室名称 实验课程名称 专业实验室 面向对象程序...

《面向对象程序设计与Java》课程设计 学生信息管理系统....doc

面向对象程序设计Java》 课程设计 题目:学生信息管理系统 院、 系: 计算机系 学科专业: 信息管理与信息系统 学生姓名: 学号: 指导教师: 2009 年 11 月 ...

《面向对象程序设计》实验指导书.doc

面向对象程序设计实验指导书 - 《面向对象程序设计实验指导书 郭玉柱 广

《JAVA程序设计》实验指导书(完整).pdf

JAVA程序设计实验指导书(完整) - XX 学院 java 实验报告 实验一 一、实验目的 1.掌握 Java 编程环境的搭建过程; 2.掌握 Jcreator pro 软件的使用方法; ....

《面向对象程序设计(Java)》实验报告.doc

《面向对象程序设计(Java)》实验报告 - 面向对象程序设计 (Java) 实验报告 院 系: 信息科学与技术学院 专 业: 信息管理与信息系统 班 级: 学生姓名: ...

面向对象程序设计Java学生信息管理系统_图文.doc

面向对象程序设计Java》 课程设计 题目:学生信息管理系统 院、 系: 管理信息系 学科专业: 信息管理与信息系统 学生姓名: 学号: 蒙开华 B08050210 指导教师...

信管java实验(综合设计)指导书.pdf

信管java实验(综合设计)指导书 - java程序设计实用教程第3版 叶核亚 编著 java实验综合设计指导书

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com