资源简介
任务:大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
目标:(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
相关资源
- 数据结构年终考题范围和答案 耿国华
- 数据结构 朱战力 习题解答 数据结构
- 数据结构课程设计 6 1 彩票系统
- 教学计划编制系统
- 大数(链表、数组)实现
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- 航空订票系统_数据结构课程设计
- 多项式求和(数据结构C 版)
- 尚观培训linux董亮老师关于数据结构的
- 数据结构 知识点总结
- 华南理工大学数据结构复习提纲二
- 华南理工大学数据结构复习提纲一
- 数据结构用C 写的停车场系统源代码
- 数据结构(河北科技大学)
- 数据结构考前习题 清华大学出版社
- 数据结构课件(北邮)
- 数据结构实验 基于栈的表达式求值
- 数据结构课程设计——图书管理系统
- 成绩管理系统(数据结构)
- 数据结构-最小通信网问题
- 数据结构课程设计同学通讯录系统
- 数据结构课程设计 公园导游图
- 数据结构殷人昆版的课后答案
- 2006年湖北工业大学409数据结构试题
- 数据结构实验-魔王语言-源码加实验报
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- Fundamentals of Data Structure in C
- 北京邮电大学数据结构历年考研真题
评论
共有 条评论