资源简介
任务:大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
目标:(1)输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。
(3)若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。计划的表格格式自行设计。
代码片段和文件信息
#include
#include
#define null 0
#define MAXNODE 64 //最大课程个数
typedef struct
{
char c[3];
}cid; //课程号
typedef struct Course
{
cid id[3]; //课程号
char name[30]; //课程名
float xf; //学分
}Course; //课程
typedef struct PreCourse
{
int adjvex; //课程在数组中的下标
struct PreCourse *pre; //指向下一先修的课程节点
}PreCourse; //先修的课程节点
typedef struct
{
Course course; //课程
PreCourse *firstnext; //指向第一个先修的课程节点
}CourseNode; //课程节点
typedef struct
{
CourseNode courses[MAXNODE]; //邻接表
int xqs; //学期总数
int num; //课程的数目
float xfsx; //学分上限
}AlGraph; //课程图
typedef struct
{
int data[MAXNODE]; //队中元素
int fr; //队头r 队尾f
}queue;
int IsCricle=0; //判断是否环 1表示是 0表示不是
int jxq; //用于计算学期的
void queueinit(queue *q) //队初始化
{
q->f=q->r=0;
}
void queuein(queue *qint x) //入队
{
if((q->r+1)%MAXNODE==q->f)
{
printf(“队满\n“);
exit(0);
}
q->r=(q->r+1)%MAXNODE;
q->data[q->r]=x;
}
int queueout(queue *q) //出队
{
if(q->f==q->r)
{
printf(“队空\n“);
exit(0);
}
q->f=(q->f+1)%MAXNODE;
return q->data[q->f];
}
int queueempty(queue *q) //队判空 1为空
{
if(q->f==q->r)
return 1;
else return 0;
}
void creatpre(AlGraph *CGraph) //建立先修关系
{
system(“cls“); //用来清屏
int choice;
fflush(stdin); //清空输入流
int in; //临时变量
int j;
PreCourse *p*q; //临时变量
printf(“\n建立先修关系:\n“);
printf(“\n输入的每一门课程号的编号:“);
for(i=0;inum;i++)
{
if(i%4==0)printf(“\n“);
printf(“%d) “i+1); //输入课程的编号
printf(“%s\t“CGraph->courses[i].course.id);
}
printf(“\n请根据以上的编号,输入每一门课程的先修课程号的编号(输入0 表示没有或结束):\n“);
for(i=0;inum;i++)
{
printf(“%s的先修课程:“CGraph->courses[i].course.id);
scanf(“%d“&j);
n=0;
while(j) //判断输入的课程编号是否正确
{
while(j<1||j>CGraph->num||j==i+1)
{
if(j==i+1)
printf(“先修课程号不能是本课程号“);
else
printf(“输入的先修课程号不在该专业开设的课程序列中“);
fflush(stdin); //清空输入流
printf(“重新输入:“);
scanf(“%d“&j);
}
p=(PreCourse *)malloc(sizeof(PreCourse)); //申请结点
p->adjvex=j-1;
p->pre=null;
if(n==0)
{
CGraph->courses[i].firstnext=p;
q=CGraph->courses[i].firstnext;
n++;
}
else
{
q->pre=p;
q=p;
n++;
}
scanf(“%d“&j);
}
}
printf(“ 1)重新建立先修关系 2)确定\n“);
printf(“请选择:“);
scanf(“%d“&choice);
if(choice==1)
creatpre(CGraph);
jxq=0;
}
AlGraph input() //输入并建立课程图
{
AlGraph CGraph;
int xqzs=0kczs=0; //学期总数:xqzs 专业共开设课程数:kczs
int ij;
int choice;
float xfxfsx=0; // 学分上限:xfsx
printf(“教学计划编制\n\n“);
printf(“输入参数:\n“);
printf(“1、学期总数:“);
scanf(“%d“&xqzs);
CGraph.xqs=xqzs;
printf(“2、专业共开设课程数:“);
scanf(“%d“&kczs);
CGraph.num=kczs; //课程数
printf(“3、学分上限(每个学期的学分上限都一样):“);
scanf(“%f“&xfsx);
CGra
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13832 2010-12-04 14:05 教学计划编制\Debug\BuildLog.htm
文件 38165 2010-12-04 14:05 教学计划编制\Debug\jj.obj
文件 53248 2010-12-04 14:05 教学计划编制\Debug\jjj.exe
文件 388 2010-12-04 14:05 教学计划编制\Debug\jjj.exe.intermediate.manifest
文件 321856 2010-12-04 14:05 教学计划编制\Debug\jjj.ilk
文件 281600 2010-12-04 14:05 教学计划编制\Debug\jjj.pdb
文件 65 2010-12-04 14:05 教学计划编制\Debug\mt.dep
文件 44032 2010-12-04 14:05 教学计划编制\Debug\vc80.idb
文件 61440 2010-12-04 14:05 教学计划编制\Debug\vc80.pdb
文件 9108 2010-12-04 16:45 教学计划编制\jj.cpp
文件 560128 2010-12-04 16:45 教学计划编制\jjj.ncb
文件 870 2010-11-07 17:06 教学计划编制\jjj.sln
..A..H. 9216 2010-12-04 16:45 教学计划编制\jjj.suo
文件 3682 2010-11-07 17:07 教学计划编制\jjj.vcproj
文件 1409 2010-12-04 16:45 教学计划编制\jjj.vcproj.TFW-PC.Ashu.user
目录 0 2011-09-10 09:39 教学计划编制\Debug
目录 0 2012-08-16 10:41 教学计划编制
----------- --------- ---------- ----- ----
1399039 17
- 上一篇:Refactoring To Patterns
- 下一篇:addpass.exe
相关资源
- 数据结构张琨版课后习题答案
- C数据结构最小生成树的构造
- 全国交通咨询模拟数据结构课程设计
- 数据结构 停车场问题
- 数据结构二叉树家谱管理系统
- 数据结构关于二叉树的各种算法
- 数据结构课程设计——压缩软件Huff
- 数据结构-B树的完整实现
- 北京交通大学数据结构大纲考试重点
- 最短路径问题
- 数据结构教程第5版-源程序
- 数据结构课程设计-二叉排序树附详细
- 数据结构经典例题经典考试题复习题
- 空气质量查询_数据结构作业
- 神秘国度的爱情故事 算法与数据结构
- 数据结构课设模拟银行业务
- 目录管理系统数据结构
- 数据结构课程设计 线索二叉树
- 数据结构 文本编辑器
- 高级数据结构课设1.7z
- 数据结构教学计划编制问题
- 广东工业大学数据结构课设---航空航
- 北京交通大学数据结构大纲考试重点
- 数据结构课程设计校园导游完整版
- 数据结构报告 校园导航问题
- 学生成绩管理系统-数据结构课程设计
- 教学计划编制问题有向图和拓扑排序
- 数据结构课程设计之客户积分管理系
- 广工数据结构课程设计完整版
- 数据结构课程设计之贪吃蛇源代码
评论
共有 条评论