Apr 16, 2025 | 326 words | 3 min read
11.2.2. Garage#
Instructions#
Write a class named Garage
as a model of a parking garage. The class
should have three data attributes: name
, spaces
, and
cars
. The name
attribute will store the name for the garage
as a string, the spaces
attribute will be used to track the total
number of spaces as an integer, and the cars
attribute will track the
number of cars currently in the garage as an integer. The Garage
class should also have three methods: car_in
, car_out
, and
status
.
car_in
This method should increment the
cars
attribute and print a success message if there are spaces available, otherwise it should print an error message.car_out
This method should decrement the
cars
attribute and print a success message if there are cars in the garage, otherwise it should print an error message.status
This method should print a status message stating how many empty spaces are available in the garage.
In the main
function of your program, create two parking garages,
Garage A and Garage B. Garage A should be initialized to have \(8\) out of \(10\)
spaces taken. Garage B should be initialized to have \(1\) out of \(15\) spaces taken.
Then implement a loop allowing a user can interact with the garage objects
through the following menu options.
Exit
Print current status.
Add a car to A lot.
Add a car to B lot.
Remove a car from A lot.
Remove a car from B lot.
Invalid choices should print an error message and then re-display the menu.
Sample Output#
Use the values in Table 11.2 below to test your program.
Case |
Test Run |
---|---|
1 |
2, 2, 3, 1, 2, 4, 2, 5, 5, 5, 3, 5, 0 |
2 |
7, 0 |
Ensure your program’s output matches the provided samples exactly. This includes all characters, white space, and punctuation. In the samples, user input is highlighted like this for clarity, but your program should not highlight user input in this way.
Case 1 Sample Output
$ python3 garage_login.py Welcome to the Garage Manager! ------------ Menu ------------ 0. Exit 1. Print current status. 2. Add a car to A lot. 3. Add a car to B lot. 4. Remove a car from A lot. 5. Remove a car from B lot. Please choose an option (0-5): 2 Added a car to Lot A Please choose an option (0-5): 2 Added a car to Lot A Please choose an option (0-5): 3 Added a car to Lot B Please choose an option (0-5): 1 Current Garage Status: Lot A: 0 out of 10 spaces are available. Lot B: 13 out of 15 spaces are available. Please choose an option (0-5): 2 Lot A is full. Can not add another car. Please choose an option (0-5): 4 Removed a car from Lot A Please choose an option (0-5): 2 Added a car to Lot A Please choose an option (0-5): 5 Removed a car from Lot B Please choose an option (0-5): 5 Removed a car from Lot B Please choose an option (0-5): 5 Lot B is empty. There are no cars to remove. Please choose an option (0-5): 3 Added a car to Lot B Please choose an option (0-5): 5 Removed a car from Lot B Please choose an option (0-5): 0 End of the Day Garage Status: Lot A: 0 out of 10 spaces are available. Lot B: 15 out of 15 spaces are available.
Case 2 Sample Output
$ python3 garage_login.py Welcome to the Garage Manager! ------------ Menu ------------ 0. Exit 1. Print current status. 2. Add a car to A lot. 3. Add a car to B lot. 4. Remove a car from A lot. 5. Remove a car from B lot. Please choose an option (0-5): 7 Invalid choice! ------------ Menu ------------ 0. Exit 1. Print current status. 2. Add a car to A lot. 3. Add a car to B lot. 4. Remove a car from A lot. 5. Remove a car from B lot. Please choose an option (0-5): 0 End of the Day Garage Status: Lot A: 2 out of 10 spaces are available. Lot B: 14 out of 15 spaces are available.
Deliverables#
Save your finished program as garage_login.py
, replacing
login
with your Purdue login. Then submit it along with all the
deliverables listed in Table 11.3
below.
Deliverable |
Description |
---|---|
|
Your finished program. |
Screenshot(s) |
PNG(s) capturing both test cases. |