第十九章、校园信息管理系统项目
信息管理系统
信息管理系统(Information Management System, IMS)是一种用于收集、存储、处理和分发信息的软件系统,旨在帮助组织有效管理和利用信息资源,支持决策制定和业务操作。
应用示例:
- CRM -- 客户关系管理(Customer Relationship Management)
- ERP -- 企业资源计划(Enterprise Resource Planning)
- SCM -- 供应链关系管理(Supply Chain Management)
- HIS -- 医院信息系统(Hospital Information System)
信息管理系统的核心功能
- 数据收集:从内部或外部来源获取数据(如传感器、用户输入等)。
- 存储与管理:通过文件、数据库或云存储管理结构化或非结构化数据。
- 处理与分析:清洗、转换数据,并通过算法或工具(如BI工具)生成洞察。
- 信息传递:以报告、仪表盘、通知等形式向用户提供有用信息。
- 控制与安全:确保数据完整性、访问控制和合规性。
1. 校园信息管理系统项目简介
项目目标
- 实现对一个学校的班级、学生信息及学生成绩的管理;
- 实现小学校园数据的电子化,有利于查阅和数据分析;
- 数据电子存档,减少纸张利用,节能减排。
项目功能
学校功能
- 添加班级
- 删除班级
- 进入管理班级
- 列出所用班级
- 列出班级排名(平均成绩高-低)
- 保存班级信息
- 加载班级信息
- 退出程序
班级功能
- 添加学生
- 修改学生的语文成绩
- 修改学生的数学成绩
- 删除学生
- 列出所有学生的成绩
- 按语文成绩从高到低显示学生成绩
- 按数学成绩从高到低显示学生成绩
- 退出班级
操作界面(主界面)
功能展示
xxxx小学信息管理系统
+-----------------------------------+
| 1) 添加班级 |
| 2) 删除班级 |
| 3) 进入管理班级 |
| 4) 列出所用班级 |
| 5) 列出班级排名(平均成绩高 - 低)|
| 6) 保存班级信息 |
| 7) 加载班级信息 |
| 0) 退出程序 |
+-----------------------------------+
请选择:
操作界面(班级管理界面)
功能展示
一年1班-班级管理
+-----------------------------------+
| 1) 添加学生 |
| 2) 修改学生的语文成绩 |
| 3) 修改学生的数学成绩 |
| 4) 删除学生 |
| 5) 列出所有学生的成绩 |
| 6) 按语文成绩从高到低显示学生成绩 |
| 7) 按数学成绩从高到低显示学生成绩 |
| 0) 退出班级 |
+-----------------------------------+
请选择:
项目结构
一个学校有多个班级,一个班级有多个学生,一个学生有姓名,语文成绩和数学成绩两项。如图:
项目文件
- 学校相关模块:
school.py
; - 班级相关模块:
class_room.py
; - 学生相关模块:
student.py
。
初始内容如下
- 学校相关模块:
school.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()
- 班级相关模块:
class_room.py
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()
- 学生相关模块:
student.py
class Student:
'''学生类型'''
def __init__(self, name, chinese, math):
self.name = name
self.chinese_score = chinese
self.math_score = math