面向象程序设计方案课程实验_第1页
面向象程序设计方案课程实验_第2页
面向象程序设计方案课程实验_第3页
面向象程序设计方案课程实验_第4页
面向象程序设计方案课程实验_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

个人资料整理 仅限学习使用附件2:《面向对象程序设计》课程实验实验大纲基本情况【适用范围】计算机科学与技术、信息管理与信息系统专业【实验学时】32【考核方式】课程实验着重考查学生对每个实验的准备和完成情况,其成绩纳入课程的平时成绩。实验成绩占课程平时成绩的 70%;每个实验的评分包括:准备情况,实际操作,实验报告,实验结果 (程序>。实验目的《面向对象程序设计》是一门应用性、实践性很强的技能课,不仅要求学生熟知程序设计语言的语法和特性,还要求其能够将相关知识应用于具体的程序开发中;不仅要求学生熟练掌握面向对象的编程风格、编程技巧和技能,而且需要其建立一种面向对象的分析问题、抽象问题和解决问题的基本思想和方法。要实现上述教案目标,离不开大量的上机实验练习。课程实验的总体目标是:(1>加深学生对类和对象概念的理解、帮助学生建立面向对象的思维方式,在程序设计中要贯彻和体现面向对象的基本思想。(2>通过上机实践,提高学生对计算机软件开发环境和运行环境的了解和使用能力。(3>加深学生对课堂讲授内容的理解和掌握,从 Java语言的语法及特性到基本的编程个人资料整理 仅限学习使用方法和技能,打好面向对象程序设计、软件开发的良好基础。(4>在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。(5>通过上机实验,提高学生对 Java语言各部分内容的综合使用能力,逐步掌握 Java语言程序设计的规律与技巧。实验要求课程实验与《面向对象程序设计》理论课相互配套,由若干个独立的实验工程组成。通过实验训练,要求学生能运用所学理论知识进行基本的面向对象程序设计,培养其严谨、规范的编程习惯,掌握基本的操作技能和编程思想。同时要注意培养学生实事求是的科学态度,为学习后续课程,参加实际工作和开展科学研究打下良好的基础。课程实验的基本要求是:(1>任课教师需向学生讲清课程实验的性质,任务,要求,实验工程安排和进度,考核内容和方式,实验守则及实验室安全制度等。(2>本课程若干个独立的实验工程组成,每个实验工程包括课前准备,实验操作,实验报告等环节。(3>学生在实验前必须进行准备,提出解决问题的算法、完成初步的程序设计。根据实验工程的具体情况,教师应对学生的准备情况进行必要的检查。(4>学生应在规定时间内独立完成每个实验的任务,包括程序的输入、调试,以及实验报告的誊写和提交。实验过程中,老师应在实验室进行巡视,及时回答问题,纠正学生的错误操作,同时也要培养学生自主发现问题和解决问题的能力。(5>任课教师要认真备课,提前预做实验,上好每一堂课。实验前清点学生人数。实个人资料整理 仅限学习使用验后要检查学生的实验报告。实验工程及学时分配序号工程名称内容摘要实验类型学时实验要求1Java程序初步Java程序的基本结构验证性2必做2类型转换自动、强制类型转换验证性2必做3数据运算运算符与表达式设计性2必做4Java语句程序流程设计性2必做5类的定义变量与方法设计性2必做6构造方法构造方法的定义验证性2必做7has-a关系对象之间的相互作用设计性2必做8is-a关系继承设计性2必做9Java接口接口及其应用设计性4必做10字符串处理String、设计性2必做11数组应用StringBuffer设计性2必做12例外处理引用型数组设计性2必做13线程的基本控制例外处理的编程方法设计性2必做14线程的同步控制Thread类设计性2必做15文件操作wait、notify设计性2必做输入、输出流实验1:Java程序初步【实验目的】(1> 了解Java应用程序的基本结构,以及 main 方法的格式。能够模仿地定义一些简单的类、创建类的实例对象。(2>了解Java开发工具包的组成,熟练掌握编译、运行 Java应用程序的过程。(3>对类和对象的概念有更好的感性认识。个人资料整理 仅限学习使用【实验内容】定义一个表示圆的名为 Circle的类,其软件接口如下:classCircle{publicvoidsetRadius(intr>publicintgetArea(>publicintgetPerimeter(>publicintgetRadius(>}

。 // 设置圆的半径。 // 计算圆的面积。 // 计算圆的周长。 // 返回圆的半径【实验要求】(1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。实验2:类型转换【实验目的】(1>了解Java语言支持的两类数据类型:基本类型和复合类型。(2>了解各种基本类型的特性,掌握各种类型文字的表示。(3> 理解变量的概念,掌握变量定义的基本方法,了解变量的分类、局部变量的作用域。(4>理解基本类型转换的含义、方法和规则。个人资料整理 仅限学习使用【实验内容】假设已经定义和以下变量:shorta=5,b=7 。bytei=2,j=11 。验证下列表达式的类型以及结果:⑴a<<35 类型 结果⑵b&a 类型 结果⑶i+1 类型 结果⑷i++ 类型 结果⑸j>>>2 类型 结果⑹(byte>-7*-5 类型 结果⑺true?12:i 类型 结果⑻a=i 类型 结果2.下面程序有一行错误代码 <在/******found*******/ 下)。请改正并调试程序,使之正确运行,并使程序的运行结果为: k=7 i=-1。必须在原来位置修改,不得增加或删减程序行。classAaa{publicstaticvoidmain(Stringargs[]>{/********found********/longl=0x7ffffffff 。longk=l>>>32 。inti=(int>l 。System.out.println("k="+k+"i="+i> 。}}[实验要求](1> 学生在实验前必须进行准备,完成初步的验证程序的设计和改正方案。实验时再通过调试完成最终的验证和改错,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。个人资料整理 仅限学习使用实验3:数据运算[实验目的](1>熟练掌握各种运算符的使用。(2>知道运算符的优先级、结合性和计算次序。理解表达式的的结果和类型。[实验内容]1.下面程序有一行错误代码 <在/******found*******/ 下)。请改正并调试程序,使之正确运行,并使程序的运行结果为:x=10a=11b=20x=20a=11b=21注意:必须在原来位置修改,不得增加或删减程序行。classDdd{bytea=10 。intb=20 。publicvoidmethod(inti>{bytex 。/*********found********/x=i=0?++a:++b 。System.out.println("x="+x+"a="+a+"b="+b>

。}}classTestDdd{publicstaticvoidmain(Stringargs[]>{Dddo=newDdd(> 。o.method(0> 。o.method(1> 。}}2.定义一个类 Exercise0210 。该类有一个表示年份的 int型成员变量 year,并包含以个人资料整理 仅限学习使用下两个方法:publicvoidset(inty> 。 // 设置成员变量 year的值。publicbooleanisLeap(> 。 // 报告year表示的年份是否为闰年。然后再定义一个应该程序起始类 TestExercise0210 测试该类。闰年是指能被 400整除、或者能被 4整除但不能被 100整除的年份。[实验要求](1> 学生在实验前必须进行准备,提错改错方案和完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。实验4:Java语句[实验目的](1>了解各类 Java语句。知道空语句、表达式语句、块语句和标号语句。(2>熟练掌握各种流程控制语句的使用。(3>理解实例方法与静态方法 <类方法)的区别。[实验内容]编写方法staticintdaysInMonth(inty,intm> ,其功能是计算 y年m月份包含的天数。然后在 main 方法中调用该方法并输出返回结果。个人资料整理 仅限学习使用注:闰年2月份包含 29天,其他年的 2月份包含 28天。[实验要求](1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验5:类的定义[实验目的](1>了解对象的引用,理解引用类型与基本类型的区别。(2>了解各种类修饰符,了解类的各种语法成分。(3> 掌握变量定义的方法,深刻理解成员变量与局部变量的区别、实例变量与静态变量<类变量)的区别。(4>掌握方法定义的方法,深刻理解实例方法与静态方法 <类方法)的区别。[实验内容

]定义一个

Point

类。该类用两个

int

型变量表示屏幕坐标系上的一个点,其软件接口如下:classPoint{publicfinalstaticintEAST=1

//

点移动的方向个人资料整理 仅限学习使用publicfinalstaticintSOUTH=2。publicfinalstaticintWEST=3。publicfinalstaticintNORTH=4。publicPoint(intx,inty>。//构造方法publicPoint(>。//构造方法publicPoint(Pointp>。//构造方法publicvoidmove(intx,inty>。//当前点移至指定位置publicvoidmove(intway>。//按指定的方向将当前点移动1个像素publicdoubledistance(intx,inty>。//计算两个点之间的距离publicdoubledistance(Pointp>。//计算两个点之间的距离publicintgetX(>。//返回当前点的X坐标publicintgetY(> 。 // 返回当前点的 Y坐标publicStringtoString(> 。 // 以格式(x,y> 返回当前点的字符串表示}然后编写一个应用程序起始类测试该类。[实验要求](1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作;课后检查学生的实验报告。实验6:构造方法[实验目的](1> 掌握构造方法的定义,理解实例创建和实例变量初始化的过程。深刻理解构造方法与实例方法的区别。(2>理解方法重载的概念,熟练掌握方法重载的方法。个人资料整理 仅限学习使用[实验内容]定义一个日期类MyDate,其软件接口如下:classMyDate{publicMyDate(MyDatedate>。//构造方法publicMyDate(inty,intm,intd>。//构造方法publicbooleanequal(MyDatedate>。//判断当前日期与参数日期是否相等publicvoidincrementDay(>。//使当前日期增加1天publicintgetYear(>。//返回当前日期的年份publicintgetMonth(>。//返回当前日期的月份publicintgetDay(>。//返回当前日期当月的天数publicStringtoString(>。//以“年-月-日”格式返回当前日期的字符串表示}然后编写一个应用程序起始类测试该类。特别要测试进入下一个月、下一年的情况。[实验要求](1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验7:has-a关系[实验目的](1>熟练掌握以对象为单位的信息传递的方法。(2>理解“has-a”关系的概念,熟练掌握包含“ has-a”关系的类的定义。个人资料整理 仅限学习使用[实验内容]利用MyTime 类和MyDate 类定义一个日期时间类 DateAndTime 。DateAndTime类包含一个 MyDate 型实例变量和一个 MyTime 型实例变量,它们共同表示一个完整的日期时间。类的软件接口如下:classDateAndTime{publicDateAndTime(> 。 // 构造方法publicDateAndTime(Datedate,Timetime> 。// 构造方法publicDateAndTime(Timetime,Datedate> 。// 构造方法publicDateAndTime(inty,intmo,intd,inth,intmi,ints> 。// 构造方法publicbooleanequal(DateAndTimedt> 。// 判断两个日期时间是否相等publicvoidincrementDay(> 。 // 使当前日期时间增加 1天publicvoidincrementSecond(> 。 // 使当前日期时间增加 1秒publicStringtoString(> 。 // 返回当前日期时间的字符串表示}然后编写一个应用程序起始类测试该类。特别要测试进入下一分钟、下一小时、下一个月、下一天、下一年的情况。[实验要求](1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验8:is-a 关系个人资料整理 仅限学习使用[实验目的](1>理解继承的概念,了解超类、子类、直接超类、直接子类的概念。(2>理解“is-a”关系的概念。(3>掌握Java子类的定义方法。(4>了解并掌握关键字 this和super 的含义及其在各种场合的使用方法。(5>深入了解考虑继承特征情况下实例变量的初始化过程。[实验内容]在《实验 7:has-a 关系》中通过组合 MyDate 类和MyTime 类定义了一个表示日期时间的DateAndTime 类。现在请通过扩展 MyDate 类定义一个具有相同软件接口的日期时间类。[实验要求](1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验9:Java接口[实验目的]个人资料整理 仅限学习使用(1> 理解接口的概念、作用,熟练掌握接口定义、接口实现的方法以及接口作为引用类型的使用方法。(2>熟练掌握引用类型转换的方法和规则。[实验内容

]定义一个表示区域的接口

IRange

,其中声明有一个用以测试指定点

p 是否落在区域内的方法:booleancontains(Pointp>

。然后定义定义一个表示屏幕坐标系上的圆形区域的

R_Circle

类。该类扩展

Circle

类并实现接口

IRangle

。该类包含一个

Point

型实例变量,表示圆区域的圆心在屏幕坐标系上的位置。最后完成下面类中的

go

方法。该类包含两个实例变量

r和

p。方法

go

的功能是:若点

p

在区域

r内,就按指定的方向

way<

东、南、西、北)不断移动,直至该点落在区域外。随后输出点 p的坐标。classTest{IRanger。Pointp 。r=r1p=p1

。。}publicvoidgo(intway>{}publicstaticvoidmain(String[]args>{Pointp=newPoint(90,90>IRanger=newR_Circle(50,p> 。Pointp1=newPoint(90,90>newTest(r,p1>.go(Point.EAST>

。//50。。

为半径,

p为圆心位置}个人资料整理 仅限学习使用}[选做内容]通过扩展 Rectangle 类并实现接口 IRangle 定义一个表示屏幕坐标系上的矩形区域的R_Rectangle 类。该类包含一个 Point 型实例变量,表示矩形区域的左上角在屏幕坐标系上的位置。该类的软件接口如下:classR_RectangleextendsRectangle{publicR_Rectangle(> 。 // 构造方法publicR_Rectangle(Rectangler,Pointp> 。// 构造方法publicR_Rectangle(intx,inty,intwidth,intheight> 。// 构造方法publicbooleancontains(Pointp> 。 // 测试参数点 p是否落在区域内publicvoidmoveTo(intx,inty> 。 // 将区域移至指定位置publicPointgetWhere(> 。 // 返回区域的当前位置}然后再修改上述 main 方法,使其能模拟一个点再的矩形区域内移动的情况。[实验要求](1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验10:字符串处理[实验目的](1>理解String 型字符串对象与 StringBuffer 型字符串对象的区别。个人资料整理 仅限学习使用(2>熟练掌握 String 类和StringBuffer 类的使用。(3>了解系统对字符串文字、字符串连接运算 +的处理过程。[实验内容]定义一个 FileSpec 类,该类实现对一个文件标识符 <含盘符、路径和文件名)的包装,其软件接口如下:publicclassFileSpec{publicFileSpec(Stringfilespec> 。 // 构造方法publicStringgetName(> 。publicStringgetExtension(> 。publicStringgetPath(> 。}[实验要求](1> 学生在实验前必须进行准备,完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验11:数组应用[实验目的](1>理解数组对象的概念, 熟练掌握数组类型的表示与数组变量的定义。(2>熟练掌握数组的创建和使用。个人资料整理 仅限学习使用[实验内容]编写并测试方法 staticObject[][]counting(Stringstr> ,方法计算并返回参数字符串str中每个字符出现的次数。返回的 Object[][] 型二维数组的长度应该为 str中不同字符的个数。二维数组的第 1列存放各字符的 Character 实例;第 2列存放各字符对应次数的Integer 实例。[实验要求](1> 学生在实验前必须进行准备,应提出相应的算法、完成初步的程序设计。实验要求在规定时间内独立完成,并完成实验报告。(2> 老师要提前预做实验,实验时应在实验室进行巡视,检查学生的实验准备、及时回答问题,纠正学生的错误操作,同时要注意培养学生自主改错的能力;课后检查学生的实验报告。实验12:例外处理[实验目的](1>熟练掌握throw语句和throws子句的用法。(2>熟练掌握try语句的使用。理解并熟练掌握catch和finally子句的作用的用法。(3>熟练掌握定义和使用自定义例外类型的方法。[实验内容]char型值能够赋值转换成 int型或long 型,反之则不行。 int型或long 型能够强制个人资料整理 仅限学习使用转换成char型,这种转换不会抛出任何例外,但可能改变值的大小和符号。现在请定义一个Conversion类,其软件接口如下:classConversion{staticcharintToChar(intn>throwsDataException 。stativcharlongToChar(longn>throwsDataException 。}intToChar(intn> 方法和longToChar(longn> 方法分别将 int型n和long 型n转换成char 型。如果转换能保证不改变值的大小和符号,比如执行下列代码后,变量 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论