1. 问题描述
大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两个学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
要求实现的基本功能如下:
(1)录入课程目录。
(2)可以编辑课程目录,如课程增加、删除、信息修改等。
(3)满足一定条件的教学计划的输出。
2. 设计要求
(1)基本要求:输入参数包括:学期总数、一学期的学分上限、每门课的课程号(固定为占3为的字母和数字串)、学分和直接先修课程的课程号。
(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽量地集中在前几个学期中。
(3)若根据给定的条件无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。教学计划的表格格式自行设计。
3. 测试数据
学期总数:8;学分上限:10;该专业共开设16门课,课程号从C01~C16,学分顺序为2,3,4,3,2,3,4,4,4,5,4,4,2,3,2,3;先修关系自定义(画图)。
4. 实现提示
可设学期总数不超过10,课程总数不超过60。如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。应建立内部课程序号与课程号之间的对应关系。
代码(已由codeblocks编译通过):
#include<bits/stdc++.h>
using namespace std;
struct node
{
char name[33];
int xf;
};
int all_terms, t_max_xf, t_V, t_E;
vector<node> G[1009];
map<string, int> mp;
void