Sakarya Üniversitesi - Bilgisayar Mühendisliği Bölümü > Programlamaya Giriş Dersi - Proje Ödevi (Ödev No: 3)
Bu proje, düğün organizasyon süreçlerini dijitalleştirmek, davetli takibi yapmak ve anlık maliyet analizi sağlamak amacıyla C++ dili kullanılarak geliştirilmiş kapsamlı bir konsol uygulamasıdır.
Nesne Yönelimli Programlama (OOP) prensiplerine sadık kalınarak tasarlanan sistem, veri kalıcılığı için dosya tabanlı (File I/O) bir veritabanı mimarisi kullanır.
- Dersi Verenler: Öğr. Gör. Cemil ÖZ ve Arş. Gör. Sinan İLYAS
- Hazırlayan: Ahmet CEBECİ (B231210077)
- Grup: 1. Öğretim C Grubu
Bu sistem, organizasyon yönetimini kolaylaştıran aşağıdaki yeteneklere sahiptir:
- 📅 Düğün Yönetimi: Yeni düğün kaydı, listeleme, güncelleme ve silme işlemleri.
- 👥 Davetli Takibi: Seçilen düğüne özel davetli ekleme, silme ve "Geliyor/Gelmiyor" durumunu güncelleme.
- 💰 Dinamik Maliyet Hesaplama: * Formül:
((Gelen Misafir + 4 Protokol) * Yemek Ücreti) + Süsleme + Sanatçı- +4 Protokol Kuralı: Sistem, maliyet hesabına Gelin, Damat ve Ebeveynleri otomatik dahil eder.
- 🔄 Zincirleme Silme (Cascade Delete): Veri bütünlüğü (Data Integrity) ilkesi gereği, bir düğün silindiğinde ona bağlı tüm davetliler de sistemden otomatik temizlenir.
- 🛡️ Veri Doğrulama (Input Validation):
- Tarih Kontrolü: Geçmiş tarih veya hatalı saat girişleri engellenir.
- Tip Güvenliği: Sayısal alanlara metin girilmesi durumunda programın çökmesi (
cin.fail) engellenmiştir.
- 📊 Gelişmiş Arayüz:
system("mode con")komutu ile genişletilmiş konsol ekranında, veriler Master-Detail tablo yapısında sunulur.
Proje iki ana sınıf ve ilişkisel dosya yapısı üzerine kurulmuştur:
DugunSınıfı: Organizasyon bilgilerini (Tarih, Saat, Salon) ve finansal verileri (Patron, Yemek, Süsleme, Sanatçı) tutar.DavetliSınıfı: Misafirlerin kimlik ve katılım durumlarını yönetir.
Veriler fstream kütüphanesi ile metin dosyalarında saklanır:
- 📄
Dugunler.txt: Düğün ID, Tarih, Saat, İsimler ve Maliyet bilgilerini tutar. - 📄
Davetliler.txt: Davetli ID, Bağlı Olduğu Düğün ID, İsim, Taraf ve Durum bilgilerini tutar.
Teknik Not: Silme ve güncelleme işlemleri için "Geçici Dosya (Temp File)" algoritması kullanılmıştır. Veriler
Temp.txtdosyasına filtrelenerek aktarılır ve ana dosya ile değiştirilir.
Sistemdeki düğünler "Genel Bilgiler" ve "Finansal Detaylar" olarak iki ayrı tabloda listelenir.
(Düğünlerin tarih, salon, kişi sayıları ve toplam maliyet analizlerinin görüntülendiği ekran)
Seçilen düğüne ait davetlilerin yönetildiği ve listelendiği alt menü.
(Misafirlerin katılım durumlarının ve akrabalık derecelerinin görüntülendiği ekran)
Projeyi kendi bilgisayarınızda çalıştırmak için:
- Projeyi Klonlayın:
git clone [https://github.com/AhmetCebeci/Wedding-Management-System.git](https://github.com/AhmetCebeci/Wedding-Management-System.git)
- Derleyin (G++ Örneği):
g++ main.cpp -o WeddingSystem.exe
- Çalıştırın:
Oluşan
.exedosyasını çalıştırın. Program ilk açılışta gerekli.txtdosyalarını otomatik oluşturacaktır.
Ahmet CEBECİ Sakarya Üniversitesi, Bilgisayar Mühendisliği
📧 İletişim: cebeciahmet10@hotmail.com
Bu proje, eğitim amaçlı geliştirilmiştir.