CSE1322 Assignment 3
Total Page:16
File Type:pdf, Size:1020Kb
CSE1322 Assignment 3 Background: A rental car company has hired you to build an inventory system to keep track of their vehicles. The company, Acme Car Rentals, rents 3 classes of cars: Economy, Midsized and SUVs. Each rents for a different price. Their initial inventory is as follows: Type Make Model Color Current Original Rental Mileage Cost Rate Economy Nissan Versa Blue 105 $14,500 $25/day Economy Toyota Yaris White 8422 $17,500 $25/day Midsized Dodge Avenger Green 15720 $15,000 $45/day Midsized Ford Focus Yellow 2368 $14,500 $45/day SUV Toyota Rav4 Silver 432 $26,150 $80/day Classes you must create: ● Define a Vehicle class. ● It should have attributes for make, model, color, current mileage, original cost, and a boolean that keeps track of whether the vehicle is currently rented. ● It should have getters/setters for each attribute. ● It must have a constructor to set all attributes. ● It should have an override for toString or ToString which returns a string similar to: ○ Available: Blue Nissan Versa with 105 miles ○ Rented: Blue Nissan Versa with 105 miles ● Define an Economy_Car class. It should inherit from Vehicle. ○ It should have an attribute daily_rental_rate. ○ Create a constructor which takes in make, model, color, current mileage, original cost, and daily rental rate. ○ Create an override for toString/ToString which prints: ■ Economy Car: Rented: Blue Nissan Versa with 105 miles ● Note most of this is just the text that your parent class prints. ● Define a Midsize_Car class. It should inherit from Vehicle. ○ It should have an attribute daily_rental_rate. ○ Create a constructor which takes in make, model, color, current mileage, original cost, and daily rental rate. ○ Create an override for toString/ToString which prints: ■ Midsized Car: Available: Green Dodge Avenger with 15720 miles ● Note: Most of this is just the text that your parent class prints. ● Define a SUV class. It should inherit from Vehicle. ○ It should have an attribute daily_rental_rate. ○ Create a constructor which takes in make, model, color, current mileage, original cost, and daily rental rate. ○ Create an override for toString/ToString which prints: ■ SUV: Available: Silver Toyota RAV4 with 432 miles ● Note: Most of this is just the text that your parent class prints. Driver Program: ● In your driver class, create an ArrayList/List of Vehicles. ● Add each of the vehicles in the table above to your ArrayList/List. ● Create a method show_cars which takes in the ArrayList/List and prints out all of the vehicles in a menu like this: 0. Return 1. Economy Car: Available: Blue Nissan Versa with 105 miles 2. Economy Car: Available: White Toyota Yaris with 8422 miles 3. Midsized Car: Available: Green Dodge Avenger with 15720 miles 4. Midsized Car: Available: Yellow Ford Focus with 2368 miles 5. SUV: Available: Silver Toyota RAV4 with 432 miles ● Create a method rent_cars ○ Using a loop, prompt the user to: “Choose a car to rent:”. Call the show_cars() method above to produce a menu. ○ Read in a response, so long as it’s not 0, mark the chosen car as rented. ● Create a method return_cars ○ Using a loop, prompt the user to: “Choose a car to rent:”. Call the show_cars() method above to produce a menu. ○ Read in a response, so long as it’s not 0, mark the chosen car as available. ● Produce a main menu that looks like this: 1. Rent cars 2. Return cars 3. Quit ● Read in a choice and call the appropriate method above as long as the user doesn’t choose 3. Sample Output: 1. Rent cars 2. Return cars 3. Quit 1 Choose a car to rent: 0. Return 1. Economy Car: Available: Blue Nissan Versa with 105 miles 2. Economy Car: Available: White Toyota Yaris with 8422 miles 3. Midsized Car: Available: Green Dodge Avenger with 15720 miles 4. Midsized Car: Available: Yellow Ford Focus with 2368 miles 5. SUV: Available: Silver Toyota RAV4 with 432 miles 1 Choose a car to rent: 0. Return 1. Economy Car: Rented: Blue Nissan Versa with 105 miles 2. Economy Car: Available: White Toyota Yaris with 8422 miles 3. Midsized Car: Available: Green Dodge Avenger with 15720 miles 4. Midsized Car: Available: Yellow Ford Focus with 2368 miles 5. SUV: Available: Silver Toyota RAV4 with 432 miles 3 Choose a car to rent: 0. Return 1. Economy Car: Rented: Blue Nissan Versa with 105 miles 2. Economy Car: Available: White Toyota Yaris with 8422 miles 3. Midsized Car: Rented: Green Dodge Avenger with 15720 miles 4. Midsized Car: Available: Yellow Ford Focus with 2368 miles 5. SUV: Available: Silver Toyota RAV4 with 432 miles 0 1. Rent cars 2. Return cars 3. Quit 2 Choose a car to return: 0. Return 1. Economy Car: Rented: Blue Nissan Versa with 105 miles 2. Economy Car: Available: White Toyota Yaris with 8422 miles 3. Midsized Car: Rented: Green Dodge Avenger with 15720 miles 4. Midsized Car: Available: Yellow Ford Focus with 2368 miles 5. SUV: Available: Silver Toyota RAV4 with 432 miles 1 Choose a car to return: 0. Return 1. Economy Car: Available: Blue Nissan Versa with 105 miles 2. Economy Car: Available: White Toyota Yaris with 8422 miles 3. Midsized Car: Rented: Green Dodge Avenger with 15720 miles 4. Midsized Car: Available: Yellow Ford Focus with 2368 miles 5. SUV: Available: Silver Toyota RAV4 with 432 miles 3 Choose a car to return: 0. Return 1. Economy Car: Available: Blue Nissan Versa with 105 miles 2. Economy Car: Available: White Toyota Yaris with 8422 miles 3. Midsized Car: Available: Green Dodge Avenger with 15720 miles 4. Midsized Car: Available: Yellow Ford Focus with 2368 miles 5. SUV: Available: Silver Toyota RAV4 with 432 miles 0 1. Rent cars 2. Return cars 3. Quit 3 Submitting your answer: Please follow the posted submission guidelines here: https://ccse.kennesaw.edu/fye/submissionguidelines.php Ensure you submit before the deadline listed on the lab schedule for CSE1322L here: https://ccse.kennesaw.edu/fye/courseschedules.php Rubric: ● Vehicle Class (45 points total) ○ Original_cost attribute + getter/setter (5 points) ○ Miles attribute + getter/setter (5 points) ○ Make attribute + getter/setter (5 points) ○ Model attribute + getter/setter(5 points) ○ Color attribute + getter/setter(5 points) ○ Rented attribute + getter/setter(5 points) ○ Constructor (10 points total) ■ 5 parameters (1 point each) ■ Set the 5 attributes (1 point each) ○ toString/ToString override (5 points) ● Economy_Car Class (10 points total) ○ daily_rental_rate attribute (2 points) ○ Constructor (6 points total) ■ 6 parameters are taken in and set (1 point each) ○ toString/ToString override (2 points) ● Midsized_Car Class (10 points total) ○ daily_rental_rate attribute (2 points) ○ Constructor (6 points total) ■ 6 parameters are taken in and set (1 point each) ○ toString/ToString override (2 points) ● SUV Class (10 points total) ○ daily_rental_rate attribute (2 points) ○ Constructor (6 points total) ■ 6 parameters are taken in and set (1 point each) ○ toString/ToString override (2 points) ● Driver Class (25 points total) ○ show_cars() method (3 points total) ■ Use a loop/foreach loop to print the vehicles (3 points) ○ rent_cars() method (5 points total) ■ Prompt and read user response (2 points) ■ Successfully update rented attribute in selected car (3 points) ○ return_cars() method (5 points total) ■ Prompt and read user response (2 points) ■ Successfully update rented attribute in selected car (3 points) ○ ArrayList/List created (5 points) ○ 5 cars added per the table at the top of this doc (5 points total) ○ Main menu (2 points) .