




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附件2:面向对象程序设计课程实验实验大纲1 .基本情况【适用范围】计算机科学与技术、信息管理与信息系统专业【实验学时】32【考核方式】课程实验着重考查学生对每个实验的准备和完成情况,其成绩纳入课程的平时成绩。实验成绩占课程平时成绩的70%;每个实验的评分包括:准备情况,实际操作,实验报告,实验结果(程序)。2 .实验目的面向对象程序设计是一门应用性、实践性很强的技能课,不仅要求学生熟知程序设计语言的语法和特性,还要求其能够将相关知识应用于具体的程序开发中;不仅要求学生熟练掌握面向对象的编程风格、编程技巧和技能,而且需要其建立一种面向对象的分析问题、抽象问题和解决问题的基本思想和方法。要实现上述
2、教学目标,离不开大量的上机实验练习。课程实验的总体目标是:(1)加深学生对类和对象概念的理解、帮助学生建立面向对象的思维方式,在程序设计中要贯彻和体现面向对象的基本思想。(2)通过上机实践,提高学生对计算机软件开发环境和运行环境的了解和使用能力。(3)加深学生对课堂讲授内容的理解和掌握,从Java语言的语法及特性到基本的编程方法和技能,打好面向对象程序设计、软件开发的良好基础。(4) 在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。(5) 通过上机实验,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。3.实验要求课程实验
3、与面向对象程序设计理论课相互配套,由若干个独立的实验项目组成。通过实验训练,要求学生能运用所学理论知识进行基本的面向对象程序设计,培养其严谨、规范的编程习惯,掌握基本的操作技能和编程思想。同时要注意培养学生实事求是的科学态度,为学习后续课程,参加实际工作和开展科学研究打下良好的基础。课程实验的基本要求是:(1) 任课教师需向学生讲清课程实验的性质,任务,要求,实验项目安排和进度,考核内容和方式,实验守则及实验室安全制度等。(2) 本课程若干个独立的实验项目组成,每个实验项目包括课前准备,实验操作,实验报告等环节。(3) 学生在实验前必须进行准备,提出解决问题的算法、完成初步的程序设计。根据实验
4、项目的具体情况,教师应对学生的准备情况进行必要的检查。(4) 学生应在规定时间内独立完成每个实验的任务,包括程序的输入、调试,以及实验报告的誊写和提交。实验过程中,老师应在实验室进行巡视,及时回答问题,纠正学生的错误操作,同时也要培养学生自主发现问题和解决问题的能力。(5) 任课教师要认真备课,提前预做实验,上好每一堂课。实验前清点学生人数。实验后要检查学生的实验报告。4.实验项目及学时分配序号项目名称内容摘要实验类型学时实验要求1Java程序初步Java程序的基本结构验证性2必做2类型转换自动、强制类型转换验证性2必做3数据运算运算符与表达式设计性2必做4Java语句程序流程设计性2必做5类
5、的定义变量与方法设计性2必做6构造方法构造方法的定义验证性2必做7has-a关系对象之间的相互作用设计性2必做8is-a关系继承设计性2必做9Java接口接口及其应用设计性4必做10字符串处理String、StringBuffer设计性2必做11数组应用引用型数组设计性2必做12例外处理例外处理的编程方法设计性2必做13线程的基本控制Thread类设计性2必做14线程的同步控制wait、notify设计性2必做15文件操作输入、输出流设计性2必做实验1:Java程序初步【实验目的】(1) 了解Java应用程序的基本结构,以及main方法的格式。能够模仿地定义一些简单的类、创建类的实例对象。(2
6、) 了解Java开发工具包的组成,熟练掌握编译、运行Java应用程序的过程。(3)对类和对象的概念有更好的感性认识。【实验内容】定义一个表示圆的名为Circle的类,其软件接口如下:classCirclepublicvoidsetRadius(intr);/设置圆的半径publicintgetArea();/计算圆的面积publicintgetPerimeter();/计算圆的周长publicintgetRadius();/返回圆的半径【实验要求】(1)学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视
7、,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。实验2:类型转换【实验目的】(1) 了解Java语言支持的两类数据类型:基本类型和复合类型。(2) 了解各种基本类型的特性,掌握各种类型文字的表示。(3)理解变量的概念,掌握变量定义的基本方法,了解变量的分类、局部变量的作用域。(3) 理解基本类型转换的含义、方法和规则。【实验内容】1 .假设已经定义和以下变量:shorta=5,b=7;bytei=2,j=11;验证下列表达式的类型以及结果:a<<35b&ai+1(4)i+j>>>2(6)(byte)-7*-5true?12:
8、ia=i类型结果类型结果类型结果类型结果类型结果类型结果类型结果类型结果下)。请改正并调试程序,使之2 .下面程序有一行错误代码(在/*found*/正确运行,并使程序的运行结果为:k=7i=-1。必须在原来位置修改,不得增加或删减程序行。classAaapublicstaticvoidmain(Stringargs)/*found*/longl=0x7ffffffff;longk=l>>>32;inti=(int)l;System.out.println("k="+k+"i="+i);实验要求(1)学生在实验前必须进行准备,完成初步的
9、验证程序的设计和改正方案。实验时再通过调试完成最终的验证和改错,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。实验3:数据运算实验目的(1)熟练掌握各种运算符的使用。(2)知道运算符的优先级、结合性和计算次序。理解表达式的的结果和类型。实验内容1.下面程序有一行错误代码(在/*found*/下)。请改正并调试程序,使之正确运行,并使程序的运行结果为:x=10a=11b=20x=20a=11b=21注意:必须在原来位置修改,不得增加或删减程序行。classDddbytea=10;intb=20;p
10、ublicvoidmethod(inti)bytex;/*found*/x=i=0?+a:+b;System.out.println("x="+x+"a="+a+"b="+b);classTestDddpublicstaticvoidmain(Stringargs)Dddo=newDdd();o.method(0);o.method(1);2.定义一个类Exercise0210。该类有一个表示年份的int型成员变量year,并包含以下两个方法:publicvoidset(inty);/设置成员变量year的值。publicboolea
11、nisLeap();/报告year表示的年份是否为闰年。然后再定义一个应该程序起始类TestExercise0210测试该类。闰年是指能被400整除、或者能被4整除但不能被100整除的年份。实验要求(1)学生在实验前必须进行准备,提错改错方案和完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。实验4:Java语句实验目的(1) 了解各类Java语句。知道空语句、表达式语句、块语句和标号语句。(2)熟练掌握各种流程控制语句的使用。(3)理解实例方法与静
12、态方法(类方法)的区别。实验内容编写方法staticintdaysInMonth(inty,intm),其功能是计算y年m月份包含的天数。然后在main方法中调用该方法并输出返回结果。注:闰年2月份包含29天,其他年的2月份包含28天。实验要求(1)学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验5:类的定义实验目的(1)了解对象的引用,理解引用类型与基本类型的区别。(2) 了解各种类
13、修饰符,了解类的各种语法成分。(3)掌握变量定义的方法,深刻理解成员变量与局部变量的区别、实例变量与静态变量(类变量)的区别。(4)掌握方法定义的方法,深刻理解实例方法与静态方法(类方法)的区别。实验内容定义一个Point类。该类用两个int型变量表示屏幕坐标系上的一个点,其软件接口如下:class Point public final static int EAST = 1;/public final static int SOUTH =2; public final static int WEST = 3;public final static int NORTH =4; public P
14、oint(int x,int y);/public Point();/public Point(Point p);/public void move(int x, int y);/public void move(int way); / public double distance(int x, int y); / public double distance(Point p);/public int getX();/public int getY(); / public String toString(); /然后编写一个应用程序起始类测试该类。点移动的方向构造方法构造方法构造方法当前点移至
15、指定位置按指定的方向将当前点移动1个像素计算两个点之间的距离计算两个点之间的距离返回当前点的X坐标返回当前点的丫坐标以格式(x, y)返回当前点的字符串表示实验要求(1)学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。实验6:构造方法实验目的(1)掌握构造方法的定义,理解实例创建和实例变量初始化的过程。深刻理解构造方法与实例方法的区别。(2)理解方法重载的概念,熟练掌握方法重载的方法。实验内容定义一个日期类 MyDatec
16、lass MyDate public MyDate(MyDate date); /public MyDate(int y, int m, int d); / public boolean equal(MyDate date); / public void incrementDay(); / public int getYear();/public int getMonth(); / public int getDay();/public String toString(); /然后编写其软件接口如下:构造方法构造方法判断当前日期与参数日期是否相等使当前日期增加1天返回当前日期的年份返回当前日期
17、的月份返回当前日期当月的天数以“年-月-日”格式返回当前日期的字符串表示个应用程序起始类测试该类。特别要测试进入下一个月、下一年的情况。实验要求(1)学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验7:has-a关系实验目的(1) 熟练掌握以对象为单位的信息传递的方法。(2) 理解“has-a”关系的概念,熟练掌握包含“has-a”关系的类的定义。实验内容利用MyTime类和MyDat
18、e类定义一个日期时间类DateAndTime。DateAndTime类包含一个MyDate型实例变量和一个MyTime型实例变量,它们共同表示一个完整的日期时间。类的软件接口如下:classDateAndTimepublicDateAndTime();/构造方法publicDateAndTime(Datedate,Timetime);/构造方法publicDateAndTime(Timetime,Datedate);/构造方法publicDateAndTime(inty,intmo,intd,inth,intmi,ints);/构造方法public boolean equal(DateAndT
19、ime dt);/ public void incrementDay(); /public void incrementSecond(); / public String toString(); /然后编写一个应用程序起始类测试该类。判断两个日期时间是否相等使当前日期时间增加1天使当前日期时间增加1秒返回当前日期时间的字符串表示特别要测试进入下一分钟、下一小时、下一个月、下一天、下一年的情况。实验要求(1) 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2) 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生
20、的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验8:is-a关系实验目的(i)理解继承的概念,了解超类、子类、直接超类、直接子类的概念。(2)理解“is-a”关系的概念。(3)掌握Java子类的定义方法。(4)了解并掌握关键字this和super的含义及其在各种场合的使用方法。(5)深入了解考虑继承特征情况下实例变量的初始化过程。实验内容在实验7:has-a关系中通过组合MyDate类和MyTime类定义了一个表示日期时间的DateAndTime类。现在请通过扩展MyDate类定义一个具有相同软件接口的日期时间类。实验要求(1)学生在实验前必须进行准备,完成初步的程序
21、设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验实验9:Java接口实验目的(i)理解接口的概念、作用,熟练掌握接口定义、接口实现的方法以及接口作为引用类型的使用方法。(2)熟练掌握引用类型转换的方法和规则。实验内容定义一个表示区域的接口IRange,其中声明有一个用以测试指定点p是否落在区域内的方法:booleancontains(Pointp);然后定义定义一个表示屏幕坐标系上的圆形区域的R_Circle类。该类扩展Circle类
22、并实现接口IRangle。该类包含一个Point型实例变量,表示圆区域的圆心在屏幕坐标系上的位置。最后完成下面类中的go方法。该类包含两个实例变量r和p。方法go的功能是:若点p在区域r内,就按指定的方向way(东、南、西、北)不断移动,直至该点落在区域外。随后输出点p的坐标。classTestIRanger;Pointp;Test(IRanger1,Pointp1)r=r1;p=p1;publicvoidgo(intway)publicstaticvoidmain(Stringargs)Pointp=newPoint(90,90);IRanger=newR_Circle(50,p);/50P
23、ointp1=newPoint(90,90);newTest(r,p1).go(Point.EAST);选做内容通过扩展Rectangle类并实现接口IRangle定义一个表示屏幕坐标系上的矩形区域的R_Rectangle类。该类包含一个Point型实例变量,表示矩形区域的左上角在屏幕坐标系上的位置。该类的软件接口如下:classR_RectangleextendsRectanglepublicR_Rectangle();/publicR_Rectangle(Rectangler,Pointp);/publicR_Rectangle(intx,inty,intwidth,intheight);
24、/publicbooleancontains(Pointp);/publicvoidmoveTo(intx,inty);/publicPointgetWhere();/为半径, p 为圆心位置构造方法构造方法构造方法测试参数点 p 是否落在区域内将区域移至指定位置返回区域的当前位置然后再修改上述main方法,使其能模拟一个点再的矩形区域内移动的情况。实验要求(1) 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2) 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力
25、;课后检查学生的实验报告。实验10:字符串处理实验目的(1)理解String型字符串对象与StringBuffer型字符串对象的区别。(2)熟练掌握String类和StringBuffer类的使用。(3) 了解系统对字符串文字、字符串连接运算+的处理过程。实验内容定义一个FileSpec类,该类实现对一个文件标识符(含盘符、路径和文件名)的包装,其软件接口如下:publicclassFileSpecpublicFileSpec(Stringfilespec);/构造方法publicStringgetName();publicStringgetExtension();publicStringge
26、tPath();实验要求(1)学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验11:数组应用实验目的(1)理解数组对象的概念,熟练掌握数组类型的表示与数组变量的定义。(2)熟练掌握数组的创建和使用。实验内容编写并测试方法staticObject口口counting(Stringstr),方法计算并返回参数字符串str中每个字符出现的次数。返回的Object口口型二维数组的长度应该为st
27、r中不同字符的个数。二维数组的第1列存放各字符的Character实例;第2列存放各字符对应次数的Integer实例。实验要求(1)学生在实验前必须进行准备,应提出相应的算法、完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2)老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验12:例外处理实验目的(1)熟练掌握throw语句和throws子句的用法。(2)熟练掌握try语句的使用。理解并熟练掌握catch和finally子句的作用的用法。(3) 熟练掌握定义和使
28、用自定义例外类型的方法。实验内容char型值能够赋值转换成int型或long型,反之则不行。int型或long型能够强制转换成char型,这种转换不会抛出任何例外,但可能改变值的大小和符号。现在请定义一个Conversion类,其软件接口如下:classConversionstaticcharintToChar(intn)throwsDataException;stativcharlongToChar(longn)throwsDataException;intToChar(intn)方法和longToChar(longn)方法分别将int型n和long型n转换成char型。如果转换能保证不改变
29、值的大小和符号,比如执行下列代码后,变量x和y的值应该相等:intx=10;charc=CToChar(x);inty=c;那么方法正常执行;否则方法抛出一个受检查的DataException型例外。DataException类需提供一个能够接收并保存n值和一个文本信息(描述n值的类型)的构造方法,以及一个能够返回例外对象状态信息的toString()方法。请实现Conversion类和DataException类,并编写应用程序测试它们。实验要求(1) 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2) 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验13:线程的基本控制实验目的(1)熟练掌握创建线程的两种方法,深刻理解其中的异同点。(2)理解线程状态、精灵线程与用户线程、线程优先级等的概念,并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建厦门夏商集团有限公司招聘2人模拟试卷附答案详解(模拟题)
- 2025年宿州市中医医院招聘36人考前自测高频考点模拟试题完整参考答案详解
- 企业管理策略咨询方案
- 钻井公司考试试题及答案
- 2025年湖南轨道汇能发展有限公司第二次招聘模拟试卷及完整答案详解1套
- 书店营销员营销方案
- 什么是小区文明施工方案
- 仓库芯片管理制度范本
- 100字运动会发言稿
- 2025北京三支一扶招聘473人模拟试卷及答案详解(全优)
- 新课标下的小学语文跨学科教学模式探讨
- 2025年物联网安装调试员(高级)技能鉴定考试题库
- 高一上册第三单元《永遇乐 京口北固亭怀古》
- 店铺共享合伙人模式
- 2025-2030年中国山葵制品行业运行现状及发展前景分析报告
- 银行支行行长2025年度工作计划
- 二零二五年度污水运输与污水处理厂合作运营合同
- 2025年上教版八年级地理上册月考试卷
- 贸易安全课件
- 中职对口高考-机械类专业综合模拟卷( 湖北适用) 第5卷(答案版)
- 部编六年级上册快乐读书吧《童年》测试题(3份)(有答案)
评论
0/150
提交评论