CodeBlanks Logo Icon CodeBlanks

Birleştirme

Sepet fonksiyonlarını menüyle birleştirirsin.

Birleştirme

Tüm parçalar hazır: Product yapısı, addItem, getSubtotal ve printCart fonksiyonları. Şimdi bunları main içinde birleştirip sepette iki ürün oluşturacak, sepeti yazdıracak ve toplamı göstereceğiz.

Bu aşamada her fonksiyon kendi görevini yapar; main yalnızca sırayla çağırır. İyi tasarlanmış bir program, fonksiyonların küçük ve odaklanmış olmasıyla ölçeklenir. Sepete daha sonra yeni bir özellik eklemek istersen, ilgili fonksiyonu değiştirmen yeterli olur.

Tüm parçalar birlikte

Sepet uygulamasının tüm parçaları bir araya geldiğinde gerçek bir alışveriş akışı elde edilir: ürünler eklenir, sepet görüntülenir ve toplam hesaplanır. Her fonksiyon tek bir işi iyi yapar.

Bu yapıyı ileride bir menü döngüsüyle sararak kullanıcıya seçenekler sunabilirsin. do { ... } while (choice != 0); kalıbı 0 girilene kadar menüyü yeniden gösterir. Şimdilik akışı doğrudan çağrılarla yöneteceğiz; etkileşimli menüyü sonraki projelerde göreceksin.

Uygulama Sepeti birleştir

main içinde iki ürünü cart.addItem ile ekle, ardından cart.printCart() ve cart.getSubtotal() çağrılarıyla sepeti ve toplamı yazdır. Ürünler: Defter (25, 2) ve Kalem (10, 3). Çıktı üç satır olmalı: Defter 25 2, Kalem 10 3 ve Toplam: 80.

Başlangıç kodu

main.cpp
#include <iostream>
#include <string>
#include <vector>

struct Product {
    std::string name;
    double price;
    int quantity;
};

struct Cart {
    std::vector<Product> items;
    
    void addItem(Product p) {
        items.push_back(p);
    }
    
    double getSubtotal() {
        double sum = 0;
        for (const auto& p : items) {
            sum += p.price * p.quantity;
        }
        return sum;
    }
    
    void printCart() const {
        for (const auto& p : items) {
            std::cout << p.name << " " << p.price << " " << p.quantity << std::endl;
        }
    }
};

int main() {
    Cart cart;
    // İki ürün ekle, sepeti ve toplamı yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <string>
#include <vector>

struct Product {
    std::string name;
    double price;
    int quantity;
};

struct Cart {
    std::vector<Product> items;
    
    void addItem(Product p) {
        items.push_back(p);
    }
    
    double getSubtotal() {
        double sum = 0;
        for (const auto& p : items) {
            sum += p.price * p.quantity;
        }
        return sum;
    }
    
    void printCart() const {
        for (const auto& p : items) {
            std::cout << p.name << " " << p.price << " " << p.quantity << std::endl;
        }
    }
};

int main() {
    Cart cart;
    Product p1;
    p1.name = "Defter";
    p1.price = 25.0;
    p1.quantity = 2;
    cart.addItem(p1);
    Product p2;
    p2.name = "Kalem";
    p2.price = 10.0;
    p2.quantity = 3;
    cart.addItem(p2);
    cart.printCart();
    std::cout << "Toplam: " << cart.getSubtotal() << std::endl;
    return 0;
}

Beklenen çıktı

Defter 25 2
Kalem 10 3
Toplam: 80

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 main tümleşik satırını yaz

Soru
cart.printCart();
std::cout << "Toplam: " << ____ << std::endl;
Cevap
cart.printCart();
std::cout << "Toplam: " << cart.getSubtotal() << std::endl;

Açıklama: cart.getSubtotal() sepetteki ara toplamı döndürür.

2 Birleştirme aşamasında hangi yapı tüm parçaları çağırır?

main.cpp
// tümleşik akış
  • main Doğru cevap
  • struct
  • vector
  • for

Açıklama: main tüm fonksiyonları sırayla çağırır.

3 Parçaları birleştir

Kavram Anlamı
Cart Tüm veriyi tutar
addItem Sepete ekler
printCart Sepeti gösterir
getSubtotal Toplamı verir

Başlangıç bölümündeki tüm dersler