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;
    }


  • 相关阅读:
    c# 图文添加文字斜水印 优化
    c# 图文添加文字斜水印
    c# bool类型和int类型的互转
    在xcode中新建项目使用Image.xcassets时不显示自定义图片
    修改SearchBar的取消按钮Cancel为中文
    生成新订单号
    java LineNumberReader的使用
    深入浅出多线程——ReentrantLock (二)
    深入浅出多线程——ReentrantLock (一)
    深入浅出多线程——线程基础篇
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232227.html
Copyright © 2011-2022 走看看