第十一周【项目3- 警察和厨师2】

/*
 *Copyright(c) 2016, 烟台大学计算机与控制工程学院
 *All rights reserved.
 *文件名称:main.cpp
 *作    者:张珩瑞
 *完成日期:2016年5月15日
 *版本号:v1.0
 *
 *问题描述:各个成员函数,只要输出相关的信息即可,暂不深究其业务功能
                     请为各个类增加构造函数
                     在实现中,可以增加需要的其他函数
                    自行编制main函数,完成初步的测试
                    为Polic类和Cook类增加了对象成员,请扩充代码
 *输入描述:无
 *输出描述:按要求输出
 */
#include<iostream>
using namespace std;
class Person
{
protected:
    int age;
    string name;
public:
    Person(int a,string nam);
    void show();
    void action();
    void getName();
};
Person:: Person(int a,string nam)
{
    age=a;
    name=nam;
}
void Person::show()
{
    cout<<"姓名:"<<name<<endl<<"年龄:"<<age<<endl;
}
void Person::action()
{
        cout<< Person::name<<"已经到达事发地,正在封锁现场。"<<endl;
        cout<<"*******************"<<endl;
}
class Polic:public  Person
{
private:
    int level;
    Person leader;
public:
    Polic(int policage,string policname,int policlevel,int leaderage,string leadername);
    void show();
    void arrest(Person);
};
Polic::Polic(int policage,string policname,int policlevel,int leaderage,string leadername):Person(policage,policname),leader(leaderage,leadername)
{
    level=policlevel;
}
void Polic::show()
{
    Person::show();
    cout<<"等级:"<<level<<endl;
    cout<<"*******************"<<endl<<"他的领导是:"<<endl;
    leader.show();
}
void Polic::arrest(Person a)
{
    cout<<"*******************"<<endl;
    action();
    a.show();
    cout<< Person::name<<"已经把小偷逮捕"<<endl;
    cout<<"*******************"<<endl;
}
class Cook:public Person
{
private:
    double salary;
    Polic protector;
public:
    Cook(int cookage,string cookname,double cooksalary,int page,string pname,int plevel,int lage,string lname);
    void show();
    string getCake(int);
};
Cook::Cook(int cookage,string cookname,double cooksalary,int page,string pname,int plevel,int lage,string lname):Person(cookage,cookname),protector(page,pname,plevel,lage,lname)
{
    salary=cooksalary;
}
string Cook::getCake(int n)
{
    string a;
    cout<<Person::name<<"得到"<<n<<"个蛋糕。"<<endl;
    cout<<"*******************"<<endl;
    return a;
}
void Cook::show()
{
    Person::show();
    cout<<"薪水:"<<salary<<endl;
    cout<<"*******************"<<endl<<"他所在区域警察是:"<<endl;
    protector.show();
    cout<<"*******************"<<endl;
}
int main()
{
    string s;
    Person xiaotou(26,"坏蛋小偷");
    Polic polic(25,"警察小李",5,50,"上司警察老王");
    polic.show();
    polic.arrest(xiaotou);
    Cook cook(32,"厨师小刘",5000,25,"小李",5,50,"上司警察老王");
    cook.show();
    s=cook.getCake(100);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值