zoukankan      html  css  js  c++  java
  • 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;
    }


  • 相关阅读:
    180726-InfluxDB基本概念小结
    180725-InfluxDB-v1.6.0安装和简单使用小结
    zepto的tap事件的点透问题的几种解决方案
    ZeroclipboardJS+flash实现将内容复制到剪贴板实例
    HighchartsJS创建点状带标识的图表实例
    HighchartsJS创建环形带标识的图表实例
    Bootstrap 4上线啦!!!
    jquery插件jquery.LightBox.js之点击放大图片并左右点击切换图片(仿相册插件)
    如何通过js和jquery获取图片真实的宽度和高度
    js判断图片加载完成后获取图片实际宽高
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232227.html
Copyright © 2011-2022 走看看