下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java语言程序设计 实验讲义For pers onal use only in study andresearch; not for commercial use黑龙江大学计算机科学技术学院2010年3月、八前言 Java 语言程序设计实验在面向对象程序设计的基础上,阐述Java 语言的编程基础及其设计方法。内容包括: Java 程序的输入输出、表达式与运算符、结构化程序设计、类、属性和方法、继 承和重载、包和接口、 Applet 与图形用户界面以及相关 Java 网络设计等知识,本课程注重实际应用 操作,采用实例讲解为学生进一步学习J2EE和J2ME打下技术基础。结合对实例的开发,以学生为
2、主体,充分发挥学生的主观能动性,引导学生自学教材部分内容,并锻炼学生自行开发各种小型程序模 块;培养和锻炼学生利用 Java 语言进行网络编程的能力。 Java 语言程序设计实验是以程序设计 操作为主的技能课程,它由若干个独立的实验项目组成,与相应的理论课Java 语言程序设计配套,本课程的目标是:(1) 加深学生对课堂讲授内容的理解, 从计算机语言的基本概念、 面向对象程序设计的基本方法、 语法规则等方面加深理解,打好面向对象程序设计、软件开发的良好基础。(2) 在上机实验中,提高学生对 Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。(3) 在对Java程序
3、的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。(4) 通过上机实践,加深学生对计算机软件运行环境、 Java 集成开发环境的了解。实验要求 Java 语言程序设计实验是与 Java 语言程序设计理论课配套的实验课程。通过本课程的 实验训练,要求学生能运用所学理论知识进行基本的面向对象程序设计,培养其规范的编程习惯,掌 握基本的操作技能和编程思想。同时要注意培养学生实事求是的科学态度,相互协作的团队精神,为 学习后续课程,参加实际工作和开展科学研究打下良好的基础。具体要求是:(1) 本课程以实验为主,配合理论课的教学。任课教师需向学生讲清课程的性质,任务,要求, 课程安排和进度
4、,平时考核内容,期末考试办法,实验守则及实验室安全制度等。(2) 本课程主要设置下列类型的实验:( 1)基本操作训练,( 2)验证性及设计性实验;整个实 验过程包括课前准备,实验操作,实验报告等环节。学生在实验前必须进行准备。(3) 根据实验内容不同,基本操作性的实验 1 人 1 组,设计性实验可根据情况多人一组,每个 实验要求在规定时间内由学生独立完成。(4) 实验过程中,老师应在实验室进行巡视,及时回答问题,纠正学生的错误操作,检查学生的 实验报告。(5) 任课教师要认真备课,提前预做实验,上好每一堂课。实验前清点学生人数。 实验的验收将分为两个部分。第一部分是上机操作,包括设计结果的源程
5、序的验收与检查。第二部分是提交书面的实验报告。实验 1 Java 程序的编辑、编译、运行环境( 2 学时)1. 实验内容(1) 编写并调试运行 HelloWorld 应用程序。(2) 编写并调试运行 HelloWorld 小应用程序。(3) 设置 path 和 classpath 环境变量。 程序调试通过后填写实验报告。2. 预习内容Java 语言概述3. 实验类型验证型4. 实验目的(1) 了解 Java 程序运行环境;(2) 掌握程序调试的全部过程;(3) 学会编写和调试 Java Application和 Java Applet 程序;(4) 掌握 java 环境变量的配置5. 实验要求
6、(1) 在修改源程序文件名时,测试源程序文件名是否必须与公有类类名一致;若源程序中没有公 有类,源程序文件名可以如何命名;(2) 注意观察字节码文件何时生成,在何路径下生成;(3) 掌握设置环境变量的方法。实验 2 Java 基本语法( 2 学时)1. 实验内容(1) 实现一个整数 N的阶乘运算。N为固定常数。(2) 在屏幕上按如下格式输出乘法口诀表:1X1=11X2=2 2X2=41X3=3 2X3=6 3X3=9其中,每行的多个乘法公式之间用 t '分割(3) 编写一个简单的猜数游戏程序:利用Math.random()方法生成 0-1之间的double型数dNun,将dNum转换为
7、0-100之间的 整数 iNum。利用Keyl nput.readl nt()方法接收键盘输入的整数 in Num。如果in Num小于iNum,在屏幕上显示"输入的值小,请输入更大的数.”;如果inNum大于iNum,在屏幕上显示"输入的值大,请输入更小的数.”;如果inNum等于iNum,在屏幕上显示"猜对了 . ”,并结束运行。猜测错误的时候,重新输入 inNum,直到猜对为止。如果猜测 10次后仍未猜对,显示“猜 测次数已达 10 次,猜数失败 . ”,并结束程序的运行。2. 预习内容常用控制语句的格式3. 实验类型验证型4. 实验目的(1) 掌握Java
8、循环控制语句和(2) 掌握 Java 随机数方法和键盘输入类 Keylnput 的使用5. 实验要求(1) 阶乘计算部分必须用函数的递归调用来实现,函数定义时应声明为static ,如:Static long getFactorial(int i)(2) 乘法口诀表部分编写 NineMultiply 类在 main 方法中实现乘法口诀表的输出(3) 猜数游戏部分编写 NumGuessGam类在 main 方法中定义相关变量生成dNum和iNum利用 KeyInput.readInt() ,获取 inNum 值 根据 inNum 和 iNum 值,显示相应信息 如果猜测 10 次仍未成功,结束程
9、序的运行6. 思考题如何将程序修改成可以猜测多个数的程序? 如何将猜数游戏程序编写成更为灵活的类?实验 3 类、对象以及包的使用( 6 学时)1. 实验内容(1) 实现一个Point类,该类包含表示坐标的两个int型变量x、y,构造方法Point()和Point(int xx, int yy),返回 x 值和 y 值的 int getX() 和 int getY() 方法,计算两点间距离的 double distance(Point) 方法。其中计算平方根用 Math.sqrt() 方法。( 2) 实现一个 Circle 类,该类包含表示圆心的 Point 型变量 center ,表示半径的
10、int radius 变量,以及构造方法 Circle() 、 Circle(int xx,int yy,int r) 、 Circle(Point c,int r) ,返回周长和面积的 int perimeter() 、 double area() 方法,返回两个圆是否为同一个 圆(返回 0)、同心圆(返回 1 )、相交的圆(返回 2)、分离的圆(返回 3)、包含的圆(返 回 4)等关系的 int relation(Circle c) 等方法。 PI 值可以用 Math.PI 常量。( 3) 实现测试上述两个类的 ClassTest 类。该类在 main 方法中分别创建若干个 Point 对
11、象 和 Circle 对象,并调用相关方法,输出方法的返回值,验证其正确性。将1-2实验中类的包名分别调整为experiment?,并重新运行,验证是否运行正确。其中?表示实验编号。(5) 实 现 Rectangle 类和 RectangleTest 类 。其 中 , Rectangle 类 隶属 于 包 的 包 名为 experiment9 ,含有两个方法:构造方法 Rectangle() 和计算面积的方法 area() ;RectangleTest 类 不属于 experiment9 包, 利用 RectangleTest 类调用包 experiment9 中的 Rectangle 类,计
12、算矩形面 积。( 6) 程序调试通过后填写实验报告。2. 预习内容(1 ) 类的组成:成员变量、成员方法、构造方法( 2) 对象的创建和使用( 3) Java 包及其使用方法3. 实验类型设计型4. 实验目的(1) 掌握Java类的设计原理和对象的使用方法(2) 理解包的概念以及 package 语句的用法。(3) 掌握编译和运行包的方法。(4) 理解 import 语句的用法。(5) 掌握自己设计包的方法和步骤以及调用自己设计的包的方法。5. 实验要求(1) 编写 Point 类,实现相关方法(2) 编写 Circle 类,实现相关方法(3) 编写 ClassTest 类,并在 main 方
13、法中创建两个 Point 对象和两个 Circle 对象, 对象的 参数可以用固定值(4) 调用 Point 和 Circle 的相关方法,并把返回值输出到屏幕上。(5)把实验 1-2 的程序制作为 2 个 Java 包。实验中的包名为 experiment? ,其中 ?表示实验编号。例如,实验 1 中的 HelloWorldApp 类 的所隶属的包名为 experiment1 。(6)实现 Rectangle 类,含有两个方法:构造方法 Rectangle() 和计算面积的方法 area() 。 Rectangle 类隶属于包的包名为 experiment9实现 RectangleTest
14、类。 利用 RectangleTest 类调用包 experiment9 中的 Rectangle 类,计 算矩形面积。(7) 提交调试通过的 Java 程序和实验报告。6. 思考题1) 为什么 distance() 和 relation() 方法只需要一个参数?提供两个或更多的参数有什么 缺点?2) relation() 方法只返回整数,而不是在方法内部直接输出判断结果。这么做有什么优点?实验 4 继承性与 Object 类(2 学时)1. 实验内容( 1) 编写一个代表圆柱体的 Cylinder 类,该类是 Circle 类的子类。 Cylinder 类包括圆柱 体的高度变量 height
15、 以及计算圆柱体的体积方 法 volume() 和计算表面 积的方法 surfaceArea() 。( 2) 编写测试 Cylinder 类的 CylinderTest 类,并在该类得 main 方法中调用 Cylinder 类的 相关方法。( 3) 重写 Point 和 Circle 类的 equals() 、 toString() 方法,并测试这些方法的正确性。( 4) 定义四则运算接口 Computable ,接口中包括加、减、乘、除四个抽象方法。再定义接 口的实现类和测试类两个类,测试类中尝试使用接口回调调用四则运算方法。( 5) 程序调试通过后填写实验报告。2. 预习内容1)类的定义
16、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. 思考题您还可以设计哪些 Cir
17、cle 类的子类?public ?为什么 equals() 方法和 toString() 方法的访问类型必须为实验 5 数组和向量( 2 学时)1. 实验内容( 1) 设计和编写代表矩阵的 Matrix 类。该类包括矩阵行列数变量 int rows 和 int cols , 矩阵数据数组 double data ,构造方法 Matrix() 、 Matrix(int rows,int cols)、Matrix(int rows,int cols,double data) , 获 取 某 元 素 值 的 方 法 getData(int row,int col) ,设置某元素值的方法 setDat
18、a(int row,int col,double value) ,计算两 个矩阵的乘积的方法 multiply(Matrix m) 以及 toString() 等内容。( 2) 编写测试类 MatrixTest ,并在该类中创建两个矩阵对象,计算其乘积。(3)验证教材例 7.5 ,了解向量 Vector 的用法( 4) 程序调试通过后填写实验报告。2. 预习内容( 1) 数组的定义( 2) 类的定义( 3) 向量的使用3. 实验类型设计型4. 实验目的掌握数组的定义和使用,了解向量的用法。5. 实验要求( 1) 编写 Matrix 类( 2) 编写 MatrixTest 类。在该类中通过键盘输
19、入方式确定所要创建的两个矩阵的行列数, 根据行列数随机生成数据或键盘输入,并通过 setData 方法生成矩阵的内容。( 3) 计算矩阵的乘积,并把结果通过 toString 方法输出到屏幕上6. 思考题(1)您还可以编写哪些 Matrix 类的方法?(2)如果没有 setData 方法,如何将矩阵的元素值赋值?实验 6 异常处理( 2 学时)1. 实验内容将教材书后的习题二第 6 小题调试通过。2. 预习内容异常处理3. 实验类型其它型4. 实验目的(1) 理解异常的使用和自定义异常类的方法。(2) 理解 throw 和 throws 的区别和联系。5. 实验要求(1) 将教材书后的习题二第
20、 6 小题调试通过。(2) 提交调试通过的 Java 程序。实验 7 输入 / 输出处理( 2 学时)1. 实验内容( 1)结合例 10-3 和 11-3 ,实现文件复制和显示功能的程序。(2) 实现一个简单的文本编辑器,该编辑器从键盘依次读入成行的文本,并将文本内容及时写 入文件中,文件名由命令行参数指定。如果输入“ stop ”,运行结束。2. 预习内容输入 /输出处理、输入 /输出处理中的字符流操作3. 实验类型设计型4. 实验目的(1) 理解 FileInputStream 和 FileOutputStream 类的使用方法。(2) 理解字符流操作:练习面向字符的 I/O 流操作(3)
21、 能够创建、读写、更新文件5. 实验要求(1) 结合例 10-3 和 11-3 ,实现文件复制和显示功能的程序。把程序调试通过。(2) 在以上操作中,均要求带有异常处理结构(3) 提交调试通过的 Java 程序。实验8 GUI程序(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 、 Cho
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光伏电站安全管理课件教学
- 昆明三基考试题库及答案
- 光伏培训课件
- 光伏作业安全培训
- 富士康考试试题及答案
- 2024部编版八年级历史上册备课讲义-第2课 第二次鸦片战争
- 10月企业培训师试题库(含参考答案)
- 202新译林版七年级英语上册单词表默写表(含音标)
- 小学五年级语文上册记叙文学习线索贯穿方法示例课件
- 深度解析(2026)《GBT 34015.3-2021车用动力电池回收利用 梯次利用 第3部分:梯次利用要求》
- 人教版二年级数学下册 5 混合运算 第2课时 没有括号的两级混合运算(教学课件)
- 马工程《经济法学》教学
- 2023-2024学年四川省宜宾市高一上册期末1月月考地理模拟试题(附答案)
- 福建省泉州市2022-2023学年高一上学期期末教学质量监测化学试题(含答案)
- 一级建造师机电工程管理与实务
- 英语book report简单范文(通用4篇)
- 船舶建造 监理
- 化学品安全技术说明书MSDS(洗车水)知识讲解
- 红楼梦英文版(杨宪益译)
- GB/T 38658-20203.6 kV~40.5 kV交流金属封闭开关设备和控制设备型式试验有效性的延伸导则
- 美英报刊阅读教程课件
评论
0/150
提交评论