CodeBlanks Logo Icon CodeBlanks

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

main.c
#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

main.c
#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?

main.c
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

Soru
cart_add("Elma", 2.50, 3);
cart_add("Ekmek", 5.00, 1);
____();
Cevap
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

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