第十周实验报告(二)

来源:互联网 发布:js拖拽事件 编辑:程序博客网 时间:2024/06/14 08:10
#include <iostream>  #include <string.h>  #include <iomanip>//setw:设置输出数据的宽度,使用时应#include <iomanip.h>   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();  //需要释放建立对象时动态分配的内存  };    class CEmployee:public CPerson  {  private:      char *m_szDepartment;      float m_Salary;  public:      CEmployee(char *name,char *id,int sex,int age,char *department,float salary);      void Show2();      ~CEmployee();  };CEmployee::CEmployee(char *name,char *id,int sex,int age,char *department,float salary):CPerson(name,id,sex,age)  {      m_szDepartment=new char[20];        for(int i=0;i<20;++i)          m_szDepartment[i]=*(department+i);       m_Salary=salary;  }CPerson::CPerson(char *name,char *id,int sex,int age)  {      int i;      m_szName=new char[20];        for(i=0;i<20;++i)            m_szName[i]=*(name+i); //注意地址求法        m_szId = new char[20];        for(i=0;i<20;++i)            m_szId[i]=*(id+i); //注意地址求法       m_nSex=sex;      m_nAge=age;  }void CPerson::Show1()  {      cout<<setiosflags(ios::left)<<setw(6)<<m_szName<<setw(20)<<m_szId<<setw(8)<<((m_nSex==0)?"women":"man")<<setw(11)<<m_nAge;   }void CEmployee::Show2()  {      cout<<setiosflags(ios::left)<<setw(6)<<"name"<<setw(20)<<"id"<<setw(8)<<"sex"<<setw(11)<<"age"<<setw(16)<<"department"<<setw(11)<<"salary"<<endl;        Show1();      cout<<setiosflags(ios::left)<<setw(16)<<m_szDepartment<<setw(11)<<m_Salary<<endl;    } CPerson::~CPerson()  {      delete[] m_szName;      delete[] m_szId;  }CEmployee::~CEmployee()  {      delete[] m_szDepartment;  }int main()  {      char name[10],id[19],department[10];      int sex,age;      float 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();      system("pause");      return 0;  }


运行结果:

input employee's name,id,sex(0:women,1:man),age,department,salary:
miao 123 1 20 ABC 10000
name  id                  sex     age        department      salary
miao  123                 man     20         ABC             10000
请按任意键继续. . .

原创粉丝点击