c++实验一

设计一个用于人事管理的“人员”类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:编号、姓名、性别、出生日期、身份证号码。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的初始化和显示。本次实验要求设计以下函数:构造函数、复制构造函数、析构函数、内联成员函数、带默认形参值的成员函数。

#include <iostream>
#include <cstring>
using namespace std;
class Date//Date类
{
public:
Date(){}
Date(int y,int m,int d);
Date(Date &D);
void getin();//设置时间
void show();//展示时间
~Date(){}; //析构函数
private:
int year,month,day;
};
Date::Date(int y,int m,int d):year(y),month(m),day(d)
{
}
void Date:: getin()
{
cin>>year>>month>>day;
}
void Date:: show()
{
cout<<"出生日期:"<<year<<"-"<<month<<"-"<<day<<endl;
}
class Person//person类
{
public:
Person(){};//默认构造
Person(char *a,char *b,char *c,char *g,int y,int m,int d):birthday(y,m,d)//有参构造 ,初始化区域初始化内嵌函数!
{
strcpy(number,a);
strcpy(name,b);
strcpy(sex,c);
strcpy(idcard,g);
}
Person(Person&p);
void input();//输入函数
void output();//输出函数
~Person(){};//析构函数
private:
char number[20];
char name[20];
char idcard[30];
Date birthday;//内嵌对象
char sex[10];
};
Person ::Person(Person&p)
{ strcpy(number,p.number);
strcpy(name,p.name);
strcpy(sex,p.sex);
strcpy(idcard,p.idcard);
birthday=p.birthday;
}
void Person::input()
{
cout<<"录入数据:"<<endl;
cout<<"编号:";
cin>>number;
cout<<"姓名:";
cin>>name ;
cout<<"性别(male/female):";
cin>> sex;
cout<<"身份证号码:";
cin>>idcard;
cout<<"出生日期(XXXX,XX,XX):";
birthday.getin();
}
void Person::output()
{
cout<<"编号:"<<number<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"性别:"<<sex<<endl;
cout<<"身份证号码:"<<idcard<<endl;
cout<<"出生日期:";
birthday.show();
cout<<"编号"<<number<<"的"<<name<<"收录完毕!";
}
int main()
{
Date birthday;
Person p;
p.input();
cout<<endl;
p.output();
return 0;
}

posted @ 2020-05-14 14:27  我是个好孩子  阅读(214)  评论(0编辑  收藏  举报