黑龙江大学面向对象程序设计Java实验讲义.docx

上传人:b****5 文档编号:30366773 上传时间:2023-08-13 格式:DOCX 页数:14 大小:23.41KB
下载 相关 举报
黑龙江大学面向对象程序设计Java实验讲义.docx_第1页
第1页 / 共14页
黑龙江大学面向对象程序设计Java实验讲义.docx_第2页
第2页 / 共14页
黑龙江大学面向对象程序设计Java实验讲义.docx_第3页
第3页 / 共14页
黑龙江大学面向对象程序设计Java实验讲义.docx_第4页
第4页 / 共14页
黑龙江大学面向对象程序设计Java实验讲义.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

黑龙江大学面向对象程序设计Java实验讲义.docx

《黑龙江大学面向对象程序设计Java实验讲义.docx》由会员分享,可在线阅读,更多相关《黑龙江大学面向对象程序设计Java实验讲义.docx(14页珍藏版)》请在冰豆网上搜索。

黑龙江大学面向对象程序设计Java实验讲义.docx

黑龙江大学面向对象程序设计Java实验讲义

Java语言程序设计

实验讲义

 

黑龙江大学计算机科学技术学院

2010年3月

前言

《Java语言程序设计实验》在面向对象程序设计的基础上,阐述Java语言的编程基础及其设计方法。

内容包括:

Java程序的输入输出、表达式与运算符、结构化程序设计、类、属性和方法、继承和重载、包和接口、Applet与图形用户界面以及相关Java网络设计等知识,本课程注重实际应用操作,采用实例讲解为学生进一步学习J2EE和J2ME打下技术基础。

结合对实例的开发,以学生为主体,充分发挥学生的主观能动性,引导学生自学教材部分内容,并锻炼学生自行开发各种小型程序模块;培养和锻炼学生利用Java语言进行网络编程的能力。

《Java语言程序设计实验》是以程序设计操作为主的技能课程,它由若干个独立的实验项目组成,与相应的理论课—《Java语言程序设计》配套,本课程的目标是:

(1)加深学生对课堂讲授内容的理解,从计算机语言的基本概念、面向对象程序设计的基本方法、语法规则等方面加深理解,打好面向对象程序设计、软件开发的良好基础。

(2)在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。

(3)在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。

(4)通过上机实践,加深学生对计算机软件运行环境、Java集成开发环境的了解。

 

实验要求

《Java语言程序设计实验》是与《Java语言程序设计》理论课配套的实验课程。

通过本课程的实验训练,要求学生能运用所学理论知识进行基本的面向对象程序设计,培养其规范的编程习惯,掌握基本的操作技能和编程思想。

同时要注意培养学生实事求是的科学态度,相互协作的团队精神,为学习后续课程,参加实际工作和开展科学研究打下良好的基础。

具体要求是:

(1)本课程以实验为主,配合理论课的教学。

任课教师需向学生讲清课程的性质,任务,要求,课程安排和进度,平时考核内容,期末考试办法,实验守则及实验室安全制度等。

(2)本课程主要设置下列类型的实验:

(1)基本操作训练,

(2)验证性及设计性实验;整个实验过程包括课前准备,实验操作,实验报告等环节。

学生在实验前必须进行准备。

(3)根据实验内容不同,基本操作性的实验1人1组,设计性实验可根据情况多人一组,每个实验要求在规定时间内由学生独立完成。

(4)实验过程中,老师应在实验室进行巡视,及时回答问题,纠正学生的错误操作,检查学生的实验报告。

(5)任课教师要认真备课,提前预做实验,上好每一堂课。

实验前清点学生人数。

实验的验收将分为两个部分。

第一部分是上机操作,包括设计结果的源程序的验收与检查。

第二部分是提交书面的实验报告。

实验1Java程序的编辑、编译、运行环境(2学时)

1.实验内容

(1)编写并调试运行HelloWorld应用程序。

(2)编写并调试运行HelloWorld小应用程序。

(3)设置path和classpath环境变量。

程序调试通过后填写实验报告。

 

2.预习内容

Java语言概述

3.实验类型

验证型

4.实验目的

(1)了解Java程序运行环境;

(2)掌握程序调试的全部过程;

(3)学会编写和调试JavaApplication和JavaApplet程序;

(4)掌握java环境变量的配置

5.实验要求

(1)在修改源程序文件名时,测试源程序文件名是否必须与公有类类名一致;若源程序中没有公有类,源程序文件名可以如何命名;

(2)注意观察字节码文件何时生成,在何路径下生成;

(3)掌握设置环境变量的方法。

实验2Java基本语法(2学时)

1.实验内容

(1)实现一个整数N的阶乘运算。

N为固定常数。

(2)在屏幕上按如下格式输出乘法口诀表:

1X1=1

1X2=22X2=4

1X3=32X3=63X3=9

其中,每行的多个乘法公式之间用‘\t’分割

(3)编写一个简单的猜数游戏程序:

●利用Math.random()方法生成0-1之间的double型数dNum,将dNum转换为0-100之间的整数iNum。

●利用KeyInput.readInt()方法接收键盘输入的整数inNum。

如果inNum小于iNum,在屏幕上显示“输入的值小,请输入更大的数.”;如果inNum大于iNum,在屏幕上显示“输入的值大,请输入更小的数.”;如果inNum等于iNum,在屏幕上显示“猜对了.”,并结束运行。

●猜测错误的时候,重新输入inNum,直到猜对为止。

如果猜测10次后仍未猜对,显示“猜测次数已达10次,猜数失败.”,并结束程序的运行。

2.预习内容

常用控制语句的格式

System.out.print和System.out.println方法的区别

3.实验类型

验证型

4.实验目的

(1)掌握Java循环控制语句和System.out.print、System.out.println方法的使用

(2)掌握Java随机数方法和键盘输入类KeyInput的使用

5.实验要求

(1)阶乘计算部分必须用函数的递归调用来实现,函数定义时应声明为static,如:

StaticlonggetFactorial(inti){

}

(2)乘法口诀表部分

●编写NineMultiply类

●在main方法中实现乘法口诀表的输出

(3)猜数游戏部分

●编写NumGuessGame类

●在main方法中定义相关变量

●生成dNum和iNum

●利用KeyInput.readInt(),获取inNum值

●根据inNum和iNum值,显示相应信息

●如果猜测10次仍未成功,结束程序的运行

6.思考题

●如何将程序修改成可以猜测多个数的程序?

●如何将猜数游戏程序编写成更为灵活的类?

实验3类、对象以及包的使用(6学时)

1.实验内容

(1)实现一个Point类,该类包含表示坐标的两个int型变量x、y,构造方法Point()和Point(intxx,intyy),返回x值和y值的intgetX()和intgetY()方法,计算两点间距离的doubledistance(Point)方法。

其中计算平方根用Math.sqrt()方法。

(2)实现一个Circle类,该类包含表示圆心的Point型变量center,表示半径的intradius变量,以及构造方法Circle()、Circle(intxx,intyy,intr)、Circle(Pointc,intr),返回周长和面积的intperimeter()、doublearea()方法,返回两个圆是否为同一个圆(返回0)、同心圆(返回1)、相交的圆(返回2)、分离的圆(返回3)、包含的圆(返回4)等关系的intrelation(Circlec)等方法。

PI值可以用Math.PI常量。

(3)实现测试上述两个类的ClassTest类。

该类在main方法中分别创建若干个Point对象和Circle对象,并调用相关方法,输出方法的返回值,验证其正确性。

(4)将1-2实验中类的包名分别调整为experiment?

,并重新运行,验证是否运行正确。

其中?

表示实验编号。

(5)实现Rectangle类和RectangleTest类。

其中,Rectangle类隶属于包的包名为experiment9,含有两个方法:

构造方法Rectangle()和计算面积的方法area();RectangleTest类不属于experiment9包,利用RectangleTest类调用包experiment9中的Rectangle类,计算矩形面积。

(6)程序调试通过后填写实验报告。

2.预习内容

(1)类的组成:

成员变量、成员方法、构造方法

(2)对象的创建和使用

(3)Java包及其使用方法

3.实验类型

设计型

4.实验目的

(1)掌握Java类的设计原理和对象的使用方法

(2)理解包的概念以及package语句的用法。

(3)掌握编译和运行包的方法。

(4)理解import语句的用法。

(5)掌握自己设计包的方法和步骤以及调用自己设计的包的方法。

5.实验要求

(1)编写Point类,实现相关方法

(2)编写Circle类,实现相关方法

(3)编写ClassTest类,并在main方法中创建两个Point对象和两个Circle对象,对象的参数可以用固定值

(4)调用Point和Circle的相关方法,并把返回值输出到屏幕上。

(5)

●把实验1-2的程序制作为2个Java包。

●实验中的包名为experiment?

,其中?

表示实验编号。

例如,实验1中的HelloWorldApp类的所隶属的包名为experiment1。

(6)

●实现Rectangle类,含有两个方法:

构造方法Rectangle()和计算面积的方法area()。

●Rectangle类隶属于包的包名为experiment9

●实现RectangleTest类。

利用RectangleTest类调用包experiment9中的Rectangle类,计算矩形面积。

(7)提交调试通过的Java程序和实验报告。

6.思考题

(1)为什么distance()和relation()方法只需要一个参数?

提供两个或更多的参数有什么缺点?

(2)relation()方法只返回整数,而不是在方法内部直接输出判断结果。

这么做有什么优点?

实验4继承性与Object类(2学时)

1.实验内容

(1)编写一个代表圆柱体的Cylinder类,该类是Circle类的子类。

Cylinder类包括圆柱体的高度变量height以及计算圆柱体的体积方法volume()和计算表面积的方法surfaceArea()。

(2)编写测试Cylinder类的CylinderTest类,并在该类得main方法中调用Cylinder类的相关方法。

(3)重写Point和Circle类的equals()、toString()方法,并测试这些方法的正确性。

(4)定义四则运算接口Computable,接口中包括加、减、乘、除四个抽象方法。

再定义接口的实现类和测试类两个类,测试类中尝试使用接口回调调用四则运算方法。

(5)程序调试通过后填写实验报告。

2.预习内容

(1)类的定义

(2)继承机制及其作用

(3)Object类的作用

(4)equals()方法和toString()方法

3.实验类型

设计型

4.实验目的

掌握Java继承机制的使用方法

掌握Object类与其它类之间的关系

5.实验要求

(1)确定Circle类的包名

(2)在Cylinder类中用import导入Circle类

(3)编写Cylinder类的代码

(4)编写CylinderTest类的代码

(5)在Point和Circle类中分别添加equals()方法和toString()方法

(6)测试上述方法的正确性

6.思考题

您还可以设计哪些Circle类的子类?

为什么equals()方法和toString()方法的访问类型必须为public?

实验5数组和向量(2学时)

1.实验内容

(1)设计和编写代表矩阵的Matrix类。

该类包括矩阵行列数变量introws和intcols,矩阵数据数组doubledata[][],构造方法Matrix()、Matrix(introws,intcols)、Matrix(introws,intcols,doubledata[][]),获取某元素值的方法getData(introw,intcol),设置某元素值的方法setData(introw,intcol,doublevalue),计算两个矩阵的乘积的方法multiply(Matrixm)以及toString()等内容。

(2)编写测试类MatrixTest,并在该类中创建两个矩阵对象,计算其乘积。

(3)验证教材例7.5,了解向量Vector的用法

(4)程序调试通过后填写实验报告。

2.预习内容

(1)数组的定义

(2)类的定义

(3)向量的使用

3.实验类型

设计型

4.实验目的

掌握数组的定义和使用,了解向量的用法。

5.实验要求

(1)编写Matrix类

(2)编写MatrixTest类。

在该类中通过键盘输入方式确定所要创建的两个矩阵的行列数,根据行列数随机生成数据或键盘输入,并通过setData方法生成矩阵的内容。

(3)计算矩阵的乘积,并把结果通过toString方法输出到屏幕上

6.思考题

(1)您还可以编写哪些Matrix类的方法?

(2)如果没有setData方法,如何将矩阵的元素值赋值?

实验6异常处理(2学时)

1.实验内容

将教材书后的习题二第6小题调试通过。

2.预习内容

异常处理

3.实验类型

其它型

4.实验目的

(1)理解异常的使用和自定义异常类的方法。

(2)理解throw和throws的区别和联系。

5.实验要求

(1)将教材书后的习题二第6小题调试通过。

(2)提交调试通过的Java程序。

实验7输入/输出处理(2学时)

1.实验内容

(1)结合例10-3和11-3,实现文件复制和显示功能的程序。

(2)实现一个简单的文本编辑器,该编辑器从键盘依次读入成行的文本,并将文本内容及时写入文件中,文件名由命令行参数指定。

如果输入“stop”,运行结束。

2.预习内容

输入/输出处理、输入/输出处理中的字符流操作

3.实验类型

设计型

4.实验目的

(1)理解FileInputStream和FileOutputStream类的使用方法。

(2)理解字符流操作:

练习面向字符的I/O流操作

(3)能够创建、读写、更新文件

5.实验要求

(1)结合例10-3和11-3,实现文件复制和显示功能的程序。

把程序调试通过。

(2)在以上操作中,均要求带有异常处理结构

(3)提交调试通过的Java程序。

 

实验8GUI程序(2学时)

1.实验内容

(1)编写一个简易计算器程序,其界面如下图所示:

(2)用户界面可以手工编码的形式构造,也可以使用Netbeans、Eclipse等开发工具

(3)编写各个按钮的代码,使得能够进行四则运算。

(4)程序调试通过后填写实验报告。

2.预习内容

(1)图形界面程序的特点

(2)事件处理机制的原理

3.实验类型

设计型

4.实验目的

掌握图形界面程序的设计方法和事件处理机制

实验9布局及事件处理(6学时)

1.实验内容

(1)结合自己所学的基本组件及授权事件处理模型,完成不同组件的事件处理。

(2)综合I/O流及GUI设计相关内容,在记事本程序、Windows自带计算器、扫雷游戏中任选其一来模拟编程。

2.预习内容

(1)GUI编程(布局、事件及基本组件)

(2)I/O流的应用

3.实验类型

综合型

4.实验目的

掌握GUI编程、I/O流的使用

5.实验要求

(1)编写一个GUI程序,要求程序中包含List、Choice和TextField,在List中包含100项,内容分别是“前1项”,“前2项”,。

“前100项”,用来代表1——100之间,取前几项进行运算。

Choice中包含3项,分别是“求和”,“求平方和”,“求立方和”,分别处理List的双击及Choice的事件,在TextField中显示结果。

(2)仿照windows的记事本程序、扫雷游戏或者计算器编写一个自己的程序。

要求界面基本相同,能够实现最基本的功能。

(3)建议使用swing组件。

(4)程序调试通过后填写实验报告。

6.思考题

(1)如何结合IO实现记事本的打开和保存操作?

(2)如何实现复制、粘贴及剪切操作?

(3)游戏该如何设计?

相关功能如何实现?

(4)

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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