📄 person.h
字号:
#ifndef PERSON_H
#define PERSON_H
#include <iostream>
#include <string>
#include "date.h"
#include "ssn.h"
using namespace std ;
class Person
{
public:
enum Sex { UNKNOWN, MALE, FEMALE } ;
enum MaritalStatus { SINGLE, MARRIED, DIVORCED, WIDOWED } ;
Person( const string& nm = "" ) : name( nm ), sex( UNKNOWN ), mstatus( SINGLE ) { }
virtual ~Person( void ) { }
void setName( const string& nm )
{ name = nm ; }
void setAddress( const string& addr )
{ address = addr ; }
void setPhone( const string& phon )
{ phone = phon ; }
void setSSN( const SSN sn )
{ ssn = sn ; }
void setDob( const Date& dtb )
{ dob =dtb ; }
void setSex( Sex sx )
{ sex = sx ; }
void setMaritalStatus( MaritalStatus st )
{ mstatus = st ; }
const string& getName( void ) const
{ return name ; }
const string& getAddress( void ) const
{ return address ; }
const string& getPhone( void ) const
{ return phone ; }
SSN getSSN( void ) const
{ return ssn ; }
const Date& getDob( void ) const
{ return dob ; }
Sex getSex( void ) const
{ return sex ; }
MaritalStatus getMaritalStatus( void ) const
{ return mstatus ; }
virtual void formattedDisplay( ostream& os ) = NULL ;
protected:
string name ;
string address ;
string phone ;
SSN ssn ;
Date dob ;
Sex sex ;
MaritalStatus mstatus ;
} ;
void Person::formattedDisplay( ostream& os )
{
os << "Name: " << name << endl ;
os << "Address: " << address << endl ;
os << "Phone: " << phone << endl ;
os << "SSN: " << ssn << endl ;
os << "Date of birth: " << dob << endl ;
os << "Sex: " ;
switch ( sex ) {
case Person::MALE:
os << "male" << endl ;
break ;
case Person::FEMALE:
os << "female" << endl ;
break ;
default:
os << "unknown" << endl ;
}
os << "Marital status:" ;
switch ( getMaritalStatus() ) {
case Person::SINGLE:
os << "single" << endl ;
break ;
case Person::MARRIED:
os << "married" << endl ;
break ;
case Person::DIVORCED:
os << "divorced" << endl ;
break ;
case Person::WIDOWED:
os << "widowed" << endl ;
default:
os << "unknown" << endl ;
break ;
}
}
ostream& operator << ( ostream &os, const Person &person )
{
os
<< person.getName() << endl
<< person.getAddress() << endl
<< person.getPhone() << endl
<< person.getSSN() << endl
<< person.getDob() << endl
<< person.getSex() << endl
<< person.getMaritalStatus() << endl ;
return os ;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -