第十天 学生管理系统

创建一个简单的学生管理系统可以帮助你学习如何使用Python来管理数据、处理用户输入和输出。以下是一个基本的学生管理系统示例,它包括添加学生、显示学生列表、删除学生和查找学生等功能。

我们将使用一个简单的数据结构(如列表)来存储学生信息,并编写函数来管理这些操作。

class Student:
    def __init__(self, student_id, name, age, grade):
        self.student_id = student_id
        self.name = name
        self.age = age
        self.grade = grade

    def __str__(self):
        return f"ID: {
      
      self.student_id}, Name: {
      
      self.name}, Age: {
      
      self.age}, Grade: {
      
      self.grade}"


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

    def add_student(self, student_id, name, age, grade):
        new_student = Student(student_id, name, age, grade)
        self.students.append(new_student)
        print(f"Added student: {
      
      new_student}")

    def display_students(self):
        if not self.students:
            print("No students found.")
        else:
            for student in self.students:
                print(student)

    def delete_student(self, student_id):
        student_to_delete = None
        for student in self.students:
            if student.student_id == student_id:
                student_to_delete = student
                break
        if student_to_delete:
            self.students.remove(student_to_delete)
            print(f"Deleted student: {
      
      student_to_delete}")
        else:
            print(f"Student with ID {
      
      student_id} not found.")

    def find_student(self, student_id):
        for student in self.students:
            if student.student_id == student_id:
                return student
        return None


def main():
    system = StudentManagementSystem()

    while True:
        print("\nStudent Management System")
        print("1. Add Student")
        print("2. Display Students")
        print("3. Delete Student")
        print("4. Find Student")
        print("5. Exit")

        choice = input("Enter your choice: ")

        if choice == '1':
            student_id = input("Enter student ID: ")
            name = input("Enter student name: ")
            age = input("Enter student age: ")
            grade = input("Enter student grade: ")
            system.add_student(student_id, name, age, grade)
        elif choice == '2':
            system.display_students()
        elif choice == '3':
            student_id = input("Enter student ID to delete: ")
            system.delete_student(student_id)
        elif choice == '4':
            student_id = input("Enter student ID to find: ")
            student = system.find_student(student_id)
            if student:
                print(student)
            else:
                print("Student not found.")
        elif choice == '5':
            print("Exiting the system.")
            break
        else:
            print("Invalid choice. Please try again.")


if __name__ == "__main__":
    main()

功能说明

  1. 添加学生:用户输入学生的ID、姓名、年龄和成绩,并将其添加到系统中。
  2. 显示学生:列出系统中所有学生的信息。
  3. 删除学生:根据学生的ID删除学生信息。
  4. 查找学生:根据学生的ID查找并显示学生的信息。
  5. 退出系统:退出程序。

上面的代码示例已经实现了5个基本功能:添加学生、显示学生、删除学生、查找学生和退出系统。不过,为了确保代码的完整性和清晰性,我将再次列出这些功能的实现,并对某些部分进行微调或解释。

以下是完整的学生管理系统代码:

class Student:
    def __init__(self, student_id, name, age, grade):
        self.student_id = student_id
        self.name = name
        self.age = int(age)  # 确保年龄是整数
        self.grade = grade

    def __str__(self):
        return f"ID: {
      
      self.student_id}, Name: {
      
      self.name}, Age: {
      
      self.age}, Grade: {
      
      self.grade}"


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

    def add_student(self, student_id, name, age, grade):
        # 检查学生ID是否已存在
        for student in self.students:
            if student.student_id == student_id:
                print(f"Error: Student with ID {
      
      student_id} already exists.")
                return
        new_student = Student(student_id, name, age, grade)
        self.students.append(new_student)
        print(f"Added student: {
      
      new_student}")

    def display_students(self):
        if not self.students:
            print("No students found.")
        else:
            for student in self.students:
                print(student)

    def delete_student(self, student_id):
        student_to_delete = None
        for student in self.students:
            if student.student_id == student_id:
                student_to_delete = student
                break
        if student_to_delete:
            self.students.remove(student_to_delete)
            print(f"Deleted student: {
      
      student_to_delete}")
        else:
            print(f"Student with ID {
      
      student_id} not found.")

    def find_student(self, student_id):
        for student in self.students:
            if student.student_id == student_id:
                return student
        return None


def main():
    system = StudentManagementSystem()

    while True:
        print("\nStudent Management System")
        print("1. Add Student")
        print("2. Display Students")
        print("3. Delete Student")
        print("4. Find Student")
        print("5. Exit")

        choice = input("Enter your choice: ")

        if choice == '1':
            student_id = input("Enter student ID: ")
            name = input("Enter student name: ")
            age = input("Enter student age: ")
            # 确保输入的是有效的整数
            while not age.isdigit():
                print("Invalid age. Please enter a valid integer.")
                age = input("Enter student age: ")
            grade = input("Enter student grade: ")
            system.add_student(student_id, name, age, grade)
        elif choice == '2':
            system.display_students()
        elif choice == '3':
            student_id = input("Enter student ID to delete: ")
            system.delete_student(student_id)
        elif choice == '4':
            student_id = input("Enter student ID to find: ")
            student = system.find_student(student_id)
            if student:
                print(student)
            else:
                print("Student not found.")
        elif choice == '5':
            print("Exiting the system.")
            break
        else:
            print("Invalid choice. Please try again.")


if __name__ == "__main__":
    main()

代码解释

  1. Student 类:定义了学生对象,包含ID、姓名、年龄和成绩属性。__str__ 方法用于打印学生信息。

  2. StudentManagementSystem 类:管理学生对象的列表,包含添加、显示、删除和查找学生的方法。

  3. add_student 方法:在添加学生之前,检查学生ID是否已存在。如果存在,则打印错误消息;否则,创建新学生对象并将其添加到列表中。

  4. display_students 方法:打印所有学生的信息。如果列表为空,则打印“No students found.”。

  5. delete_student 方法:根据学生的ID查找并删除学生对象。如果找不到学生,则打印错误消息。

  6. find_student 方法:根据学生的ID查找学生对象。如果找到,则返回学生对象;否则,返回None

  7. main 函数:包含主循环,用于显示菜单、获取用户输入并调用相应的方法。

  8. 输入验证:在添加学生时,使用while循环确保年龄输入是有效的整数。

运行此代码将启动学生管理系统,您可以按照提示输入数据来管理学生信息。

运行程序

将上述代码保存为一个Python文件(例如student_management.py),然后在命令行中运行该文件:

python student_management.py

按照提示输入数据,即可进行学生信息的管理。

猜你喜欢

转载自blog.csdn.net/dulgao/article/details/143356025