第十一周 【项目2 - 职员有薪水了】
2015-05-31 16:33
302 查看
(1)定义一个名为CPerson的类,有以下私有成员:姓名、***号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信息的函数。
[cpp] view
plaincopyprint?
class CPerson
{
protected:
string m_szName;
string m_szId;
int m_nSex;//0:women,1:man
int m_nAge;
public:
CPerson(string name,string id,int sex,int age);
void Show1();
~CPerson();
};
class CEmployee:public CPerson
{
private:
string m_szDepartment;
double m_Salary;
public:
CEmployee(string name,string id,int sex,int age,string department,double salary);
void Show2();
~CEmployee();
};
int main()
{
string name,id,department;
int sex,age;
double salary;
cout<<"input employee's name,id,sex(0:women,1:man),age,department,salary:\n";
cin>>name>>id>>sex>>age>>department>>salary;
CEmployee employee1(name,id,sex,age,department,salary);
employee1.Show2();
return 0;
}
参考代码:
运行结果:
知识点运用及学习心得:
这里主要是加强我们对输入输出的格式的了解,还有构造函数。
[cpp] view
plaincopyprint?
class CPerson
{
protected:
string m_szName;
string m_szId;
int m_nSex;//0:women,1:man
int m_nAge;
public:
CPerson(string name,string id,int sex,int age);
void Show1();
~CPerson();
};
class CEmployee:public CPerson
{
private:
string m_szDepartment;
double m_Salary;
public:
CEmployee(string name,string id,int sex,int age,string department,double salary);
void Show2();
~CEmployee();
};
int main()
{
string name,id,department;
int sex,age;
double salary;
cout<<"input employee's name,id,sex(0:women,1:man),age,department,salary:\n";
cin>>name>>id>>sex>>age>>department>>salary;
CEmployee employee1(name,id,sex,age,department,salary);
employee1.Show2();
return 0;
}
参考代码:
/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2015年5月31日 *版 本 号:v1.0 */ #include <iostream> #include<iomanip> using namespace std; class CPerson { protected: string m_szName; string m_szId; int m_nSex;//0:women,1:man int m_nAge; public: CPerson(string name,string id,int sex,int age):m_szName(name),m_szId(id),m_nSex(sex),m_nAge(age){}; void Show1(); ~CPerson(); }; CPerson::~CPerson(){} void CPerson::Show1() { cout<<setw(10)<<m_szName<<setw(25)<<m_szId; if(m_nSex==0) cout<<setw(7)<<"women"; else cout<<setw(7)<<"man"; cout<<setw(5)<<m_nAge<<endl; } class CEmployee:public CPerson { private: string m_szDepartment; double m_Salary; public: CEmployee(string name,string id,int sex,int age,string department,double salary):CPerson (name,id,sex,age),m_szDepartment(department),m_Salary(salary){}; void Show2(); ~CEmployee(); }; CEmployee::~CEmployee(){} void CEmployee::Show2() { cout<<setw(10)<<"name"<<setw(25)<<"id"<<setw(7)<<"sex"<<setw(5)<<"age"<<setw(12)<<"department"<<setw(10)<<"salary"<<endl; cout<<setw(10)<<m_szName<<setw(25)<<m_szId; if(m_nSex==0) cout<<setw(7)<<"women"; else cout<<setw(7)<<"man"; cout<<setw(5)<<m_nAge; //由于基类CPerson的成员变量采用了protected属性,因此可采用上述述代码实现,否则若 //基类CPerson的成员变量采用了privated属性,则只能使用CPerson::Show();实现 cout<<setw(12)<<m_szDepartment<<setw(10)<<m_Salary<<endl; } int main() { string name,id,department; int sex,age; double salary; cout<<"input employee's name,id,sex(0:women,1:man),age,department,salary:\n"; cin>>name>>id>>sex>>age>>department>>salary; CEmployee employee1(name,id,sex,age,department,salary); employee1.Show2(); return 0; }
运行结果:
知识点运用及学习心得:
这里主要是加强我们对输入输出的格式的了解,还有构造函数。
相关文章推荐
- JavaScript模拟alert弹出框
- ul横向排列,ul下拉框
- java.lang.NullPointerException错误及其处理方式
- Word Search II
- js正则表达式总结
- vim列编辑模式
- 3D数学之-向量矩阵欧拉角和四元数
- <深入理解JavaScript>学习笔记(3)_全面解析Module模式
- 获取数据源数据的实现---Architecting Android
- 使用MyBatis Generator自动生成DAO以及实体类
- JAVA编程思想学习总结:第十三章字符串
- mysql 查询执行的流程
- BZOJ_1001 狼抓兔子
- java 打包 编译
- 实现多线程
- Android应用层View绘制流程与源码分析
- JAVA 单例设计模式
- PIE使IE支持CSS3圆角盒阴影与渐变渲染
- C++ 学习笔记(四) GCC常用参数
- 使用Python爬虫爬取妹子图图片