Birleştirme
- C++ kursu
- Başlangıç
- Ders 52/116
- 6 dk
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
#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
#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
cart.printCart();
std::cout << "Toplam: " << ____ << std::endl;
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?
// 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 |