- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[教学计划]教学计划编制问题说明书
目 录
摘 要 1
前 言 2
正 文 3
1. 采用类c语言定义相关的数据类型 3
2. 各模块的伪码算法 3
3. 函数的调用关系图 3
4. 调试分析 3
5. 测试结果 3
6. 源程序(带注释) 3
总 结 4
参考文献 5
致 谢 6
附件Ⅰ 部分源程序代码 7
摘 要
大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。通过该题目的设计过程,可以加深理解数据的逻辑结构、存储结构,掌握线性表上基本运算的实现,进一步理解和熟练掌握课本中所学的各种数据结构,学会如何把学到的知识用于解决实际问题,培养学生的动手能力。
关键词: 拓扑排序;前驱;后继;
前 言
本次课设的主要内容,功能以及技术指标
(1)使用顺序表存储项目及学校相关信息,基本要求:1)输入参数:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串,规定从C01~C12)、学分和直接先修课的课程号;2)输出参数:输出提示信息,由用户在键盘上输入运行程序中规定的命令来指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中;3)若根据给定的条件问题无解,则报告适当的信息,否则将教学计划输出到用户指定的文件中。
(2)至少要有10门以上的课程作为测试数据;
(3)算法对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;对算法实现过程中的异常情况能给出有效信息;
正 文
采用类c语言定义相关的数据类型
int
float
char
各模块的伪码算法
struct CourseHead //表头结点的结构体,保存课程信息
{
int flag; //标记该门课程是否已经编排
int priornum; //给课程的直接先修课的个数
char Name[30]; //课程的名字
char Ofcourse[4]; //课程号
float Score; //学分
CourseLink *first; //以该门课程为先修的后修课程
};
struct CourseLink //表头结点的链结点,即该门课程的后继课程
{
int Index; //该课程在表头结点的下标,
CourseLink *next; //下一门与它有公共先修课的课程
};
struct Topo //保存课程安排的最终结果
{
int level; //标记是否平均分配,
ArryInTopo *toporesualt; //一个一维数组保存课程的具体安排
Topo *next; //下一种课程安排的情况
};
struct ArryInTopo //用于保存课程编排的具体信息
{
int Index; //保存课程的序号
int Time; //保存课程的开课时间
};
struct Zero //保存可以选择的课程
{
int zero; //课程在原始数据里的下标
Zero *next; //下一个可选课程结点的地址
};
函数的调用关系图
软件介绍
Esc 判断 非Esc
退出程序
子函数
文档评论(0)