第十九章、校园信息管理系统项目

信息管理系统

信息管理系统(Information Management System, IMS)是一种用于收集、存储、处理和分发信息的软件系统,旨在帮助组织有效管理和利用信息资源,支持决策制定和业务操作。

应用示例:

信息管理系统的核心功能‌

1. 校园信息管理系统项目简介

项目目标

项目功能

学校功能

班级功能

操作界面(主界面)

功能展示

        xxxx小学信息管理系统
+-----------------------------------+
| 1) 添加班级                       |
| 2) 删除班级                       |
| 3) 进入管理班级                   |
| 4) 列出所用班级                   |
| 5) 列出班级排名(平均成绩高 - 低)|
| 6) 保存班级信息                   |
| 7) 加载班级信息                   |
| 0) 退出程序                       |
+-----------------------------------+
请选择:

操作界面(班级管理界面)

功能展示

        一年1班-班级管理
+-----------------------------------+
| 1) 添加学生                       |
| 2) 修改学生的语文成绩             |
| 3) 修改学生的数学成绩             |
| 4) 删除学生                       |
| 5) 列出所有学生的成绩             |
| 6) 按语文成绩从高到低显示学生成绩 |
| 7) 按数学成绩从高到低显示学生成绩 |
| 0) 退出班级                       |
+-----------------------------------+
请选择:

项目结构

一个学校有多个班级,一个班级有多个学生,一个学生有姓名,语文成绩和数学成绩两项。如图:

项目文件

  1. 学校相关模块:school.py
  2. 班级相关模块:class_room.py
  3. 学生相关模块:student.py

初始内容如下

class_rooms = []  # 用于存放班级对象

def show_school_menu():
    print('        xxxx小学信息管理系统')
    print('+-----------------------------------+')
    print('| 1) 添加班级                       |')
    print('| 2) 删除班级                       |')
    print('| 3) 进入管理班级                   |')
    print('| 4) 列出所用班级                   |')
    print('| 5) 列出班级排名(平均成绩高 - 低)|')
    print('| 6) 保存班级信息                   |')
    print('| 7) 加载班级信息                   |')
    print('| 0) 退出程序                       |')
    print('+-----------------------------------+')

def class_manager():
    '''此函数用来管理班级数据'''
    while True:
        show_school_menu()
        sel = input('请选择:')
        match sel:
            case '1':  # 1) 添加班级
                pass
            case '2':  # 2) 删除班级
                pass
            case '3':  # 3) 进入管理班级
                pass
            case '4':  # 4) 列出所用班级
                pass
            case '5':  # 5) 列出班级排名(平均成绩高 - 低)
                pass
            case '6':  # 6) 保存班级信息
                pass
            case '7':  # 7) 加载班级信息
                pass
            case '0':  # 0) 退出程序
                return
            case _:
                print('不存在的选项,请重新输入')
                import time
                time.sleep(2)  # 让程序睡眠2秒


if __name__ == '__main__':
    class_manager()

import student
from student import Student


class ClassRoom:
    '''班级类型'''
    def __init__(self, class_name):
        self.class_name = class_name  # 班级名称
        self.student = []  # 保存学生信息

    def show_class_menu(self):
        '此函数用来显示操作菜单'
        print(f'        {self.class_name}-班级管理')
        print('+-----------------------------------+')
        print('| 1) 添加学生                       |')
        print('| 2) 修改学生的语文成绩             |')
        print('| 3) 修改学生的数学成绩             |')
        print('| 4) 删除学生                       |')
        print('| 5) 列出所有学生的成绩             |')
        print('| 6) 按语文成绩从高到低显示学生成绩 |')
        print('| 7) 按数学成绩从高到低显示学生成绩 |')
        print('| 0) 退出班级                       |')
        print('+-----------------------------------+')

    def student_manager(self):
        '''此函数用来学生数据'''
        while True:
            self.show_class_menu()
            sel = input('请选择:')
            match sel:
                case '1':  # 1) 添加学生
                    pass
                case '2':  # 2) 修改学生的语文成绩
                    pass
                case '3':  # 3) 修改学生的数学成绩
                    pass
                case '4':  # 4) 删除学生
                    pass
                case '5':  # 5) 列出所有学生的成绩
                    pass
                case '6':  # 6) 按语文成绩从高到低显示学生成绩
                    pass
                case '7':  # 7) 按数学成绩从高到低显示学生成绩
                    pass
                case '0':  # 0) 退出班级
                    return
                case _:
                    print('不存在的选项,请重新输入')
                    import time
                    time.sleep(2)  # 让程序睡眠2秒


if __name__ == '__main__':
    cr1 = ClassRoom('一年1班')
    cr1.student.append(Student('张三', 100, 61))
    cr1.student.append(Student('李四', 70, 81))
    cr1.student.append(Student('王五', 90, 71))
    cr1.student.append(Student('赵六', 80, 91))
    cr1.student_manager()

class Student:
    '''学生类型'''
    def __init__(self, name, chinese, math):
        self.name = name
        self.chinese_score = chinese
        self.math_score = math