طراحی برنامه ای برای مدیریت سفرهای یک آژانس مسافرتی
برای این درخواست 2 پیشنهاد توسط فریلنسرهای سایت ارسال شده است.
در پارسکدرز کارفرمایان سفارش پروژه می دهند تا توسط متخصصین عضو با قیمتی رقابتی انجام شود.
قیمت توافق شده: 15،000 تومان
شرح پروژه:
می خواهیم برنامه ای برای مدیریت سفرهای یک آژانس مسافرتی طراحی کنیم.
کلاس Trip
* خصوصیتها:
برای این کار لازم است ابتدا کلاس Trip را برای تعریف دادهها و عملیات مربوط به سفرها )بلیطها( تعریف کنید. این کلاس دارای
خصوصیتهای کد سفر، تاریخ حرکت )از نوع کلاس Date که خودتان تعریف میکنید(، ساعت حرکت )از نوع کلاس Time که
خودتان تعریف میکنید(، ظرفیت )تعداد کل بلیط قابل فروش(، تعداد بلیط فروخته شده، قیمت بلیط، مبدا و مقصد سفر )بصورت
رشتهای که آرایهای از کاراکترها میباشد(، و مدت سفر )مدت زمانی که رفتن از مبدا به مقصد طول میکشد، به واحد ساعت( می
باشد که بصورت دسترسی private تعریف شدهاند و برای به روز رسانی و نمایش هرکدام نیاز به توابع setter و getter میباشد
)مجموعا 18 تابع برای 9 خصوصیت(. تابع setter خصوصیت کد سفر متفاوت است که توضیح آن در ادامه آمده است.
* سازندهها:
1 . برای این کلاس ابتدا سازندهای تعریف کنید که با 7 ورودی، 7 مشخصه مربوط به سفر )به جز کد سفر و تعداد بلیط فروخته شده(
را دریافت کرده و آنها را مقداردهی میکند. خصوصیت کد سفر بایستی به صورت افزایشی و خودکار تعیین شده و تعداد بلیط
فروخته شده را نیز در ابتدا صفر قرار دهید. برای تعیین خودکار کد سفر، یک متغیر static داخل کلاس تعریف کنید و داخل setter
خصوصیت کد سفر، مقدار این متغیر static را یک واحد افزایش و سپس خصوصیت کد سفر را با آن مقدار دهی کند. سپس با کمک
تابع SaveInFile() )که جلوتر معرفی میگردد(، اطلاعات سفر را در فایل ذخیره کنید.
2 . همچنین سازندهای تعریف کنید که در ورودی تنها کد سفر را دریافت نماید و سپس خصوصیت کد سفر را مقدار دهی کند. سپس
این سازنده، با کمک تابع LoadFromFile() )که جلوتر معرفی می گردد( اطلاعات سفر را از فایل خوانده و آن را در خصوصیتهای
دادهای کلاس قرار میدهد.
لذا توجه فرمایید که هدف از سازنده اول، ایجاد و ذخیره اطلاعات یک سفر جدید و سازنده دوم برای خواندن اطلاعات سفر از فایل
است.
* توابع عضو:
سپس در این کلاس توابع زیر را نیز پیادهسازی کنید:
1 . تابع چاپ اطلاعات سفر: PrintTravelInfo() : چاپ خصوصیتهای سفر روی صفحه نمایش
2 . تابع ذخیره اطلاعات سفر در فایل Travels.dat بصورت باینری: SaveInFile() : این تابع اطلاعات سفر را به اطلاعات ذخیره
شده سفرهای قبلی append میکند. این تابع در سازندهای که 7 پارامتر دارد فراخوانی میگردد.
3. تابع خواندن اطلاعات سفر از در فایل Travels.dat : LoadFromFile() : این تابع با کمک خصوصیت کد سفر، در فایل جستجو
کرده و اطلاعات سفر متناظر را از فایل پیدا کرده و اطلاعات متناظر را در خصوصیتهای دادهای کلاس قرار میدهد. اگر اطلاعات
سفر پیدا نشد، یک خطای جدید TravelNotFount تولید کنید. توجه فرمایید که بعد از خواندن اطلاعات سفر از فایل، برای تنظیم
مقادیر خصوصیتهای کلاس سفر، صرفا از توابع setter خصوصیتها استفاده نمایید و از سازندهای که 7 پارامتر ورودی میگیرد
استفاده نکنید؛ زیرا این سازنده برای تعریف و افزودن یک سفر جدید است.
4. تابع لود کردن اطلاعات سفرها: LoadTravelsInContainer() : در این تابع، اطلاعات کلیه سفرها از فایل Travels.dat خوانده
و در یک vector یا deque از نوع Trip ذخیره میشود. اینکه اطلاعات در vector یا deque ذخیره شود را استفاده کننده از تابع
به کمک template ها تعیین میکند.
5 . تابع چاپ اطلاعات تمام سفرها: PrintAllTravelsFromContainers() . این تابع ابتدا با کمک تابع
LoadTravelsInContainer() اطلاعات سفرها را در یک vector یا deque بارگزاری کرده و سپس با پیمایش آن، اطلاعات سفرها
را چاپ میکند.
6. تابع بارگزاری و چاپ اطلاعات سفرها: LoadPrintTravelsInLinkedList() : در این تابع، اطلاعات کلیه سفرها از فایل خوانده
شده به ترتیب در عناصر یک لیست پیوندی که خودتان تعریف میکنید قرار میگیرد. سپس لیست پیوندی از ابتدا به انتها پیمایش
شده و اطلاعات سفرها چاپ میگردد. در انتهای سند، یک مثال کوچک در مورد چگونگی ایجاد اشیاء جدید از یک کلاس و قرار
دادن در لیست پیوندی آورده شده است.
7. تابع بروزرسانی اطلاعات سفر: UpdateTravelInfo() : هدف این تابع، بروزرسانی اطلاعات سفر در فایل سفرها میباشد. لذا این
تابع محتوای فایل Travels.dat را پیمایش کرده و محل اطلاعات سفر را بر اساس خصوصیت کد سفر پیدا میکند. سپس خصوصیت
های سفر شئ جاری را با اطلاعات قبلی سفر جایگزین میکند )به کمک seekp و write (. زیرا مثلا ممکن است برخی خصوصیتهای
سفر مانند تعداد بلیط فروخته شده، قیمت و ... تغییر کرده باشد و نیاز باشد که اطلاعات سفر در فایل بروزرسانی شود.
7 . لب شورف عبات ی ط SellTicket() که virtual تعریف شده و شامل یک پارامتر نام مسافر میباشد. در این تابع، تعداد بلیط فروخته
شده آن سفر یک واحد افزایش یافته و محتویات Travels.dat بروزرسانی میشود. همچنین اطلاعات بلیط )کد سفر و نام مسافر( را
در فایل دیگری به نام PurchasedTickets.dat که بصورت باینری است ذخیره کنید. در صورتی که تعداد بلیطهای فروخته شده
بیشتر از ظرفیت سفر بود، یک exception جدید به نام InvalidTicketCount تولید گردد. کلاس این استثناء جدید را خودتان
تعریف کنید. برای این سوال، بهتر است کلاس جدیدی تعریف کنید که شامل خصوصیتهای کد سفر و نام مسافر بصورت رشته
آرایهای از کاراکترها باشد.
8 . تابع چاپ لیست مسافرهای سفر: PrintCustomers() : در این تابع، اطلاعات فایل PurchasedTickets.dat خوانده شده و نام
مسافرانی که کد سفر آن ها برابر با خصوصیت کد سفر شئ باشد، چاپ میشود.
* عملگرها:
همچنین عملگرهای زیر را در این کلاس سربارگذاری کنید:
1 . عملگر void Trip+int جهت افزایش ظرفیت سفر. با افزایش ظرفیت سفر، بایستی اطلاعات را داخل یک فایل بروز رسانی کنید.
2. عملگر void Trip++ : افزایش یک واحدی تعداد بلیطهای فروخته شده. در صورتی که تعداد بلیطهای فروخته شده بیشتر از
ظرفیت سفر بود، یک exception جدید به نام InvalidTicketCount تولید گردد. در نهایت اگر خطایی رخ نداد، اطلاعات جدید
سفر را در فایل بروزرسانی کنید.
2. عملگر void Trip-- : کاهش یک واحدی تعداد بلیطهای فروخته شده. در صورتی که تعداد بلیطهای فروخته شده کمتر از 0 شد،
یک exception جدید به نام InvalidTicketCount تولید گردد. در نهایت اگر خطایی رخ نداد، اطلاعات جدید سفر را در فایل
بروزرسانی کنید.
کلاس Trip_Rail
این کلاس از کلاس Trip به صورت public ارث بری میکند.
کلاس Trip_Rail را تعریف نموده و خصوصیت شماره خط راه آهن و ظرفیت یک کوپه )تعداد صندلیهای یک کوپه( را بصورت
private تعریف کنید. برای هرکدام از این خصوصیتها توابع setter و getter مناسب را تعریف کنید. توجه نمایید که ظرفیت کوپخ
حداقل 1 و حداکثر 10 است. در غیر اینصورت یک خطای invalid_argument تولید کنید.
سازندهای با نه پارامتر تعریف کنید که هفت تای آنها مانند سازنده کلاس Trip باشد و دو تای آخر نیز عدد صحیح که شماره خط
راه آهن و ظرفیت کوپه است. داخل این سازنده همراه با سازنده پدر، خصوصیت شماره خط راه آهن هم مقدار دهی شود.
در این کلاس، توابع زیر را نیز پیادهسازی کنید:
1 . تابع چاپ اطلاعات سفر PrintTravelInfo() را بازنویسی کنید و خصوصیتهای جدید را نیز چاپ کنید. توجه کنید که برای
چاپ اطلاعات سفر، نیازی به خواندن اطلاعات از فایل نیست، زیرا خصوصیتهای کلاس را خودتان مقدار دهی میکنید.
2 . تابع فروش بلیط را بازنویسی کنید، بدین صورت که فرض میکنیم خریدار بایستی یک کوپه را کامل خریداری کند. لذا تعداد
بلیط فروخته شده بایستی به اندازه ظرفیت کوپه افزایش یابد. بروزرسانی اطلاعات و تولید خطا را همچون تابع فروش بلیط در تابع
اصلی تعریف نمایید.
در نهایت در تابع main ، از تمام امکانات بیان شده استفاده کنید و یک نمونه کامل تولید کنید. بدین صورت که در عملیات قابل
انجام توسط برنامه شماره گذاری شده و کاربر بتواند با وارد کردن شمارههای مد نظر از امکانات موجود استفاده کند. مثلا گزینه 1
برای ایجاد یک سفر معمولی جدید. سپس اطلاعات سفر را از کاربر بگیرید. گزینه 2 برای تغییر اطلاعات یکی از سفرها. گزینه 3
برای تعریف یک سفر ریلی جدید. گزینه 4 برای فروش یک بلیط سفر معمولی. گزینه 5 برای اجرای عملگر ++ و ...
تذکر: کلاسها را در فایل هدر جداگانه تعریف و در فایل .cpp مربوط به خودش پیادهسازی کنید.
لیست پیشنهادهای فریلنسرها
15،000 تومان

پروژه موفق : 23
رتبه: 613
هفت ماه پیش
5،000،000 تومان
پروژه موفق : 0
رتبه: 101343
هفت ماه پیش
پارسکدرز چی هست و چه کارهایی در اون انجام میشه؟
ما رابط تقاضا و اجرا هستیم. در پارسکدرز خریداران درخواست خود را به صورت عمومی یا خصوصی مطرح می کنند تا توسط مجریان انجام شود. هر کاری که بتوان در بستر اینترنت انجامش داد. کارهایی از قبیل:
تایپ

نیاز به تایپ چیزی داری؟
توی پارسکدرز مجریانی وجود دارند که سفارش های تایپ رو با قیمتی رقابتی انجام میدن. کافیه فایلی رو که نیاز داری تایپ بشه به همراه توضیحات لازم ارسال کنی و کار رو شروع کنی.
سفارش پروژه تایپمراحل انجام کار
ترجمه و ویرایش

نیاز به ترجمه یک متن داری؟
ترجمه یکی از کارهایی هست که زیاد در پارسکدرز انجام میشه. مترجمان ماهری در پارسکدرز فعالیت دارند که هم ترجمه عمومی انجام میدن و هم ترجمه تخصصی.
سفارش پروژه ترجمهمراحل انجام کار
طراحی وب

قصد داری یک سایت بسازی؟
تا دلت بخواد طراح و توسعه دهنده ی وب داریم توی پارسکدرز. این یعنی اینکه می تونی مطمئن باشی که پیشنهادات خوبی برای نیازت دریافت می کنی.
سفارش پروژه طراحی وبمراحل انجام کار
برنامه نویسی

قصد داری یک نرم افزار بسازی؟
هر نوع نیاز برنامه نویسی که داشته باشی می تونی توی پارسکدرز مطرحش کنی. از برنامه نویسی میکروکنترلر تا ساختن اپلیکیشن موبایل. می تونی مشکلت رو مطرح کنی یا اینکه یه پروژه کامل رو سفارش بدی.
سفارش پروژه برنامه نویسیمراحل انجام کار
SEO - بهینه سازی برای موتورجستجو

دوست داری سایتت بهینه بشه؟
نیاز به توضیح نیست که SEO سایت چقدر مهمه. اگر نیاز داری وب سایتت بهینه بشه کافیه که درخواستش رو توی پارسکدرز ثبت کنی.
سفارش پروژه سئومراحل انجام کار
خدمات آموزشی

نیاز بهرفع اشکال یا آموزش داری؟
اگر دانشجو هستی و برای انجام پروژه هات با مشکل مواجه هستی یا نیاز داری یه نفر مباحثی رو بهت آموزش بده جای درستی اومدی.
سفارش پروژه آموزشیمراحل انجام کار
گرافیک

نیاز به طراح و گرافیست داری؟
توی پارسکدرز مجریان هنرمندی داریم که پاسخگوی نیازهای طراحی شما هستند. از طراحی لوگو گرفته تا طراحی سه بعدی و تیزر!
سفارش طراحیمراحل انجام کار
دوست داری طرز کار پارسکدرز رو تماشا کنی؟
داستان پارسکدرز رو توی چند ثانیه به تصویر کشیدیم.
فعالیت به عنوان مجری یا فریلنسر
اگر توانایی انجام کارهای سفارش داده شده از جانب خریداران رو داری می تونی اقدام به کسب در آمد از پارسکدرز کنی. از تایپ و ترجمه گرفته تا طراحی گرافیکی، برنامه نویسی و پیاده سازی سیستم های بزرگ.
پارسکدرز با استفاده از سیستم مالی گروگذاری وجه امنیت مالی طرفین را تضمین می کند. این به این معنی است که شما پس از اطمینان از انجام صحیح پروژه حتما هزینه انجام کار را دریافت می کنید.
شروع به ارسال پیشنهاد کن
پروژه هایی وجود داره که مطمئنا می تونی انجامشون بدی.

"قابلیت هایی چون ضمانت تخصص، بسته بودن قیمت پیشنهادات، امکان داوری، پشتیبانی عالی، امتیاز پروژه، راحتی کار با سیستم برای مجری و کارفرما، سابقه و قدمت سایت به مجری و کارفرما این امکان را می دهد که با اعتماد کامل نسبت به انجام پروژه های خود در زمینه های مختلف اقدام کرده و به نتیجه دلخواه خود برسند."
پشتیبانی عالی، مدیر دلسوز و صبور، احترام متقابل به خریدار و مجری، امنیت و اعتماد متقابل در فضای کار آنلاین، ایجاد رزومه کاری برای ارتقای مجری در عرصه بازار کار، جملگی در سایت پارس کد رز خلاصه شده اند. این سایت باعث شد تا من به عنوان مجری سایت در عرصه ترجمه دارای رزومه کاری مناسب باشم . واقعا فعالیت در این سایت را به تمام افراد علاقمند به فعالیت در بازار کار آنلاین توصیه می نمایم .
بهتر وبرتر از پارس کدرز نیست ونخواهد بود ، بنده به عنوان یک عضو کوچک پارس کدرز همکاری با این سایت را به تمام دوستان توصیه میکنم.
سادگی یک سیستم نرم افزاری مهمترین عامل موفقیت آن است، پارس کدرز محیطی بسیار روان، ساده و شفاف دارد که مجری و کارفرما در آن به راحتی به همکاری می پردازند. سایت های برون سپاری و انجام پروژه کم نیستند ولی بعد از کار کردن با آن ها به قدرت و ظرافت پارس کدرز بیش از پیش واقف شدم.
نکته ی خوبی که پارس کدرز داره اینه که برای ارسال پیشنهاد نیازی به سرمایه قبلی ندارید و شانس این رو دارید که بدون پرداخت هیچ مبلغی کسب درآمد کنید که برای شروع یک کسب و کار آزاد بسیار مناسب هست.
فعالیت به عنوان کارفرما یا خریدار
اگر پروژه ای برای انجام داری و قصد داری انجام اون رو به افراد حرفه ای بسپاری کافیه که در پارسکدرز عضو بشی و درخواست خودت رو ثبت کنی تا مجری ها اون رو ببیند و برات پیشنهاد ارسال کنند.
پارسکدرز علاوه بر داشتن نماد اعتماد دو ستاره با استفاده از سیستم مالی گروگذاری وجه، امنیت مالی طرفین را تضمین می کند. این به این معنی است که شما پس از اطمینان از انجام صحیح پروژه خود وجه را آزاد خواهید کرد. همچنین شما می توانید جهت اطمینان بیشتر از مجری بخواهید تا ضمانتی بابت تخصص خود گرو بگذارد.
درخواستت رو ثبت کن و پیشنهاد دریافت کن!
هزاران مجری آماده سرویس دهی هستند