Java程序设计实验指导书版本.docx

上传人:b****4 文档编号:3540787 上传时间:2022-11-23 格式:DOCX 页数:11 大小:23.34KB
下载 相关 举报
Java程序设计实验指导书版本.docx_第1页
第1页 / 共11页
Java程序设计实验指导书版本.docx_第2页
第2页 / 共11页
Java程序设计实验指导书版本.docx_第3页
第3页 / 共11页
Java程序设计实验指导书版本.docx_第4页
第4页 / 共11页
Java程序设计实验指导书版本.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Java程序设计实验指导书版本.docx

《Java程序设计实验指导书版本.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验指导书版本.docx(11页珍藏版)》请在冰豆网上搜索。

Java程序设计实验指导书版本.docx

Java程序设计实验指导书版本

《Java程序设计》

实验指导书

 

武汉科技大学信息科学与工程学院

《Java程序设计》实验教学大纲

 

实验课程名称:

Java程序设计英文名称:

TheJavaProgrammingLanguage

实验课程性质:

非独立设课应开实验学期:

6

课程编码:

0402004实验学时数:

10

适用专业:

电子信息工程

一、实验教学目的和要求

《JAVA程序设计》是一门实践性很强的专业课程。

通过上机实验,不仅可以帮助学生较好地掌握Java语言和面向对象程序设计的基本概念、基本方法和技巧,同时也可培养学生独立设计程序的能力,理解面向对象的编程思想。

实验教学目的:

1.使学生通过实验,验证书本和课堂教学内容:

逐步理解、体会、消化、巩固和补充课堂所学主要内容;

2.培养学生设计与动手能力:

通过设计性的实验任务,通过实践环节理解Java语言的基本结构和程序设计方法。

通过亲手编程掌握Java语言编程的方法,从而提高学生的分析问题、解决问题的能力和动手能力。

通过实验,要求学生应达到以下实验能力与标准:

1.熟练掌握Java程序的编辑、编译、运行步骤及程序调试的方法,熟练运用Java语言进行面向对象程序设计

2.深入理解面向对象的封装、继承和多态等特性

3.利用Java语言进行异常处理

4.能利用Java语言进行磁盘数据文件的建立及读写操作编程。

5.利用Java语言实现多线程编程。

二、主要仪器设备(所开实验的主要仪器设备)

每个学生上机使用一台PC机进行程序开发,PC机的硬件、软件环境如下:

1)硬件:

CPUP43.0GHZ256M内存,80G硬盘空间。

2)软件:

操作系统:

WindowsXP

开发工具:

MyEclipse8.5、Jsdk1.6.1_02软件开发包

三、实验项目名称和学时分配

序号

实验项目名称

学时

分配

实验

属性

实验

类型

实验者类别

必开/选开

1

初步的面向对象的程序设计

2

专业类

设计性

本科生

必开

2

面向对象程序设计

2

专业类

设计性

本科生

必开

3

异常类的定义及处理

2

专业类

设计性

本科生

必开

4

流、文件及基于文本的应用

2

专业类

设计性

本科生

必开

5

综合设计

2

专业类

设计性

本科生

必开

四、实验课考核方式

1.实验报告:

每位同学必须独立书写实验报告,注意:

不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

实验报告的内容应包括以下几个部分:

1)按照实验内容和实验步骤要求完成实验任务后,若程序已通过实验指导教师验收,则只在报告中重点给出调试分析过程描述:

包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);若程序未完全通过验收,则需再此基础上提交包含详细注释的源程序清单。

2)根据思考题要求,重点描述需求分析、概要设计和详细设计过程,并提交包含详细注释的源程序清单,最后详细描述程序调试分析过程。

2.考核方式

2.1实验课成绩根据学生的实验预习、实验纪律、实验动手能力、实验结果和实验报告等几个部分进行综合评定,并给出优、良、中、及格和不及格共五档成绩。

2.2实验课成绩占课程总成绩的25%。

五、实验指导书及主要参考书

[1]蔡翠平主编唐大仕编著,JAVA程序设计(修订本),北方交通大学出版社清华大学出版社,2007年.

[2]侯捷译,JAVA编程思想(第二版),机械工业出版社,2002.

[3]丁振凡,Java语言实用教程,北京邮电大学出版社,2005.

[4]丁振凡,Java语言实用教程实验指导,北京邮电大学出版社,北京,2006

一、综合设计题目

某小型公司,主要有三类人员:

经理、兼职技术人员和兼职推销员。

这三类人员共同拥有的相关属性:

姓名、编号;相关方法:

获取当月薪水的getPay()方法、显示个人信息的toString()方法。

人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。

月薪计算方法:

经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销人员的月薪按当月的销售额的4%提成。

要求:

结合本课程所学知识点,采用面向对象的编程思想,结合题意自己确定需要定义的类及各类的属性、构造方法和其他方法,并编写JavaApplcation程序实现功能:

1.查询职工个人信息,可通过姓名、编号查询

2.查询部门所有职工的详细信息

3.修改职工信息;

4.删除职工信息;

5.添加职工信息

6.查询所有职工信息,并将其存储到职工信息文件EmployeeData.txt中;

二、初步的面向对象的程序设计(实验1)

1、实验目的

1)掌握类和构造方法的定义。

2)掌握创建类实例的方法。

3)初步掌握面向对象的编程思想

2、实验内容

1)编写一个JavaApplication,利用JDK软件包中的工具在命令行方式下编译并运行这个程序,使之能够输出字符串信息“HelloWorld!

”。

(注:

其后的所有实验如无特别说明,均是在MyEclipse8.5环境下编译执行)

2)编写程序实现如下功能:

已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。

现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。

3、实验步骤

1)编写一个JavaApplication,利用JDK软件包中的工具编译并运行这个程序。

步骤

(1):

编写、编译Java源程序。

打开MyEclipse,新建一个java文件,键入如下程序代码:

publicclassHello

{

publicstaticvoidmain(Stringargs[])

{System.out.println("Hello,World!

");}

}

将文件命名为Hello.java,注意保存文件Hello.java到路径“e:

\自己学号\java\”下。

步骤

(2):

编译Java源程序

打开命令提示符窗口(MS-DOS窗口)进入Java源程序所在路径e:

\自己学号\java\”。

键入编译器文件名和要编译的源程序文件名,具体如下:

Setpath=%path%;c:

\programfiles\jdk1.6.0_02\bin;

javac-dclassHello.java

按回车键开始编译(注意:

文件名H要大写,否则运行会出问题)。

如果源程序没有错误,则屏幕上没有输出,键入“dir”按回车键后可在当前目录中看到生成了class子目录,在class子目录下有一个同名字的.class文件即“Hello.class”。

否则,将显示出错信息。

步骤(3):

运行Java程序

在命令提示符窗口或MS-DOS窗口键入解释器文件名和要解释的字节码文件名:

java–classpathe:

\自己学号\java\classHello

按回车键即开始解释并可看到运行结果。

2)编写程序实现如下功能:

已知学生类有域变量(姓名、考号、综合成绩、体育成绩)和方法(获取综合成绩、获取体育成绩、显示基本信息),学校类有静态变量(录取分数线)和方法(设置录取分数、获取录取分数线),录取类有方法(获取学生是否符合录取条件,其中录取条件为综合成绩在录取分数线之上,或体育成绩在96分以上并且综合成绩大于300分)。

现要求编写程序输出一组学生对象中被某学校录取的学生基本信息。

(注意:

这个程序可以直接在Eclipse集成编辑环境中完成)

步骤

(1):

定义类Stduent,并添加如下域变量:

Stringname;Stringid;floatcomScore;floatscore;

步骤

(2):

在类Student中添加如下方法,并编写代码实现具体方法的功能:

Student(Stringname,Stringid,floatcomScore,floatscore){……}

floatgetcomScore(){……}

floatgetscore(){……}

voidprint(){……}

步骤(3)定义类School,并添加静态变量

staticfloatscoreLine;

添加静态方法

staticfloatgetScoreLine(){……}

staticvoidsetScoreLine(floatscore){……}

步骤(4)定义一个Application程序类Enroll并添加方法:

publicstaticvoidmain(Stringargs[]){……}

staticbooleanisEnroll(Students){……}

步骤(5)保存文件名为Enroll.java,然后编译、调试和运行程序。

4、思考题

围绕综合设计题目,完成第一个任务:

(1)定义三个类Saler、Manager和Techer。

(2)分别创建三个类的对象,实现对象信息的打印输出。

三、面向对象程序设计(实验2)

1、实验目的

1)掌握类的继承机制。

2)熟悉类中成员变量和方法的访问控制。

3)熟悉方法或构造方法多态性。

4)熟悉接口的定义方法。

2、实验内容

1)编写程序实现如下功能:

已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(修改年龄、显示基本信息)及一个构造方法。

定义一组学生对象,并初始化他们的基本信息,然后依次输出。

2)输入课本例5-4的源程序,观察其运行结果,然后将Shape类分别定义为一个抽象类和接口,然后将源程序进行修改,让其实现相同功能。

3、实验步骤

1)编写程序实现如下功能:

已知Person类包含三个公共域变量(姓名、性别、年龄)和一个构造方法,Student类是Person类的派生类,包含两个新的公共域变量(学号、班号)、两个公共方法(构造方法、修改年龄、显示基本信息)和一个构造方法。

定义一组学生对象,并初始化他们的基本信息,然后依次输出。

步骤

(1):

定义类Person,并添加以下公共域变量

publicStringname;publiccharsex;publicintage;

添加构造方法Person(Stringname,charsex,intage){……}

步骤

(2):

基于类Person派生类Student,并添加如下公共域变量和方法

publicStringclassno;publicStringsno;

publicvoidupdateAge(intage){……}

voidtoString(){……}

Student(Stringname,charsex,intage,Stringsno,Stringname)

{super(name,sex,age);

…….

}

步骤(3):

定义一个包含main方法的Application程序类TestStudentPerson,初

始化一个学生类对象数组,并利用循环语句显示所有学生基本信息。

4、思考题

围绕综合设计题目,完成第二个任务:

(1)思考已定义的三个类Saler、Manager和Techer的公共属性和方法,考虑定义三个类的基类Employer类,然后Saler、Manager和Techer是Employer类的子类。

根据系统需求修改实验一的程序,。

(2)定义Employer类对象数组,存储管理一组雇员,并实现遍历所有雇员的信息功能。

(3)定义CEmployerSet类,其有addNewEmployer、updateEmployer、deleteEmployer、listAllEmployer方法

四、异常类的定义及处理(实验3)

1、实验目的

1)了解异常处理方法。

2)熟悉并掌握常见异常的捕获方法。

3)熟悉JDK中已经定义的若干异常类的层次结构。

4)掌握自定义异常类的创建方法。

2、实验内容

编写程序实现如下功能:

生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。

然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。

参考知识:

常见的系统异常

(1)ArithmeticException

(2)ArrayIndexOutOfBandsException

(3)ArrayStoreException

(4)IOException

(5)FileNotFoundException

(6)NullPointerException

(7)MalformedURLException

(8)NumberFormatException

(9)OutOfMemoryException

1)翻译下列常用异常类的描述信息

OutOfMemoryError

 Aclassinstancecreationexpression,arraycreationexpression,orstringconcatenationoperatiorexpressionthrowsanOutOfMemoryErrorifthereisinsufficientmemoryavailable.

NegativeArraySizeException

  AnarraycreationexpressionthrowsaNegativeArraySizeExceptionifthevalueofanydimensionexpressionislessthanzero.

NullPointerException 

AfieldaccessthrowsaNullPointerExceptionifthevalueoftheobjectreference  expressionisnull.

AmethodinvocationexpressionthatinvokesaninstancemethodthrowsaNullPointerExceptionifthetargetreferenceisnull.

   AnarrayaccessthrowsaNullPointerExceptionifthevalueofthearrayreference  expressionisnull.

ArrayIndexOutOfBoundsException

AnarrayaccessthrowsanArrayIndexOutOfBoundsExceptionifthevalueofthearrayindexexpressionisnegativeorgreaterthanorequaltothelengthofthearray.

ClassCastException

Throwntoindicatethatthecodehasattemptedtocastanobjecttoasubclassofwhichitisnotaninstance.Forexample,thefollowingcodegeneratesaClassCastException:

Objectx=newInteger(0);

System.out.println((String)x);

ArithmeticException

Thrownwhenanexceptionalarithmeticconditionhasoccurred.Forexample,aninteger"dividebyzero"throwsaninstanceofthisclass.

ArrayStoreException 

AnassignmenttoanarraycomponentofreferencetypethrowsanArrayStoreExceptionwhenthevaluetobeassignedisnotcompatiblewiththecomponenttypeofthearray.

NoSuchFieldException

Signalsthattheclassdoesn'thaveafieldofaspecifiedname.

NoSuchMethodException

Thrownwhenaparticularmethodcannotbefound

NumberFormatException

Throwntoindicatethattheapplicationhasattemptedtoconvertastringtooneofthenumerictypes,butthatthestringdoesnothavetheappropriateformat.

FileNotFoundException

Signalsthatanattempttoopenthefiledenotedbyaspecifiedpathnamehasfailed.

IOException

SignalsthatanI/Oexceptionofsomesorthasoccurred.ThisclassisthegeneralclassofexceptionsproducedbyfailedorinterruptedI/Ooperations

3、实验步骤

1)编写程序实现如下功能:

生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。

然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。

步骤

(1):

编写一个包含main方法的Application类TestException,然后定义一个方法

voidarraySize(){……}生成并捕获NegativeArraySizeException异常。

步骤

(2):

添加一个方法

voidoutofBound(){……}生成并捕获IndexOutOfBoundsException异常。

步骤(3):

添加一个方法

voidnullPointer(){……}生成并捕获IndexOutOfBoundsException异常。

步骤(4):

在main方法中分别调用以上三个方法。

步骤(5):

将文件保存为TestException.java,然后编译、调试应用程序。

步骤(6):

将outofBound()方法中捕获异常的语句注释掉,重新编译程序,看看会不会有什么语法错误?

如果没错误,执行程序看结果有什么不同?

步骤(7):

将array方法重新定义为如下形式:

voidarraySize()throwsNegativeArraySizeException{……}

然后修改arraySize方法中捕获NegativeArraySizeException异常的语句执行部分。

4、思考题

1)编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。

如果输入的参数个数为1、2、3则它们应分别对应正方形、长方形、三角形,如果参数值为0,则异常处理方法显示错误消息。

[提示]:

自己定义一个异常类,表示参数个数0这一异常。

然后定义一个抽象的父类,并提供一个抽象的方法area(),再派生出三个子类,重写area方法,最后在main方法中编写测试逻辑。

五流、文件及基于文本的应用(实验4)

1、实验目的

1)理解数据流的概念。

2)理解Java流的层次结构。

3)理解并掌握文件的读写操作方法。

2、实验内容

1)编写一个javaApplication程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。

3、实验步骤

1)编写一个javaApplication程序,接受用户输入的10个整数,比较并输出其中的最大值和最小值。

步骤

(1):

定义一个包含main方法的Application类MaxMinClass。

步骤

(2):

在MaxMinClass类中添加如下两个方法,分别求取10个整数的最大值和最小值:

staticintmaxInt(intdata[],intn){……}

staticintminInt(intdata[],intn){……}

步骤(3):

在main方法中从键盘输入10个整数存放到数组data中,然后调用maxInt、minInt方法求取最大值和最小值,最后输出最大值和最小值。

步骤(4):

保存文件MaxMinClass.java,然后编译、调试程序。

4、思考题

 

围绕综合设计题目,完成第四个任务:

(1)思考定义一个CDataAccess类,其有save、load方法。

save功能是将所有雇员信息写到外部EmployerData.txt文件中。

load功能是读取EmployerData.txt文件数据。

(2)思考如何和前面已经写好的程序关联。

即原来写的程序中哪里调用CDataAccess类的以上方法?

 

六综合设计(实验5)

1、实验目的

引导学生采用面向对象的编程思想来分析、编写、调试一个综合实验项目程序,培养学生的实际工程应用能力,

2、实验内容

某小型公司,主要有三类人员:

经理、兼职技术人员和兼职推销员。

这三类人员共同拥有的相关属性:

姓名、编号;相关方法:

获取当月薪水的getPay()方法、显示个人信息的toString()方法。

人员编号基数为1000,每创建一个人员实例对象,其编号属性的值顺序加1。

月薪计算方法:

经理拿固定月薪8000元;兼职技术人员按每小时100元领取月薪;兼职推销人员的月薪按当月的销售额的4%提成。

要求:

结合本课程所学知识点,采用面向对象的编程思想,结合题意自己确定需要定义的类及各类的属性、构造方法和其他方法,并编写JavaApplcation程序实现功能:

(1)查询职工个人信息,可通过姓名、编号查询

(2)查询部门所有职工的详细信息

(3)修改职工信息;

(4)删除

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1