Python学生信息管理系统(完整代码)

发布于:2024-07-05 ⋅ 阅读:(15) ⋅ 点赞:(0)

引言:(假装不是一个大学生课设)在现代教育管理中,学生管理系统显得尤为重要。这种系统能够帮助教育机构有效地管理学生资料、成绩、出勤以及其他教育相关活动,从而提高管理效率并减少人为错误。通过使用Python,我们可以快速开发出灵活且功能强大的管理系统。

目录

分析

系统设计

数据模型设计

功能模块划分

于是我们有了:

完整项目

使用效果


分析

一个基本的学生管理系统应该具备以下几个核心功能:

  • 学生信息管理:允许管理员添加、编辑和删除学生的基本信息如姓名、年龄、性别和班级。
  • 成绩管理:管理学生的成绩数据,包括成绩录入、修改和查询。
  • 课程管理:添加和管理课程信息,以及课程与学生的关联。
  • 查询功能:能够按条件查询学生信息和成绩,如按姓名、班级等。
  • 报表生成:生成学生的成绩单、出勤记录等报表。

系统设计

数据模型设计

        数据模型主要包括三个对象:学生、课程和成绩。学生对象包含姓名、年龄等属性;课程对象包括课程名称和课程描述;成绩对象则关联学生和课程,并记录具体的分数。

功能模块划分
  • 信息管理模块:处理学生、教师和课程的基本信息录入和修改。
  • 成绩管理模块:实现成绩的添加、更新和查询。
  • 用户界面模块:通过图形界面与用户交互,实现数据的输入和显示。
于是我们有了:
class Student:
    def __init__(self, student_id, name, age):
        self.student_id = student_id
        self.name = name
        self.age = age

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

class StudentManager:
    def __init__(self):
        self.students = {}

    def add_student(self, student):
        self.students[student.student_id] = student
        print(f"Added: {student}")

    def remove_student(self, student_id):
        if student_id in self.students:
            del self.students[student_id]
            print(f"Removed student ID {student_id}")
        else:
            print(f"Student ID {student_id} not found")

    def show_all_students(self):
        for student_id, student in self.students.items():
            print(student)

# 示例
manager = StudentManager()
manager.add_student(Student(1, "Alice", 20))
manager.add_student(Student(2, "Bob", 22))
manager.show_all_students()
manager.remove_student(1)
manager.show_all_students()

我们继续完善学生管理系统的代码。首先是学生、课程和成绩管理的基本类和方法的实现

添加功能以编辑学生信息

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

    def update_info(self, name=None, age=None):
        if name is not None:
            self.name = name
        if age is not None:
            self.age = age

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

class StudentManager:
    def __init__(self):
        self.students = {}

    def add_student(self, student):
        if student.student_id in self.students:
            print("Error: Student already exists.")
        else:
            self.students[student.student_id] = student
            print(f"Added: {student}")

    def remove_student(self, student_id):
        if student_id in self.students:
            del self.students[student_id]
            print(f"Removed student ID {student_id}")
        else:
            print(f"Student ID {student_id} not found")

    def update_student(self, student_id, name=None, age=None):
        if student_id in self.students:
            self.students[student_id].update_info(name, age)
            print(f"Updated: {self.students[student_id]}")
        else:
            print(f"Student ID {student_id} not found")

    def show_all_students(self):
        for student in self.students.values():
            print(student)

# 示例用法
manager = StudentManager()
manager.add_student(Student(1, "Alice", 20))
manager.add_student(Student(2, "Bob", 22))
manager.update_student(1, name="Alice Smith")
manager.show_all_students()
manager.remove_student(1)
manager.show_all_students()

同理,设计课程管理

class Course:
    def __init__(self, course_id, name, description):
        self.course_id = course_id
        self.name = name
        self.description = description

    def __str__(self):
        return f"Course ID: {self.course_id}, Name: {self.name}, Description: {self.description}"

class CourseManager:
    def __init__(self):
        self.courses = {}

    def add_course(self, course):
        if course.course_id in self.courses:
            print("Error: Course already exists.")
        else:
            self.courses[course.course_id] = course
            print(f"Added: {course}")

    def remove_course(self, course_id):
        if course_id in self.courses:
            del self.courses[course_id]
            print(f"Removed course ID {course_id}")
        else:
            print("Course ID not found")

    def show_all_courses(self):
        for course in self.courses.values():
            print(course)

# 示例用法
course_manager = CourseManager()
course_manager.add_course(Course(101, "Mathematics", "Introduction to Algebra"))
course_manager.add_course(Course(102, "English", "Literature and Composition"))
course_manager.show_all_courses()
course_manager.remove_course(101)
course_manager.show_all_courses()

完整项目

        接下来,我们将整合学生、课程和成绩管理功能,并添加一个简单的命令行交互界面,以便用户可以通过终端操作这个学生管理系统。

        这个程序允许用户通过命令行添加和查看学生、课程和成绩信息。用户可以通过输入选择来操作系统,如添加学生、课程、成绩,或者查看已录入的信息。这为用户提供了一个基本但完整的界面来与学生管理系统进行交互。

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

    def update_info(self, name=None, age=None):
        if name is not None:
            self.name = name
        if age is not None:
            self.age = age

    def __str__(self):
        return f"学生ID: {self.student_id}, 姓名: {self.name}, 年龄: {self.age}"

class Course:
    def __init__(self, course_id, name, description):
        self.course_id = course_id
        self.name = name
        self.description = description

    def __str__(self):
        return f"课程ID: {self.course_id}, 课程名称: {self.name}, 描述: {self.description}"

class Grade:
    def __init__(self, student_id, course_id, score):
        self.student_id = student_id
        self.course_id = course_id
        self.score = score

    def __str__(self):
        return f"学生ID: {self.student_id}, 课程ID: {self.course_id}, 成绩: {self.score}"

class Manager:
    def __init__(self):
        self.students = {}
        self.courses = {}
        self.grades = []

    def add_student(self, student):
        self.students[student.student_id] = student

    def add_course(self, course):
        self.courses[course.course_id] = course

    def add_grade(self, grade):
        self.grades.append(grade)

    def show_students(self):
        for student in self.students.values():
            print(student)

    def show_courses(self):
        for course in self.courses.values():
            print(course)

    def show_grades(self):
        for grade in self.grades:
            print(grade)

def main():
    manager = Manager()

    while True:
        print("\n菜单:")
        print("1. 添加学生")
        print("2. 添加课程")
        print("3. 添加成绩")
        print("4. 显示所有学生")
        print("5. 显示所有课程")
        print("6. 显示所有成绩")
        print("7. 退出")
        choice = input("请输入选项: ")

        if choice == '1':
            student_id = input("请输入学生ID: ")
            name = input("请输入姓名: ")
            age = input("请输入年龄: ")
            manager.add_student(Student(student_id, name, age))
        elif choice == '2':
            course_id = input("请输入课程ID: ")
            name = input("请输入课程名称: ")
            description = input("请输入课程描述: ")
            manager.add_course(Course(course_id, name, description))
        elif choice == '3':
            student_id = input("请输入学生ID以添加成绩: ")
            course_id = input("请输入课程ID以添加成绩: ")
            score = input("请输入成绩: ")
            manager.add_grade(Grade(student_id, course_id, score))
        elif choice == '4':
            manager.show_students()
        elif choice == '5':
            manager.show_courses()
        elif choice == '6':
            manager.show_grades()
        elif choice == '7':
            print("正在退出...")
            break
        else:
            print("无效选项,请输入1至7之间的数字。")

if __name__ == "__main__":
    main()
使用效果

试用一下:

        可能发的有点晚,能救一个算一个吧


网站公告

今日签到

点亮在社区的每一天
去签到