Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

πŸ§‘β€πŸŽ“ Java OOP Student Management System (Inheritance, Polymorphism, CSV-Handling)

πŸ“Œ Overview

Features include CSV data import/export, menu-driven interaction, insertion sort by student ID, and automated grade reporting.

Implements a student record management system where users can add, remove, display, sort, and analyze coursework and research student data stored in an ArrayList.

The program supports file handling for .txt and .csv datasets, with systematic testing for validation.

This system manages student records for both coursework and research enrolments. Data is read from .txt and .csv files, stored in an ArrayList, and manipulated using menu-driven options.

It demonstrates Object-Oriented Programming concepts including inheritance, polymorphism, and dynamic binding, as well as manual implementation of the insertion sort algorithm.

πŸ› οΈ Tech Stack

  • Language: Java (JDK SE, NetBeans 19)
  • Paradigm: Object-Oriented Programming
  • Concepts: Inheritance, Polymorphism, Dynamic Binding
  • Data Structure: ArrayList of Student objects
  • File Handling: .txt and .csv import/export

πŸ“‚ Files Implemented

  • Client.java
  • Student.java
  • StudentCourse.java
  • StudentResearch.java
  • Unit.java
  • UnitCourse.java
  • Research.java
  • studentRecords.txt (initial dataset)
  • additionalStudentRecords.csv (for new student records)

πŸ”‘ Key Implementations

  • Inheritance

    • StudentCourse & StudentResearch extend Student
    • UnitCourse & Research extend Unit
  • Polymorphism

    • Overriding reportGrade() in subclasses
  • Dynamic Binding

    • reportGrade() called on Student reference executes subclass method
  • Sorting

    • Insertion sort implemented manually (ascending by student ID)
  • CSV Handling

    • getStudentData() reads .txt/.csv into ArrayList
    • printSortedStudents() writes sorted list into .csv

🧩 Required Classes

  • Student (base class) β†’ StudentCourse, StudentResearch
  • Unit (base class) β†’ UnitCourse, Research
  • Client β†’ menu-driven program

πŸ“œ Menu Operations (8 total)

Menu:
1. Quit
2. Add students from CSV
3. Remove student by ID
4. Output all student details
5. Coursework performance (above/below average)
6. Report grade by student ID
7. Sort students by ID (insertion sort)
8. Export sorted list to CSV
Enter your choice:

πŸ–‹οΈ Author

Styverson Ng

Bachelor of Information Technology
Artificial Intelligence & Autonomous Systems
Cyber Security & Cyber Forensics

Murdoch University

About

Java-based program demonstrating OOP principles to manage coursework and research students using ArrayLists, CSV file handling, insertion sort, and automated grade reporting.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /