A console-based Java project implementing a car rental system. Users can rent, return, and view cars, with rental prices calculated based on daily rates. Utilizes object-oriented principles—abstraction, encapsulation, inheritance, and polymorphism. Features classes for cars, customers, rentals, and a central system for management.
Key Features 🌟
- Create and manage a fleet of cars with unique IDs, brands, models, and daily rental rates.
- Register customers with unique IDs and names.
- Rent and return cars, tracking rental transactions.
- Calculate rental prices based on the number of days and the daily rate of the selected car.
- Interactive menu for users to navigate through the system.
How to Use 🚀
- Clone the repository.
- Compile and run the Main class to start the Car Rental System.
- Follow the on-screen instructions to interact with the system (rent a car, return a car, or exit).
Project Structure 🏗️
- Car: Represents a car with properties and methods for rental operations.
- Customer: Represents a customer with a unique ID and name.
- Rental: Represents a rental transaction linking a specific car, customer, and rental duration.
- CarRentalSystem: Manages the overall system, including car and customer lists, rental transactions, and user interactions.
- Main: Contains the main method to instantiate the CarRentalSystem, create sample cars, and start the system.