C/C++教学计划制定算法[2023-10-25]
8.教学计划制定算法
1.问题描述
问题说明:设计和实现一个教学计划制定算法,根据输入的课程信息,自动设计所有学期的课程计划。输入信息:学期数,一学期的学分上限,每门课的课程号,学分和直接先修课程的课程号(可以某个专业人才培养计划为例进行需求调研,不少于 20 门课程,所有信息从文件中读取)
2. 基本要求
(1) 课程管理功能:从文件中读取各门课程的信息(每门课的课程号,学分和直接先修课程的课程号);可以增加一门课程;可以删除某门课程;可以修改某门课程的信息;
(2) 对于给定课程,查询需要先修哪些课程;
(3) 对于给定课程,查询哪些为其后续课程;
(4) 教学计划制定:使用两种编制策略,一种是使学生在各学期的学习负担尽可能均匀(每学期的学分差不多),一种是课程尽可能的集中在前几个学期(不能超过一学期的学分上限)中来生成所有学期的课程计划;
(5) 算法结果保存功能:若根据条件限制算法无解则报告信息,否则将排好的教学计划输出到文件中;
(6) 在需求分析阶段完成未尽功能需求,适当扩充功能(至少扩充 3-5 个功能)
参考测试数据:
课程号 | 课程名称 | 直接先修课程课程号 | 学分 |
---|---|---|---|
C1 | 高等代数(C1) | 无 | 4 |
C2 | 程序设计基础 | 无 | 4 |
C3 | 离散数学 | 无 | 3 |
C4 | 计算机系统基础 | 无 | 4 |
C5 | 线性代数 | C1 | 3 |
C6 | 高等代数(C2) | C1 | 5 |
C7 | Web 开发入门 | C2 | 3 |
C8 | 数据结构 | C3,C2 | 5 |
C9 | 密码学 | C1,C6 | 3 |
C10 | 概率论与数据统计 | C1 | 3 |
C11 | 算法分析与设计 | C8 | 3 |
C12 | 面向对象程序设计(java) | C8 | 4 |
C13 | 操作系统 | C8,C4 | 4 |
C14 | 数据库系统与原理 | C8 | 4 |
C15 | 计算机网络 | C8,C4 | 4 |
C16 | 网络安全 | C9,C15 | 3 |
C17 | 大数据处理 | C5,C10 | 3 |
C18 | 数学建模 | C5,C10 | 3 |
C19 | 移动应用开发 | C12 | 3 |
C20 | JavaEE 开发 | C7,C12 | 3 |
C21 | 编译原理 | C13 | 3 |
C22 | 网络应用及系统集成 | C15 | 3 |
C23 | 网络协议分析 | C15 | 2 |
C24 | javaEE 框架 | C20 | 3 |