Skip to content

geloy-n/School-Management-System-OOP-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

33 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“š School Management System (Java OOP Practice)

A simple Java console-based application designed to practice and demonstrate core Object-Oriented Programming (OOP) concepts including Inheritance, Interfaces, Polymorphism, Aggregation, and more.


πŸ“Œ Features

βœ… Manage Students, Teachers, Admin staff, and Courses
βœ… Compute salaries dynamically for Teachers (based on handled courses) and Admins (with fixed allowances)
βœ… Aggregate shared Course objects between Students and Teachers
βœ… Demonstrates runtime polymorphism via a Payable interface
βœ… Clean, organized OOP structure and class relationships


πŸ“– Concepts Practiced

  • βœ… Object-Oriented Programming (OOP)
  • βœ… Constructors
  • βœ… Array of Objects (ArrayList)
  • βœ… Static variables and methods
  • βœ… Inheritance
  • βœ… super keyword for constructor chaining
  • βœ… Method Overriding
  • βœ… Abstraction via interfaces
  • βœ… Interfaces (Payable)
  • βœ… Polymorphism (including runtime polymorphism)
  • βœ… Getters and Setters
  • βœ… Aggregation (shared Course objects)

πŸ’» How to Run

  1. Clone the repository
    git clone https://github.com/geloy-n/School-Management-System-OOP-Java.git
    cd School-Management-System-OOP-Java/src
    
  2. Compile the project
    javac models/*.java Main.java
    
  3. Run the program
    java Main
    

πŸ“Œ Sample Output

Student ID: 1, Name: John, Age: 20
Student ID: 2, Name: Mark, Age: 21
Teacher ID: 1, Name: Matthew, Age: 30, Base Salary: 40000.0, Total Salary: 44000.0

Total Number of Students: 2
Total Number of Teachers: 1

Courses handled by Matthew:
- Mathematics 101 (MATH101) 
- Science 101 (SCI101) 
Courses enrolled by John:
- Mathematics 101 (MATH101)
Courses enrolled by Mark:
- Science 101 (SCI101)

Teacher ID: 1, Name: Matthew, Age: 30, Base Salary: 40000.0, Total Salary: 44000.0
Admin Name: Luke, Base Salary: 50000.0, Allowance: 8000.0, Total Salary: 58000.0

Updating base salary for Matthew from 40000.0 to 45000.0

Teacher ID: 1, Name: Matthew, Age: 30, Base Salary: 45000.0, Total Salary: 47000.0
Courses handled by Matthew:
- Mathematics 101 (MATH101) 

About

Practicing OOP by creating management system in Java

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages