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;
}
C++走向远洋——45(警察和厨师、UML)的更多相关文章
- C++走向远洋——33(静态成员的应用)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:time.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——68(十六周、文件)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——67(项目二、洗牌)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——66(十五周阅读程序)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——65(十五周、项目一)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——64(项目三、数组类模板)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——63(项目二2、两个成员的类模板)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——62(项目二1、类模板)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- C++走向远洋——61(项目一、排序函数模板)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
随机推荐
- 吴裕雄--天生自然 pythonTensorFlow自然语言处理:PTB 语言模型
import numpy as np import tensorflow as tf # 1.设置参数. TRAIN_DATA = "F:\TensorFlowGoogle\\201806- ...
- UML-如何迭代
未完待续...
- 前端Js复习-前后台的搭建-结合Bootstrap和JQuery搭建vue项目
流式布局思想 """ 页面的尺寸改变动态改变页面布局,或是通过父集标签控制多个子标签,这种布局思想就称之为 - 流式布局思想 1) 将标签宽高设置成 百分比,就可以随屏幕 ...
- Table布局的优缺点
总结 Table布局的缺点是比其它html标记占更多的字节,会阻挡浏览器渲染引擎的渲染顺序,会影响其内部的某些布局属性的生效,优点就是用table做表格是完全正确的 Tables的缺点 1.Table ...
- ubuntu下pycharm的安装
打开百度,输入pycharm下载,点击下图的第二个英文链接. 进入后选择linux下的Community进行下载,而左边的Professional是要钱购买的,当然花钱的体验效果肯定会更好. 下载完成 ...
- MFC修改系统托盘的图标
最近开始学习MFC,发现程序在任务栏,窗口和exe都使用的默认图标,那么,我们想使用自己的图标该如何做? 第一种方法: 1.我们将自己要使用的icon的图标导入项目中. 资源视图-->xx.rc ...
- Cobbler_自动装系统
Cobbler —自动装系统的操作步骤 Cobbler是一款自动化操作系统安装的实现,与PXE安装系统的区别就是可以同时部署多个版本的系统,而PXE只能选择一种系统. Cobbler 的安装 # 在一 ...
- day10-time模块
import time print(time.time()) #时间戳1553070877.0166008 print(time.strftime('%Y-%m-%d %H %M %S')) #201 ...
- swift中的category,扩展
1.创建选择 :swift file 2.名称:UIBarButtonItem-Extension 3.category,便利构造函数 extension UIColor { /* 1.extensi ...
- mysql挖掘与探索--表操作命令 1
1.登录数据库>mysql -u root -p 数据库名称 2.查询所有数据表>show tables; 3.查询表的字段信息>desc 表名称; 4.1添加表字段 alter t ...