黑龙江大学面向对象程序设计Java实验讲义软件.docx
- 文档编号:29647910
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:14
- 大小:22.74KB
黑龙江大学面向对象程序设计Java实验讲义软件.docx
《黑龙江大学面向对象程序设计Java实验讲义软件.docx》由会员分享,可在线阅读,更多相关《黑龙江大学面向对象程序设计Java实验讲义软件.docx(14页珍藏版)》请在冰豆网上搜索。
黑龙江大学面向对象程序设计Java实验讲义软件
Java语言程序设计
实验讲义
黑龙江大学计算机科学技术学院
2009年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程序的编辑、编译、运行环境及Java基本语法(4学时)
1.实验内容
(1)编写并调试运行HelloWorld应用程序。
(2)编写并调试运行HelloWorld小应用程序。
(3)设置path和classpath环境变量。
(4)实现一个整数N的阶乘运算。
N为固定常数。
(5)在屏幕上按如下格式输出乘法口诀表:
1X1=1
1X2=22X2=4
1X3=32X3=63X3=9
…
其中,每行的多个乘法公式之间用‘\t’分割
(6)编写一个简单的猜数游戏程序:
●利用Math.random()方法生成0-1之间的double型数dNum,将dNum转换为0-100之间的整数iNum。
●利用KeyInput.readInt()方法接收键盘输入的整数inNum。
如果inNum小于iNum,在屏幕上显示“输入的值小,请输入更大的数.”;如果inNum大于iNum,在屏幕上显示“输入的值大,请输入更小的数.”;如果inNum等于iNum,在屏幕上显示“猜对了.”,并结束运行。
●猜测错误的时候,重新输入inNum,直到猜对为止。
如果猜测10次后仍未猜对,显示“猜测次数已达10次,猜数失败.”,并结束程序的运行。
程序调试通过后填写实验报告。
2.预习内容
Java语言概述
常用控制语句的格式
System.out.print和System.out.println方法的区别
3.实验类型
验证型
4.实验目的
(1)了解Java程序运行环境;
(2)掌握程序调试的全部过程;
(3)学会编写和调试JavaApplication和JavaApplet程序;
(4)掌握java环境变量的配置
(5)掌握Java循环控制语句和System.out.print、System.out.println方法的使用
(6)掌握Java随机数方法和键盘输入类KeyInput的使用
5.实验要求
(1)在修改源程序文件名时,测试源程序文件名是否必须与公有类类名一致;若源程序中没有公有类,源程序文件名可以如何命名;
(2)注意观察字节码文件何时生成,在何路径下生成;
(3)掌握设置环境变量的方法。
(4)阶乘计算部分必须用函数的递归调用来实现,函数定义时应声明为static,如:
StaticlonggetFactorial(inti){
…
}
(5)乘法口诀表部分
●编写NineMultiply类
●在main方法中实现乘法口诀表的输出
(6)猜数游戏部分
●编写NumGuessGame类
●在main方法中定义相关变量
●生成dNum和iNum
●利用KeyInput.readInt(),获取inNum值
●根据inNum和iNum值,显示相应信息
●如果猜测10次仍未成功,结束程序的运行
6.思考题
●如何将程序修改成可以猜测多个数的程序?
●如何将猜数游戏程序编写成更为灵活的类?
实验2类、对象以及包的使用(4学时)
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()方法只返回整数,而不是在方法内部直接输出判断结果。
这么做有什么优点?
实验3继承性与Object类(4学时)
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?
实验4数组和向量(4学时)
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方法,如何将矩阵的元素值赋值?
实验5异常处理(4学时)
1.实验内容
将教材书后的习题二第6小题调试通过。
2.预习内容
异常处理
3.实验类型
其它型
4.实验目的
(1)理解异常的使用和自定义异常类的方法。
(2)理解throw和throws的区别和联系。
5.实验要求
(1)将教材书后的习题二第6小题调试通过。
(2)提交调试通过的Java程序。
实验6输入/输出处理(4学时)
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程序。
实验7GUI程序(4学时)
1.实验内容
(1)编写一个简易计算器程序,其界面如下图所示:
(2)用户界面可以手工编码的形式构造,也可以使用Netbeans、Eclipse等开发工具
(3)编写各个按钮的代码,使得能够进行四则运算。
(4)程序调试通过后填写实验报告。
2.预习内容
(1)图形界面程序的特点
(2)事件处理机制的原理
3.实验类型
设计型
4.实验目的
掌握图形界面程序的设计方法和事件处理机制
实验8布局及事件处理(8学时)
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)游戏该如何设计?
相关功能如何实现?
实验9线程类的实现(2学时)
1.实验内容
(1)创建若干个线程,并以sleep方法让其休眠,查看其运行状态。
2.预习内容
(1)线程体run方法的构造、线程的状态。
3.实验类型
设计型
4.实验目的
掌握线程的基本操作。
5.实验要求
(1)设计线程类,在其run方法中显示一个递增的整数,并在每次显示完毕后,休眠1秒钟。
(2)在测试类中创建若干个线程对象。
(3)查看运行结果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 黑龙江 大学 面向 对象 程序设计 Java 实验 讲义 软件