1、1Java 程序设计课程实验指导书合 肥 学 院 计 算 机 系2实验一 Java 开发环境的安装与配置,熟悉 Java 程序结构一、实验目的:1. 掌握 JDK 的安装步骤。2. 理解环境变量 PATH, CLASSPATH 的作用,以及它们的设置方法。3. 熟悉 Editplus(或 TextPad,JCreator)编辑环境,编写简单的Application 程序和 Applet 程序,并编译和执行。二、实验内容:熟悉 JDK 的安装和配置,学习如何编写并运行简单的 Application 程序和Applet 程序(能输出一条简单的问候信息);三、实验要求:1. 能正确地安装 JDK2.
2、 熟悉环境变量 PATH, CLASSPATH 设置方法,熟悉编辑环境3. 调试程序、编译,运行后得到正确的结果4. 写出实验报告,要求记录编译和执行 Java 程序当中的系统错误信息提示,并给出解决办法。四、实验步骤:1从 http:/ 上下载最新版本的 JDK,并安装。2设置环境变量 PATH, CLASSPATH, 使得 Java 程序能正确编译和执行。3在 Editplus(或 JCreator ,Textpad)环境下编写一个 HelloWorld.java 程序,(1)在主方法 static public void main(String args)中调用 System.out.p
3、rintln()方法,使程序输出一条问候信息;(2) 编译运行程序,观察运行情况和输出结果。(使用 JDK 环境,调用javac.exe 和 java.exe 编译和执行程序)4.在 Editplus(或 JCreator ,Textpad)环境下编写一个HelloWorldApplet.java 程序。(1)在 public void paint(Graphics g)方法中调用 g.drawString()方法,使3程序输出一条问候信息;(2) 编译运行程序,观察运行情况和输出结果。(使用 JDK 环境,调用javac.exe 编译和浏览器解释执行 Applet 程序)4实验二 Java
4、语言基础一、实验目的:熟悉 Java 基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用 Java 的选择语句,循环语句。二、实验内容:1.编写 Java Application 程序,输出 1900 年到 2000 年之间的所有润年。(闰年的判断条件:能被 4 整除且不能被 100 整除,或能被 400 整除);2.编写 Java Appet 程序打印 “水仙花” 数 (它的个、十、百位数字的立方的和等于该数本身,如:153=13+53+33)3. 编写 Java Application 程序,分别用 do-while 和 for 循环计算1+1/2!+1/3!+1
5、/4!.的前 20 项和三、实验要求:1. 正确使用 Java 语言的选择语句,循环语句;2. 调试程序、编译,运行后得到正确的结果3.写出实验报告。要求记录编译和执行 Java 程序当中的系统错误信息提成示,并给出解决办法。四、实验步骤:1.编写主类;2.在 static public void main(String args)方法中加入实现要求功能的代码,主要步骤如下:(第一题)从 1900 到 2000 循环,按照闰年的判断条件是则输出 1900 年到2000 年之间的所有润年。(第二题)编写 Java Applet, 在 public void paint(Graphics g)方法
6、中加入实现要求功能的代码, 主要步骤是:从 100 到 1000 循环,判断每个数是否符合水仙花数的特点,是则输出之。3.编译运行程序,观察输出结果是否正确。五、自做实验51. 输出 100 以内的所有素数。提示: 逐个判断小于 a 的每个正整数 x,第二重循环针对 x,判断其是否是质数。2.将所输入之正整数,以二、八、十六进制表示出来。提示: 可写三个方法分别计算输出二、八、十六进制表示。6实验三 类和对象一、实验目的:掌握 Java 类的结构、类的定义、方法和属性的定义以及对象的实现;掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法;掌握类变量与实例变量,以及类
7、方法与实例方法的区别。三、实验内容:1. 定义一个学生类(Student),属性有 private 的名字(name), public 的年龄(age),专业(specialty)和封装 name 属性的方法:setName(),getName(),getspecialty()编写 Application,创建一个学生对象,设置name 和 age 属性值,然后调用一个方法(此方法将对象作为参数传递,在方法中打印出学生的名字 name 和年龄 age)。(学生类仅包含静态成员变量和方法。)2. 定义一个类 Point,代表一个点,public 属性有 x 和 y,方法有显示点坐标 show()
8、,构造函数有两个参数分别给 x,y 赋值,在 main 方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为 2 个点对象,调用此方法后得到一个新的点,编写 Application,显示该对象的坐标值。3. 定义一个复数(z=x+iy)类 Complex,包含:两个属性:实部 x 和虚部 y默认构造函数 Complex(),设置 x=0,y=0构造函数:Complex(int i,int j)显示复数的方法:showComp()将其显示为如: 5+8i 或 5-8i 的形式。求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public
9、Complex addComp(Complex C1,Complex C2)求两个复数的差的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex subComp(Complex C1,Complex C2)求两个复数的乘积的方法:(参数是两个复数类对象,返回值是复数类对象,7新复数实部=两复数实部乘积-两复数虚部乘积,新复数虚部=两复数实部与虚部交叉乘积之和,)public Complex multiComp(Complex C1,Complex C2)比较两个复数是否相等的方法(参数是两个复数类对象,返回值是 boolean类型)public boolean equ
10、alComp(Complex C1,Complex C2)在 Application 中测试该类的方法,实部 x 和虚部 y 可由 main 方法参数提供输入。三、实验要求:1. 正确地定义类、方法和属性;2. 学会方法的参数传递和返回值的用法;3. 熟练使用类及其成员修饰符4.使用构造函数创建类的对象;5. 类变量与实例变量,以及类方法与实例方法的使用6.程序应包括各个被调用方法的执行结果的显示。7.写出实验报告。要求记录编译和执行 Java 程序当中的系统错误信息提示,并给出解决办法。 (附运行界面、源代码) 。四、实验步骤:1(第 1 题)定义一个学生类(Student)及它的属性和方法
11、;定义主类和main(),在 main()方法中创建学生对象,并通过对象调用它的方法setName(),getName(),输出学生的名字 name 和年龄 age。2. (第 2 题) 定义类 Point 及它的属性、方法和构造函数,定义主类和main(),在 main()方法中创建两个坐标对象,,并通过对象调用getMiddle 方法后得到一个新的点坐标,调用 show()显示该对象的坐标值。3. (第 3 题)定义一个复数(z=x+iy)类 Complex,及它的属性、方法和构造函数;定义主类和 main()方法,在 main()方法中创建两个复数类Complex 对象,并通过复数类对象
12、调用它们的属性和方法,输出方法执行结果。五、自做实验1. 构造一个类来描述屏幕上的一个点,该类的构成包括点的 x 和 y 两个坐标,以及一些对点进行的操作,包括:取得点的坐标值,对点的坐标进行赋值,8编写应用程序生成该类的对象并对其进行操作。2. 编写实现:有一个三角形类 Triangle,成员变量有底边 x 和另一条边 y,和两边的夹角 a(0在 init()方法中,调用 getParameter()获取由 HTML 传递的参数,23再按照要求,在 paint()方法中调用 Graphics 类中 drawString()函数显示字符串。3.(第 3 题)在 paint()方法中调用 Gra
13、phics 类中 drawString()函数时,X 坐标定义成变量(10=X=120),4.(第 4 题)在 init()方法中,根据指定的位置获取一系列图片类对象放入数组,再循环显示系列图片就形成动画。5. 运行、检查和调试 以上各程序。五、自做实验1.编写 Applet,访问并显示指定 URL 地址处的图像和声音资源。2.编写 Applet,访问并显示指定 URL 地址处的一组图像构成的动画。3.编写 Applet,接收用户输入的网页地址,并与程序中事先保存的地址相比较,若存在则打开网页,并在新打开的浏览器窗口显示*编写一个Applet 程序,显示一个圆心在 Applet 的中心,半径从
14、 0 到 100 像素不断变大的绿色球的动画。4.在 Applet 中画矩形,要求矩形做上角点坐标(20,20) ,高度为400*200,上下左右边设为蓝色、矩形填充色为绿色,并在居中的位置写上文字“面向对象程序设计” ,字体为楷体_gb2312,大小自定。5.自定义椭圆(或圆)的方法,画一组椭圆(最大半径 200) ,以圆心处为参考点,半径依次增加 2 个像素,圆周的颜色随机。6.给定数组 data=1,2,3,4分别画出圆饼图、条形图(宽随意给定,高代表所占百分比) ,颜色任意。7.找一幅图像,显示在 Applet 中,要求按原图大小显示,再放大或缩小一倍显示,或者放大显示右下部的 1/4
15、 块24实验九 Java 多线程 一、实验目的:熟悉利用 Thread 类建立多线程方法。熟悉利用 Thread 接口建立多线程方法。二、实验内容:1. 阅读下列程序,分析并上机检验其功能。class DelayThread exends Threadprivate static int count=0;private int no;private int delay;public DelayThread()count+;no=count; public void run()tryfor (int i=0;i10;i+)delay=(int)(Math.random()*5000);sleep
16、(delay);System.out.println(“Thread ”+no+” with a delay ”+delay);catch(InterruptedException e)public class MyThreadpublic static void main(String args)DelayThread thread1=new DelayThread();DelayThread thread2=new DelayThread();thread1.start();thread2.start();try Thread.sleep(1000);catch(InterruptedEx
17、ception e)25System.out.println(“Thread wrong”);2.讲上列程序利用 Runnable 接口改写,并上机检验。3.利用多线程 编写一个模拟时钟(AWT 程序、Runnable 接口),有时分秒 针编写一个应用程序,创建三个线程分别显示各自的时间。三、实验要求:1. 通过实验掌握 Thread 、Runnable 使用方法;2. 程序必须能够实现多线程;3. 程序必须能够完成题目要求;4. 写出实验报告。四、实验步骤:首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过 Thread 类建立多线程的方法。通过将扩展 Thread 类建立多线程的
18、方法改为利用 Runnable 接口的方法,掌握通过 Runnable 接口建立多线程的方法。四、自做实验课本:P262 12,13,1426实验十 输入输出流一、实验目的:熟悉 Java 的文件读写机制,练习输入输出流的使用。二、实验内容:1、键盘输入 10 个整数,从小到大进行排序。2、接收键盘输入的字符串,用 FileInputStream 类将字符串写入文件,用FileOutputStream 类读出文件内容显示在屏幕上。3、将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入到另一个文件中。三、实验要求:1. 通过实验掌握文件输入输出流的使用方法;2. 程序必须能够从键盘接
19、收字符串并保存在文件中;3. 程序必须能够读出文件内容显示在屏幕上;4. 写出实验报告。四、实验步骤:1 (第 1 题)接收键盘输入字符串,再转化整数;2. (第 2、3 题)编写主方法 main(),其中实现接收键盘输入功能、文件操作功能和文件内容输出功能;3. 调试运行程序,观察输出结果。五、自做实验课本:P300,7、 1027实验十一 Java 网络编程一、实验目的:1、熟悉掌握 Java 的相对高级别(简单的)网络通讯2、熟悉掌握 URL 类访问 Web 页面的操作流程3、学会 JAVA 的 Socket 类和 ServerSocket 类的使用二、实验内容:1、编程实现同一 Web
20、 页面两个 Applet 之间的通讯2、编程实现显示 URL 中的 Html 文件*3、参照例程编写一个简单的聊天室程序(P411,2)三、实验要求:1. 通过实验掌握的 URL 类、Socket 类和 ServerSocket 类的使用方法;2. 程序必须完成题目要求的功能;3. 写出实验报告。四、实验步骤:1 (第 1 题)参照例程两个 Applet 分别加上按钮,互相控制对方的线程2. (第 2 题)通过 URL 类中方法,实现通讯,获取 Html 文件3. (第 3 题)参照例程增加多客户端,实现聊天室4调试运行程序,观察输出结果。五、自做实验P411,828实验十二 Java 与数据
21、库连接一、实验目的:熟悉 SQL 命令集。学会编写加载数据库驱动和连接数据库的 JAVA 程序。应用 Java.sql 包中的类和接口编写操作数据库的应用程序。二、实验内容:编程实现如下功能:在数据库中建立一个表,表名为学生,其结构为:编号、姓名、性别、年龄、JAVA 语言、数据结构、微机原理、总分。在表中输入多条记录。将表每条记录按照总分大到小的顺序显示在屏幕上。查找并显示姓名为“张三”的记录。 (要求图形界面)三、实验要求:1. 通过实验掌握 SQL 命令的使用;2. 使用 J2SDK 中提供的 JDBC-ODBC 桥连接数据库;3. 使用的数据库系统不受限制,比如可以用 Access。4
22、调试运行程序,观察输出结果。5写出实验报告。四、实验步骤:1、首先设计一个图形界面2、 首先建立一个数据库,在此基础上通过编程实现一下功能:在数据库中建立一个表,表名为职工,其结构为:编号、姓名、性别、年龄、JAVA 语言、数据结构、微机原理、总分。1)在表中输入多条记录。2)将每条记录按照总分大到小的顺序显示在屏幕上。3)查找并显示姓名为“张三”的记录五、自做实验课本:P411,229实验十三 实现 C/S 应用一、实验目的:熟悉综合运用图形用户界面与事件处理机制、Java 的文件读写机制、输入输出流的使用、多线程、Java 的异常处理、Java 网络编程知识,编写一个综合程序二、实验内容:利用 Socket 编程实现 C/S 应用。其中,Client 端为 GUI 程序,用于提供界面输入两个数,并有 1 个“发送”按钮,另外还有一个 TextField 用于显示传来的计算结果;Server 端用于监听连接请求、计算发送过来的两数的和、送回数据结果。三、实验要求:1. 有良好的图形用户界面;2. 多个用户能同时操作;3. 要有异常处理机制4调试运行程序,观察输出结果。5写出实验报告。四、实验步骤:1、编写服务器端程序2、客户端首先设计一个图形界面3、实现客户端程序五、自做实验在此程序的基础上,增加相应的功能。