Daha fazla
- Cinsiyet
- Erkek
Her tarafta yorum satırı görünce artık direkt ai tarafından yazıldığı bariz belli oluyor.Kod:#include <stdio.h> #include <string.h> #include <stdlib.h> char isimler[30]; // Malzeme isimleri int sayaclar[50]; // Malzeme adetleri int son_kullanma_tarihi[50]; // Son kullanma tarihleri int malzeme_sayac ; // Malzeme sayısı // Malzeme ekleme fonksiyonu void malzeme_ekle() { char isim; // Malzeme ismi int sayac, sonkullanmatarihi; printf("Malzeme Adi: "); scanf(" %s", &isim); // Malzeme ismini al printf("Adet: "); scanf("%d", &sayac); // Adet bilgisini al printf("Son Kullanma Tarihi: "); scanf("%d", &sonkullanmatarihi); int i; // Son kullanma tarihini al // Daha önce eklenmiş bir malzeme varsa, adet bilgisini arttır for ( i = 0; i < malzeme_sayac; i++) { if (isimler[i] == isim) { sayaclar[i] += sayac; // Adet arttırılır if (son_kullanma_tarihi[i] < sonkullanmatarihi) { son_kullanma_tarihi[i] = sonkullanmatarihi; // Son kullanma tarihi güncellenir } printf("Malzeme sayisi degistirildi.\n"); return; } } // Yeni malzeme ekleme isimler[malzeme_sayac] = isim; // Yeni malzeme ismini kaydederiz sayaclar[malzeme_sayac] = sayac; // Adet eklenir son_kullanma_tarihi[malzeme_sayac] = sonkullanmatarihi; // Son kullanma tarihi eklenir malzeme_sayac++; // Malzeme sayacını arttırır printf("Malzeme eklendi.\n"); } // Malzeme çıkarma fonksiyonu void malzeme_cikar() { char isim; // Malzeme ismini tutacak değişken int sayac; printf("Cikarilacak Malzeme: "); scanf(" %s", &isim); // Malzeme ismini al printf("Cikarilacak Malzeme Sayisi: "); scanf("%d", &sayac); int i; // Çıkarılacak adet for ( i = 0; i < malzeme_sayac; i++) { if (isimler[i] == isim) { if (sayaclar[i] >= sayac) { sayaclar[i] -= sayac; // Adet çıkarılır printf("Malzeme sayisi degistirildi.\n"); int i,j; if (sayaclar[i] == 0) { // Malzeme bitmişse, onu listeden çıkar for ( j = i; j < malzeme_sayac - 1; j++) { isimler[j] = isimler[j + 1]; // İsim kaydırılır sayaclar[j] = sayaclar[j + 1]; // Adet kaydırılır son_kullanma_tarihi[j] = son_kullanma_tarihi[j + 1]; // Son kullanma tarihi kaydırılır } malzeme_sayac--; // Malzeme sayacı azaltılır } } else { printf("Malzeme yeterli degil.\n"); } return; } } printf("Malzeme bulunamadi.\n"); } // Malzemeleri listeleme fonksiyonu void malzemeleri_listele() { int i; for ( i = 0; i < malzeme_sayac; i++) { printf("Malzeme İsmi: %s, Adedi: %d, Son Kullanma Tarihi: %d\n", isimler[i], sayaclar[i], son_kullanma_tarihi[i]); } } int main() { int sec; do { printf("*MALZEME YONETIMI*\n"); printf("1. Malzeme Ekle\n2. Malzeme Cikar\n3. Malzeme Listele\n4. Cikis\nSeciminizi yapiniz (1-4): "); scanf("%d", &sec); switch (sec) { case 1: malzeme_ekle(); break; case 2: malzeme_cikar(); break; case 3: malzemeleri_listele(); break; case 4: printf("Cikis\n"); break; default: printf("Gecersiz secim.\n"); } } while (sec != 4); return 0; }
isimler[30] dizisinde problem var. Burada 2 boyutlu array oluşturmak lazım.
Ayrıca verileri ayrı ayrı tutma. Struct oluştur ve max_size belirleyerek bir array oluştur.
C:
int FRIDGE_MAX_ITEM_SIZE = 50;
struct Malzeme {
char isim[30];
int adet;
int son_kullanma_tarihi;
};
struct Malzeme malzemeler[FRIDGE_MAX_ITEM_SIZE];
1. dönem de struct vs görmeniz lazım. 1. sınıf isen daha henüz data structure bilmiyorsun. O sebeple liste kullan vs demicem. Arraylerle çözersin.
Forum arkadaşlarımdan ricam, bence kimse yardım etmesin.
Zorluklarları araştıra araştıra kendin öğren. Kısa yola kaçıp AI tarafından yaptırırsan düşük not alırsın, o senin problemin. Yapay zekayı mentor olarak kullan. Nasıl yaparım de, al şunu yap deme. Gelişimini kötü etkiler. Ayrıca ekip olarak yapılacak bir proje 2-3 kişi bir araya gelin ve bir zahmet kafa patlatın.