Answered step by step
Verified Expert Solution
Question
1 Approved Answer
please answer in java CSE1322L Assignment 6 Concept Summary: 1. Object Oriented Programming Concepts 2. Abstract classes 3. Polymorphism Objective: Consider the scenario at a
please answer in java
CSE1322L Assignment 6 Concept Summary: 1. Object Oriented Programming Concepts 2. Abstract classes 3. Polymorphism Objective: Consider the scenario at a high school football ticket stand. Tickets for the games are sold at various times and have different prices depending on how early the ticket is purchased. In this programming assignment you will need to create four classes and a driver program. The parent class called Ticket should be an abstract class. Three classes, should extend the Ticket class and be called AdvanceBooking, Current Booking and DiscountBooking. Finally, create a test class called Driver. The rules for purchasing tickets are: CurrentBookings are for tickets purchased for games happening today. They cost $75 cach AdvancedBookings are for tickets purchased for games happening in the future. If the game is less than 15 days in the future, tickets cost $50 cach, if they are 15 or more days in the future, they cost $25 each. (Note - if the NoOfDays - the program transfers control to the CurrentBookings class Finally, students can purchase discount tickets for $10, as long as they are for games at least 1 day in the future otherwise they are $75. Assignment Requirements: The Ticket abstract class is the parent class that all other classes will extend. This class holds all common operations such that the subclasses can implement the methods specified here. This class should have the following methods: A constructor which generates a ticket with a ticket Number (Integer). The class should have a variable called nextTicketNumber which should be initialized to 1. When each ticket is created, they should be assigned the next integer regardless of the type of ticket. A getPricel ) method which returns the ticket price (In ticket it is an abstract method) An override of the toString / toString method that prints the type of ticket, ticket number, and price of ticket. The CurrentBooking class is a subclass that allows for tickets to be purchased on the day of the game. When created, cach ticket should be assigned the next ticket number, and have their price set to $75 The AdvanceBooking class is a subclass that represents tickets purchased in advance. In order to create an AdvancedBooking, the number of days till the game (numDaysUntilGame - an integer variable) must be passed in at the time the ticket is created. Like CurrentBookings, AdvancedBookings will be assigned the next ticket number. If the game is 15 days or more in the future, the ticket will cost $25. If the game is in less than 15 days, the ticket will cost $50. The DiscountBooking class is a subclass that allows for students to purchase tickets in advance. In order to create a DiscountBooking object, the number of days until the game (numDaysUntilGame- an integer variable) must be passed in at the time the ticket is created. Like all other ticket types, the next ticket number will be assigned. If the game is today, the ticket price is the normal 575, however, if the game is any other day, it will cost $10. Driver Program The driver program should have a menu of options for a person to purchase and see tickets. The program should keep going until the user selects exit The menu has the following options: 1. Sell a Ticket for a future gam 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit All input/output statements should be in the driver program only. All tickets should have a unique ticket number As tickets are created, regardless of which type of ticket they are, they should be stored in an arraylist . If option 2 or 3 are selected, you'll need to ask the user how many days in the future the game is. If option 4 is selected, it should print out all tickets which have been sold by simply calling print on the object name. As long as you successfully overrode toString/ToString it should print out a message including the ticket type, ticket number and price. Demonstrate polymorphism when creating the tickets and storing them in the Arayl.ist. Sample Output: Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 1 How many days until the game? 16 You sold: Ticket number 1 with a price of $25 for a game in 16 days. Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets S. Exit 3 How many days until the game? You sold: Ticket number 2 with a price of S10 is a discount ticket for a game in 14 days Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 2 You sold: Ticket number 3 with a price of $75 for today's game Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 3 How many days until the game? [O for today) 7 You sold: Ticket number 4 with a price of S10 is a discount ticket for a game in 7 days Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 3. Exit How many days until the game? [O for today! You sold: Ticket number 5 with a price of $75 is a discount ticket for a game in 0 days Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 1 How many days until the game? 22 You sold: Ticket number 6 with a price of $25 for a game in 22 days. 3 0 Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 1 How many days until the game? 1 You sold: Ticket number 7 with a price of S75 for a game in 1 days. Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 4 Here are all the tickets you sold: Ticket number 1 with a price of $25 for a game in 16 days. Ticket number 2 with a price of Sio is a discount ticket for a game in 14 days. Ticket number 3 with a price of S75 for today's game Ticket number 4 with a price of S10 is a discount ticket for a game in 7 days Ticket number 5 with a price of 875 is a discount ticket for a game in O days. Ticket number 6 with a price of $25 for a game in 22 days. You sold: Ticket number 7 with a price of $75 for a game in 1 days. Choose from the following: 1. Sell a Ticket for a future game 2. Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 6 Invalid Choice Choose from the following: 1. Sell a Ticket for a future game 2.Sell a Ticket for today's game 3. Sell a Discount Ticket 4. Print All Tickets 5. Exit 5 Rubric: Ticket class should include the following items: (20 points total) Constructor (Default, Overload) (5) Private variables for storing next ticket number (3) Abstract getPrice() method (2) toString method (5) Class must be declared abstract (5) AdvanceBooking class should include the following items: (20 points total) private variables as needed (1) Constructor (Default, overloaded) (5) Implementation of getPrice() method (5) A getter/ setter methods or any other methods that are needed (4) toString method (5) CurrentBooking class should include the following items: (20 points total) private variables as needed (1) Constructor (Default, overloaded) (5) Implementation of getPrice() method (5) A getter/ setter methods or any other methods that are needed (4) toString method (5) DiscountBooking class should include the following items (20 points total): private variables as needed (1) Constructor (Default, overloaded) (5) Implementation of getPrice() method (5) A getter/ setter methods or any other methods that are needed (4) toString method (5) Driver program should include the following:(20 points total) ArrayList of tickets of the various subclasses. (10) A functioning menu of options that allows users to sell tickets or see sold tickets.. (5) A function to print out all the tickets sold 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