




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+面向对象程序设计大作业利用虚函数实现多态: (1)设计Person类,要求具有用于表示姓名的保护数据成员:string szName; 实现信息打印的公有成员函数:void Print()。其中,Print函数设计为虚函数,输出的信息格式为:“Person 姓名”。 (2)从Person类派生Student类,添加用于表示学号的保护数据成员:int iNumber;重定义用于信息打印的公有成员函数:void Print()。其中,Print函数输出的信息格式为:“Student 姓名 学号”。 (3)从 Person类派生Teacher类,添加用于表示教龄的保护数据成员:int iYear;重定义用于信息打印的公有成员函数:void Print()。其中,Print函数输出的信息格式为:“Teacher 姓名 教龄”。 (4)从Student类派生Graduate类,添加用于表示研究方向的保护数据成员:string szResearch;重定义用于信息打印的公有成员函数:void Print()。其中,Print函数输出的信息格式为:“Graduate 姓名 研究方向” 在main函数中根据用输入的整数动态创建一个Person类的对象指针数组。用户依次输入对象信息(对象类别及其相应的数据成员值),根据对象类别动态创建相应的对象并赋给相应的对象指针数组元素。全部录入后,根据用户输入要显示的对象信息在数组中的位置,调用Print函数在屏幕上打印出相应对象的信息。如果用户输入“exit”,则退出。 输入: 对象指针数组的长度; 对象类型及对象信息(输入方式见输入样例); 要显示的对象在数组中的位置; exit。 输出: 用户要求显示的对象信息。 输入样例: 4Person ZhangStudent Zhao 200905Graduate Li 200905 DataMiningTeacher Luo 1002exit 输出样例: Person ZhangGraduate Li 200905 DataMining程序:#include #include #include using namespace std;class Personpublic: Person(const string& name); virtual void Print() const;protected: string szName;Person:Person(const string& name):szName(name)void Person:Print() const cout Person szName endl;class Student : public Personpublic: Student(const string& name, int number); void Print() const;protected: int iNumber;Student:Student(const string& name, int number):Person(name),iNumber(number)void Student:Print() const cout Student szName iNumber endl;class Teacher : public Personpublic: Teacher(const string& name, int year); void Print() const;protected: int iYear;Teacher:Teacher(const string& name, int year):Person(name),iYear(year)void Teacher:Print() const cout Teacher szName iYear endl;class Graduate : public Studentpublic: Graduate(const string& name, int number, string major); void Print() const;protected: string szResearch;Graduate:Graduate(const string& name, int number, string major): Student(name, number), szResearch(major)void Graduate:Print() const cout Graduate szName iNumber szResearch psNum; / 对象指针数组 Person* *psArr = new Person*psNum; / 对象类型、姓名、学号、教龄、研究方向 string szType, szName, szMajor; int iNumber, iYear; / 根据输入的对象信息创建不同类型的对象 for(int i=0; i szType; if(szType = Person) cin szName; psArri = new Person(szName) ; else if(szType = Student) cin szName iNumber; psArri = new Student(szName, iNumber); else if(szType = Teacher) cin szName iYear; psArri = new Teacher(szName, iYear); else if(szType = Graduate) cin szName iNumber szMajor; psArri = new Graduate(szName, iNumber, szMajor); else / 需要打印信息的对象下标 string szIdx; int objIdx; cin szIdx; while(szIdx != exit) / 对象下标 objIdx = atoi(szIdx.c_str(); objIdx = max(0, min(objIdx, psNum);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教六年级下册期末数学模拟真题题目经典套题答案
- 南阳市部编版四年级语文阅读理解解题技巧专题练习(附答案)
- 备战中考化学与酸和碱的中和反应有关的压轴题附详细答案
- 运城市语文五年级下册期末复习试题
- 【语文】北京市半步桥小学四年级下册期末复习试题(含答案)
- 泉州市七年级上学期期中地理试题及答案
- 2025年全国焊工操作证理论考试题库含答案
- 2025年建筑安全资质考试题库含答案
- 消毒员考试题库及答案
- 安全生产与职业健康目标管理制度
- 2025四川达州宣汉县国有资产管理服务中心县属国有企业招聘劳动合同职工26人笔试历年参考题库附带答案详解
- 新教科版小学1-6年级科学需做实验目录
- 24春国家开放大学《农业推广》调查报告参考答案
- 山西省职校技能大赛(植物病虫害防治赛项)参考试题库(含答案)
- 安全生产培训内容
- 酒店设施维护与管理的重要性与实践:延长设备使用寿命降低维修成本
- 老年人认知障碍的早期识别与干预
- 新人教版版PEP小学英语(3-6年级)单词表(带音标)
- 小兵张嘎夺枪记(课本剧)
- 《电子商务法律法规》课程标准
- 医院关于印发《即时检验临床应用管理办法》的通知
评论
0/150
提交评论