- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象程序设计过程考核题目
过程考核内容:考核内容涉及面向对象编程的抽象与封装、继承、多态、STL程序库应用等方面。
考核目的:加强对本课程基本概念的理解,切实应用面向对象程序思维解决现实问题,提高面对象程序设计和编程实践能力。
成绩计算:占本课程总成绩20%。
题目选择:从下面的六道题目中任意选作一题,各题目的难度略有区别,在题目分数上略有反映。第1-5题主要学习应用面向对象编程技术抽象与解决现实问题的方法,掌握复杂类或重复继承问题的类设计方法,切实掌握类设计时应当掌握的关键技术和实现内容。在理解题目要解的问题基础上,学习别人是如何应用C++对现实问题进抽象与类设计,并最终编写出相应的程序。第6题需要综合应用本课程所学知识,进行类、继承、多态、STL应用的编程实践。
提交方式:在VC++编程环境中输入所选题目源码(或自己编写的第6题程序代码),进行适当修改,调测运行成功后,提交程序源文件和设计报告(报告格式另行指定)。
提交时期:截止第16周末
题目一:交叉类的设计与实现
(选此题:最高16分)
本题目探索如何设计具有复杂成员关系的类设计问题,重点解决类之间的整体与部分关系。当两类具有整体与部分关系,且两者生命期独立存在时就称为聚合关系,用空心菱形表示。实心菱形表示部分的生存期依附于整体,当整体不存在时,部分就随之结束生存期。
本题目要进行Employee类的设计,该类与Date,Dog,Cat,Auto类具有交叉关系。具体描述为:
某宠物狗销售公司有的雇员有生日,可能会养有一只宠物猫,具有许多雇员朋友,拥有多部分小汽车,每个雇员要为自己销售的若干宠物狗承担售后服务。各类的关系如下图所示:
设计Employee类,能够完成下述类型雇员对象的创建,并能够直接输出其成员信息。
能够创建全部数据成员初始化为0的雇员对象;
能够创建只知道第一、第二姓名雇员对象
能够创建只知道第一、第二姓名和生日的雇员对象
能够创建只知道第一、第二姓名、生日和宠物猫的雇员对象
能够创建只知道第一、第二姓名和所销售宠物狗的雇员对象
能够创建只知道第一、第二姓名和他的电话通信录列表的雇员对象
能够创建只知道第一、第二姓名、生日、以及朋友列表的雇员对象
能够创始知道第一、第二姓名、生日、朋友、自己的小汽车,宠物猫的雇员对象。
本题目的主要目的:
学习掌握将现实问题转换为相关类的方法和技术,特别是如何在类设计时实现现实对象间的相互关系。
掌握类构造函数实现方法。
掌握重载类成员输出方法。
掌握类复制运算符(operator=)和复制构造函数的实现方法。
题目二:继承层次设计
(选此题:最高18分)
在题目一已完成的基础上,扩展类的功能,实现以下继承层次结构:
(1)宠物狗销售只有吉娃娃(Chihuahua)和卷毛(Poodle),它们从Dog类派生,它们具有的数据成员包括主人、体重、和高度。
(2)雇员有四种类型:雇员(Employee)、管理人员(Manager),销售人员(SalesPerson)、销售管理(SalesManger),其中:
Employee可以销售任何Dog(包括吉娃娃和卷毛),但后三类人员只能够销售吉娃娃和卷毛。
Manager需要维护他管理的员工数组(workerSupervised)和员工人数(numWorksSupervised),
SalesManger需要维护管理的销售人员链表(listOfSalesPersons)。
本题目的主要目的:
理解与使用继承进行软件设计和功能扩展;
掌握复制构造函数、复制赋值运算符函数(operator=)、析构函数、输出运算符重载函数(operator)的实现技术和方法;
学会应用STL的链表和向量进行数据存取管理;
学会应用类的函数算子(operator())操作STL的排序函数sort。
题目三:使用虚基类解决重复继承问题
(选此题:最高16分)
设计一个企业管理人员晋升的继承体系,公司雇员设计有经理(Manager)、销售人员(SalesPerson)、执行经理(ExecutiveManager)、销售经理(SalesPerson)等类别。他们的关系如图16.13所示。各类人员的晋升条件如下文件描述,设计实现此继承体系中的各类,使之实现相应人员的晋升管理功能。
本题目的主要目的:
掌握继承体系的设计与实现方法;
掌握多重派生类具有共同间接基类时处理重复功能的方法——虚基类和虚拟继承的设计与实现方法;
掌握虚函数实现多态的技术方法;
掌握STL中vector和对应迭代器的使用方法。
掌握应用简单辅助类提高程序可读性和清晰性的软件开发方法。
题目四:使用混合类解决重复继承问题
(选此题:最高18分)
本题是题目三的另一种解决方法,通过辅助基类的增加,避免使用虚拟继承来解决重复继承
文档评论(0)