数据结构与算法分析课程设计报告 课题名称:拓扑排序—— 打印输出计算机本科专业 4 年每学期的课表 提交文档学生姓名: 提交文档学生学号: 同组 成 员 名 单: 指导 教 师 姓 名: 指导教师评阅成绩: 指导教师评阅意见: 提交报告时间: 2010 年 12 月 日 1. 实验题目: 拓扑排序——打印输出计算机本科专业 4 年每学期的课表 2. 实验的目的和要求: (1)采用 C++实现; (2)熟练掌握图的应用; (3)熟练掌握图的邻接矩阵存储结构以级拓扑排序的基本思想; (4)上机调试程序,掌握查错,排错使程序能正确运行。 3. 实验的环境: (1)硬件环境:联想 G450 笔记本电脑 (2)软件环境:WindowsXP,MicrosoftVisualC++6.0 4. 算法描述: 程序流程图 类的层次结构,每个类的设计, 包括数据成员和成员函数组成. class Graph { public: 开 始 构建课程信息图 读取文件,将课程信息保存在链表中 调用拓扑排序,对 list 排序将结果存入sortedlist 中 利用sortedlist 安排课表 打印课表,并将课表存入文本文件 结束 virtual int n()=0; virtual int e()=0; virtual int first(int)=0; virtual int next(int,int)=0; virtual void setEdge(int,int,int)=0; virtual void delEdge(int,int)=0; virtual int weight(int,int)=0; virtual int getMark(int)=0; virtual void setMark(int,int)=0; }; class Graphm:public Graph { public: Graphm(int numVert); ~Graphm(); int n(); int e(); int first(int); int next(int,int); void setEdge(int,int,int); void delEdge(int,int); int weight(int,int); int getMark(int); void setMark(int,int); private: int numVertex,numEdge; int **matrix; int *mark; }; class Link { public: Link(); Link(string code,string name,int period,int semester,string precondition); string getCode(); void setCode(string str); string getName(); void setName(string str); int getPeriod(); ...