A console-based Java application that simulates basic operations in a hospital. This project is ideal for practicing Object-Oriented Programming concepts such as inheritance, abstraction, encapsulation, and polymorphism.
Target Time: 120 minutes
Skill Level: Intermediate
Focus: Real-world objects, polymorphism, abstract classes, business logic
Build a CLI-based system that allows:
- Adding patients and doctors
- Scheduling and completing appointments
- Listing doctors and their specialties
- Displaying patient visit history
- Use
Scannerfor input - Store all data in
ArrayLists - Use
intfor any payment amounts (cents) - Focus on clean, modular OOP design
- Fields:
String idString name
- Abstract Method:
void displayInfo()
- Extra Fields:
String specialty
- Implements
displayInfo()
- Extra Fields:
int ageArrayList<Appointment> history
- Implements
displayInfo() - Methods:
addToHistory(Appointment appointment)getHistory()
- Fields:
String appointmentIdPatient patientDoctor doctorString dateTimeboolean isCompleted
- Methods:
markAsCompleted()displayInfo()
Handles logic for:
- Adding doctors and patients
- Scheduling appointments
- Marking appointments as complete
- Listing doctor/patient info
- Viewing patient appointment history
Menu options:
===== Hospital Menu =====
1. Add Doctor
2. Add Patient
3. Schedule Appointment
4. Complete Appointment
5. View Doctor Info
6. View Patient History
7. Exit
src/ ├── Main.java ├── model/ │ ├── Person.java │ ├── Doctor.java │ ├── Patient.java │ ├── Appointment.java ├── service/ │ └── HospitalService.java
Add Doctor Enter name: Dr. Smith Enter specialty: Cardiology
Add Patient Enter name: Alex Enter age: 22
Schedule Appointment Enter patient ID: P001 Enter doctor ID: D001 Enter date and time: 2025-06-03 10:30
Complete Appointment Enter appointment ID: A001
View Patient History [Shows all completed appointments for that patient]