free geoip
81

Python Mini OOP Project: Student Management

In this Python mini OOP project, we will build a Student Management System using Object-Oriented Programming (OOP) principles. This beginner-friendly…

In this Python mini OOP project, we will build a Student Management System using Object-Oriented Programming (OOP) principles. This beginner-friendly project helps you understand how classes, objects, inheritance, and encapsulation work in real-life scenarios. Whether you are a student learning Python or preparing for interviews, this example will help you develop a practical understanding of OOP concepts in Python.

Python Mini OOP Project: Student Management

Project Overview

The Student Management System allows users to add, update, delete, and view student information. Each student has attributes such as name, ID, age, and grade. We will also include a menu-based interface to interact with the system. The goal is to make this project simple yet functional for beginners to learn how OOP improves code structure and reusability.

Key OOP Concepts Used

  • Class and Object: Define the structure for each student and manage data efficiently.
  • Encapsulation: Protect student data by using private attributes and getter/setter methods.
  • Inheritance: Extend base functionality, such as creating subclasses for specific types of students.
  • Polymorphism: Override methods for different student types when necessary.

Full Source Code

# Python Mini OOP Project: Student Management

class Student:
    def __init__(self, student_id, name, age, grade):
        self.__student_id = student_id
        self.__name = name
        self.__age = age
        self.__grade = grade

    # Encapsulation: Getters and Setters
    def get_student_id(self):
        return self.__student_id

    def get_name(self):
        return self.__name

    def set_name(self, name):
        self.__name = name

    def get_age(self):
        return self.__age

    def set_age(self, age):
        self.__age = age

    def get_grade(self):
        return self.__grade

    def set_grade(self, grade):
        self.__grade = grade

    def display_info(self):
        print(f"ID: {self.__student_id}, Name: {self.__name}, Age: {self.__age}, Grade: {self.__grade}")

# Inheritance Example
class CollegeStudent(Student):
    def __init__(self, student_id, name, age, grade, major):
        super().__init__(student_id, name, age, grade)
        self.__major = major

    def get_major(self):
        return self.__major

    def display_info(self):
        super().display_info()
        print(f"Major: {self.__major}")

# Management System
class StudentManagementSystem:
    def __init__(self):
        self.students = []

    def add_student(self, student):
        self.students.append(student)
        print("✅ Student added successfully.")

    def remove_student(self, student_id):
        for student in self.students:
            if student.get_student_id() == student_id:
                self.students.remove(student)
                print("🗑️ Student removed successfully.")
                return
        print("❌ Student not found.")

    def update_student(self, student_id, name=None, age=None, grade=None):
        for student in self.students:
            if student.get_student_id() == student_id:
                if name: student.set_name(name)
                if age: student.set_age(age)
                if grade: student.set_grade(grade)
                print("✅ Student updated successfully.")
                return
        print("❌ Student not found.")

    def display_all_students(self):
        if not self.students:
            print("📭 No students in the system.")
        else:
            print("\n📋 Student List:")
            for student in self.students:
                student.display_info()

# Example usage
if __name__ == "__main__":
    sms = StudentManagementSystem()

    # Adding sample students
    s1 = Student("S001", "Alice", 17, "A")
    s2 = CollegeStudent("C001", "Bob", 21, "B+", "Computer Science")

    sms.add_student(s1)
    sms.add_student(s2)

    sms.display_all_students()

    # Update student data
    sms.update_student("S001", age=18, grade="A+")

    # Remove a student
    sms.remove_student("C001")

    sms.display_all_students()

Example Output

✅ Student added successfully.
✅ Student added successfully.

📋 Student List:
ID: S001, Name: Alice, Age: 17, Grade: A
ID: C001, Name: Bob, Age: 21, Grade: B+
Major: Computer Science

✅ Student updated successfully.
🗑️ Student removed successfully.

📋 Student List:
ID: S001, Name: Alice, Age: 18, Grade: A+

How This Project Helps You Learn OOP

This Python mini OOP project shows how to structure your code efficiently using object-oriented programming. Instead of writing repetitive code, you can create reusable classes, making your program modular and easy to maintain. Beginners can also experiment by adding more features, such as saving student data to a file, sorting students by grades, or implementing a search function.

Possible Improvements

  • Integrate file storage using JSON or CSV.
  • Create a graphical interface using tkinter.
  • Use a database such as SQLite for data persistence.
  • Add validation to ensure proper data input.

Conclusion

Through this Student Management System, you learned how to apply OOP principles in a real-world example. This project not only strengthens your Python programming skills but also prepares you for more complex applications. If you are looking to master Python OOP, try modifying and expanding this mini project to include more features and functionalities.

By practicing projects like this, you move closer to becoming a proficient Python developer!

rysasahrial

Leave a Reply

Your email address will not be published. Required fields are marked *