#include <iostream>
using namespace std;

// Build the product desktop

class Desktop
{
  public:
  string monitor;
  string keyboard;
  string cpu;
  string mouse;

  void setmonitor(string pmonitor)
  {
    monitor = pmonitor;
  }

  void setkeyboard(string pkeyboard)
  {
    keyboard = pkeyboard;
  }
  
  void setcpu(string pcpu)
  {
    cpu = pcpu;
  }

  void setmouse(string pmouse)
  {
    mouse = pmouse;
  }
  
  void display()
  {
      cout<<"Monitor is : "<<monitor<<endl;
      cout<<"Keyboard is : "<<keyboard<<endl;
      cout<<"CPU is : "<<cpu<<endl;
      cout<<"Mouse is : "<<mouse<<endl;
  }

};


class DesktopBuilder
{
  protected:
    Desktop pDesktop;
   public: 
    virtual void buildmonitor() = 0 ;
    virtual void buildkeyboard() = 0;
    virtual void buildcpu() = 0;
    virtual void buildmouse() = 0; 
    Desktop getdesktop()
    {
       return pDesktop;
    }
     
};

class DellDesktopBuilder : public DesktopBuilder
{

   public:
   void buildmonitor()
   {
    pDesktop.setmonitor("Dell Monitor");
   }
   
   void buildkeyboard()
   {
    pDesktop.setkeyboard("Dell keyboard");
   }
   void buildcpu()
   {
    pDesktop.setcpu("Dell CPU");
   }
   void buildmouse()
   {
    pDesktop.setmouse("Dell Mouse");
   }

};

class HpDesktopBuilder : public DesktopBuilder
{

   public:
   void buildmonitor()
   {
    pDesktop.setmonitor("Hp Monitor");
   }
   
   void buildkeyboard()
   {
    pDesktop.setkeyboard("Hp keyboard");
   }
   void buildcpu()
   {
    pDesktop.setcpu("Hp CPU");
   }
   void buildmouse()
   {
    pDesktop.setmouse("Hp Mouse");
   }

};


class Director
{
     DesktopBuilder pdesktopbuilder;
     
     public:
     Director(DesktopBuilder desktopbuilder)
     {
       pdesktopbuilder = desktopbuilder;
     }

     Desktop getbuilder()
     {
         pdesktopbuilder.buildmonitor();
         pdesktopbuilder.buildkeyboard();
         pdesktopbuilder.buildcpu();
         pdesktopbuilder.buildmouse();
         return pdesktopbuilder.getdesktop();
         
     }
};



int main() {
    
   HpDesktopBuilder hpbuilder = new HpDesktopBuilder();
   Director director1 = new Director(hpbuilder);
   Desktop hpdesk = director1.getbuilder();

   //DellDesktopBuilder dellbuilder ;
   //Desktop dell = director.getbuilder(dellbuilder);

   hpdesk.display();
   //dell.display();
    
    
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: