CodeBlanks Logo Icon CodeBlanks

Ürün ekleme

Sepete ürün ekleyen fonksiyonu yazarsın.

addItem fonksiyonu

Product yapısı hazır; şimdi sepete ürün eklemek için addItem fonksiyonunu yazacağız. Cart yapısının içinde std::vector<Product> items alanı zaten var; bu vektör eklenen ürünleri tutar.

std::vector, C++'ın boyu otomatik büyüyen dizi yapısıdır; ayrıntısını ileride göreceksin. addItem(Product p) fonksiyonu gövdesinde items.push_back(p) çağrısı yapar; bu, p'yi vektörün sonuna ekler. Fonksiyon bir değer döndürmediği için void türündedir.

vector ve push_back

std::vector<T>, boyu otomatik büyüyen bir dizi yapısıdır. items.push_back(x) x'i sona ekler, items.size() eleman sayısını verir, items[i] ile dizine erişilir.

Bir vektörü kullanmadan önce std::vector<Product> items; satırıyla tanımlamalısın. Cart yapısında bu tanım zaten var. Bu projede vektörün yalnızca push_back ve size yöntemlerini kullanacağız; döngülerle gezinmeyi sonraki derslerde öğreneceksin.

Uygulama addItem fonksiyonunu yaz

Cart yapısının içine bir addItem fonksiyonu ekle. İmzası void addItem(Product p) olmalı. Gövdede items.push_back(p); çağrısı yapsın. main zaten bir ürün ekleyip eklendi yazdırıyor; sen yalnızca fonksiyonu yaz.

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;
    
    // addItem fonksiyonunu buraya yaz
};

int main() {
    Cart cart;
    Product p;
    p.name = "Defter";
    p.price = 25.0;
    p.quantity = 2;
    cart.addItem(p);
    std::cout << "eklendi" << std::endl;
    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);
    }
};

int main() {
    Cart cart;
    Product p;
    p.name = "Defter";
    p.price = 25.0;
    p.quantity = 2;
    cart.addItem(p);
    std::cout << "eklendi" << std::endl;
    return 0;
}

Beklenen çıktı

eklendi

Soru ve cevaplar

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

1 addItem gövdesini yaz

Soru
void addItem(Product p) {
    ____;
}
Cevap
void addItem(Product p) {
    items.push_back(p);
}

Açıklama: items.push_back(p) ürünü vektörün sonuna ekler.

2 Metodu işlevine eşle

Kavram Anlamı
addItem Sepete ürün ekler
push_back Vektöre eleman ekler
getSubtotal Ara toplamı verir
printCart Sepeti yazdırır

3 cart.addItem(p) ne yapar?

main.cpp
cart.addItem(p);
  • Sepetten ürün çıkarır
  • Sepete ürün ekler Doğru cevap
  • Toplamı hesaplar
  • Miktarı günceller

Açıklama: addItem p'yi sepetin items vektörüne ekler.

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