hotovoooo
This commit is contained in:
@@ -27,7 +27,11 @@ Pizza::~Pizza() {
|
||||
}
|
||||
|
||||
double Pizza::getPrice() const {
|
||||
return basePrice;
|
||||
double temp=0;
|
||||
for (int i = 0; i < currentIngredients; i++) {
|
||||
temp +=ingredients[i]->getCost();
|
||||
}
|
||||
return basePrice+temp;
|
||||
}
|
||||
|
||||
string Pizza::printInfo() {
|
||||
|
||||
@@ -9,73 +9,70 @@ using namespace std;
|
||||
|
||||
|
||||
int main() {
|
||||
// 1. Dynamické vytvoření pizzerie (přes new)
|
||||
Pizzeria* pizzeria = new Pizzeria("Pizzerie u Lubije", 10);
|
||||
|
||||
// 2. Dynamické vytvoření zákazníka (přes new)
|
||||
Customer* roman = new Customer("Roman Lubij", "+420 777 666 555", 100);
|
||||
|
||||
// ==========================================
|
||||
// --- PRVNÍ OBJEDNÁVKA ---
|
||||
// ==========================================
|
||||
cout << ">>> ZAKLADAM PRVNI OBJEDNAVKU <<<" << endl;
|
||||
|
||||
// Zákazník 'roman' už je ukazatel, nepíšeme tedy '&roman'
|
||||
Customer* customers[10](nullptr);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
customers[i] = new Customer("Customer " + to_string(i), "+420 777 666 55"+to_string(i), 100*i);
|
||||
cout << "Customer " << i+1 << " created" << endl;
|
||||
}
|
||||
Order* order1 = new Order(5, roman);
|
||||
|
||||
// Vytvoření položek
|
||||
Order* orders[10](nullptr);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
orders[i] = new Order(5, customers[i]);
|
||||
cout << "Order " << i+1 << " created" << endl;
|
||||
}
|
||||
|
||||
Pizza* pizza1 = new Pizza("Hawai", 189.99, 32, false, 3);
|
||||
pizza1->addIngredient(new Ingredient("Ananas", 20.0));
|
||||
pizza1->addIngredient(new Ingredient("Sunka", 30.0));
|
||||
Pizza* pizzas[10](nullptr);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
pizzas[i] = new Pizza("Pizza " + to_string(i), 189.99, 32, false, 3);
|
||||
cout << "Pizza " << i+1 << " created" << endl;
|
||||
}
|
||||
for (int i = 0; i < 10; i++) {
|
||||
if (i%2==0) {
|
||||
pizzas[i]->addIngredient(new Ingredient("Ananas", 20.0));
|
||||
cout << "Pizza " << i+1 << " has Ananas" << endl;
|
||||
}
|
||||
|
||||
else {
|
||||
pizzas[i]->addIngredient(new Ingredient("Carolina Reaper", 100.0));
|
||||
cout << "Pizza " << i+1 << " has Carolina Reaper" << endl;
|
||||
}
|
||||
}
|
||||
|
||||
Drink* drink1 = new Drink("Kofola", 45.0, 500, true);
|
||||
AlcoholicDrink* alcoholicDrink1 = new AlcoholicDrink("Vodka", 300.0, 500, true, 0.7);
|
||||
// Vložení do objednávky
|
||||
|
||||
AlcoholicDrink* alcoholicDrinks[10](nullptr);
|
||||
for (int i = 0; i < 10; i++) {
|
||||
alcoholicDrinks[i] = new AlcoholicDrink("Pivo " + to_string(i), 50.0, 500, true, 0.1*i);
|
||||
cout << "Pivo " << i+1 << " created" << endl;
|
||||
}
|
||||
order1->addItem(pizza1);
|
||||
order1->addItem(drink1);
|
||||
order1->addItem(alcoholicDrink1);
|
||||
|
||||
// Předání pizzerii ke zpracování (voláme přes šipku '->')
|
||||
for (int i = 0; i < 10; i++) {
|
||||
orders[i]->addItem(pizzas[i]);
|
||||
orders[i]->addItem(alcoholicDrinks[i]);
|
||||
}
|
||||
|
||||
|
||||
pizzeria->processOrder(order1);
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
pizzeria->processOrder(orders[i]);
|
||||
}
|
||||
|
||||
// ==========================================
|
||||
// --- DRUHÁ OBJEDNÁVKA ---
|
||||
// ==========================================
|
||||
cout << "\n>>> ZAKLADAM DRUHOU OBJEDNAVKU <<<" << endl;
|
||||
|
||||
Order* order2 = new Order(3, roman);
|
||||
|
||||
// Vytvoření položek
|
||||
Pizza* pizza2 = new Pizza("Quattro Formaggi", 220.00, 40, true, 4);
|
||||
pizza2->addIngredient(new Ingredient("Gorgonzola", 35.0));
|
||||
pizza2->addIngredient(new Ingredient("Mozzarella", 30.0));
|
||||
pizza2->addIngredient(new Ingredient("Parmezan", 40.0));
|
||||
|
||||
Drink* drink2 = new Drink("Neperliva voda", 30.0, 500, false);
|
||||
Drink* drink3 = new Drink("Espresso", 40.0, 50, false);
|
||||
|
||||
// Vložení do objednávky
|
||||
order2->addItem(pizza2);
|
||||
order2->addItem(drink2);
|
||||
order2->addItem(drink3);
|
||||
|
||||
// Simulace - Roman za první nákup dostal věrnostní body (voláme přes šipku '->')
|
||||
roman->addPoints(50);
|
||||
|
||||
// Předání pizzerii ke zpracování
|
||||
pizzeria->processOrder(order2);
|
||||
|
||||
cout << "\nVsechny objednavky byly zpracovany." << endl;
|
||||
|
||||
// ==========================================
|
||||
// --- ÚKLID PAMĚTI ---
|
||||
// ==========================================
|
||||
// Objednávky se smazaly samy uvnitř metody processOrder.
|
||||
// Položky se mažou uvnitř destruktoru Order.
|
||||
// Nyní musíme smazat objekty, které jsme vytvořili pomocí 'new' přímo v main.
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
delete customers[i];
|
||||
}
|
||||
delete pizzeria;
|
||||
delete roman;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user