【Python】实现学校教务管理系统(附源码)

1、系统需求分析

1.1系统功能简介

教务管理系统是基于现代化的教务管理理念和信息化管理技术,将学生学籍管理、教学计划管理、开课计划管理、排课管理、网上选课、成绩管理、考务管理、教学考评、教材管理等紧密地联系起来,实现教务信息管理的一体化,促进教务管理工作日益规范化、制度化、科学化、智能化。大大减少教务管理的人工操作,有效促进学校教务管理水平和效率的提高。基于校园网为学校教学工作提供先进、实用的信息化管理手段,为学生、教师及管理人员提供简便、快捷的网络化信息服务。教务管理系统能够适应学校学年制、学分制以及学年/学分混合制的需要,能够协助学校建立符合自身特殊需要的教务管理规范,形成个性化的教务管理模式。涵盖教务管理工作的所有环节,尊重历史、满足现状、适应发展,基于校园网/互联网,为学生、教师教辅人员及管理人员提供简便、快捷的网络化信息服务,将大量的事务性、重复性工作,分散到各个院(系)/部及有关教师教辅人员,既是权力下放、也是责任到人;将关键的安排性、协调性工作,集中到教务处相应管理人员,重点是审核、监督。基于模块化、组件化的思想实现,可以使用图形化界面灵活定义操作流程和界面布局,能够准确反映每一项教务管理工作的流程、顺序、步骤,方便使用人员轻松掌握相应系统功能、快速完成相应管理工作。可以自定义主题风格,满足不同使用人员的个性喜好。教务管理信息系统是数字化校园极为重要的组成部分之一,能够与其实现无缝集成,共同实现无冗余的、统一的信息管理。

1.2 软件环境与开发工具

Pycharm2022.1:Pycharm是一种python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、脚本控制。此外,该IDE提供了一些高级功能,用户支持Django框架下的专业Web开发,同时支持Google APP Engine,更酷的是Pycharm支持IronPython。
MySQL8:MySQL 是一个 DBMS(数据库管理系统),由瑞典 MySQLAB 公司开发,目前属于 Oracle 公司,MySQL 是最流行的关系型数据库管理系统(关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发者都选择 MySQL 作为网站数据库。MySQL 使用 SQL 语言进行操作。
操作系统:Window10.

2.数据库设计

2.1 概要结构设计

需要设计八张表,分别是学生信息表,课程信息表,选课表,教师信息表,课程信息表,学生授课信息表,教师授课信息表以及用户信息表。各个表实现交互,获取对应的信息。
学生表:

sno:学号,varchar(20),唯一且不为空,为主键。
sname:学生姓名,varchar(20),唯一且不为空。
ssex:学生性别,char(1),取值为男或女。
sage:学生年龄,int(7)。
sdept:学生所在院系,varchar(20)。
sclass:学生所在班级,varchar(20)。
sphone:学生手机号码,varchar(11)。

课程表:

cno:课程编号,varchar(20),为主键。
cname:课程名称,varchar(20),不为空。
credit:学分,int(2)。
classhour:课时,int(5)

选课表:

sno:学号,varchar(20),外键,引用学生表中的sno字段,不为空,为主键。
cno:课程编号,varchar(20),外键,引用课程表中的cno字段,不为空,为主键。
grade:成绩,int(3)。

教师表:

tno:教师编号,varchar(20),唯一且不为空。,为主键
tname:教师姓名,varchar(20),唯一且不为空。
tdept:教师所在院系,varchar(20)。
zc:职位,varchar(20)。
phone:电话号码,varchar(11)。

用户信息表:

username:用户名,varchar(20),不为空,为主键。
password:密码,varchar(20),不为空。
user_type:用户类型,varchar(20),取值为student或teacher或admin。

授课信息表:

path:上课地址,varchar(20)。
time:上课时间,varchar(20)。

教师授课信息表:

tno:教师编号,varchar(20),外键,引用教师表(teachers)中的tno字段,不为空。
cno:课程编号,varchar(20),外键,引用课程表(courses)中的cno字段,不为空。
banji:上课班级,varchar(20),不为空。
path:上课地址,varchar(20),外键,引用授课表(class)中的path字段,不为空。
time:上课时间,varchar(20),外键,引用授课表(class)中的time字段,不为空。

学生授课信息表:

tno:教师编号,varchar(20),外键,引用教师表(teachers)中的tno字段,不为空。
cno:课程编号,varchar(20),外键,引用课程表(courses)中的cno字段,不为空。
sno:学生编号,varchar(20),外键,引用学生表(students)中的sno字段,不为空。
path:上课地址,varchar(20),外键,引用授课表(class)中的path字段,不为空。
time:上课时间,varchar(20),外键,引用授课表(class)中的time字段,不为空。

2.2 逻辑结构设计

在这里插入图片描述

数据库逻辑结构设计是数据库设计的一个重要阶段,它是建立数据库的基础,涉及到数据库表、字段、关系等元素的设计和定义。在进行数据库逻辑结构设计之前,需要进行数据库需求分析,确定系统的需求,明确数据的流转和业务逻辑,为数据库逻辑结构设计提供依据

部分程序演示图:

在这里插入图片描述

源码+论文直通车

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 07:58:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 07:58:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 07:58:01       87 阅读
  4. Python语言-面向对象

    2024-03-21 07:58:01       96 阅读

热门阅读

  1. Opencv | Jupyter Notebook 安装

    2024-03-21 07:58:01       44 阅读
  2. (持续更新中)DRF相关

    2024-03-21 07:58:01       35 阅读
  3. docker和kubectl客户端安装Linux

    2024-03-21 07:58:01       40 阅读
  4. python(Django)之退出功能实现

    2024-03-21 07:58:01       41 阅读
  5. 混合精度训练(AMP)

    2024-03-21 07:58:01       36 阅读
  6. Bert模型输出:last_hidden_state转换为pooler_output

    2024-03-21 07:58:01       38 阅读
  7. 【工具】mac 环境配置

    2024-03-21 07:58:01       46 阅读
  8. 啥是大语言模型LLM

    2024-03-21 07:58:01       44 阅读
  9. mongodb进阶聚合查询各种写法

    2024-03-21 07:58:01       42 阅读