A menu-driven console-based Java application that manages students, courses, and enrollments using OOP, file handling, auto-ID generation, and exception handling.
This project simulates a basic university course registration system and is ideal for Java practice, academic submissions, and internship portfolios.
- Add new student (Auto-generated ID)
- View all students
- Search student by ID
- Add new course with capacity
- View all courses
- Course capacity limit
- Enroll student in a course
- Prevent duplicate enrollment
- Drop course
- View all enrollments
- Show courses of a specific student
- Menu-driven interface
- Exception handling for invalid input
- File handling (data saved after exit)
- Persistent auto-ID after restart
- Object-Oriented Programming (OOP)
- Encapsulation & Classes
- Custom Exception
- Java Serialization
- File Handling
- Collections (
ArrayList) - Streams API
- Input Validation
course-enrollment-system
├── Student.java
├── Course.java
├── Enrollment.java
├── FileManager.java
├── InvalidChoiceException.java
└── Main.java
javac *.javajava MainThe system automatically creates and uses:
students.datcourses.datenrollments.dat
These files store data so it is retained after restarting the application.
===== COURSE ENROLLMENT SYSTEM =====
1. Add Student
2. Add Course
3. Enroll Student
4. View Students
5. View Courses
6. View Enrollments
7. Search Student
8. Drop Course
9. Show Student Courses
10. Exit
- Java OOP practice project
- College mini project
- Internship resume project
- File handling demonstration