hotovoooo

This commit is contained in:
sesufv
2026-05-04 17:25:26 +02:00
parent 23057cf536
commit fa64758521
2 changed files with 49 additions and 48 deletions
+5 -1
View File
@@ -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() {
+44 -47
View File
@@ -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;