Birleştirme
- C kursu
- Başlangıç
- Ders 52/116
- 6 dk
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.
Başlangıç kodu
#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) {
// İki ürün ekle, listele, ara toplam ve genel toplamı yazdır
return 0;
}Örnek çözüm
#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;
}Beklenen çıktı
Elma 2.50 x 3 = 7.50 Ekmek 5.00 x 1 = 5.00 Ara toplam: 12.50 Genel: 14.75
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Genel toplam nasıl hesaplanır?
double sub = cart_subtotal();
double total = sub + sub * 0.18;- Ara toplam + vergi Doğru cevap
- Yalnızca ara toplam
- Yalnızca vergi
- Miktar × fiyat
Açıklama: Genel toplam = ara toplam + vergi.
2 Listeyi çağır
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
____();
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
cart_list();
Açıklama: cart_list() sepetteki öğeleri yazdırır.
3 Proje adımlarını eşleştir
| Kavram | Anlamı |
|---|---|
cart_add |
Ürün ekler |
cart_list |
Listeler |
cart_subtotal |
Ara toplam |
main |
Birleştirir |