예제 #1
0
 Pizza *orderPizza(std::string type) {
     Pizza *pizza = m_factory->createPizza(type);
     pizza->prepare();
     pizza->bake();
     pizza->cut();
     pizza->box();
     return pizza;
 }
Pizza* PizzaStore::orderPizza(string type) {
    Pizza* pizza = createPizza(type);

    pizza->prepare();
    pizza->bake();
    pizza->cut();
    pizza->box();

    return pizza;
}
예제 #3
0
int main(int argc, char *argv[]) {
  auto *factory = new SimplePizzaFactory();
  auto *store = new PizzaStore(factory);

  Pizza *pizza = store->orderPizza("cheese");
  std::cout << "We ordered a " << pizza->getName() << "\n";
  std::cout << pizza->toString() << "\n";

  pizza = store->orderPizza("veggie");
  std::cout << "We ordered a " << pizza->getName() << "\n";
  std::cout << pizza->toString() << "\n";

  return 0;
}
예제 #4
0
int main() {
    Cook cook;
	PizzaBuilder* VegPizzaBuilder = new Builder::VegPizzaBuilder();
	PizzaBuilder* NonVegPizzaBuilder   = new Builder::NonVegPizzaBuilder();
 
	cook.setPizzaBuilder(VegPizzaBuilder);
	cook.constructPizza();
 
	Pizza* veg = cook.getPizza();
	veg->open();
 
	cook.setPizzaBuilder(NonVegPizzaBuilder);
	cook.constructPizza();
 
	delete VegPizzaBuilder;
	delete NonVegPizzaBuilder;
	delete veg;  
	getch();  
    return 0;
}
예제 #5
0
int main() {

    PizzaStore *nyStore = new NYPizzaStore();
    PizzaStore *chicagoStore = new ChicagoPizzaStore();

    Pizza *pizza = nyStore->orderPizza("cheese");
    std::cout << "Ethan ordered a " << pizza->getName() << std::endl;
    delete pizza;


    pizza = chicagoStore->orderPizza("cheese");
    std::cout << "Joel ordered a " << pizza->getName() << std::endl;
    delete pizza;

    pizza = nyStore->orderPizza("clam");
    std::cout << "Ethan ordered a " << pizza->getName() << std::endl;
    delete pizza;

    pizza = chicagoStore->orderPizza("clam");
    std::cout << "Joel ordered a " << pizza->getName() << std::endl;
    delete pizza;

    pizza = nyStore->orderPizza("pepperoni");
    std::cout << "Ethan ordered a " << pizza->getName() << std::endl;
    delete pizza;

    pizza = chicagoStore->orderPizza("pepperoni");
    std::cout << "Joel ordered a " << pizza->getName() << std::endl;
    delete pizza;

    pizza = nyStore->orderPizza("veggie");
    std::cout << "Ethan ordered a " << pizza->getName() << std::endl;
    delete pizza;

    pizza = chicagoStore->orderPizza("veggie");
    std::cout << "Joel ordered a " << pizza->getName() << std::endl;
    delete pizza;

    delete nyStore;
    delete chicagoStore;

    return 0;
}
예제 #6
0
int main()
{
	Cook cook;
	PizzaBuilder* hawaiianPizzaBuilder = new HawaiianPizzaBuilder;
	PizzaBuilder* spicyPizzaBuilder   = new SpicyPizzaBuilder;
 
	cook.setPizzaBuilder(hawaiianPizzaBuilder);
	cook.constructPizza();
 
	Pizza* hawaiian = cook.getPizza();
	hawaiian->open();
 
	cook.setPizzaBuilder(spicyPizzaBuilder);
	cook.constructPizza();
 
	Pizza* spicy = cook.getPizza();
	spicy->open();
 
	delete hawaiianPizzaBuilder;
	delete spicyPizzaBuilder;
	delete hawaiian;  
	delete spicy;     
}
예제 #7
0
Pizza *Pizza_Store::order_pizza(std::string type)
{
	Pizza *pizza = create_pizza(type);
	cout << "--- Making a " << pizza->get_name() << " ---" << endl;
	pizza->prepare();
	pizza->bake();
	pizza->cut();
	pizza->box();
	return pizza;
}
예제 #8
0
int Pizza_Test_Drive::main(int argc, char *argv[])
{
	Pizza_Store *ny_store = new NY_Pizza_Store();
	Pizza_Store *chicago_store = new Chicago_Pizza_Store();

	Pizza *pizza = ny_store->order_pizza("cheese");
	cout << "Ethan ordered a " << pizza->get_name() << endl;
	delete pizza;

	pizza = chicago_store->order_pizza("cheese");
	cout << "Joel ordered a " << pizza->get_name() << endl;
	delete pizza;

	pizza = ny_store->order_pizza("clam");
	cout << "Ethan ordered a " << pizza->get_name() << endl;
	delete pizza;

	pizza = chicago_store->order_pizza("clam");
	cout << "Joel ordered a " << pizza->get_name() << endl;
	delete pizza;

	pizza = ny_store->order_pizza("pepperoni");
	cout << "Ethan ordered a " << pizza->get_name() << endl;
	delete pizza;

	pizza = chicago_store->order_pizza("pepperoni");
	cout << "Joel ordered a " << pizza->get_name() << endl;
	delete pizza;

	pizza = ny_store->order_pizza("veggie");
	cout << "Ethan ordered a " << pizza->get_name() << endl;
	delete pizza;

	pizza = chicago_store->order_pizza("veggie");
	cout << "Joel ordered a " << pizza->get_name() << endl;
	delete pizza;

	return 0;
}
예제 #9
0
파일: Stock.cpp 프로젝트: alexlevy0/Plazza
bool		Stock::checkIngredients(const Pizza &p)
{
  const	bool	*tmp;
  int		i;

  i = -1;
  tmp = p.getIng();
  while (++i < ING_NBR)
    {
      if (tmp[i] && _ingredients[i] < 1)
	return (false);
    }
  i = -1;
  pthread_mutex_lock(&_sMutex);
  while (++i < ING_NBR)
    {
      if (tmp[i])
	_ingredients[i] -= 1;
    }
  pthread_mutex_unlock(&_sMutex);
  return (true);
}
예제 #10
0
/*
 * Create all available pizzas and print their prices
 */
void pizza_information( PizzaFactory::PizzaType pizzatype )
{
        Pizza* pizza = PizzaFactory::createPizza(pizzatype);
        std::cout << "Price of " << pizzatype << " is " << pizza->getPrice() << std::endl;
        delete pizza;
}
예제 #11
0
void menuglowne(int wybor)
{
	while(wybor != 0 )
	{
		cout<<"\n1. Zakup gotowej pizzy!\n"
			<<"2. Stworz wlasna pizze!\n\n"
			<<"0. EXIT!\n"
			<<"\nWybierz odpowiednia opcje: ";
		while(!(cin>>wybor))
		{
			cout<<"Musisz podac liczbe! ";
			cin.clear();
			cin.sync();
		};
		switch(wybor)
		{
		case 0:
			cout<<"Dzieki za wizyte! Zapraszamy ponownie!";
			break;

		case 1:
			{
				int wybor_pi=1;
				while(wybor_pi != 0 )
				{
					cout<<"\tOto pizze w naszym asortymencie:\n"
						<<"\t1. Margherita\n\t2. Funghi\n"
						<<"\t3. Neapolitana\n\t4. Dipollo\n"
						<<"\t5. Pepperoni\n\t6. Hawajska\n"
						<<"\t7. Amore\n\t8. Diabelska\n"
						<<"\t9. Rafaello\n\n\t0. EXIT \n"
						<<"\nWybierz odpowiednia opcje: ";

					while(!(cin>>wybor_pi))
					{
						cout<<"Musisz podac liczbe! ";
						cin.clear();
						cin.sync();
					}

					switch(wybor_pi)
					{
					case 0:
						cout<<"Powrot do menu glownego!"<<endl;
						break;

					case 1:
						{
							Pizza margherita;
							margherita.nazwa="Margherita";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(2);
							wegeherita.skladniki[1]=wegeherita.tekstenum(5);

							Mieso miesoherita;
							miesoherita.ilosc=1;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(0);
							margherita(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							margherita.cena_pizzy=racherita.wystaw_rachunek(ciasherita, margherita, dodaherita);
							cout<<margherita;

							zaplac(margherita.cena_pizzy);
							break;
						}


					case 2:
						{
							Pizza funghi;
							funghi.nazwa="Funghi";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(3);
							wegeherita.skladniki[1]=wegeherita.tekstenum(7);

							Mieso miesoherita;
							miesoherita.ilosc=1;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(5);
							funghi(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							funghi.cena_pizzy=racherita.wystaw_rachunek(ciasherita, funghi, dodaherita);
							cout<<funghi;

							zaplac(funghi.cena_pizzy);
							break;
						}


					case 3:
						{
							Pizza neapolitana;
							neapolitana.nazwa="Neapolitana";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(3);
							wegeherita.skladniki[1]=wegeherita.tekstenum(7);

							Mieso miesoherita;
							miesoherita.ilosc=1;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(5);
							neapolitana(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							neapolitana.cena_pizzy=racherita.wystaw_rachunek(ciasherita, neapolitana, dodaherita);
							cout<<neapolitana;

							zaplac(neapolitana.cena_pizzy);
							break;
						}


					case 4:
						{
							Pizza dipollo;
							dipollo.nazwa="Dipollo";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(3);
							wegeherita.skladniki[1]=wegeherita.tekstenum(7);

							Mieso miesoherita;
							miesoherita.ilosc=1;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(5);
							dipollo(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							dipollo.cena_pizzy=racherita.wystaw_rachunek(ciasherita, dipollo, dodaherita);
							cout<<dipollo;

							zaplac(dipollo.cena_pizzy);
							break;
						}


					case 5:
						{
							Pizza pepperoni;
							pepperoni.nazwa="Pepperoni";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(3);
							wegeherita.skladniki[1]=wegeherita.tekstenum(7);

							Mieso miesoherita;
							miesoherita.ilosc=1;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(5);
							pepperoni(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							pepperoni.cena_pizzy=racherita.wystaw_rachunek(ciasherita, pepperoni, dodaherita);
							cout<<pepperoni;

							zaplac(pepperoni.cena_pizzy);
						}
						break;

					case 6:
						{
							Pizza hawajska;
							hawajska.nazwa="Hawajska";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(1);
							wegeherita.skladniki[1]=wegeherita.tekstenum(2);

							Mieso miesoherita;
							miesoherita.ilosc=1;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(5);
							hawajska(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							hawajska.cena_pizzy=racherita.wystaw_rachunek(ciasherita, hawajska, dodaherita);
							cout<<hawajska;

							zaplac(hawajska.cena_pizzy);
						}
						break;

					case 7:
						{
							Pizza amore;
							amore.nazwa="Amore";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=4;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(3);
							wegeherita.skladniki[1]=wegeherita.tekstenum(7);
							wegeherita.skladniki[2]=wegeherita.tekstenum(4);
							wegeherita.skladniki[3]=wegeherita.tekstenum(6);

							Mieso miesoherita;
							miesoherita.ilosc=2;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(5);
							miesoherita.skladniki[0]=miesoherita.tekstenum(2);
							amore(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							amore.cena_pizzy=racherita.wystaw_rachunek(ciasherita, amore, dodaherita);
							cout<<amore;

							zaplac(amore.cena_pizzy);
						}
						break;

					case 8:
						{
							Pizza diabelska;
							diabelska.nazwa="Diabelska";

							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(1);
							wegeherita.skladniki[1]=wegeherita.tekstenum(6);

							Mieso miesoherita;
							miesoherita.ilosc=2;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(1);
							miesoherita.skladniki[1]=miesoherita.tekstenum(4);
							diabelska(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							diabelska.cena_pizzy=racherita.wystaw_rachunek(ciasherita, diabelska, dodaherita);
							cout<<diabelska;

							zaplac(diabelska.cena_pizzy);
						}
						break;

					case 9:
						{
							Pizza rafaello;
							rafaello.nazwa="Rafaello";
							Ciasto ciasherita;
							ciasherita.nadaj_ksztalt();

							Wege wegeherita;
							wegeherita.ilosc=2;
							wegeherita.skladniki=new string[wegeherita.ilosc];

							wegeherita.skladniki[0]=wegeherita.tekstenum(3);
							wegeherita.skladniki[1]=wegeherita.tekstenum(2);

							Mieso miesoherita;
							miesoherita.ilosc=3;
							miesoherita.skladniki=new string[miesoherita.ilosc];
							miesoherita.skladniki[0]=miesoherita.tekstenum(5);
							miesoherita.skladniki[1]=miesoherita.tekstenum(1);
							miesoherita.skladniki[2]=miesoherita.tekstenum(3);
							rafaello(wegeherita, miesoherita);

							Dodatki dodaherita;
							dodaherita.dorzuc_do_zamowienia();
							Rachunek racherita;
							rafaello.cena_pizzy=racherita.wystaw_rachunek(ciasherita, rafaello, dodaherita);
							cout<<rafaello;

							zaplac(rafaello.cena_pizzy);
						}
						break;

					default:
						cout<<"Brak takiej opcji! Sproboj raz jeszcze!\n";
						break;
					};
				}
			}
			break;
			break;

		case 2:
			{
				cout<<"Wybrales stworzenie nowej pizzy!\n";
				Pizza stwor;
				cout<<"Podaj nazwe tworzonej przez siebie Pizzy: ";
				cin>>stwor.nazwa;
				stwor.tworzenie();
			}
			break;

		default:
			cout<<"Brak takiej opcji! Sproboj raz jeszcze!\n";
			break;
		}
	};
}
예제 #12
0
파일: Factory.cpp 프로젝트: xiaoy/Exercise
int main() {
	PizzaStore *store = new NyStylePizzaStore;
	Pizza* pizza = store->OrderPizza(PizzaStore::VEGGIE);
	std::cout<<pizza->GetPizzaName()<<"\n";
}