Menu
Coddy logo textTech

Tekrar: Struct Dizisi

Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 62 / 63.

challenge icon

Görev

Kolay

Bir yapı (struct) dizisi kullanarak bir ürün envanter sistemini yöneten bir C programı oluşturun. Programınız şunları yapmalıdır:

  1. Aşağıdaki üyelere sahip Product adında bir struct tanımlayın:
    • 30 boyutunda bir karakter dizisi name
    • Bir float price
    • Bir tam sayı stock
  2. Şu özelliklere sahip findMostExpensive adında bir fonksiyon yazın:
    • Parametre olarak bir struct Product dizisi ve bir tam sayı size alır
    • En yüksek fiyata sahip ürünün indeksini temsil eden bir tam sayı döndürür
    • Tüm ürünleri dolaşmak ve fiyatlarını karşılaştırmak için bir döngü kullanır
    • Maksimum fiyata sahip bulunan ilk ürünün indeksini döndürür
  3. Şu özelliklere sahip calculateTotalValue adında bir fonksiyon yazın:
    • Parametre olarak bir struct Product dizisi ve bir tam sayı size alır
    • Toplam envanter değerini temsil eden bir float döndürür
    • Her ürün için (fiyat × stok) değerlerini toplayarak toplam değeri hesaplar
  4. Şu özelliklere sahip findLowStock adında bir fonksiyon yazın:
    • Parametre olarak bir struct Product dizisi, bir tam sayı size ve bir tam sayı threshold alır
    • Stoku eşik değerinin (threshold) altında olan ürünlerin sayısını temsil eden bir tam sayı döndürür
    • Stok miktarının eşik değerinden az olduğu ürünleri saymak için bir döngü kullanır
  5. Ana fonksiyonda (main function):
    • inventory adında 3 elemanlı bir struct Product dizisi oluşturun
    • Her ürün için şu sırayla girdi okuyun: name, price, stock
    • Diziyi girdi verileriyle doldurun
    • Her ürünün bilgisini tam olarak şu formatta yazdırın: Product [index]: [name] - Price: [price], Stock: [stock]
    • findMostExpensive fonksiyonunu çağırın ve sonucu tam olarak şu formatta yazdırın: Most expensive product: [name]
    • calculateTotalValue fonksiyonunu çağırın ve sonucu tam olarak 2 ondalık basamakla şu formatta yazdırın: Total inventory value: [total_value]
    • Düşük stok eşiğini temsil eden bir tam sayı okuyun
    • Eşik değeriyle findLowStock fonksiyonunu çağırın ve sonucu tam olarak şu formatta yazdırın: Products with low stock: [count]
    • En pahalı ürünün stok miktarının 10'dan büyük olup olmadığını kontrol edin:
      • Eğer öyleyse: Most expensive product is well stocked yazdırın
      • Eğer değilse: Most expensive product needs restocking yazdırın

Bu görev, yapı dizileriyle çalışma, yapı dizilerini işleyen fonksiyonlar uygulama ve yapılandırılmış veriler üzerinde çeşitli hesaplamalar ve karşılaştırmalar yapma yeteneğinizi test eder. Yapılarla dizi indeksleme, veri işleme için fonksiyon tasarımı ve envanter bilgilerini analiz etmek için birden fazla işlemi birleştirme pratiği yapacaksınız.

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;
}

Logic & Flow bölümündeki tüm dersler