C# dili, nesne yönelimli programlama yapısı ve .NET framework ile birlikte veri yönetimi projelerinde oldukça güçlüdür. Bu makalede, C# kullanarak basit bir stok takip sistemi nasıl geliştirilir, adım adım ele alınacak. Sistemin temel bileşenleri, veri yapıları ve kullanıcı arayüzü oluşturma süreci detaylıca açıklanacaktır.
Stok Takip Sisteminin Temel Yapısı
Bir stok takip sisteminin temel amacı, ürün bilgilerini kaydetmek, güncellemek, sorgulamak ve gerektiğinde silmek. C# ile bu işlemi yapmak için önce ürün sınıfı tanımlanması gerekir. Ürün sınıfı, ürünün adı, kodu, miktarı ve fiyatı gibi bilgileri barındırmalıdır. Ayrıca bu sınıfa ait metotlar ile ürün ekleme, güncelleme ve silme işlemleri tanımlanabilir.
public class Urun
{
public int Id { get; set; }
public string Ad { get; set; }
public int Miktar { get; set; }
public decimal Fiyat { get; set; }
public Urun(int id, string ad, int miktar, decimal fiyat)
{
Id = id;
Ad = ad;
Miktar = miktar;
Fiyat = fiyat;
}
}
Stok Verilerinin Saklanması
Bu sistemde ürün verileri bir koleksiyon yapısında tutulabilir. C#’da bu işlem için List<Urun> kullanmak uygundur. List, dinamik bir yapı sunar ve ürün ekleme, çıkarma gibi işlemler için idealdir. Aşağıdaki gibi bir stok listesi oluşturulabilir:
List<Urun> stokListesi = new List<Urun>();
Bu liste, programın tüm yaşam döngüsü boyunca ürün bilgilerini tutar. Ancak uygulama kapatıldığında veriler kaybolur. Kalıcı veri saklama için dosya işlemleri veya veritabanı entegrasyonu gerekebilir. Basit bir sistem için JSON formatında dosyaya yazma işlemleri tercih edilebilir.
Ürün Ekleme ve Yönetme İşlemleri
Stok sistemine ürün ekleme işlemi, kullanıcıdan alınan bilgilerle yeni bir ürün nesnesi oluşturarak gerçekleştirilir. Bu nesne daha sonra listeye eklenir. Örneğin yeni bir ürün eklemek için aşağıdaki metot kullanılabilir:
public void UrunEkle(Urun urun)
{
stokListesi.Add(urun);
}
Güncelleme işlemi ise ürünün Id bilgisi üzerinden yapılır. Kullanıcı mevcut ürünü bulup miktar veya fiyat gibi alanları değiştirebilir. Silme işlemi de benzer şekilde Id’ye göre yapılır ve listeden ilgili ürün çıkarılır.
Konsol Uygulaması ile Basit Bir Arayüz
Kullanıcı ile etkileşimi sağlamak için konsol uygulaması yeterli olabilir. Kullanıcıya menü sunularak, ürün ekleme, listeleme, güncelleme ve silme işlemleri seçenek olarak verilir. Kullanıcı seçimine göre ilgili metotlar çağrılır. Örneğin:
Console.WriteLine("1. Ürün Ekle");
Console.WriteLine("2. Ürünleri Listele");
Console.WriteLine("3. Ürün Güncelle");
Console.WriteLine("4. Ürün Sil");
Console.Write("Seçiminiz: ");
int secim = Convert.ToInt32(Console.ReadLine());
Bu tür bir yapı sayesinde kullanıcı sistemi rahatlıkla kullanabilir. Daha gelişmiş bir sistem için Windows Forms veya WPF gibi grafiksel arayüzler tercih edilebilir.
Stok Azaltma ve Uyarı Mekanizması
Bir stok takip sisteminde ürün miktarının azalması da önemli bir işlemdir. Bu işlem genellikle satış veya ürün çıkarma durumlarında yapılır. Miktar azaltıldığında belirli bir seviyenin altına düşmesi durumunda kullanıcıya uyarı verilmesi sağlanabilir. Örneğin:
public void StokAzalt(int urunId, int adet)
{
Urun urun = stokListesi.FirstOrDefault(u => u.Id == urunId);
if (urun != null)
{
urun.Miktar -= adet;
if (urun.Miktar <= 5)
{
Console.WriteLine($"{urun.Ad} için stok azaldı! Mevcut miktar: {urun.Miktar}");
}
}
}
Dosyaya Veri Kaydetme ve Yükleme
Program kapatıldığında verilerin kaybolmaması için ürün listesini bir dosyaya kaydetmek gerekir. C# ile JSON formatında dosyaya yazma işlemi Newtonsoft.Json kütüphanesi ile kolaylıkla yapılabilir. Aşağıda basit bir kaydetme ve yükleme örneği verilmiştir:
public void StokKaydet(string dosyaYolu)
{
string json = JsonConvert.SerializeObject(stokListesi, Formatting.Indented);
File.WriteAllText(dosyaYolu, json);
}
public void StokYukle(string dosyaYolu)
{
if (File.Exists(dosyaYolu))
{
string json = File.ReadAllText(dosyaYolu);
stokListesi = JsonConvert.DeserializeObject<List<Urun>>(json);
}
}
Bu işlemler sayesinde stok verileri kalıcı hale gelir ve uygulama her açıldığında önceki veriler yüklenebilir.
Sonuç
C# ile geliştirilen bu basit stok takip sistemi, nesne yönelimli programlamanın temellerini öğrenmek isteyenler için iyi bir başlangıçtır. Sistemin temel fonksiyonları olan ekleme, güncelleme, silme ve listeleme işlemleri kolaylıkla yapılabilmektedir. Daha ileri seviye bir sistem için veritabanı entegrasyonu, kullanıcı doğrulama ve grafiksel arayüz gibi özellikler eklenebilir.
Bir önceki yazımız olan Print Screen Engelleme başlıklı makalemizde Engelleme, İşletim Sistemi ve key logger hakkında bilgiler verilmektedir.