面向对象编程技术课程设计之方向2-C++综合编程指导书.pdf
《面向对象编程技术课程设计之方向2-C++综合编程指导书.pdf》由会员分享,可在线阅读,更多相关《面向对象编程技术课程设计之方向2-C++综合编程指导书.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+课程设计指导书(二)C+课程设计指导书(二)C综合编程与简单设计模式的运用 C综合编程与简单设计模式的运用 汤亚玲编写 2008-5-9 汤亚玲编写 2008-5-9 一、课程设计的目的与意义一、课程设计的目的与意义 学会综合运用 C教材中的基础理论知识,并学习专业编程中广为借鉴的一些经典的编程模式,联系具体事例,解决实际问题,达到深入领会理论,分析解决实际问题,培养一定的编程实践能力的目的。本设计出发点是紧扣教材,灵活运用,加深对教材内容的理解和拓展学习的知识面。注意:注意:本课程题目主要考察学生对课本知识的综合运用能力和基本的本课程题目主要考察学生对课本知识的综合运用能力和基本的 C编
2、程能力,不提供参考源程序。编程能力,不提供参考源程序。二、课程设计基本要求二、课程设计基本要求 1.学习设计模式中创建型模式中的 Factory 模式和 Singleton 模式,总结对这两种模式的理解和认识。(参见附录 1 和附录 2)2.完成具有以下功能的简单模型系统:系统中有一个唯一唯一(Singleton)的水果生产工厂,能生产成品水果产品,如苹果(Apple)、梨子(Pear)、香蕉(Banana)、桃子(Peach)等等,生产工厂能根据用户的选择或要求(用简单文字选择界面实现)生产指定的水果并提供给客户。3.阐述你自己在实现过程中遇到的问题和解决的过程。4.撰写课程设计报告,总结心
3、得体会。三、课程设计技术要点提示:三、课程设计技术要点提示:1.程序中建立水果生产工厂类(参考 Factory 模式),但保证该类只能实例化唯一的一个水果工厂(参考 Singleton 模式)。2.建立与各种水果(苹果、香蕉、梨子等)相对应的类库结果,并设计各种水果的抽象基类(如命名为 Fruit 类),建立抽象水果类的使用接口,在具体的水果派生类中加以实现,并通过多态的方式在主程序中加以使用。3.在主程序中建立简单文字选择界面,提供给客户使用。四、课程设计试验报告基本格式四、课程设计试验报告基本格式 课程设计试验报告的基本内容包括封面、正文、目录、附录四部分。1 1.封面:包括“面向对象编程
4、技术课程设计试验报告”、专业、班级、学号、姓名、设计时间等基本信息。2.目录:课程设计文档的文档目录。3.正文包括:(1)应用程序名称。(2)应用程序的主体、设计目的。(3)应用程序简介:功能介绍、基本内容、主要技术、运行环境。(4)应用程序的总体设计结构图、类层次图、主要运行界面介绍。(5)创新与难点:阐述个人设计主要成功之处,开发中遇到的困难和解决的方法。(6)课程设计过程的心得体会。4.附录:包括源程序和简易使用说明等。5.课程设计报告用计算机打印课程设计报告用计算机打印。2附录附录 1:Factory 模式模式 在面向对象系统设计中经常可以遇到以下的两类问题:为了提高内聚(Cohesi
5、on)和松耦合(Coupling),我们经常会抽象出一些类的公共接口以形成抽象基类或者接口。这样我们可以通过声明一个指向基类的指针来指向实际的子类实现,达到了多态的目的。这里很容易出现的一个问题 n 多的子类继承自抽象基类,我们不得不在每次要用到子类的地方就编写诸如 new;的代码。这里带来两个问题:1)客户程序员必须知道实际子类的名称(当系统复杂后,命名将是一个很不好处理的问题,为了处理可能的名字冲突,有的命名可能并不是具有很好的可读性和可记忆性,就姑且不论不同程序员千奇百怪的个人偏好了),2)程序的扩展性和维护变得越来越困难。2)还有一种情况就是在父类中并不知道具体要实例化哪一个具体的子类
6、。这里的意思为:假设我们在类 A 中要使用到类 B,B 是一个抽象父类,在 A 中并不知道具体要实例化那一个 B 的子类,但是在类 A 的子类 D 中是可以知道的。在 A 中我们没有办法直接使用类似于 new 的语句,因为根本就不知道是什么。以上两个问题也就引出了 Factory 模式的两个最重要的功能:1)定义创建对象的接口,封装了对象的创建;2)使得具体化类的工作延迟到了子类中。模式选择模式选择 通常使用 Factory 模式来解决上面给出的两个问题。在第一个问题中,我们经常就是声明一个创建对象的接口,并封装了对象的创建过程。Factory 这里类似于一个真正意义上的工厂(生产对象)。在第
7、二个问题中,我们需要提供一个对象创建对象的接口,并在子类中提供其具体实现(因为只有在子类中可以决定到底实例化哪一个类)。第一中情况的 Factory 的结构示意图为:图 1:Factory 模式结构示意图 1 图 1 所以的 Factory 模式经常在系统开发中用到,但是这并不是 Factory 模式的最大威力所在(因为这可以通过其他方式解决这个问题)。Factory 模式不单是提供了创建对象的接口,其最重要的是延迟了子类的实例化(第二个问题),以下是这种情况的一个 Factory 的结构示意图:3 图 2:Factory 模式结构示意图 1 图 2 中关键中 Factory 模式的应用并不是
8、只是为了封装对象的创建,而是要把对象的创建放到子类中实现:Factory 中只是提供了对象创建的接口,其实现将放在 Factory 的子类ConcreteFactory 中进行。这是图 2 和图 1 的区别所在。实现:完整代码示例(code):(代码采用 C+实现,并在 VC 6.0 下测试运行通过)代码片断 1:Product.h/Product.h#ifndef _PRODUCT_H_#define _PRODUCT_H_ class Product public:virtual Product()=0;protected:Product();private:;class Concrete
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 编程 技术 课程设计 方向 C+ 综合 指导书
限制150内