C++实验一 类和对象

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;
}

猜你喜欢

转载自blog.csdn.net/qq_45876197/article/details/106490238
今日推荐