第11周 【项目2 - 职员有薪水了】(1)

问题描述:

(1)定义一个名为CPerson的类,有以下私有成员:姓名、身份证号、性别和年龄,成员函数:构造函数、析构函数、输出信息的函数。并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信息的函数。

[cpp] view
plain
copyprint?

  1. class CPerson
  2. {
  3. protected:
  4. string m_szName;
  5. string m_szId;
  6. int m_nSex;//0:women,1:man
  7. int m_nAge;
  8. public:
  9. CPerson(string name,string id,int sex,int age);
  10. void Show1();
  11. ~CPerson();
  12. };
  13. class CEmployee:public CPerson
  14. {
  15. private:
  16. string m_szDepartment;
  17. double m_Salary;
  18. public:
  19. CEmployee(string name,string id,int sex,int age,string department,double salary);
  20. void Show2();
  21. ~CEmployee();
  22. };
  23. int main()
  24. {
  25. string name,id,department;
  26. int sex,age;
  27. double salary;
  28. cout<<"input employee‘s name,id,sex(0:women,1:man),age,department,salary:\n";
  29. cin>>name>>id>>sex>>age>>department>>salary;
  30. CEmployee employee1(name,id,sex,age,department,salary);
  31. employee1.Show2();
  32. return 0;
  33. }

下面的运行结果供参考:

代码:

#include <iostream>
#include <cstring>
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);
    void Show1();
    ~CPerson();
};
CPerson::CPerson(string name,string id,int sex,int age):m_szName(name),m_szId(id),m_nSex(sex),m_nAge(age){}
CPerson::~CPerson(){}
void CPerson::Show1(){
    cout<<'\t'<<"name\t\t"<<"id\t"<<"sex\t"<<"age\n";
    cout<<'\t'<<m_szName<<'\t'<<m_szId<<'\t';
    if(m_nSex)cout<<"男";
        else cout<<"女";
    cout<<'\t'<<m_nAge<<'\12';
}
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();
};
CEmployee::CEmployee(string name,string id,int sex,int age,string department,double salary):CPerson(name,id,sex,age)
{
    m_szDepartment=department;
    m_Salary=salary;
}
CEmployee::~CEmployee(){}
void CEmployee::Show2(){
    cout<<'\t'<<"name\t\t"<<"id\t"<<"sex\t"<<"age\t"<<"department\t"<<"salary\n";
    cout<<'\t'<<m_szName<<'\t'<<m_szId<<'\t';
    if(m_nSex)cout<<"男";
        else cout<<"女";
    cout<<'\t'<<m_nAge<<'\t'<<m_szDepartment<<'\t'<<m_Salary<<'\12';
}
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;
}

运行结果:

时间: 2024-10-12 03:46:25

第11周 【项目2 - 职员有薪水了】(1)的相关文章

第11周 项目二-职员有薪水了(1)

(1)定义一个名为CPerson的类,有以下私有成员:姓名.身份证号.性别和年龄,成员函数:构造函数.析构函数.输出信息的函数.并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水.要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信息的函数. class CPerson { protected: string m_szName; string m_szId; i

第11周 项目二-职员有薪水了(2)

(2)字符串除了用C++扩充的string类型外,按C语言的传统,还可以用char *表示.请将类声明中的string全部改为char *后,重新写一遍程序(此时的区别是,类中有指针成员,构造和析构函数需要考虑深复制的问题了.) class CPerson { protected: char *m_szName; char *m_szId; int m_nSex;//0:women,1:man int m_nAge; public: CPerson(char *name,char *id,int

十一周 项目2 职员有薪水了 扩展

#include <iostream> #include <cstring> using namespace std; class CPerson { protected: char *m_szName; char *m_szId; int m_nSex;//0:women,1:man int m_nAge; public: CPerson(char *name,char *id,int sex,int age); void Show1(); ~CPerson(); }; CPer

十一周 项目2 职员有薪水了

#include <iostream> 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); void Show1(); ~CPerson(); }; CPerson::CPerson(string n

第十一周项目二-职员有薪水了

[项目2 - 职员有薪水了] (1)定义一个名为CPerson的类,有以下私有成员:姓名.身份证号.性别和年龄,成员函数:构造函数.析构函数.输出信息的函数.并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水.要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信息的函数. class CPerson { protected: string m_szName; s

C++第11周(春)项目2 - 职员有薪水了

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目2 - 职员有薪水了]定义一个名为CPerson的类,有以下私有成员:姓名.身份证号.性别和年龄,成员函数:构造函数.析构函数.输出信息的函数.并在此基础上派生出CEmployee类,派生类CEmployee添加了两个新的数据成员,分别用于表示部门和薪水.要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生

第十一周实践项目7————职员有薪水了

问题及代码: /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年5月9日 * 版本号:codeblock * * 问题描述: 职员有薪水了 * 输入描述: * 程序输出: 输出结果 */ #include <iostream> #include <string> #include <iomanip> using namespace std; c

第十一周上机实践项目2——职员有薪水了(1)

(1)定义一个名为CPerson的类,有以下私有成员:姓名.身份证号.性别和年龄,成员函数:构造函数.析构函数.输出信息的函数.并在此基础上派生出CEmployee类,派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水.要求派生类CEmployee的构造函数显示调用基类CPerson的构造函数,并为派生类CEmployee定义析构函数,定义输出信息的函数. 代码 #include <iostream> using namespace std; class CPerson {

第十一周上机实践项目2——职员有薪水了(2)

(2)字符串除了用C++扩充的string类型外,按C语言的传统,还可以用char 表示.请将类声明中的string全部改为char 后,重新写一遍程序(此时的区别是,类中有指针成员,构造和析构函数需要考虑深复制的问题了.) 代码 #include <iostream> #include <cstring> using namespace std; class CPerson { protected: char* m_szName; char* m_szId; int m_nSex