Tekrar: Struct Dizisi
Coddy'nin C Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 62 / 63.
Görev
KolayBir dizi struct kullanarak ürün envanteri sistemini yöneten bir C programı oluştur. Programın şunları yapmalıdır:
- Aşağıdaki üyelere sahip
structadlı birProducttanımla:- Boyutu 30 olan bir karakter dizisi
name - Bir float
price - Bir tamsayı
stock
- Boyutu 30 olan bir karakter dizisi
- Şunları yapan
findMostExpensiveadlı bir işlev yaz:- Parametre olarak bir
struct Productdizisi ve bir tamsayısizealı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
- Parametre olarak bir
- Şunları yapan
calculateTotalValueadlı bir işlev yaz:- Parametre olarak bir
struct Productdizisi ve bir tamsayısizealı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
- Parametre olarak bir
- Şunları yapan
findLowStockadlı bir işlev yaz:- Parametre olarak bir
struct Productdizisi, bir tamsayısizeve bir tamsayıthresholdalı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
- Parametre olarak bir
- main işlevinde:
struct Productadlı 3 adetinventoryiç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] findMostExpensiveişlevini çağır ve sonucu şu tam biçimde yazdır:Most expensive product: [name]calculateTotalValueiş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
findLowStockiş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 stockedyazdır - Hayırsa:
Most expensive product needs restockingyazdır
- Evetse:
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
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String FonksiyonlarıKendi başına pratik yap: Online C derleyicisi