C++
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.
Örnek çözümü göster
#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;
}
Kendini test et
-
main tümleşik satırını yaz
cart.printCart();
std::cout << "Toplam: " << ____ << std::endl;
Cevabı göster
cart.printCart();
std::cout << "Toplam: " << cart.getSubtotal() << std::endl;
-
Birleştirme aşamasında hangi yapı tüm parçaları çağırır?
// tümleşik akış
Cevabı göster
main — main tüm fonksiyonları sırayla çağırır.
-
Parçaları birleştir
- Cart
- Tüm veriyi tutar
- addItem
- Sepete ekler
- printCart
- Sepeti gösterir
- getSubtotal
- Toplamı verir
Sıradaki ders: C-style dizi