第十一周实践项目3-警察和厨师

问题及代码:

/*
 *Copyright(c)2016,烟台大学计算机与控制工程学院
 *All right reserved.
 *文件名称:77.cpp
 *作    者:董凯琦
 *完成日期:2016年5月6日
 *版 本 号: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);//警察逮捕的为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 zhang(20,"zhangsan");
    Police li(30,"lisi",4);
    Cook wang(25,"wangwu",5000);
    li.arrest(zhang);
    wang.getCake(10);
    return 0;
}

运行结果:

知识点总结:

从这个有趣的程序设计中,我们基本掌握住了基类与派生类之间的关系以及实现派生类函数的方法。

需要注意的是,即使派生类继承方式为公有,但是不能直接访问基类的私有数据成员。例如

    cout<<" Cook:"<<getName()<<" gave me " <<n<<" cakes."<<endl;

要通过基类的公有成员函数来间接访问私有数据成员

学习心得:

熟能生巧,在每个设计过程中要充分理解各个函数的含义。

时间: 2024-10-05 13:15:31

第十一周实践项目3-警察和厨师的相关文章

第十一周实践项目7————职员有薪水了

问题及代码: /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年5月9日 * 版本号:codeblock * * 问题描述: 职员有薪水了 * 输入描述: * 程序输出: 输出结果 */ #include <iostream> #include <string> #include <iomanip> using namespace std; c

第十一周实践项目1.1-点-圆-圆柱类族的设计

问题及代码: /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年5月6日 *版 本 号:v1.0 * *问题描述:按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: 先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: *输入描述: *程序输出:

第十一周实践项目1.3-点-圆-圆柱类族的设计

问题及代码: /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年5月6日 *版 本 号:v1.0 * *问题描述:按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为

第十一周实践项目2-存储班长信息的学生类

问题及代码: /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年5月6日 *版 本 号:v1.0 * *问题描述:请完成类中成员函数的定义 *输入描述: *程序输出:学生的信息 */ #include <iostream> using namespace std; class Stu { public: Stu(int n,string nam); void dis

第十一周实践项目2.2-储存班长信息的学生类(如果将基类数据成员改为私有的)

/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年5月6日 *版 本 号:v1.0 * *问题描述:请完成类中成员函数的定义 *输入描述: *程序输出:学生的信息 */ #include <iostream> using namespace std; class Stu { public: Stu(int n,string nam); void display();

第十一周实践项目1.2-点-圆-圆柱类族的设计

问题及代码: /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年5月6日 *版 本 号:v1.0 * *问题描述:按以下的提示,由基类的设计和测试开始,逐渐地完成各个类的设计,求出圆格柱体的表面积.体积并输出并且完成要求的计算任务: (1)先建立一个Point(点)类,包含数据成员x,y(坐标点),实现需要的成员函数,并设计main函数完成测试: (2)以Point为

第十一周实践项目4-教师兼干部类

问题及代码: /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:77.cpp *作 者:董凯琦 *完成日期:2016年5月6日 *版 本 号:v1.0 * *问题描述: 分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部).要求: (1)在两个基类中都包含姓名.年龄.性别.地址.电话等数据成员. (2)在Teacher类中还包含数据成员tit

第十一周实践项目(2)

问题及代码: /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年5月10日 * 版本号:codeblock * * 问题描述: * 输入描述: * 程序输出: 输出结果 */ #include<iostream> using namespace std; class A { public: A(){a=0;} A(int i) { a=i; } void print(

Python 编程快速上手 让繁琐工作自动化-第十一章实践项目 11.11.1命令行邮件程序

11.11.1 命令行邮件程序 编写一个程序,通过命令行接受电子邮件地址和文本字符串.然后利用selenium登录到你的邮件账号,将该字符串作为邮件,发送到提供的地址(你也许希望为这个程序建立一个独立的邮件账号).这是为程序添加通知功能的一种好方法.你也可以编写类似的程序,从Facebook 或Twitter 账号发送消息.这个项目弄了好几天,头都快炸了,终于弄好了代码如下:#!/usr/bin/env python#encoding:utf-8 '''@author:Kevinbr/>@aut