📄 ep4_6.cpp
字号:
/* 4.6设计一个学校在册人员类(Person)。数据成员包括:身份证号(IdPerson),姓
名(Name),性别(Sex),生日(Birthday)和家庭住址(HomeAddress)。成员函数包
括人员信息的录入和显示。还包括构造函数与拷贝构造函数。设计一个合适的初始值。*/
#include<iostream>
#include<cstring>
using namespace std;
enum Tsex{mid,man,woman};
class Person{
char IdPerson[19]; //身份证号,18位数字
char Name[20]; //姓名
Tsex Sex; //性别
int Birthday; //生日,格式1986年8月18日写作19860818
char HomeAddress[50]; //家庭地址
public:
Person(char *,char *,Tsex,int,char *);
Person(Person &);
Person();
~Person();
void PrintPersonInfo();
void inputPerson();
//其他接口函数
};
Person::Person(char *id,char *name,Tsex sex,int birthday,char *homeadd){
cout<<"构造Person"<<endl;
strcpy(IdPerson,id);
strcpy(Name,name);
Sex=sex;
Birthday=birthday;
strcpy(HomeAddress,homeadd);
}
Person::Person(){
cout<<"缺省构造Person"<<endl;
IdPerson[0]='\0';Name[0]='\0';Sex=mid;
Birthday=0;HomeAddress[0]='\0';
}
Person::Person(Person & Ps){
cout<<"拷贝构造Person"<<endl;
strcpy(IdPerson,Ps.IdPerson);
strcpy(Name,Ps.Name);
Sex=Ps.Sex;
Birthday=Ps.Birthday;
strcpy(HomeAddress,Ps.HomeAddress);
}
Person::~Person(){
cout<<"析构Person"<<endl;
}
void Person::inputPerson(){
char ch;
cout<<"请输入身份证号,18位数字:"<<endl;
cin.getline(IdPerson,19);
cout<<"请输入姓名:"<<endl;
cin.getline(Name,20);
cout<<"请输入性别m或w:"<<endl;
cin>>ch;
if(ch=='m') Sex=man;
else Sex=woman;
cout<<"请输入生日,格式1986年8月18日写作19860818:"<<endl;
cin>>Birthday;
cin.get(); //吸收回车符,否则地址输不进去
cout<<"请输入地址:"<<endl;
cin.getline(HomeAddress,50);
}
void Person::PrintPersonInfo(){
int i;
cout<<"身份证号:"<<IdPerson<<'\n'<<"姓名:"<<Name<<'\n'<<"性别:";
if(Sex==man)cout<<"男"<<'\n';
else if(Sex==woman)cout<<"女"<<'\n';
else cout<<" "<<'\n';
cout<<"出生年月日:";
i=Birthday;
cout<<i/10000<<"年";
i=i%10000;
cout<<i/100<<"月"<<i%100<<"日"<<'\n'<<"家庭住址:"<<HomeAddress<<'\n';
}
int main(){
Person Ps1("320102811226161","朱海鹏",man,19811226,"南京市黄浦路1号"),Ps2(Ps1),Ps3;
Ps1.PrintPersonInfo();
Ps2.PrintPersonInfo();
Ps3.inputPerson();
Ps3.PrintPersonInfo();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -