Python Student Management System

A student management system is a common application that assists schools, educational institutions, or teachers in managing student information. This article will guide you through developing a student management system using object-oriented programming in Python. The system supports functionalities such as adding, deleting, modifying, searching, displaying all students, saving student data to a file, and exiting the system.

System Design and Function Analysis

The system needs to implement the following functions:

  • Add a student: Enter new student information including ID, name, age, and gender.
  • Delete a student: Remove student information based on their ID.
  • Modify student information: Update a student's name, age, and gender using their ID.
  • Search student information: Retrieve detailed information about a student by ID or name.
  • Display all students: Show information of all students in the system.
  • Save student information: Store student data in a file for loading upon program restart.
  • Exit the system: Close the student management system.

System Design and Implementation

In Python, classes can represent student objects, each containing attributes like ID, name, age, and gender. Below is a simplified example:


class Pupil:
    def __init__(self, student_id, name, age, gender):
        self.student_id = student_id
        self.name = name
        self.age = age
        self.gender = gender

    def show_details(self):
        print(f"ID: {self.student_id}")
        print(f"Name: {self.name}")
        print(f"Age: {self.age}")
        print(f"Gender: {self.gender}")

class SchoolSystem:
    def __init__(self):
        self.pupils = []

    def enroll_pupil(self, pupil):
        self.pupils.append(pupil)

    def expel_pupil(self, student_id):
        for pupil in self.pupils:
            if pupil.student_id == student_id:
                self.pupils.remove(pupil)
                print("Student expelled successfully!")
                return
        print("No student found with the given ID!")

    def update_pupil_info(self, student_id, name, age, gender):
        for pupil in self.pupils:
            if pupil.student_id == student_id:
                pupil.name = name
                pupil.age = age
                pupil.gender = gender
                print("Information updated successfully!")
                return
        print("No student found with the given ID!")

    def find_pupil_info(self, keyword):
        for pupil in self.pupils:
            if keyword in (pupil.student_id, pupil.name):
                pupil.show_details()

    def list_all_pupils(self):
        if not self.pupils:
            print("No student information available!")
        else:
            for pupil in self.pupils:
                pupil.show_details()

    def persist_pupil_data(self, filename):
        with open(filename, "w") as file:
            for pupil in self.pupils:
                file.write(f"{pupil.student_id},{pupil.name},{pupil.age},{pupil.gender}\n")
        print("Data saved successfully!")

    def load_pupil_data(self, filename):
        self.pupils = []
        try:
            with open(filename, "r") as file:
                lines = file.readlines()
                for line in lines:
                    pupil_data = line.strip().split(",")
                    pupil = Pupil(pupil_data[0], pupil_data[1], int(pupil_data[2]), pupil_data[3])
                    self.pupils.append(pupil)
            print("Data loaded successfully!")
        except FileNotFoundError:
            print("File not found!")

System Application Example

Below is an example demonstrating how to use the student management system:


system = SchoolSystem()

# Load student data
system.load_pupil_data("students.txt")

while True:
    print("===== Student Management System =====")
    print("1. Enroll a new student")
    print("2. Expel a student")
    print("3. Update student information")
    print("4. Find student information")
    print("5. List all students")
    print("6. Save student data")
    print("7. Exit system")
    action = input("Enter your choice: ")

    if action == "1":
        student_id = input("Enter ID: ")
        name = input("Enter name: ")
        age = int(input("Enter age: "))
        gender = input("Enter gender: ")
        pupil = Pupil(student_id, name, age, gender)
        system.enroll_pupil(pupil)
        print("Enrollment successful!")

    elif action == "2":
        student_id = input("Enter ID of the student to expel: ")
        system.expel_pupil(student_id)

    elif action == "3":
        student_id = input("Enter ID of the student to update: ")
        name = input("Enter new name: ")
        age = int(input("Enter new age: "))
        gender = input("Enter new gender: ")
        system.update_pupil_info(student_id, name, age, gender)

    elif action == "4":
        keyword = input("Enter ID or name to search: ")
        system.find_pupil_info(keyword)

    elif action == "5":
        system.list_all_pupils()

    elif action == "6":
        system.persist_pupil_data("students.txt")

    elif action == "7":
        break

    else:
        print("Invalid choice, please try again!")

print("Thank you for using the Student Management System. Goodbye!")

Tags: python Object-Oriented Programming File Handling

Posted on Fri, 11 Sep 2026 16:57:04 +0000 by Nile