首页 > 其他分享 >番外-软件设计(5)

番外-软件设计(5)

时间:2023-11-06 09:22:22浏览次数:38  
标签:cout 软件设计 番外 Dog public class Cat void

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。

实验要求:

1. 画出对应的类图;

2.提交源代码;

#include<iostream>

using namespace std;

class Cat{

public:

    virtual void miao()=0;

    virtual void catchs()=0;

};

class Dog{

public:

    virtual void wang()=0;

    virtual void run()=0;

};

class RealCat:public Cat{

public:

    void miao(){

        cout<<"喵喵叫!"<<endl;

    }

    void catchs(){

        cout<<"抓老鼠!"<<endl;

    }

};

class RealDog:public Dog{

public:

    void wang(){

        cout<<"汪汪叫!"<<endl;

    }

    void run(){

        cout<<"跑跑跑!"<<endl;

    }

};

class Adapter:public Cat,public Dog{

private:

    static Cat *cat;

    static Dog *dog;

public:

    void setCat(Cat *c){

        cat=c;

    }

    void setDog(Dog *d){

        dog=d;

    }

    void wang(){

    }

    void catchs(){

    }

    void run(){

        cout<<"小狗学小猫!"<<endl;

        cat->catchs();

    }

    void miao(){

        cout<<"小猫学小狗:"<<endl;

        dog->wang();

    }

};

Cat* Adapter::cat=new RealCat();

Dog* Adapter::dog=new RealDog();

int main(){

    Adapter adapter;

    adapter.run();

    adapter.miao();

    return 0;

}

3.注意编程规范。

标签:cout,软件设计,番外,Dog,public,class,Cat,void
From: https://www.cnblogs.com/zjsdbk/p/17811820.html

相关文章

  • 番外-软件设计(6)
    用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求:1. 画出对应的类图;2.提交源代码;packagetest9; publicclassBusimplementsTransport{    @Override    publicvoidrun(){        System.out.print("Bus"......
  • 软件设计1
    [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。1,关联关系  2,依赖关系  3,泛化关系  4,接口与实现关系    [实验任务二]:单一职责原则登录模块在实际项目开发中很常见,请按照教......
  • 番外-软件设计(3)
    用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。实验要求:1. 画出对应的类图;2.提交源代码(用C++完成);#include "stdafx.h"using namespace std; class AbstractVector{public: virtual ......
  • 番外-软件设计(4)
    仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;2.提交源代码;1.Clientpackage Singleton_pattern; public class Client{public static void main(String[] args){StudentIDstu1,stu2;stu1=StudentID.getStudentID();......
  • 软件设计实验7:单例模式
    实验7:单例模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;  2......
  • 软件设计实验6:原型模式
     实验6:原型模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解原型模式的动机,掌握该模式的结构;2、能够利用原型模式解决实际问题。 [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量......
  • 软件设计实验4:抽象工厂模式
    实验4:抽象工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。 [实验任务一]:人与肤色使用抽象工厂模式,完成下述产品等级结构: 实验要求:1. 画出对应的类图; 2. 提交源代......
  • 软件设计实验5:建造者模式
    实验5:建造者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解建造者模式的动机,掌握该模式的结构;2、能够利用建造者模式解决实际问题。 [实验任务一]:计算机组装使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起......
  • 软件设计实验1:UML与面向对象程序设计原则
    实验1:UML与面向对象程序设计原则本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、掌握面向对象程序设计中类与类之间的关系以及对应的UML类图;2、理解面向对象程序设计原则。 [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关......
  • 软件设计实验2:简单工厂模式
    实验2:简单工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解简单工厂模式的动机,掌握该模式的结构;2、能够利用简单工厂模式解决实际问题。 [实验任务一]:女娲造人使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参......