数据结构课程设计之程课表实现.doc

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计之程课表实现

软 件 学 院 课程设计报告书 课程名称 数据结构 设计题目 教学计划编制 专业班级 软件10-04班 学 号 1020010432 姓 名 张小龙 指导教师 刘玲玲 2012年月 1 设计时间 1 2 设计目的 1 3设计任务 1 4 设计内容 1 4.1需求分析 1 4.2总体设计 2 4.3详细设计 6 4.4测试与分析 13 4.4.1测试 13 4.4.2分析 18 4.5 附录 19 5 总结与展望 30 参考文献 32 成绩评定 32 1 设计时间 2 设计目的 1) (2) (3)提高C程序调试能力,加强实践能力 (4) (5)培养软件设计能力和开发能力 (6)加强个人程序设计能力 3设计任务 大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。 4 设计内容 4.1需求分析 1、程序所能达到的功能 (1)数据结构使用有向图和栈。 (2)课程先修关系 (4.1--01课程先修关系) (3)如果输入的先修课程号不在该专业开设的课程序列内,则作为错误处理。 2、输入的形式和输入值的范围 输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定3位的字母数字串)、学分和直接先修课的课程号。 3、输出的形式 每学期课程安排 4、测试数据: 学期总数6,一学期的学分上限,该专业共开课程数目1,按照输入课程名,课程号,课程学分。输出正确的课程编排结果。 4.2总体设计 1、说明本程序中用到的所有抽象数据类型的定义 ADT Graph{ 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集. 数据关系R:?R={VR} VR={(v,w)|v,w∈V,(v,w)表示v和w之间存在直接先修关系} 基本操作P: void CreatGraph(ALGraph *G) 操作结果:创造图G void InitStack(SqSttack *S) 操作结果:构造一个空栈Svoid StackEmpty(SqStack *S) 初始条件:栈S已存在 操作结果:若栈S为空栈,则返回TRUE,否则FALSE void Push(SqStack *S,int e) 初始条件:栈S已存在 操作结果:插入元素e为新的栈顶元素 void Pop(SqStack *S,int *e) 初始条件:栈S已存在且非空 操作结果:删除S的栈顶元素,并用e返回其值 void FindInDegree(ALGraph G, int indegree[]) 初始条件:拓扑排序完成 操作结果:构造关键路径的先修关系网 void TopologicalSort_1(ALGraph G,int numterm,int uplcredit) 初始条件:图G已存在 操作结构:进行拓扑排序,并完成关系网的构造,使课程尽可能集中在前几个学期 void TopologicalSort_2(ALGraph G,int numterm,int uplcredit) 初始条件:图G已存在 操作结果:进行拓扑排序,并完成关系网的构造,使课程尽量均匀分布 }ADT Graph 2、说明主程序的流程 3、说明各程序模块之间的层次(调用)关系(图4.2-3) 4.3详细设计 1、实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法 1)采用邻接表存储结构,构造没有相关信息的图G,并储存键入的相关信息 void CreatGraph(ALGraph *G) { 通过循环语句完成对键入的课程名称,课程号,学分的存储,并课程先修关系建立邻接表 for (i = 1; i = G-arcnum; i++) /* 构造顶点向量 */ { printf(\n请输入存在先修关系的两个课程的序号:); scanf(n,m); while (课程号不在编入范围) {

文档评论(0)

3774384 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档