📄 person.h
字号:
#ifndef PERSON_CLASS
#define PERSON_CLASS
#include<iostream>
#include<iomanip>
#include<conio.h>
using namespace std;
extern int isInt(char s[]);
class Person
{
public:
char name[20];
char addr[100];
char marriage;
char alive;
char sex;
char deathdate[10];
int parentID;
int generation;
int year;
int month;
int day;
Person();
void setbirthdate();
void setdeathdate();
void outputPerson();
};
void Person::outputPerson()
{
//setiosflags(ios::left)输出数据左对齐;setw(n)设置域宽
cout<<setiosflags(ios::right)<<setw(4)<<year<<"."<<setw(2)<<month<<".";
cout<<resetiosflags(ios::right);//终止设置的输入格式
cout<<setiosflags(ios::left)<<setw(7)<<day<<setw(10)<<name<<setw(10)<<generation
<<setw(10)<<sex<<setw(10)<<alive<<setw(7)<<marriage<<setw(10)<<deathdate<<addr<<endl;
}
Person::Person()
{
memset(name,' ',20);
memset(addr,' ',100);
marriage='Y';
alive='N';
sex='M';
year=month=day=-1;
strcpy(deathdate,"不详");
parentID=-2;//默认为-2
generation=-1;
}
void Person::setbirthdate()
{
cout<<"是否输入出生日期(y/n):";
char t;
bool flag=true;
while(flag)
{
t=getch();
cout<<t<<endl;
if(t=='y')
{
flag=false;
char s[50];
cout<<"请输入出生年份:";
bool t=true;
while(t)
{
cin>>s;
if(isInt(s)!=-1)
{
year=isInt(s);
t=false;
}
else
cout<<"输入错误!!!\n请请重新输入:";
}
cout<<"请输入出生月份:";
t=true;
while(t)
{
cin>>s;
if(isInt(s)!=-1)
{
month=isInt(s);
t=false;
}
else
cout<<"输入错误!!!\n请请重新输入:";
}
cout<<"请输入出生日子:";
t=true;
while(t)
{
cin>>s;
if(isInt(s)!=-1)
{
day=isInt(s);
t=false;
}
else
cout<<"输入错误!!!\n请请重新输入:";
}
}
else if(t=='n')
flag=false;
else
{
cout<<"输入错误!!!"<<endl;
cout<<"请重新输入:";
}
}
}
void Person::setdeathdate()
{
bool flag=true;
if(alive!='Y')
{
while(flag)
{
cout<<"是否输入死亡日期(y/n)";
char t;
t=getch();
if(t=='y')
{
cin>>deathdate;
flag=false;
}
else if(t!='n')
cout<<"输入错误!!!\n请请重新输入:";
}
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -