




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计过程考核题目过程考核内容:考核内容涉及面向对象编程的抽象与封装、继承、多态、STL程序库应用等方面。考核目的:加强对本课程基本概念的理解,切实应用面向对象程序思维解决现实问题,提高面对象程序设计和编程实践能力。成绩计算:占本课程总成绩20%。题目选择:从下面的六道题目中任意选作一题,各题目的难度略有区别,在题目分数上略有反映。第1-5题主要学习应用面向对象编程技术抽象与解决现实问题的方法,掌握复杂类或重复继承问题的类设计方法,切实掌握类设计时应当掌握的关键技术和实现内容。在理解题目要解的问题基础上,学习别人是如何应用C+对现实问题进抽象与类设计,并最终编写出相应的程序。第6题需要综合应用本课程所学知识,进行类、继承、多态、STL应用的编程实践。提交方式:在VC+编程环境中输入所选题目源码(或自己编写的第6题程序代码),进行适当修改,调测运行成功后,提交程序源文件和设计报告(报告格式另行指定)。提交时期:截止第16周末题目一:交叉类的设计与实现(选此题:最高16分)本题目探索如何设计具有复杂成员关系的类设计问题,重点解决类之间的整体与部分关系。当两类具有整体与部分关系,且两者生命期独立存在时就称为聚合关系,用空心菱形表示。实心菱形表示部分的生存期依附于整体,当整体不存在时,部分就随之结束生存期。本题目要进行Employee类的设计,该类与Date,Dog,Cat,Auto类具有交叉关系。具体描述为:某宠物狗销售公司有的雇员有生日,可能会养有一只宠物猫,具有许多雇员朋友,拥有多部分小汽车,每个雇员要为自己销售的若干宠物狗承担售后服务。各类的关系如下图所示:classClassModelDate-day:int-month:int-year:int+Date()+operator(Ostream&,Date&):OstreamEmployee-dateofBirth:Date-fristName:string-lastName:int-phoneList:map+Employee()0.1Dog-age:int-name:string+Dog()+operator(ostream):ostream&0.*Cat-age:int-name:string+Cat()+Cat(string,int):int+operator(ostream&,Cat&):intAuto+Employee(string,string)Friends1.*0.*-autoBrand:string-owner:Employee+Auto()+Auto(string,Employee)+operator(ostream&,Auto):ostream设计Employee类,能够完成下述类型雇员对象的创建,并能够直接输出其成员信息。(1)能够创建全部数据成员初始化为0的雇员对象;(2)能够创建只知道第一、第二姓名雇员对象(3)能够创建只知道第一、第二姓名和生日的雇员对象(4)能够创建只知道第一、第二姓名、生日和宠物猫的雇员对象(5)能够创建只知道第一、第二姓名和所销售宠物狗的雇员对象(6)能够创建只知道第一、第二姓名和他的电话通信录列表的雇员对象(7)能够创建只知道第一、第二姓名、生日、以及朋友列表的雇员对象(8)能够创始知道第一、第二姓名、生日、朋友、自己的小汽车,宠物猫的雇员对象。本题目的主要目的:(1)学习掌握将现实问题转换为相关类的方法和技术,特别是如何在类设计时实现现实对象间的相互关系。(2)掌握类构造函数实现方法。(3)掌握重载类成员输出方法。(4)掌握类复制运算符(operator=)和复制构造函数的实现方法。题目二:继承层次设计(选此题:最高18分)在题目一已完成的基础上,扩展类的功能,实现以下继承层次结构:(1)宠物狗销售只有吉娃娃(Chihuahua)和卷毛(Poodle),它们从Dog类派生,它们具有的数据成员包括主人、体重、和高度。(2)雇员有四种类型:雇员(Employee)、管理人员(Manager),销售人员(SalesPerson)、销售管理(SalesManger),其中:Employee可以销售任何Dog(包括吉娃娃和卷毛),但后三类人员只能够销售吉娃娃和卷毛。Manager需要维护他管理的员工数组(workerSupervised)和员工人数(numWorksSupervised),SalesManger需要维护管理的销售人员链表(listOfSalesPersons)。本题目的主要目的:1理解与使用继承进行软件设计和功能扩展;2掌握复制构造函数、复制赋值运算符函数(operator=)、析构函数、输出运算符重载函数(operator)的实现技术和方法;3学会应用STL的链表和向量进行数据存取管理;4学会应用类的函数算子(operator()操作STL的排序函数sort。题目三:使用虚基类解决重复继承问题(选此题:最高16分)设计一个企业管理人员晋升的继承体系,公司雇员设计有经理(Manager)、销售人员(SalesPerson)、执行经理(ExecutiveManager)、销售经理(SalesPerson)等类别。他们的关系如图16.13所示。各类人员的晋升条件如下文件描述,设计实现此继承体系中的各类,使之实现相应人员的晋升管理功能。本题目的主要目的:(1)掌握继承体系的设计与实现方法;(2)掌握多重派生类具有共同间接基类时处理重复功能的方法虚基类和虚拟继承的设计与实现方法;(3)掌握虚函数实现多态的技术方法;(4)掌握STL中vector和对应迭代器的使用方法。(5)掌握应用简单辅助类提高程序可读性和清晰性的软件开发方法。题目四:使用混合类解决重复继承问题(选此题:最高18分)本题是题目三的另一种解决方法,通过辅助基类的增加,避免使用虚拟继承来解决重复继承实现与题目三相同的功能,使类设计和对象构造的复杂度得到适当的简化。本题目的主要目的:(1)了解掌握软件开发并非一层不变,并非像某些数学题一样具有唯一标准答案,而是具有一定的灵活性,同一问题可以有多种不同的软件解决方案。(2)学习应用辅助基类实现而非虚拟继承解决多重继承引发的成员重复问题。(3)掌握类继承体系的设计与实现方法。(4)掌握应用STL的vector和迭代器存取自定义类对象的方法。题目五:使用角色扮演类解决重复继承(选此题:最高19分)本题目实现题目三、四相同的功能,在题目四的继承体系中增设了一个角色扮演类Role,以一种更加灵活的方式实现了完全相同的功能。本题目的主要目的:(1)结合题目三、四、五,它们实现了完全相同的功能。以此学习理解软件开发的灵活性。(2)学习用角度扮演类设计继承体系,实现多层继承体系的设计方法。(3)掌握通过高层角色扮演类访问下层派生类对象的多态程序实现技术。(4)掌握应用STLvector和迭代器存取自定义对象,实现多态的方法。题目六:编程实现扩展后的第5章第9题(选此题:最高20分)原题目为:一个教学系统至少有学生和教师两种类型的人员,假设教师的数据有教师编号、姓名、年龄、性别、职称和系别,学生的数据有学号、姓名、年龄、性别、班级和语文、数学、英语三门课程的成绩。编程完成学生和教师档案数据的输入和显示。要求如下:设计三个类Person、Teacher、Student,Person是Teacher和Student的基类,具有此二类共有的数据成员姓名、年龄、性别,并具有输入和显示这些数据的成员函数;Teacher类继承了Person类的功能,并增加对教师编号、职称和系别等数据成员进行输入和显示的成员函数。按同样的方法完善Student类的设计。对本题目进行以下扩展:(1)教师分为普通教师(Teacher)、院长(Chancellor)和系主任(Dean)三类。所有教师都有基本工资(salary),普通教师的总收入income由基本工资和课时费构成。一个教师要管理若干学生,而一个学生只有一位教师作导师;(2)院长和系主任都从普通教师中产生,院长的总收入由年薪和基本工资构成,系主任的总收入由基本工资和每有绩效构成。他们每年须完成指定课时的教学任务,但不计课时报酬。(3)上述各类人员的基本关系如下图所示。设计并编程实现各类。设计要求:(a)各类中的inputData、outData、getSalarysetSalary、getIncome为虚函数,要求能够以Person为接口访问各类的inputDataoutData虚函数,实现多态。(b)用STL中的vector或list管理Person对象指针或引用,管理继承体系中的对象,实现体现多态编程特征。同类对象可以按年龄排序。(c)友元重载各类对象的输出运算符(operator),能够通过cout直接输出各对象的相应信息,输出信息与各类的outData成员函数的输出相同。classClassModelPerson-age:int-name:string-sex:char*+inputData():void+outData():void+Person()+Person(string,int,char)Teacher-dept:string-hourPrice:double-protitle:string-salary:double-tid:int-workHour:int1.*Student-chinese:double-classX:int-english:double-math:double-sid:string+getIncome():double+getSalary():double+inputData():void+outData():void+setSalary(double):void+setWHour(int):void+setWHPrice(double):void1+inputData():void+outData():void+Person()+Person(string,int,char)+Student()Chancellor-yearsalary:double+Chancellor()+getIncome():double+getSalary():double+inputData():void+outData():void+setSalary(double):voidDean-performance12:double+getIncome():dobule+getPerformance
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师教学能力提升培训教程
- 沙盘游戏(说课稿)2023-2024学年初三下学期教育主题班会
- 医院感染控制管理规范及实施细则
- 手术室护理培训心得分享
- 第4课 查找文件或文件夹说课稿初中信息技术(信息科技)七年级下册黔教版
- Unit 7 SEction B 1a~1d说课稿人教版八年级英语下册
- 2.1认识有理数教学设计北师大版七年级数学上册
- 超材料技术应用-洞察及研究
- 《七色光之歌》(教案)-人音版(五线谱)音乐六年级上册
- 2025版工业机器人安全培训急停回路响应时间专项测试题库及答案
- 行政执法实务培训课件
- 烘焙类产品培训课件
- 湿疹教学课件
- 《会计基础》课程标准
- 常见消防工具的使用课件
- 九年级英语情境教学实施计划
- 智能停车场管理系统研究报告
- 振动电机技术协议书
- 2025-2030年中国反无人机行业市场深度调研及前景趋势与投资研究报告
- 如何提升科室医疗安全
- 2025年医保知识考试题库及答案:基础政策解读与医保报销比例调整试题
评论
0/150
提交评论