void Method1(ALGraph G, Stack S) { int TotalCreadit = 0; for (int i = 0; i < G.VexNum; i++) TotalCreadit += G.Vertics[i].Credit; int EachSemCredit = TotalCreadit / G.ExtraInfo->SemesterNum; FILE* fp = fopen(TeachPlanPath, "w"); for (int i = 0; i < G.ExtraInfo->SemesterNum; i++) { int tmp = 0; printf("\n第%d个学期的课程:", i + 1); fprintf(fp, "\n第%d个学期的课程:", i + 1); do { printf("%s ", G.Vertics[S.Vertics[S.pos]].Date); fprintf(fp, "%s ", G.Vertics[S.Vertics[S.pos]].Date); tmp += G.Vertics[S.Vertics[S.pos++]].Credit; } while (tmp < EachSemCredit && S.pos < G.VexNum); } fclose(fp); }代码流程思路
时间: 2024-01-27 10:05:24 浏览: 54
数据结构Status BfsReachable(ALGraph g, int i, int j);
该函数的主要功能是根据给定的有向图G和栈S,将课程按照学期平均分配,并输出到文件中。
具体流程如下:
1. 计算总学分TotalCreadit,用于计算每个学期平均需要修多少学分。
2. 计算每个学期平均需要修多少学分,存储在变量EachSemCredit中。
3. 打开文件TeachPlanPath,用于输出每个学期的课程。
4. 通过循环,依次输出每个学期的课程。
5. 在每个学期中,通过循环和指针操作,依次输出课程名称,并计算该学期已修学分数。
6. 当该学期已修学分数达到平均值EachSemCredit或者所有课程都已输出时,退出循环。
7. 将该学期的课程输出到文件中。
8. 关闭文件。
阅读全文