C++走向远洋——45(警察和厨师、UML)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhello * 完成日期:2016年5月8日 * 版本号:V1.0 * 问题描述:根据类图,写出程序 * 程序输入:无 * 程序输出:见运行结果 */ #include <iostream> using namespace std; class Person { public: Person(int, string); void action(); string getName() { return name; } private: int age; string name; }; Person::Person(int a, string n):age(a), name(n) {} void Person::action() { cout<<name<<" do some action"<<endl; } class Police: public Person { public: Police(int, string, int); void arrest(Person); private: int level; //级别 }; Police::Police(int a, string n, int l):Person(a,n),level(l) {} void Police::arrest(Person p) { cout<<" Police "<<getName()<<" arrest " <<p.getName()<<endl; } class Cook: public Person { public: Cook(int, string, double); void getCake(int); private: double salary; //薪水 }; Cook::Cook(int a, string n, double s):Person(a,n),salary(s) {} void Cook::getCake(int n) { cout<<" Cook "<<getName()<<" gave me " <<n<<" cakes."<<endl; } int main() { Person tom(110,"li"); Police jack(20,"Yang",2); Cook john(22,"Sun",4000); jack.arrest(li); john.getCake(4); return 0; }
(2)
#include <iostream> using namespace std; class Person { public: Person(int, string); void action(); string getName() { return name; } private: int age; string name; }; Person::Person(int a, string n):age(a), name(n) {} void Person::action() { cout<<name<<" do some action"<<endl; } 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; } 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"); jack.show(); john.show(); return 0; }