C-based CLI Library Management System demonstrating File I/O for data persistence and Array Compaction logic.
Proje Özeti: C programlama dili kullanılarak geliştirilmiş, kütüphane portalının temel kataloglama ve stok takibi işlevlerini simüle eden bir Komut Satırı Arayüzü (CLI) uygulamasıdır. Veri kalıcılığı için yerel dosya (TXT) yönetimi kullanılır.
Bu proje, bir stajyer adayının temel sistem yönetimi, veri yapısı ve algoritma bilgisini göstermek amacıyla C dilinin temel yetenekleri kullanılarak geliştirilmiştir.
- Yeni Kitap Ekleme: Benzersiz ID ataması ve stok (toplam/kullanılabilir adet) kaydı.
- Tüm Kitapları Listeleme: Katalogdaki tüm kitapların formatlı çıktısı.
- Kitap Arama: Kitap Adı veya Yazar Adına göre esnek arama.
- Kitap Silme: ID'ye göre silme işlemi.
- Veri Kaydetme/Yükleme: Program kapatıldığında verileri
.txtdosyasına kaydetme ve açılışta yükleme.
- Veri Kalıcılığı (Persistence): C dilinin standart Dosya Giriş/Çıkış (I/O) fonksiyonları (
fopen,fprintf,fscanf) kullanılarak program verilerinin kalıcı olarak diske yazılması ve okunması. - Dizi Yönetimi: Kitap verileri (
structiçindeBook) sabit boyutlu dizide tutulmuş,book_countsayacı ile dinamik olarak yönetilmiştir. - Dizi Sıkıştırma Algoritması: Kitap silme işleminde, silinen elemanın yerini doldurmak ve dizide boşluk bırakmamak için sonraki tüm elemanları kaydıran verimli dizi sıkıştırma algoritması uygulanmıştır.
- String İşleme:
strstrgibi kütüphane fonksiyonları kullanılarak büyük/küçük harf duyarlı hızlı arama yeteneği entegre edilmiştir.
- Bir C Derleyicisi (GCC önerilir).
- Temel Komut Satırı (CLI) bilgisi.
Projeyi yerel sisteminizde çalıştırmak için aşağıdaki adımları izleyin:
-
Depoyu Klonlayın:
git clone [https://github.com/oguzhan-gemici-dev/Library] cd library-management-system # Proje klasörüne geçin
-
Derleme:
gcc -o library main.c -std=c99
(Not: Tüm kodunuz tek bir
main.cdosyasındaysa bu komut yeterlidir.) -
Çalıştırma:
./library
Program ilk çalıştığında, verileri saklamak için otomatik olarak
library_Data.txtdosyasını oluşturacaktır.
- Harf duyarsız (case-insensitive) arama eklenmesi.
- Kitap ödünç alma/iade etme (kullanılabilir adet güncelleme) işlevselliği.
- Kitap verilerini silmek yerine, "arşivlendi" olarak işaretleme.