由于校赛,OJ将于本周五(5.17)到周日停止服务

Problem 1409. -- 雇员类

1409: 雇员类

Time Limit: 1 Sec  Memory Limit: 65535 MB   64bit IO Format: %lld
Submitted: 1347  Accepted: 709
[Submit][Status][Web Board]

Description

设计雇员Employee类,包含私有数据成员name、address、zipcode和age分别用于表示姓名、地址、邮编、年龄,除年龄是整型外,其余都是char型的数据,其中姓名和地址不超过50个字符,邮编为6个数字字符。
其成员函数的声明如下:
    Employee (char*newName,char*newAddress,char*newZp,int newAge);//构造函数,参数分别用来初始化个成员数据的值
    void alterName(char*newName);//修改姓名
    void display();//显示该职员的所有信息(格式见Sample Output)
    bool IsEqual(char*ename);//实现当姓名和ename相等时返回真,否则返回假
    char * getname();  //返回雇员的姓名
按照上述要求完成设计任务,并用下面的main函数进行测试(提交时只需提交除main函数外的代码部分)
int main()
{
    char newName[50];
    char newAddress[50];
    char newZp[7];
    int newAge;
    int k=0;
    while(cin>>newName>>newAddress>>newZp>>newAge)
    {
        Employee emp1(newName,newAddress,newZp,newAge);
        k++;
        cout<<"Case #"<<k<<":"<<endl;
        cout<<"第一个人的信息:"<<endl;
        emp1.display();
        cin>>newName>>newAddress>>newZp>>newAge;
        Employee emp2(newName,newAddress,newZp,newAge);
        cout<<"第二个人的信息:"<<endl;
        emp2.display();
        if(emp1.IsEqual(emp2.getname()))
            cout<<"改名前两个人的姓名相同"<<endl;
        else cout<<"改名前两个人的姓名不相同"<<endl;
        emp1.alterName(emp2.getname());
        if(emp1.IsEqual(emp2.getname()))
            cout<<"改名后两个人的姓名相同"<<endl;
        else cout<<"改名后两个人的姓名不相同"<<endl;
    }
    return 0;
}

Input

每组测试数据包含两行,第一行数据包含第一个人的姓名、地址、邮编和年龄,第二行包含第二个人的姓名、地址、邮编和年龄

Output

每组测试数据包含13行,具体格式见Sample Output
第1行显示:“Case #1”,1表示测试数据组数
第2行显示:“第一个人的信息:”
第3-6行用来显示第一个人的信息(格式按照display函数的格式显示;
第7行显示:“第二个人的信息:”
第8-11行用来显示第二个人的信息(同第一个人)
第12行显示:“改名前两个人的姓名相同”或“改名前两个人的姓名不相同”
第13行显示:“改名后两个人的姓名相同”或“改名后两个人的姓名不相同”

Sample Input

张三 武汉市武汉科技大学黄家湖校区 430065 19
李四 武汉市武汉科技大学青山校区 430081 18

Sample Output

Case #1:
第一个人的信息:
姓名:张三
地址:武汉市武汉科技大学黄家湖校区
邮编:430065
年龄:19
第二个人的信息:
姓名:李四
地址:武汉市武汉科技大学青山校区
邮编:430081
年龄:18
改名前两个人的姓名不相同
改名后两个人的姓名相同

[Submit][Status][Web Board]