Question
CODE IN JAVA !! Project Background: You have been hired at a start-up airline as the sole in-house software developer. Despite a decent safety record
CODE IN JAVA !!
Project Background: You have been hired at a start-up airline as the sole in-house software developer. Despite a decent safety record (99% of flights do not result in a crash), passengers seem hesitant to fly for some reason. Airline management have determined that the most likely explanation is a lack of a rewards program, and you have tasked with the design and implementation of such a program.
Program Specification: The rewards program is based on the miles flown within the span of a year. Miles start to accumulate on January 1, and end on December 31. The following describes the reward tiers, based on miles earned within a single year:
Gold - 25,000 miles. Gold passengers get special perks such as a seat to sit in during the flight.
Platinum - 50,000 miles. Platinum passengers get complementary upgrades to padded seats.
Platinum Pro - 75,000 miles. Platinum Pro is a special sub-tier of Platinum, in which the padded seats include arm rests.
Executive Platinum - 100,000 miles. Executive Platinum passengers enjoy perks such as complementary upgrades from the cargo hold to main cabin.
Super Executive Platinum - 150,000 miles. Super Executive Platinum is a special sub-tier of Executive Platinum, reserved for the most loyal passengers. To save costs, airline management decided to eliminate the position of co-pilot, instead opting to reserve the co-pilot's seat for Super Executive Platinum passengers
For example, if a passenger within the span of 1 year accumulates 32,000 miles, starting January 1 of the following year, that passenger will belong to the Gold tier of the rewards program, and will remain in that tier for one year. A passenger can only belong to one tier during any given year. If that passenger then accumulates only 12,000 miles, the tier for next year will be none, as 12,000 miles is not enough to belong to any tier.
You will need to design and implement the reward tiers listed above. For each tier, you need to represent the miles a passenger needs to belong to the tier, and the perks (as a descriptive string) of belonging to the tier. The rewards program needs to have functionality implemented for querying. Any user of the program should be able to query any tier for its perks.
In addition, a passenger should be able to query the program by member ID for the following:
Miles accumulated in the current year.
Total miles accumulated since joining the rewards program. A passenger is considered a member of the rewards program by default from first flight taken on the airline. Once a member, a passenger remains a member for life.
Join date of the rewards program.
Current reward tier, based on miles accumulated from the previous year.
Given a prior year, the reward tier the passenger belonged to
Queries can be partitioned into two groups: rewards program and rewards member. Queries for perks of a specific tier is part of the rewards program itself, not tied to a specific member. The queries listed above (the bullet point list) are all tied to a specific member.
Incorporate functionality that allows the program to be updated with new passenger information for the following:
When a passenger joins the rewards program, create information related to the new passenger: date joined, rewards member ID, and miles accumulated. As membership is automatic upon first flight, use the miles from that flight to initialize miles accumulated.
When a passenger who is a rewards member flies, update that passenger's miles with the miles and date from the flight.
As the rewards program is new (ie, you are implementing it), assume for testing purposes that the program has been around for many years. To speed up the process of entering passenger information, implement the usage of a file to be used as input with passenger information. The input file will have the following format:
The input file is ordered by date. The first occurrence of a reward member ID corresponds to the first flight of that passenger, and thus should be automatically enrolled in the rewards program using the ID given in the input file.
It may be straightforward to design your program so it performs the following steps in order:
Load input file
Display a list of queries the user can type.
Show a prompt which the user can type queries
For each query input by the user, show the result of the query, and then reload the prompt for the next query
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started