项目思考过程
排课系统实现
功能分析
需求描述(陈述功能地细节)
教务处排好课程之后学生选课,最终生成完整的课程表。
前提条件(想要开启本功能需要提前准备什么,聚集)
记录所有课程得课程总表。
操作该功能的人员所在岗位的名称(尽量准确描述员工工作岗位,而非管理员)
专业负责人制定培养方案,教务处老师安排课程老师、时间、地点。
输入信息(功能的实现需要外界或者其他功能模块提供哪些输入信息)
学院信息,专业信息,课程信息,学生信息,教师信息。
输出信息(本功能向外界或者其他功能模块)
课程表。
E-R概念图设计
详细的分析过程:
流程分析与实体确定
设计培养方案,并在每学期期末安排下学期课程;
1、 需求描述
设计培养方案,并在每学期期末安排下学期课程;
2、 前提条件
设有学院、专业实体,以及包含学校所有课程的课程总表;
3、 操作该功能人员岗位
专业负责人
4、 输入信息
包含学校所有课程的课程总表;
5、 输出信息
下学期课程安排表;
6、 E -R概念模型设计
增加实体:学院,专业,培养方案,课程(此处课程包含选修课与必修课)
学院(学院号,学院名称);
专业(专业号,专业名称);
培养方案(课程号,学分要求,学制)
课程(课程号,课程名称,课程类型)
安排课程教师;
1、 需求描述
为课程安排上课教师;
2、前提条件
存在教师实体(教师名单表);
3、操作该功能人员岗位
专业负责人
4、输入信息
课程安排表,教师名单表;
5、输出信息
分配好教师的课程表;
6、E-R概念模型设计
增加实体:教师
教师(教师工号,教师名称,职称)
安排上课时间和上课地点;
1、 需求描述
为分配好教师的课程表安排上课时间与地点;
2、 前提条件
已有分配好教师的课程表;
3、 操作该功能人员岗位
教务处老师;
4、 输入信息
分配好教师的课程表;
5、 输出信息
排课表;
6、E-R概念模型设计
将课程与教师之间建立联系“授课”,用学期、时间、地点、教务老师刻画这一个联系。
授课(授课编号,学期,时间,地点,教务老师)
排课结束后发布,学生选课;
1、 需求描述
学生选课;
2、前提条件
存在学生实体与排课表;
3、操作该功能人员岗位
学生;
4、输入信息
排课表;
5、输出信息
课程表;
6、E-R概念模型设计
增加:学生实体、班级实体。
学生(学号,姓名,性别)
班级(班级号,班级名,入校时间)
课程表确定并输出;
关系确定
学院下设专业,二者关系为“学院拥有专业”,为“1对n”的关系;
各专业的培养方案不同,于是我们将“专业”与“培养方案”之间的关系设为“制定”,为“1对n”的关系,并且用入校时间、专业负责人描述该关系。
在已有所有课程信息的课程总表中,从培养方案中导入对应专业的课程要求,形成新的课程表,培养方案与课程表之间的关系为“n对n”;
专业负责人安排课程教师实际是在课程与教师之间建立联系“授课”,课程与教师之间的对应关系为“n对n”
教务老师安排上课时间和上课地点只需要在的基础上增加“时间”、“地点”两个属性描述关系“授课”即可。
学生选课既是操作,也是联系;同时,考虑到只有选修课是需要学生参与课程表生成的,所有我们分别使“授课”与“班级”,“授课”与“学生”之间建立“必修”与“选修”两种关系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异