欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    面向对象技术实验指导书.docx

    • 资源ID:9394379       资源大小:27.61KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象技术实验指导书.docx

    1、面向对象技术实验指导书前言面向对象技术是计算机技术、软件及网络专业的一门理论性较强的专业课,旨在培养大学生的计算机专业素质和运用典型模式进行程序设计的能力。通过实验教学,使学生加深对所学知识的理解,掌握典型模式的实现技术。它的目的和任务是:让学生了解模式在构件复杂系统过程中所处的角色,培养学生的针对特定应用问题使用适当的模式进行设计的能力。本实验指导书是(美)Alan Shalloway&James R.Trott著,熊节译的设计模式精解的配套教材。编者根据计算机课程的实践性强等特点,编写了本实验教程,帮助学生有计划地系统地上机实践。根据教学内容和教学目标,实验指导书设计了八个实验,实验学时1

    2、6学时,每个实验2学时。学生应按照实验指导书的要求,完成指定的实验任务,并及时提交实验报告。要求学生在每次实验之前做好预习,实验后按要求写出实验报告。在每次实验过程中教师要考核学生每次实验的完成情况。一、为保证实验效果学生应做到:1、遵守实验室的规章制度,爱护教学设备。2、学生必须按时上机下机。 3、禁止做与实验无关的内容,禁止利用实验学时玩计算机游戏;4、每次实验前学生应做好预习,实验后按时提交实验报告。二、实验报告的要求:1、明确实验的目的及要求;2、记录下运用相应模式的程序设计的思想、程序代码及运行的结果;3、说明实验中出现的问题和解决过程;4、写出实验的体会和实验过程中没解决的问题。

    3、面向对象技术实验指导书是计算机科学与工程学院科学系李桂丽、李迎春老师集体编写而成,书中难免有错,敬请批评指正。辽宁科技大学软件学院软件工程系2012年8月实验一 面向对象程序设计一、实验目的:通过本次实验,使学生熟悉C+/JAVA语法,并运用面向对象基本技术实现程序设计,包括类的继承,对象之间的关系,提高面向对象程序设计的技能。二、实验要求:1、运用C+/JAVA语言工具编写给定案例的程序。2、提交实验报告,报告内容如下: 实验题目、实验目的、实验内容、算法描述、程序结构、程序清单、调试情况、设计技巧、心得体会。3、上机时间:2学时。三、实验内容:(1)编写一个统计动物种类的程序。练习应用类的

    4、继承,加深理解继承的概念。首先声明一个名为Animal(动物)的基类,然后再创建两个派生类,一个是Mammal(哺乳动物),Bird(鸟类)。子类Mammal含有子女数和读取子女数的成员函数NumOffspring();子类Bird含有生蛋数、是否筑巢,及取生蛋的成员函数GetEggs()。成员函数ShowMannal()和ShowBird()的功能是分别输出各自的对象参数。Animal Bird类的定义如下:Class AnimalPublic: Animal(const char *s)strncpy(name,s,29);/构造函数 Const char * GetName()retur

    5、n name; /取动物的名称Private: Char name30;/ 动物的名称Mammal类的定义如下:Class Mammal:public Animal /继承了Animal类public: Mammal(const char *s,int nc):Animal(s)offspring=nc;/ 构造函数 int NumOffspring()return offspring;/取子女数目函数 void ShowMammal();/输出对象的参数private: int offspring;/记录哺乳动物子女的数目;Bird类的定义如下:Class Bird:public Anima

    6、l/继承了Animal类Public: Bird(const char *s,int ne,int nests);/ 构造函数 int GetEggs()return eggs;/取生蛋数目 const char* BuildNest();/判断是否筑巢 void ShowBird();/输出Bird类对象的参数private: int eggs ; /生蛋数int nesting; ; /若筑巢则为真 ;(2)要建立一个简单的微波炉系统,这个微波炉有两个按钮:烹饪按钮和取消按钮,在按下烹饪按钮后,微波炉工作分钟。如果在正在烹饪时按下烹饪按钮,烹饪时间就增加1分钟。在任何时候按下取消按钮都会停

    7、止烹饪。下面是一些初始系统的特定要求:1、微波炉正在烹饪时,微波炉里的灯必须亮着,在打开炉门时,灯依然要亮。其余时间,灯都必须要关着。2、仅在关炉门时对烹饪进行初始化。3、通过按烹饪按钮对烹饪进行初始化。按一次微波炉能工作1分钟。4、在微波炉工作时按烹饪按钮,能延长1分钟的工作时间,在工作期间,人们可根据需要的时间,按相应次数的烹饪按钮。5、在微波炉完成工作时,关掉功率管和灯。然后微波炉通过鸣叫三声通知厨师。6、在微波炉正工作时,打开炉门会中断工作,同时清除剩余时间,并且微波炉也不鸣叫。7、在微波炉正工作时,按取消按钮会停止工作,同时关灯并清除剩余时间。对这样的中断,微波炉不发出三声鸣叫。8、

    8、每次按取消按钮或烹饪按钮都会发出一声鸣叫,以使厨师知道微波炉已经接收了本次按按钮操作。9、如果在炉门打开时按下烹饪按钮,除了发出一声鸣叫,什么也不会发生。10、如果在微波炉不工作时按下取消按钮,除了发出一声鸣叫,什么也不会发生。11、微波炉不需要显示烹饪时间。 分析需求,运用模式的思想编写程序实现。注:(1)必须完成,(2)可以选做实验二 外观模式的运用一、实验目的:通过本次实验,使学生运用外观模式的思想与方法,编写程序。二、实验要求:1、运用C+/JAVA语言工具编写给定案例的程序。2、提交实验报告,报告内容如下: 实验题目、实验目的、实验内容、算法描述、程序结构、程序清单、调试情况、设计技

    9、巧、心得体会。3、上机时间:2学时。三、实验内容:(1)家庭篇案例今年十一国庆节,我呆在家里美美的享受了一下家的温馨。首先让我来介绍一下我的家庭成员:妻子(Wife)女儿(Daughter)我(Me)我们都是家庭(Family)的一分子,我们是以家庭对外的。就象我们国家对外是以“中国”,外国人都称我们是中国人,但在中国这个大家庭内部,包括了汉、回、蒙 等56个民族一样。可见对外我们是要以统一的身份,或叫统一的外观(Facade)进行展现。1、 在这里,先定义家庭的各个成员类:妻子(Wife):public class Wife protected Wife() System.out.print

    10、ln(妻子美丽 !); 女儿(Daughter):public class Daughter protected Daughter () System.out.println(女儿可爱 !); 我(Me):public class Me protected Me() System.out.println(我爱我家 !); 2、定义家庭对外展现(FamilyOutShow)类:public class FamilyOutShow public void MyFamily() Wife myWife = new Wife(); /我的妻子 Daughter myDaughter = new Dau

    11、ghter (); /我的女儿 Me me= new Me(); /我自己 3、编写测试类:public class MyFamilyTest public static void main(String args) FamilyOutShow myFamily = new FamilyOutShow (); myFamily.MyFamily(); 4、说明:A:Facade的定义: 为子系统中的一组接口提供一个一致的界面。B:使用统一对外接口,可以降低系统的复杂性,增加了灵活性。C:从例子中可以看到,外界只是访问了家庭对外展现(FamilyOutShow)类,而没有直接与成员类打交道。这样

    12、比如说增加了一个新的成员类(比如说儿子(Son)类),只要修改家庭对外展现(FamilyOutShow)类即可,而不用修改调用。(2)医院案例 如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情。首先病人必须先挂号,然后门诊。如果医生要求化验,病人必须首先划价,然后缴款,才能到化验部门做化验。化验后,再回到门诊室。解决这种不便的方法便是引进门面模式。可以设置一个接待员的位置,由接待员负责代为挂号、划价、缴费、取药等。这个接待员就是门面模式的体现,

    13、病人只接触接待员,由接待员负责与医院的各个部门打交道。注:(1)必须完成,(2)可以选做实验三 适配器模式的运用一、实验目的:通过本次实验,使学生运用适配器模式的思想与方法,编写程序。二、实验要求:1、运用C+/JAVA语言工具编写给定案例的程序。2、提交实验报告,报告内容如下: 实验题目、实验目的、实验内容、算法描述、程序结构、程序清单、调试情况、设计技巧、心得体会。3、上机时间:2学时。三、实验内容:(1)适配器模式与小美和小芳的故事 小美和小芳是好朋友,两人都喜欢三件事情:美食、购物、旅游,但是这三件事情都是小芳母亲最厌恶的,她希望自己的女儿能做两件事情:读书、练字,可是姑娘一听见这些东

    14、西就头痛。小美和小芳约定好暗号,出门的时候要说母亲爱听的,实际上做的是姑娘们爱做的,说一套做一套,这样两个人就可以搞定了。暗号如下:Reading:老母亲以为是去读书,实际上出了门就去 Eating 和 Shopping 了 Writing:老母亲以为是去练字,实际上出了门就去 Travelling 了。 这套暗号约定实际上就是个适配器。它把对外的接口从姑娘们希望的 Eating 、Shopping 、Travelling 变成了母亲希望的 Reading 和 Writing ,这样就可以顺利通过母亲这一关了;但实际上做的还是姑娘希望的 Eating 、Shopping 、Travelling

    15、。事情从表面上看是一回事,实际上内部的实现可能是另一回事。最后当然是姑娘们胜利了。 下面我们用代码来讲述这个故事吧:Adapter.cs using System; using System.Collections.Generic; using System.Text; namespace Adapter . /姑娘希望的接口:但是由于母亲不喜欢这些东西,不能直接使用了 public class Girl . public void Eating() . System.Console.WriteLine(不用装样子了,我要吃大闸蟹!); System.Console.WriteLine();

    16、public void Shopping() . System.Console.WriteLine(不用装样子了,买一件今年最流行的小背心!); System.Console.WriteLine(); public void Travelling() . System.Console.WriteLine(不用装样子了,千山是个不错的地方哦!); System.Console.WriteLine(); /母亲希望的接口:要想约小芳出来,必须告诉母亲,我们是去做您喜欢的事情去了 public interface Mother . void Reading(); void Writing(); /小

    17、美和小芳的约定,精髓就是客户喜欢什么就让他看见什么,实际上做的还是原来的那一套东西。 public class Agreement : Mother . Girl girl = new Girl(); /说的是去读书,那是给母亲(客户端)看的,实际上呢? public void Reading() . girl.Eating(); girl.Shopping(); public void Writing() . girl.Travelling(); 客户端:Client.cs using System; using System.Collections.Generic; using Syste

    18、m.Text; namespace Adapter . class Client . static void Main(string args) . Agreement ag = new Agreement(); Console.WriteLine(小美:老母亲,我们去读书了!); Console.WriteLine(老母亲:乖,好好读呀!); ag.Reading(); Console.WriteLine(); Console.WriteLine(小美:老母亲,我们去练字了!); Console.WriteLine(老母亲:好呀好呀!); ag.Writing(); System.Conso

    19、le.Read(); (2)变压器案例变压器把一种电压变换成另一种电压。美国的生活用电电压是110V,而中国的电压是220V。如果要在中国使用美国电器,就必须有一个能把220V电压转换成110V电压的变压器。这个变压器就是一个Adapter。注:(1)必须完成,(2)可以选做实验四 桥接模式的运用一、实验目的:通过本次实验,使学生运用桥接模式的思想与方法,编写程序。二、实验要求:1、运用C+/JAVA语言工具编写给定案例的程序。2、提交实验报告,报告内容如下: 实验题目、实验目的、实验内容、算法描述、程序结构、程序清单、调试情况、设计技巧、心得体会。3、上机时间:2学时。三、实验内容:(1)设

    20、计模式之Bridge游戏篇今天从电子市场买来两张游戏碟,一张是三国游戏(SanGuoGame),一张是CS游戏(CSGame)。玩过游戏的人可能都知道,游戏对计算机系统(ComputerSystem)是有要求的,可能一个游戏在Windows98系统下能玩,到了Windows2000系统下就不能玩了,因此为了不走冤枉路,先看看游戏要求的计算机系统(ComputerSystem)可是一个好习惯呦!好了,闲话少叙开始我们的游戏旅程吧:1、 在这里,先定义计算机系统(ComputerSystem)接口类:public interface ComputerSystem public abstract v

    21、oid playGame(); /玩游戏2、 再定义对计算机系统(ComputerSystem)接口的具体实现类:A:Windows98系统public class Windows98 implements ComputerSystempublic void playGame() System.out.println(玩Windows98游戏!); B:Windows2000系统public class Windows2000 implements ComputerSystem public void playGame() System.out.println(玩Windows2000游戏!)

    22、; 3、 定义游戏(Game)类:public abstract class Game public abstract void play(); /玩游戏protected ComputerSystem getSetupSystem(String type) /获得要安装的系统if (type.equals(Windows98) /如果游戏要求必须安装在Windows98下 return new Windows98(); /使用Windows98系统 else if (type.equals(Windows2000) /如果游戏要求必须安装在Windows2000下return new Win

    23、dows2000(); /使用Windows2000系统 else return new Windows98(); /默认启动的是Windows98系统 4、 定义游戏(Game)类的子类:A:三国游戏(SanGuoGame)public class SanGuoGame extends Game private ComputerSystem computerSystem; public SanGuoGame(String type) /看游戏要求安装在那个系统上computerSystem = getSetupSystem(type);/那么使用这个系统 public void play()

    24、 /玩游戏computerSystem.playGame();System.out.println(我正在玩三国,不要烦我!); B:CS游戏(CSGame)public class CSGame extends Game private ComputerSystem computerSystem;public CSGame(String type) /看游戏要求安装在那个系统上computerSystem = getSetupSystem(type); /那么使用这个系统 public void play() /玩游戏computerSystem.playGame();System.out.

    25、println(我正在玩CS,不要烦我!); 5、编写测试类:public class Test public static void main(String args) Game sanguo = new SanGuoGame(Windows98); /游戏要求Windows98sanguo.play();sanguo = new SanGuoGame(Windows2000);/游戏要求Windows2000sanguo.play();Game cs = new CSGame(Windows98); /游戏要求Windows98cs.play();cs = new CSGame(Windo

    26、ws2000);/游戏要求Windows2000cs.play();6、说明:A:Bridge定义:将抽象和行为划分开来,各自独立,但能动态的结合。B:从本例中我们可以看到,不同的游戏对系统的要求是不同的,三国和CS可能都需要Windows98系统,也可能需要Windows2000系统,甚至要求不相同的系统,因此处理这类问题,我们就可以用Bridge这种模式了。 C:这里行为是指游戏,抽象是指系统! (2)咖啡案例例如,一杯咖啡为例,子类实现类为四个:中杯加奶、大杯加奶、 中杯不加奶、大杯不加奶。但是,我们注意到:上面四个子类中有概念重叠,可从另外一个角度进行考虑,这四个类实际是两个角色的组合

    27、:抽象 和行为,其中抽象为:中杯和大杯;行为为:加奶 不加奶(如加橙汁 加苹果汁). 实现四个子类在抽象和行为之间发生了固定的绑定关系,如果以后动态增加加葡萄汁的行为,就必须再增加两个类:中杯加葡萄汁和大杯加葡萄汁。显然混乱,扩展性极差。那我们从分离抽象和行为的角度,使用Bridge模式来实现。注:(1)必须完成,(2)可以选做实验五 抽象工厂模式的运用一、实验目的:通过本次实验,使学生运用抽象工厂模式的思想与方法,编写程序。二、实验要求:1、运用C+/JAVA语言工具编写给定案例的程序。2、提交实验报告,报告内容如下: 实验题目、实验目的、实验内容、算法描述、程序结构、程序清单、调试情况、设

    28、计技巧、心得体会。3、上机时间:2学时。三、实验内容:抽象工厂模式在小花果园系统中的实现现在,我们在佛罗里达的渡假小屋的后面要建一座小花园。但要建的小花园一处在北方地区,另一处在亚热带地区。抽象工厂模式正好适用于我们的情况。两处花园就相当于两个产品族。显然,给北方花园的植物是要种植在一起的,给南方花园的植物是要另种植在一起的。这种分别应当体现在系统的设计上面。这就满足了应当使用抽象工厂模式的第二和第三个条件。 抽象工厂模式应用于小花果园系统中的结构图如下。用三种不同的背景颜色区分工厂类,蔬菜类(第一产品族),和水果类的类图(第二产品族)。实验六 策略模式的运用一、实验目的:通过本次实验,使学生运用策略模式的思想与方法,编写程序。二、实验要求:1、运用C+/JAVA语言工具编写给定案例的程序。2、提交实验报告,报告内容如下: 实验题目、实验目的、实验内容、算法描述、程序结构、程序清单、调试情况、设计技巧、心得体会。3、上机时间:2学时。三、实验内容:设计模式之Strategy简历篇1、学生大学


    注意事项

    本文(面向对象技术实验指导书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开