第10、11周项目3-警察和厨师(2)

来源:互联网 发布:摄像头软件有哪些 编辑:程序博客网 时间:2024/05/17 03:38

问题及代码:

图片要求:

/**copyright (t) 2016,烟台大学计算机学院*All rights reserved.*文件名称:test.cpp*作者:张晴晴*完成日期:2016年5月17日*版本号:v1.0*问题描述:【项目-警察和厨师】 (1)根据下面的类图,定义各个类:  要求:各个成员函数,只要输出相关的信息即可,暂不深究其业务功能请为各个类增加构造函数在实现中,可以增加需要的其他函数自行编制main函数,完成初步的测试*输入描述:无*程序输出:如图片所示*/#include <iostream>using namespace std;class Person{public:    Person(int, string);    string getName(){return name;}private:    int age;    string name;};Person::Person(int a, string n):age(a), name(n) {}class Police: public Person{public:    Police(int a, string n, int l, int la, string ln);    void arrest(Person);    void show();private:    int level; //级别    Person leader;  //领导};Police::Police(int a, string n, int l, int la, string ln):Person(a,n),level(l),leader(la,ln) {}void Police::arrest(Person p){    cout<<"Police "<<getName()<<" arrest " <<p.getName()<<endl;    cout<<"Police "<<getName()<<" now is " <<level<<" level ."<<endl;}void Police::show(){    cout<<"Police "<<getName()<<", leader is " <<leader.getName()<<endl;}class Cook: public Person{public:    Cook(int a, string n, double s,int pa, string pn, int pl, int pla, string pln);//前三个厨师自己的,后三个警察的,最后两个是领导的。    void getCake(int);    void show();private:    double salary; //薪水    Police protector;  //厨师小店的片区警察};Cook::Cook(int a, string n, double s,int pa, string pn, int pl, int pla, string pln):    Person(a,n),salary(s),protector(pa,pn,pl,pla,pln) {}void Cook::getCake(int n){    cout<<"Cook "<<getName()<<" gave me " <<n<<" cakes."<<endl;}void Cook::show(){    cout<<"Cook "<<getName()<<" is protected by Police "<<protector.getName()<<endl;}int main(){    Person tom(120,"Tom");    Police jack(30,"Jack",2,43,"Jerry");    Cook john(24,"John",5000,30,"Jack",2,43,"Jerry");    john.getCake(10);    john.show();    jack.arrest(tom);    jack.show();    return 0;}


运行结果:


学习心得:

厨师的小区警察和警察的领导放在私有成员里,定义的分别是public和person型。

0 0
原创粉丝点击