/BuzzYateer

๐Ÿš€ Buzz yateer is a small data structure project which simulate space trips using console application

Primary LanguageC++MIT LicenseMIT

๐Ÿ›ฐ๏ธ Buzz Yateer (ูˆู‚ูŠุงุฏุฉ ุงู„ูƒูˆูƒุจ)

logo

ุฅู„ู‰ ุงู„ู„ุงู†ู‡ุงุฆูŠุฉ ูˆู…ุง ุจุนุฏู‡ุง๐Ÿš€

To infinity and beyond!๐Ÿš€


๐Ÿ“ Table of Contents


๐Ÿ“™ overview

  • In the hope of getting to know more about Mars and the possibility of life on its surface, a huge number of exploratory missions to different regions of the planet need to be conducted.
  • Imagine (at some future time) that we have several rovers of different types and capabilities on the surface of Mars ready to carry out missions to its different regions.
  • There is also a hypothetical base station which acts as the central point from which the different rovers begin their exploratory missions and to which they return after mission completion.
  • The base station basically assigns missions to the different rovers.

๐Ÿš€ Get Started

  1. Clone the repository
    git clone https://github.com/AdhamAliAbdelAal/BuzzYateer
    
  2. Main File is
    Buzz Yateer\Buzz Yateer\Buzz Yateer.sln
    
  3. Read Project Description to undertand project vey well

โš’๏ธ How project Work

  1. Put input in the Input.txt
  2. Run the main file.
  3. You should choose the mode of output.
    • 1) Interactive Mode

      Interactive Mode Allows user to monitor the missions and rovers. The program should print an output like that shown below. In this mode, the program prints the current day then pauses for an input from the user (โ€œEnterโ€ key for example) to display the output of the next day
    • 2) Step-By-Step Mode

      Step-By-Step Mode is identical to the interactive mode except that after each day, the program waits for one second (not for user input) then resumes automatically.
    • 4) Silent Mode

      the program produces only an output file (See the โ€œFile Formatsโ€ section

  4. No matter what mode of operation your program is running in, Output.txt file should be produced.

๐Ÿ—๏ธ Chosen Data Structure

List Name Chosen DS Justification
1 Events List Queue First event declared will have been done first. Queue will be based on linked list because it Insert in the end.
2 Waiting Polar Missions Queue First mission declared will have been done first. Queue will be based on linked list because it easier to Insert in the end and delete from front.
3 Waiting Mountainous Missions Queue First mission declared will have been done first. Queue will be based on linked list because it. easier to Insert in the end and delete from front.
4 Waiting Emergency Missions Priority Queue Because we want to sort them according to their priority. Queue will be based on linked list because it easier to Insert in any position and delete from front.
5 Execution Missions Priority Queue Because we want to sort them according to the day will done on. Queue will be based on linked list because it easier to Insert in any position and delete from front.
6 Completed Missions Queue Because it will be print the completed mission every day. Queue will based on linked list because it easier to Insert in the end.
7 Polar Rovers Priority Queue Because we want to sort them according to their velocity. Queue will be based on linked list because it easier to Insert in any position and delete from front.
8 Mountainous Rovers Priority Queue Because we want to sort them according to their velocity. Queue will be based on linked list because it easier to Insert in any position and delete from front.
9 Emergency Rovers Priority Queue Because we want to sort them according to their velocity. Queue will be based on linked list because it easier to Insert in any position and delete from front.
10 Execution Rovers Priority Queue Because we want to sort them according to the day will done mission. Queue will be based on linked list because it easier to Insert in any position and delete from front.
11 Checkup Rovers Priority Queue Because we want to sort them according to less time will take in checkup. Queue will be based on linked list because it easier to Insert in any position and delete from front.
12 Rovers Maintenance Priority Queue Because we want to sort them according to less time will take in maintenance.

๐Ÿ“ธ Demo Screenshots



GIf Demo


๐Ÿ‘‘ Contributors


Mohamed Walid


Abdelrahman Ashraf


Adham Ali


Eslam Ashraf

๐Ÿ” License

This software is licensed under MIT License, See License for more information ยฉAdhamAliAbdelAal.