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