Skip to content

azbihi/ap-rezervtion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

سیستم رزرواسیون هواپیما

معرفی

این پروژه یک سیستم جامع رزرواسیون هواپیما است که امکانات زیر را فراهم می‌کند:

  • مدیریت مسافران
  • مدیریت پروازها
  • مدیریت رزروها
  • سیستم گزارش‌گیری
  • مدیریت کیف پول و استرداد وجه

نیازمندی‌ها

  • کامپایلر ++C با پشتیبانی از استاندارد C++17
  • کتابخانه Catch2 (برای اجرای تست‌ها)
  • سیستم‌عامل Windows یا Linux

برای راحتی کار فایل .exe قرار داده شده

نصب و راه‌اندازی

  1. کلون کردن مخزن:
git clone https://github.com/username/airline-system.git
cd airline-system
  1. کامپایل پروژه:
g++ -o airline_system.exe main.cpp AirlineSystem.cpp FileManager.cpp Passenger.cpp Flight.cpp Reservation.cpp InputValidator.cpp -std=c++17
  1. اجرای برنامه:
./airline_system

قابلیت‌های اصلی

1. مدیریت مسافران

  • افزودن مسافر جدید
  • جستجوی مسافران
  • ویرایش اطلاعات مسافر
  • حذف مسافر
  • مدیریت کیف پول
  • نمایش لیست تمام مسافران

اعتبارسنجی‌های مسافر

  • کد ملی: دقیقاً 10 رقم
  • شماره پاسپورت: 8-9 کاراکتر
  • جلوگیری از ثبت کد ملی یا شماره پاسپورت تکراری

2. مدیریت پروازها

  • افزودن پرواز جدید
  • جستجوی پروازها
  • نمایش لیست پروازها
  • حذف پرواز
  • مدیریت ظرفیت و قیمت

اعتبارسنجی‌های پرواز

  • شماره پرواز: دو حرف و 3-4 عدد
  • تاریخ پرواز: باید در آینده باشد
  • تعداد صندلی: حداقل 1

3. مدیریت رزروها

  • ایجاد رزرو جدید
  • لغو رزرو
  • نمایش لیست رزروها
  • نمایش رزروهای یک مسافر خاص

سیاست‌های استرداد وجه

  • بیش از 48 ساعت مانده به پرواز: 90% بازگشت وجه
  • بین 24 تا 48 ساعت: 50% بازگشت وجه
  • کمتر از 24 ساعت: غیرقابل استرداد

4. سیستم گزارش‌گیری

  1. گزارش‌های رزرو:

    • لیست تمام رزروها
    • رزروهای آینده
    • رزروهای انجام شده
    • رزروهای لغو شده
  2. گزارش‌های پرواز:

    • لیست مسافران یک پرواز
    • پروازهای یک روز خاص
    • پروازهای آینده
  3. گزارش‌های مسافر:

    • سفرهای انجام شده
    • سفرهای آینده
    • سفرهای لغو شده

راهنمای استفاده

منوی اصلی

  1. مدیریت مسافران
  2. مدیریت پروازها
  3. مدیریت رزروها
  4. گزارش‌ها
  5. خروج

نکات مهم

  1. کیف پول:

    • مسافر باید قبل از رزرو، موجودی کافی داشته باشد
    • شارژ کیف پول از طریق منوی مدیریت مسافران
  2. لغو رزرو:

    • مبلغ استردادی بر اساس فاصله زمانی تا پرواز محاسبه می‌شود
    • مبلغ به صورت خودکار به کیف پول مسافر برمی‌گردد
  3. ذخیره‌سازی:

    • اطلاعات به صورت خودکار در فایل‌های CSV ذخیره می‌شود
    • در هر بار اجرا، اطلاعات قبلی بازیابی می‌شود

تست‌ها

برای اجرای تست‌ها:

make test

تست‌ها شامل موارد زیر هستند:

  • تست‌های مدیریت مسافر
  • تست‌های مدیریت پرواز
  • تست‌های رزرواسیون
  • تست‌های سیاست استرداد
  • تست‌های اعتبارسنجی
  • تست‌های گزارش‌گیری

معماری سیستم

  • کلاس AirlineSystem: مدیریت کلی سیستم
  • کلاس Passenger: مدیریت اطلاعات مسافران
  • کلاس Flight: مدیریت اطلاعات پروازها
  • کلاس Reservation: مدیریت رزروها
  • کلاس FileManager: مدیریت ذخیره و بازیابی اطلاعات
  • کلاس InputValidator: اعتبارسنجی ورودی‌ها

مدیریت خطاها

  • ReservationNotFoundException
  • FlightNotFoundException
  • PassengerNotFoundException
  • InsufficientBalanceException
  • FlightCompletedException
  • RefundNotAllowedException
  • FileOperationException

نگهداری و پشتیبانی

  • لاگ خطاها در کنسول
  • بک‌آپ خودکار داده‌ها
  • امکان بازیابی اطلاعات

راهنمای عیب‌یابی

  1. خطای "File not found": اطمینان از وجود پوشه data
  2. خطای "Invalid input": بررسی فرمت ورودی‌ها
  3. خطای "Insufficient balance": شارژ کیف پول
  4. خطای "Reservation not found": بررسی شناسه رزرو

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages