把课程分到不同学期,保证所有课程满足先修关系,且能对课程基本信息和上课学期进行查询。
【基本要求】
(1)每门课的信息包括课程基本信息(如课程号、学分等)和课程之间的关系信息(即课程之间的先修关系)。 课程信息存储在文件中。程序从文件中读取课程信息。
(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀,即每个学期课程门数和学分尽量相近;二是把课程尽可能地排在前几个学期中,即课程安排前紧后松。
(3)课程编排结果也要写入文件中。 【实现提示】 (1)课程基本信息和课程之间先修关系信息用图表示,图的顶点存储课程的基本信息,图的边存储课程之间的先修关系。
(2)先采用拓扑排序生成所有课程的之间的先后关系,再根据拓扑排序把课程分解到不同学期。 【知识点】
(1)程序文件读写; (2)图的邻接表表示法; (3)图的拓扑排序算法。