《Java语言程序设计》——软件实验指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java程序设计》
实验指导书
太原理工大学
计算机科学与技术学院(软件学院)
目录
实验1 Java语言基础 (3)
实验2 数组和字符串编程 (4)
实验3 Java面向对象程序设计 (5)
实验4 Java异常处理 (7)
实验5 多线程编程 (9)
实验6 图形用户界面编程 (12)
实验7 输入与输出 (14)
实验8 网络编程 (15)
实验9 数据库编程 (16)
实验1 Java语言基础
1.实验目的
(1)通过实验,掌握Java语言程序设计的基本方法。

(2)学会Java语言中标示符的命名、运算符和表达式的应用。

(3)熟练地掌握Java程序流程控制语句的应用。

2.实验内容
(1)编写应用程序,计算100(含100)以内所有偶数的和。

(2)“水仙花数”是指一个3位数,其个位、十位、百位上的数字的立方和等于该数本身,例如371=33+73+13,因此371是一个水仙花数。

编写程序,求所有的水仙花数。

(3)编写一个程序,求1-100间的素数。

(4)有一函数:
x (x<1)
Y= 3x-2 (1≤x<10)
4x (x≥10)
写一程序,给定x值,输出y值。

(5)使用for循环语句,编写程序输出以下图案。


☆☆☆
☆☆☆☆☆
☆☆☆☆☆☆☆
☆☆☆☆☆
☆☆☆

(6)编写程序,输出从公元1900年到2100年所有闰年的年号,每输出5个年号换一行。

判断年是否为闰年的条件是:①若年号可以被4整除,而不能被100整除,则是闰年;②若年号可以被400整除,也是闰年。

3.实验预习
(1)复习本章所学内容。

(2)写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。

4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验2 数组和字符串编程
1.实验目的
(1)通过实验,掌握Java语言中数组、字符串程序设计的基本方法。

(2)较熟练地掌握Java程序数组的应用、字符串处理操作的方法应用。

2.实验内容
(1)编写一个程序,在控制台输入10个数,按大小顺序输出。

(2)求一个3*3矩阵对角线元素之和。

(3)输入一段字符串,统计其中有多少个单词。

(单词用空格隔开)
3.实验预习
(1)将本章所学内容要点进行整理,并认真体会例题中的编程要领。

(2)写出实验内容中第(2)、(3)题两个程序的源代码,作为预习报告。

4.实验步骤及结果
实验过程中,注意记录以下内容:
(1) 实验过程中实验步骤及其结果。

(2) 遇到的问题及解决办法。

(3) 实验体会。

实验3 Java面向对象程序设计
1.实验目的
掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。

2.实验内容
(1)创建一个复数类complex,以附属进行数学运算、复数具有如下格式:RealPart+ImaginaryRart*I ,其中,I为-1的平方根。

要求如下:
①利用浮点变量表示此类的私有数据。

提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。

②提供两复数加、减、乘的运算方法。

③按格式(a,b)打印复数。

其中a为实部,b为虚部。

(2)创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。

(3)编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。

(4)编程实现以下简单超市管理,具体要求如下:
①实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;
②定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。

③ main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作
提示:①超市货架可以使用商品数组,数组大小100表明存放100个商品。

②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。

3.实验预习要求
复习本章所学内容,思考以下问题:
(1)什么是对象?什么是类?
(2)面向对象编程的特性有哪三个?它们各自有哪些特性?
(3)Java语言在面向对象编程方面有哪些独特的特点?
(4)抽象类与接口有何异同?
4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3) 实验体会。

实验4 Java异常处理
1.实验目的
掌握异常的概念,以及如何定义、抛出和捕获处理异常。

2.实验内容
(1) 做实验之前要求思考以下问题,作为预习内容;
①错误和异常有何区别?查看Java异常类的关系图。

②异常是如何抛出、捕获和处理的?
③Java捕获和处理异常的结构式怎样的?
④Try语句如何嵌套?Trow语句有何作用?Finally程序快的作用是什么?
(2) 运行下面的程序,理解异常的抛出、捕获与处理。

Import java.io.*;
public class void main(String args[]){
public staic void main(String args[]){
for(int i=0;i<4;i++){
int k;
try{
switch(i){
case 0: //divided by zero
int zero=0;
k=911 //zero
break;
case 1://null pointer
int b[]=null;
k=b[0];
break;
case 2; //array index out of bound
int c[]=new int[2];
k=c[9];
break;
case 3: //string index out of bound
char ch="abc".charAt(99);
break;
}
}catch(Exception e){
System.out.println("\nTestcase#"+i+"\n");
System.out.println(e);
}
}
}
}
(3)在实验三中的超市、商品类中创建一个自定义异常类。

要求:在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。

提示:
①产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。

②确定产生异常的方法,应该在sale方法中产生异常Insufficient Funds Exception。

③处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。

④要定义好自己的异常。

3.实验步骤及结果
在实验过程中记录实验步骤及其结构。

4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验5 多线程编程
1.实验目的
(1) 现成的概念、线程的生命周期。

(2) 多线程的编程:扩展Thread类与使用Runnable接口。

(3) 使用多线程机制实现动画
2.实验内容
(1) 运行下面的程序,理解用创建Thread子类的方法实现多线程。

//S09_01_Thread.Java
Import java.util.*;
class S09_01_Thread extends Thread {
int pauseTime;
String name;
public S09_01_Thread(int x,String n){
pauseTime=x;
name=n;
}
public void run(){
while(true){
try{
system.out.println(name+":"+new Date(System.currentTimeMillis()));
Tread.sleep(pauseTime);
}catch(Exception e){System.out.println(e);}
}
}
static public void main(String srgs[]){
S09_01_Thread tp1=new S09_01_Thread(1000,"Fast");
tp1.start();
S09_01_Thread tp2=new S09_01_Thread(3000,"Slow");
tp2.start();
}
}
(2) 运行下面的程序,理解用实现Runnable接口的方法实现多线程。

//S09_02_Thread.Java
Import java.util.*;
class S09_02_Thread implements Runnable {
int pauseTime;
String name;
public S09_02_Thread(int x,String n){
pauseTime=x;
name=n;
}
public void run(){
while(true){
try{
system.out.println(name+":"+new Date(System.currentTimeMillis()));
Tread.sleep(pauseTime);
}catch(Exception e){System.out.println(e);}
}
}
static public void main(String srgs[]){
Thread t1=new Thread(new S09_02_Thread(1000,"Fast"));
t1.start();
Thread t2=new Thread(new S09_02_Thread(3000,"Slow"));
t2.start();
}
}
(3) 创建简单的程序ThreeThread.java,该程序将创建三个线程,每个线程应当显示它所运行的时间(可以考虑使用Date类或Calendar类)。

3.实验预习
(1) 将本章所学内容要点进行整理,熟练掌握线程的编程要领。

(2) 写出实验内容中第(3)题程序的源代码,作为预习报告。

4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验6 图形用户界面编程
1.实验目的
掌握文本组件、按钮和单、复选按钮组件的使用;掌握列表的使用,鼠标、键盘事件的处理;掌握布局控制的方法。

2.实验内容
(1) 编写一个Applet程序响应鼠标事件,当鼠标事件发生时,在状态条显示相应的时间信息。

提示:使用showStatus(字符串)方法。

(2) 完成图6-1所示的GUI布局管理,不需要实现功能。

图6-1 要实现的GUI布局管理
(3) 试设计一窗口,内含一个按钮。

开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依次循环。

(4) 仿照Windows 2000/XP系统提供扫雷游戏编写一个类似功能和界面的扫雷程序。

(5) 编写一个简易文本编辑器,参考界面如图6-2所示。

图6-2 简易文本编辑器运行效果图
要求:包含基本的打开、保存、新建等功能。

包含菜单,能够对文本的字体类型和颜色进行设置,力求界面美观。

3.实验预习
复习本章所学内容,思考以下问题:
(1)Java语言是跨平台的编程语言,那么图形用户界面如何做到跨平台?
(2)AWT有哪些组件和容器?它们各自的使用方法是什么?
(3)AWT的事件处理模型是什么?原理又如何?
(4)什么是Swing?它和AWT比有什么优点?使用上有什么区别?
4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验7 输入与输出
1.实验目的
(1) 掌握Java两种基本输入/输出流类的使用。

(2) 掌握Java文件类型的使用。

(3) 掌握文件的输入、输出方法。

2.实验内容
(1) 编写程序,实现从键盘输入字符串并在屏幕上输出。

(2) 利用Java文件类File的方法,获取磁盘文件的文件名、长度、大小等特性。

(3) 编写程序,利用Java字符流文件输入/输出类,实现将源程序复制到另一个文件中。

(4)编写一个程序,比较两个文件的内容是否相同。

(5)编写一个程序,求2~200之间的素数,并将结果保存在文件prime.dat中。

再从该文件中读取内容并在屏幕上显示出来。

3.实验预习
(1) 将本章所学内容要点进行整理,熟练掌握网络的编程要领。

(2) 写出实验内容中的源代码,作预习报告。

4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决方法。

(3)实验体会。

实验8 网络编程
1.实验目的
(1)掌握TCP编程:Sodket的概念和编程方法。

(2)掌握URL类的使用:URL的概念和编程。

2.实验内容
(1)使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。

(2) 使用Socket编程,客户机发送数据到服务器,服务器将接收到的数据返回给客户机。

(3)设计图形用户界面的客户端程序和服务器端程序,实现客户端读取服务器段内容,要求支持客户端的多线程操作。

3.实验预习
(1) 将本章所学内容要点进行整理,熟练掌握网络的编程要领。

(2) 写出实验内容中第(2)、(3)题程序的源代码,作为预习报告。

4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

实验9 数据库编程
1.实验目的
(1) 了解JDBC的概念和工作原理。

(2) 掌握使用JDBC实现简单的数据库管理。

2.实验内容
(1) 建立一个student表的结构,字段包括学号、姓名、性别、年龄、班级等。

(2) 配置ODBC数据源,假设在本例中,数据源的名字是“Vtest”。

(3) 编写程序,使其可以通过图形界面向“student”表中增加数据记录。

(4) 编写程序,在“student”表中分别查询所有记录以及满足条件“年龄>18”的记录。

3.实验预习
(1) 将本章所学内容要点进行整理,熟练掌握网络的编程要领。

(2) 写出实验内容中所用程序的源代码,作为预习报告。

4.实验步骤及结果
实验过程中,注意记录以下内容:
(1)实验过程中实验步骤及其结果。

(2)遇到的问题及解决办法。

(3)实验体会。

相关文档
最新文档