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

引言:(假装不是一个大学生课设)在现代教育管理中,学生管理系统显得尤为重要。这种系统能够帮助教育机构有效地管理学生资料、成绩、出勤以及其他教育相关活动,从而提高管理效率并减少人为错误。通过使用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()
使用效果

试用一下:

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

相关推荐
正在绘制中几秒前
Java重要面试名词整理(一):MySQL&JVM&Tomcat
java·开发语言·面试
工业甲酰苯胺5 分钟前
JVM简介—1.Java内存区域
java·jvm·python
2401_846535955 分钟前
Scala项目(图书管理系统)
开发语言·后端·scala
锅包肉的九珍7 分钟前
Scala图书管理系统
开发语言·后端·scala
囚生CY9 分钟前
【学习笔记】蒙特卡洛与强化学习
笔记·python·学习
SomeB1oody14 分钟前
【Rust自学】5.1. 定义并实例化struct
开发语言·后端·rust
Null箘32 分钟前
从零创建一个 Django 项目
后端·python·django
云空36 分钟前
《解锁 Python 数据挖掘的奥秘》
开发语言·python·数据挖掘
青莳吖1 小时前
Java通过Map实现与SQL中的group by相同的逻辑
java·开发语言·sql