第十一周项目4.1 教师干部信息
2016-05-02 16:24
246 查看
/* *Copyright(c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:李德坤 *完成日期:2016年5月2日 *版本号:v1.0 * *问题描述:分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。 要求: (1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。 (2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资)。 (3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。 (4)在类体中声明成员函数,在类外定义成员函数。 (5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。 *输入描述:无 *输出描述:按要求输出 */ #include<iostream> #include<cmath> using namespace std; class Teacher { public: Teacher(string n1,int a1,string sex1,string ad1,string te1,string title1); void display(); private: string name; int age; string sex; string adress; string tellnum; string title; }; Teacher::Teacher(string n1,int a1,string sex1,string ad1,string te1,string title1) { name=n1; age=a1; sex=sex1; adress=ad1; tellnum=te1; title=title1; } void Teacher::display() { cout<<"姓名:"<<name<<endl; cout<<"年龄:"<<age<<endl; cout<<"性别:"<<sex<<endl; cout<<"地址:"<<adress<<endl; cout<<"电话:"<<tellnum<<endl; cout<<"职称:"<<title<<endl; } class Carde { public: Carde(string cn,int ca,string csex,string cad,string ctell,string cpost); string getPost(); void display(); private: string name; int age; string sex; string adress; string tellnum; string post; }; Carde::Carde(string cn,int ca,string csex,string cad,string ctell,string cpost) { name=cn; age=ca; sex=csex; adress=cad; tellnum=ctell; post=cpost; } string Carde::getPost() { return post; } void Carde::display() { cout<<endl; cout<<"干部信息"<<endl; cout<<"姓名:"<<name<<endl; cout<<"年龄:"<<age<<endl; cout<<"性别:"<<sex<<endl; cout<<"地址:"<<adress<<endl; cout<<"电话:"<<tellnum<<endl; cout<<"职务:"<<post<<endl; cout<<endl; } class Teacher_Carde:public Teacher,public Carde { public: Teacher_Carde(double wage,string n1,int a1,string sex1,string ad1,string te1,string title1,string cn,int ca,string csex,string cad,string ctell,string cpost); void show(); private: double wages; }; Teacher_Carde::Teacher_Carde(double wage,string n1,int a1,string sex1,string ad1,string te1,string title1,string cn,int ca,string csex,string cad,string ctell,string cpost):Teacher(n1,a1,sex1,ad1,te1,title1),Carde(cn,ca,csex,cad,ctell,cpost) { wages=wage; } void Teacher_Carde::show() { string a; cout<<"教师干部信息"<<endl; Teacher::display(); a=getPost(); cout<<"职务:"<<a<<endl; cout<<"工资:"<<wages<<endl; } int main() { Teacher_Carde s(8000,"贺老师",35,"男","烟台市莱山区烟台大学","123456789","教授","贺老师",35,"男","烟台市莱山区烟台大学","123456789","学院主任"); cout<<"教师信息"<<endl; s.Teacher::display(); s.Carde::display(); s.Teacher_Carde::show(); return 0; }
相关文章推荐
- CentOS 6.0 图形(图解)安装教程
- Lucene 工作原理 之倒排索引
- CS231n Convolutional Neural Networks for Visual Recognition 课程翻译(一)
- 网站优化排名到首页到底要多久?
- Uva 514 Rails(栈应用)
- css三列布局,左边两个div固定,最右边宽度自适应
- AsyncTask的基本用法
- system.in的用法,system.out的用法。
- Hibernate持久化方法save和persist的区别
- gzip压缩笔记
- Java日期类
- 用SoapUI 测试Web Service
- Edit Distance
- 聪明的kk --- 搜索超时
- HDU 2444 The Accomodation of Students(判断是否是二分图及求最大匹配)
- [leetcode] Wildcard Matching 通配符匹配
- linux 下tomcat安装
- iOS面试前的一些准备(持续更新)
- ansible之service模块
- 终极版:Andorid手机流量监测思路与代码实现(一)