第十一周项目3.2 警察和厨师 修改

/*
 *Copyright(c) 2016, 烟台大学计算机与控制工程学院
 *All rights reserved.
 *文件名称:main.cpp
 *作    者:李德坤
 *完成日期:2016年5月2日
 *版本号:v1.0
 *
 *问题描述:各个成员函数,只要输出相关的信息即可,暂不深究其业务功能
                     请为各个类增加构造函数
                     在实现中,可以增加需要的其他函数
                    自行编制main函数,完成初步的测试
                    为Polic类和Cook类增加了对象成员,请扩充代码
 *输入描述:无
 *输出描述:按要求输出
 */
#include<iostream>
using namespace std;
class Person
{
public:
    Person(int pa,string pn);//Person构造函数
    void action();
    string getName();//得到名字
    void personshow();
private:
    int age;
    string name;
};
Person::Person(int pa,string pn)
{
    age=pa;
    name=pn;
}
void Person::action()//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
    cout<<getName()<<"已经到达现场。"<<endl;
}
string Person::getName()
{
    return name;
}
void Person::personshow()
{
    cout<<"姓名:"<<name<<endl<<"年龄:"<<age<<endl;
}
class Polic:public Person
{
public:
    void arrest(Person);
    Polic(int policage,string policname,int policlevel,int leaderage,string leadername);//Polic构造函数
    void policshow();
private:
    int level;
    Person leader;
};
Polic::Polic(int policage,string policname,int policlevel,int leaderage,string leadername):Person(policage,policname),leader(leaderage,leadername)
{
    level=policlevel;
}
void Polic::arrest(Person p)
{
    cout<<getName()<<"已经把"<<p.getName()<<"逮捕。"<<endl;
}
void Polic::policshow()
{
    string m;
    personshow();
    m=getName();
    cout<<m<<"的领导是:"<<endl;
    leader.personshow();
    cout<<endl;
}
class Cook:public Person
{
public:
    string getCake(int );
    Cook(int ca,string cn,double cs,int pta,string ptn,int ptl,int pla,string pln);
    void cookshow();
private:
    double salary;
    Polic protector;
};
Cook::Cook(int ca,string cn,double cs,int pta,string ptn,int ptl,int pla,string pln ):Person(ca,cn),protector(pta,ptn,ptl,pla,pln)
{
    salary=cs;
}
string Cook::getCake(int a)
{
    string g;
    cout<<getName()<<"给"<<protector.getName()<<a<<"个蛋糕。"<<endl;
    return g;
}
void Cook::cookshow()
{
    string m;
    personshow();
    m=getName();
    cout<<m<<"的薪水是:"<<salary<<endl;
    cout<<m<<"所在区域的警察是:"<<endl;
    protector.policshow();
}
int main()
{
    Polic s(25,"警察小李",5,50,"警察老王");
    s.policshow();
    Cook c(30,"厨师小刘",5000,25,"警察小李",5,50,"警察老王");
    c.cookshow();
    Person x(30,"小偷赵");
    s.action();
    s.arrest(x);
    c.getCake(100);
    return 0;
}

第十一周项目3.2 警察和厨师 修改_第1张图片

你可能感兴趣的:(C++)