第十周C++实验报告(二)

[cpp]  view plain copy
  1. #include <iostream>  
  2. #include <string.h>  
  3. #include <iomanip>//setw:设置输出数据的宽度,使用时应#include <iomanip.h>   
  4. using namespace std;  
  5.   
  6. class CPerson   
  7. {  
  8. protected:  
  9.     char *m_szName;  
  10.     char *m_szId;  
  11.     int m_nSex;//0:women,1:man  
  12.     int m_nAge;  
  13. public:  
  14.     CPerson(char *name,char *id,int sex,int age);  
  15.     void Show1();  
  16.     ~CPerson();  //需要释放建立对象时动态分配的内存  
  17. };  
  18.   
  19. class CEmployee:public CPerson  
  20. {  
  21. private:  
  22.     char *m_szDepartment;  
  23.     float m_Salary;  
  24. public:  
  25.     CEmployee(char *name,char *id,int sex,int age,char *department,float salary);  
  26.     void Show2();  
  27.     ~CEmployee();  
  28. };  
  29.   
  30. CEmployee::CEmployee(char *name,char *id,int sex,int age,char *department,float salary):CPerson(name,id,sex,age)  
  31. {  
  32.     m_szDepartment=new char[20];    
  33.     for(int i=0;i<20; ++i)    
  34.         m_szDepartment[i]=*(department+i);   
  35.     m_Salary=salary;  
  36. }  
  37.   
  38. CPerson::CPerson(char *name,char *id,int sex,int age)  
  39. {  
  40.     int i;  
  41.     m_szName=new char[20];    
  42.     for(i=0;i<20;++i)    
  43.         m_szName[i]=*(name+i);   
  44.     m_szId=new char[20];    
  45.     for(i=0;i<20;++i)    
  46.         m_szId[i]=*(id+i);    
  47.     m_nSex=sex;  
  48.     m_nAge=age;  
  49. }  
  50.   
  51. void CPerson::Show1()  
  52. {  
  53.     cout<<setiosflags(ios::left)<<setw(6)<<m_szName<<setw(20)<<m_szId<<setw(8)<<((m_nSex==0)?"women":"man")<<setw(11)<<m_nAge;   
  54. }  
  55.   
  56. void CEmployee::Show2()  
  57. {  
  58.     cout<<setiosflags(ios::left)<<setw(6)<<"name"<<setw(20)<<"id"<<setw(8)<<"sex"<<setw(11)<<"age"<<setw(16)<<"department"<<setw(11)<<"salary"<< endl;    
  59.     Show1();  
  60.     cout<<setiosflags(ios::left)<<setw(16)<<m_szDepartment<<setw(11)<<m_Salary<<endl;    
  61. }  
  62.   
  63. CPerson::~CPerson()  
  64. {  
  65.     delete [] m_szName;  
  66.     delete [] m_szId;  
  67. }  
  68.   
  69. CEmployee::~CEmployee()  
  70. {  
  71.     delete [] m_szDepartment;  
  72. }  
  73.   
  74. int main()  
  75. {  
  76.     char name[10],id[19],department[10];  
  77.     int sex,age;  
  78.     float salary;  
  79.     cout<<"input employee's name,id,sex(0:women,1:man),age,department,salary:\n";  
  80.     cin>>name>>id>>sex>>age>>department>>salary;  
  81.     CEmployee employee1(name,id,sex,age,department,salary);  
  82.     employee1.Show2();  
  83.     system("pause");  
  84.     return 0;  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值