C
Birleştirme
Sepet fonksiyonlarını menüyle birleştirirsin.
Sepeti birleştir
Son dersimizde tüm fonksiyonları birleştiriyoruz: cart_add ile ürün ekler, cart_list ile listeler, cart_subtotal ile ara toplamı bulur ve genel toplamı yazdırırız.
int main(void) {
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
cart_list();
double sub = cart_subtotal();
double total = sub + sub * 0.18;
printf("Ara toplam: %.2f\n", sub);
printf("Genel: %.2f\n", total);
return 0;
}
Bu küçük uygulama, gerçek bir alışveriş sepetinin temelidir: veri yapısı, ekleme, listeleme ve toplam hesaplama. Daha büyük uygulamalara temel oluşturur.
Proje özeti
Bu projede bir alışveriş sepeti yaptın:
- CartItem yapısı ile veri modeli
- cart_add ile öğe ekleme
- cart_subtotal ile ara toplam hesaplama
- cart_list ile biçimli listeleme
- main ile tüm parçaları birleştirme
Gerçek bir uygulamada menü döngüsü, dosyaya kayıt veya kullanıcı girdisi de eklenir. Ama temel yapı aynı kalır: veri yapısı + fonksiyonlar + ana akış. C'de büyük programlar böyle küçük parçalardan büyür.
Uygulama Sepeti birleştir
main fonksiyonunu yaz. İçinde cart_add("Elma", 2.50, 3); ve cart_add("Ekmek", 5.00, 1); çağrıları, cart_list(); çağrısı, double sub = cart_subtotal();, double total = sub + sub * 0.18; ve printf("Ara toplam: %.2f\n", sub); ile printf("Genel: %.2f\n", total); olsun. Diğer fonksiyonlar zaten tanımlı. Beklenen çıktı: Elma 2.50 x 3 = 7.50 / Ekmek 5.00 x 1 = 5.00 / Ara toplam: 12.50 / Genel: 14.75.
Örnek çözümü göster
#include <stdio.h>
#include <string.h>
#define MAX_ITEMS 10
struct CartItem {
char name[32];
double price;
int qty;
};
struct CartItem cart[MAX_ITEMS];
int cart_size = 0;
void cart_add(const char *name, double price, int qty) {
if (cart_size >= MAX_ITEMS) return;
strcpy(cart[cart_size].name, name);
cart[cart_size].price = price;
cart[cart_size].qty = qty;
cart_size++;
}
double cart_subtotal(void) {
double sum = 0;
for (int i = 0; i < cart_size; i++) {
sum += cart[i].price * cart[i].qty;
}
return sum;
}
void cart_list(void) {
for (int i = 0; i < cart_size; i++) {
printf("%s %.2f x %d = %.2f\n", cart[i].name, cart[i].price, cart[i].qty, cart[i].price * cart[i].qty);
}
}
int main(void) {
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
cart_list();
double sub = cart_subtotal();
double total = sub + sub * 0.18;
printf("Ara toplam: %.2f\n", sub);
printf("Genel: %.2f\n", total);
return 0;
}
Kendini test et
-
Genel toplam nasıl hesaplanır?
double sub = cart_subtotal();
double total = sub + sub * 0.18;
- Ara toplam + vergi
- Yalnızca ara toplam
- Yalnızca vergi
- Miktar × fiyat
Cevabı göster
Ara toplam + vergi — Genel toplam = ara toplam + vergi.
-
Listeyi çağır
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
____();
Cevabı göster
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
cart_list();
-
Proje adımlarını eşleştir
- cart_add
- Ürün ekler
- cart_list
- Listeler
- cart_subtotal
- Ara toplam
- main
- Birleştirir
Sıradaki ders: Dizi tanımlama