要求:程序接收输入的课程总数,专业,以及每个课程的各种信息(课程号,课程名,任课老师名等),课程之间的先修关系,没门课程开始的开课时间。
根据拓扑排序后的课程先修关系进行排刻,使用MFC界面显示排课信息,并使用MFC控件进行查询。
程序没写的不太完善,就以拓扑排序为中心写的。UI界面用的是VS的MFC写的,挺丑的,就不弄上来了。程序总体也就是3个函数,写的挺简单。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#define maxn 100
using namespace std;
struct node
{
char cno[maxn]; //课程编号
char cname[maxn];//课程名称
char tea[maxn];//任课老师
int wtime; //周学时数
int ttime; //指定开课学期
};
vector<node> course[maxn];
queue<int> s;
int view[maxn];
int ak[maxn];
int numbera;
void shuru()
{
int i,j;
// printf("专业 各学期所开课程数 课程编号 课程名称"
// 周学时数 先决条件\n");
printf("总课程数:\n");
cin>>numbera;
node ke;
printf("输入每个课程号,课程名,任课老师:\n");
for(i=1; i<=numbera; i++) //输入每个课程的信息
{
printf("第%d门课:",i)