Menu
Coddy logo textTech

Tekrar: Struct Dizisi

Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 62 / 63.

challenge icon

Görev

Kolay

Bir dizi struct kullanarak ürün envanteri sistemini yöneten bir C programı oluştur. Programın şunları yapmalıdır:

  1. Aşağıdaki üyelere sahip struct adlı bir Product tanımla:
    • Boyutu 30 olan bir karakter dizisi name
    • Bir float price
    • Bir tamsayı stock
  2. Şunları yapan findMostExpensive adlı bir işlev yaz:
    • Parametre olarak bir struct Product dizisi ve bir tamsayı size alır
    • Fiyatı en yüksek olan ürünün dizinini temsil eden bir tamsayı döndürür
    • Tüm ürünler üzerinde yineleme yapmak ve fiyatlarını karşılaştırmak için bir döngü kullanır
    • Maksimum fiyata sahip bulunan ilk ürünün dizinini döndürür
  3. Şunları yapan calculateTotalValue adlı bir işlev yaz:
    • Parametre olarak bir struct Product dizisi ve bir tamsayı size alır
    • Toplam envanter değerini temsil eden bir float döndürür
    • Her ürün için (price × stock) değerlerini toplayarak toplam değeri hesaplar
  4. Şunları yapan findLowStock adlı bir işlev yaz:
    • Parametre olarak bir struct Product dizisi, bir tamsayı size ve bir tamsayı threshold alır
    • Stok miktarı eşik değerinin altında olan ürünlerin sayısını temsil eden bir tamsayı döndürür
    • Stok miktarının eşik değerinden küçük olduğu ürünleri saymak için bir döngü kullanır
  5. main işlevinde:
    • struct Product adlı 3 adet inventory içeren bir dizi oluştur
    • Her ürün için girdiyi şu sırayla oku: name, price, stock
    • Diziyi girdi verileriyle doldur
    • Her ürünün bilgilerini şu tam biçimde yazdır: Product [index]: [name] - Price: [price], Stock: [stock]
    • findMostExpensive işlevini çağır ve sonucu şu tam biçimde yazdır: Most expensive product: [name]
    • calculateTotalValue işlevini çağır ve sonucu tam olarak 2 ondalık basamakla şu tam biçimde yazdır: Total inventory value: [total_value]
    • Düşük stok eşiğini temsil eden bir tamsayı oku
    • findLowStock işlevini eşik değeriyle çağır ve sonucu şu tam biçimde yazdır: Products with low stock: [count]
    • En pahalı ürünün stok miktarının 10'dan büyük olup olmadığını kontrol et:
      • Evetse: Most expensive product is well stocked yazdır
      • Hayırsa: Most expensive product needs restocking yazdır

Bu görev, struct dizileriyle çalışma, struct dizilerini işleyen işlevler uygulama ve yapılandırılmış veriler üzerinde çeşitli hesaplamalar ve karşılaştırmalar yapma becerini sınar. Struct'larla dizi indekslemeyi, veri işleme için işlev tasarımını ve envanter bilgilerini analiz etmek üzere birden çok işlemi birleştirmeyi uygulayacaksın.

Kendin dene

#include <stdio.h>
#include <string.h>

// TODO: Product yapısını burada tanımlayın

// TODO: findMostExpensive fonksiyonunu burada uygulayın

// TODO: calculateTotalValue fonksiyonunu burada uygulayın

// TODO: findLowStock fonksiyonunu burada uygulayın

int main() {
    // 3 üründen oluşan dizi oluştur
    struct Product inventory[3];
    
    // Her ürün için girdi oku
    for (int i = 0; i < 3; i++) {
        scanf("%s", inventory[i].name);
        scanf("%f", &inventory[i].price);
        scanf("%d", &inventory[i].stock);
    }
    
    // TODO: Her ürünün bilgisini yazdır
    
    // TODO: En pahalı ürünü bul ve yazdır
    
    // TODO: Toplam envanter değerini hesapla ve yazdır
    
    // Düşük stok eşiğini oku
    int threshold;
    scanf("%d", &threshold);
    
    // TODO: Düşük stoklu ürünleri bul ve yazdır
    
    // TODO: En pahalı ürünün stok durumunun yeterli olup olmadığını kontrol et
    
    return 0;
}

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi