⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 教学计划
💻 CPP
字号:
#define n 13
#define NULL 0
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include"duilie.h"
#include"linjiebiao.h"

typedef  struct code//课程信息
{
	char data[5];
	char name[20];
	int  grade;
	int  term;
}course;

void DisplayGraph(AlGraph &G,course Y[])//输出课程相关情况
{
	int i,j;
	ArcNode *p;
	for(i=1;i<=G.vexnum;i++)
	{
		cout<<Y[i].data;
        for(j=1;j<=(5-strlen(Y[i].data));j++)
					cout<<" ";
		cout<<"相关课程编号  ";
		p=G.a[i].firstarc;
        while(p)
		{  
		    cout<<Y[p->adjvex].data<<" ";
	    	p=p->nextarc;
		}
		cout<<endl;
   	}
}

void choose_course(AlGraph &G,Linkqueue &Q,course Y[])//选课
{ 
	int i,x,count;
	ArcNode *p;
	int visit[n];
	for(i=1;i<=G.vexnum;i++)
        visit[i]=0;
    for(x=1;x<=6;x++)
	{
		count=0;
		for(i=1;i<=G.vexnum;i++)
		    if(!G.a[i].indegree&&!visit[i]) Enqueue(Q,i);
	    while(!Emptyqueue(Q))
		{
            Dequeue(Q,i);
			count+=Y[i].grade;
			if(count<=10)
			{
				visit[i]=1;		    
                Y[i].term=x;
				p=G.a[i].firstarc;
    	        while(p)
				{  
		           G.a[p->adjvex].indegree--;
				   p=p->nextarc;
				}
		
			}
			else count-=Y[i].grade;
			   
		}
	}
	   
}   
void main()
{
	AlGraph G;
	Linkqueue Q;
	InitQueue(Q);
	int i,x,j;    
	course Y[n]={{-1," 0"},
				{"C1","程序设计基础",2,0},
				{"C2","离散数学",3,0},
	            {"C3","数据结构",4,0},
	            {"C4","汇编语言",3,0}, 
				{"C5","语言设计分析",2,0},
                {"C6","计算机原理",3,0},
	            {"C7","编译原理",4,0},
	            {"C8","操作系统",4,0},
	            {"C9","高等数学",7,0},
	            {"C10","线形代数",5,0},
	            {"C11","普通物理",2,0},
                {"C12","数值分析",3,0}};
	CreateGraph(G); 
	choose_course(G,Q,Y);
	cout<<"教学计划编制"<<endl;
	for(x=1;x<=6;x++)
	{
	    cout<<"学期"<<x<<endl;
		for(i=1;i<=G.vexnum;i++)
			if(x==Y[i].term) 
			{
				cout<<Y[i].name;
				for(j=1;j<=(15-strlen(Y[i].name));j++)
					cout<<" ";
				cout<<"代号"<<Y[i].data;
				for(j=1;j<=(5-strlen(Y[i].data));j++)
					cout<<" ";
				cout<<"学分为"<<Y[i].grade<<endl;
			}
		cout<<endl;
	}
	DisplayGraph(G,Y);
	  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -