Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by Ababneh ( 4 years ago )
#include<iostream>
#include<string>
using namespace std;

//************************************************************
class person{
	string name;
	string SSN;
public:
	person(string n,string ssn)
	{
		name = n;
		SSN = ssn;
	}
	void print()
	{
		cout<<"Name: "<<name<<" SSN: "<<SSN<<endl;
	}
};
//***************************************************************
class Chef{
    string name;
	string id;
	double salary;
public:
	Chef(string n = "",string i = "",double s = 100)
	{
       name = n;
       id = i;
	   salary = s;
	}
	void print()
	{
		cout<<"Name: "<<name<<" id: "<<id<<" Salary: "<<salary<<endl;
	}
};

//***********************************************************************
class Restaurant{
	string name;
	person manager;
	Chef *chf;
	int maxChefsNum;
	int chefsNum;
public:
	Restaurant(string,string,string,int=20);
    Restaurant(Restaurant&);
    virtual ~Restaurant();// لانه في فنكشن ثاني virtual
    void insertChef(Chef);
    int getChefsNum();
    virtual void print();
    virtual string returnAddress()=0;
};
//***********************************************************************
//Implement Restaurant class missing functions here
	Restaurant::Restaurant(string rn,string pn ,string ss,int mx):manager(pn,ss){
      name=rn;
      maxChefsNum=mx;
      chefsNum=0;
      chf = new Chef[maxChefsNum];
      }
 Restaurant::Restaurant(Restaurant& r):manager(r.manager){
    name=r.name;
    //manager=r.maneger; ما الها داعي
    maxChefsNum=r.maxChefsNum;
    chefsNum=r.chefsNum;
    chf= new Chef[maxChefsNum];
    for(int i=0;i<chefsNum;i++){
    chf[i]=r.chf[i];
      }
 }
Restaurant::~Restaurant(){
  delete []chf;
}

void Restaurant::insertChef(Chef c)
	{
		if( chefsNum < maxChefsNum )
		   chf[chefsNum++] = c;
	}
int Restaurant::getChefsNum()
	{
		return chefsNum;
	}
    void Restaurant::print(){
      cout<<"Restaurant name: "<<name<<endl;
      cout<<"Restaurant manager:"<<endl;
      manager.print();
      cout<<"Number of chefs: "<<chefsNum<<endl;// or use get function
      cout<<"Chefs Information:"<<endl;
      for(int i=0;i<chefsNum;i++)
      chf[i].print();
    }
//***********************************************************************
class realRestaurant: public Restaurant{
	string address;// private function attention
	void print();
public:
	realRestaurant(string,string,string,int,string="");
    realRestaurant(realRestaurant&);
    string returnAddress();
};
//**********************************************************************
//Implement realRestaurant class missing functions here
//Restaurant(string rn,string pn ,string ss,int mx)
realRestaurant::realRestaurant(string rn,string pn ,string ss,int mx,string ads):Restaurant(rn,pn,ss,mx){
  address=ads;
  }
void realRestaurant::print(){
  Restaurant::print();
  cout<<"Restaurant address: "<<address<<endl;
  }
realRestaurant::realRestaurant(realRestaurant& r):Restaurant(r){
  address=r.address;
}
string realRestaurant::returnAddress(){
  return address;
}
//**********************************************************************
class onLineRestaurant: public Restaurant{
	string address;
	void print();
public:
	onLineRestaurant(string,string,string,int,string="");
    onLineRestaurant(onLineRestaurant&);
    string returnAddress();
};
//**********************************************************************
//Implement onLineRestaurant class missing functions here
onLineRestaurant::onLineRestaurant(string rn,string pn ,string ss,int mx,string ads):Restaurant(rn,pn,ss,mx){
  address=ads;
  }
void onLineRestaurant::print(){
   Restaurant::print();
  cout<<"Restaurant address: "<<address<<endl;
}
onLineRestaurant::onLineRestaurant(onLineRestaurant&r):Restaurant(r){
  address=r.address;
}
string onLineRestaurant::returnAddress(){
  return address;
}

//**********************************************************************
//Implement the non-member functions here
Restaurant& largestRestaurant (Restaurant& r1,Restaurant& r2){
  if(r1.getChefsNum()>r2.getChefsNum())
    return r1;
  else//  
    return r2;
}

//largestRestaurant function
//writeRestaurantInfo function
void writeRestaurantInfo (Restaurant& r){
  r.print();
}


//*************************************************************************
int main() {
  realRestaurant r1 ("just","Amr Ahmad","123456789",20,"Irbid");
  onLineRestaurant r2 ("grilMark","Salwa Khader","987654321",5,"grilMark.com.");
  Chef c1("Sara","1511",500);
  Chef c2("Khaled","1478",350);
  Chef c3("Basel","6547",200);
  r1.insertChef(c1);
  r1.insertChef(c2);
  r1.insertChef(c3);
  Restaurant& r=largestRestaurant (r1,r2);
  cout<<"The restaurant that has the largest number of chefs"<<endl;
  writeRestaurantInfo (r);



  return 0;
}

 

Revise this Paste

Your Name: Code Language: