2022年数据结构 .pdf
《2022年数据结构 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构 .pdf(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课 程 设 计 报 告课程名称数据结构课程设计课题名称教学计划编制问题专业应用物理班级1201 学号201210040128 姓名张大帅指导教师刘长松黄哲2014 年 12 月 13 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 34 页 - - - - - - - - - 湖南工程学院课 程 设 计 任 务 书课程名称数据结构课程设计课题教学计划编制问题专业班级应用物理 1201 学生姓名张大帅学号201210040128 指导老师刘长松黄哲审批任务书下达日期:20
2、14 年 12 月 13 日任 务 完 成 日 期 :2014 年 12 月 20 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 34 页 - - - - - - - - - 一 、 设 计 内 容 与 设 计 要 求1设计内容:1)问题描述大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多
3、门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。2)基本要求a.输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3 位的字母数字串) 、学分和直接先修课的课程号。b.允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。c.若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。计划的表格格式自行设计。3)测试数据学期总数: 6;学分上限: 10;该专业共开设课数:12 课程号:从C01 到 C12;学分顺序: 2,3,4,3,2,3, 4,4,7,5,2,3。
4、先修关系如下图:4)实现提示可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在1 9 4 2 12 10 11 36578名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 34 页 - - - - - - - - - 该专业开设的课程序列中,则作为错误处理。应建立内部课程号与课程号之间的对应关系。2设计要求:课程设计报告规范1) 需求分析a.程序的功能。b.输入输出的要求。2) 概要设计a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个
5、模块的功能。b.课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。3) 详细设计a.采用 C 语言定义相关的数据类型。b.写出各模块的类C 码算法。c.画出各函数的调用关系图、主要函数的流程图。4) 调试分析以及设计体会a.测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。b.程序调试中遇到的问题以及解决问题的方法。c.课程设计过程经验教训、心得体会。5) 使用说明用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。6) 书写格式见附带说明。7) 附录a.参考书目b.源程序清单(带注释)考核方
6、式指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 34 页 - - - - - - - - - 平时出勤(占 10%) 系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%) 程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%) 设计报告(占3
7、0%)注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。 独立完成情况(占10%) 。课程验收要求 运行所设计的系统。 回答有关问题。 提交课程设计报告。 提交电子文档(源程序、设计报告文档)。 依内容的创新程度,完善程序情况及对程序讲解情况打分。二、进 度 安 排16 周:星期一下午14:00-18:00 16 周:星期二下午14:00-18:00 16 周:星期三下午14:00-18:00 附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单) 。正文的格式 : 一级标题用3 号黑体 ,二级标题用四号宋体加粗,正文用小四号宋体; 行距为 2
8、2。正文的内容 : 一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释) 。正文总字数要求在5000 字以上(不含程序原代码)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 34 页 - - - - - - - - - 目录1、需求分析 . 11.1 程序的功能: . 11.2 输入输出的要求: . 12、概要设计 . 12.1
9、程序模块功能图 . 12.2 数据结构 . 23、详细设计 . 33.1 采用 C语言定义相关的数据类型 . 33.2 各模块的类C码算法 . 33.3 各函数的调用关系图、主要函数的流程图 . 94、调试分析以及设计体会 . 11 4.1 测试数据: . 11 4.2 程序调试中遇到的问题以及解决问题的方法: . 12 4.3 课程设计过程经验教训、心得体会: . 12 5、使用说明 . 13 6. 参考书目 . 19 7、附录 . 20 7.1. 源程序清单(带注释) . 19 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
10、 名师精心整理 - - - - - - - 第 6 页,共 34 页 - - - - - - - - - 1 1、需求分析1.1 程序的功能:编制教学计划。 大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限, 每学年含两学期, 每学期的时间长度和学分上限均相等。每个专业开设的课程都是确定的, 而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的, 可以有任意多门, 也可以没有。 每门课恰好占一个学期。1.2 输入输出的要求:a.输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3 位的字母数字串)、学分和直接先修课的课程号。b.允许用户指定下列两
11、种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。c.若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。计划的表格格式自行设计。2、概要设计2.1 程序模块功能图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 34 页 - - - - - - - - - 2 图 2.1-1 功能模块图2.2 数据结构int termtime=0; /学期总数int limitgrade=0; /学分上线char
12、 str1004; /课程号int score100=0; /课程学分int totalcourse=0; /课程总数struct node /课程节点 int variable; /标志属不属于同一个学期所修int previous; /前修课程int next; /后学课程struct node * courselink100; /后修课程的指针* coursenode100=NULL; /课程数目节点initialNode() 初始化课程节点createNode() 建立课程顺序sortNode() 课程inputBasicInformation() 输入基本信息cls() 清空信息me
13、nu() 主菜单名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 34 页 - - - - - - - - - 3 3、详细设计3.1 采用 C语言定义相关的数据类型FILE *fp /保存到文件int termtime=0; /学期总数int limitgrade=0; /学分上线char str1004; /课程号int score100=0; /课程学分int totalcourse=0; /课程总数struct node /课程节点 int variable; /标
14、志属不属于同一个学期所修int previous; /前修课程int next; /后学课程struct node * courselink100; /后修课程的指针* coursenode100=NULL; /课程数目节点3.2 各模块的类 C码算法 A. 初始化课程节点void initialNode() /初始化课程节点 int i; int j; printf(n 正在初始化。 。 。 。 。 。 。 n); for(i=0;i100;i+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
15、- - - 第 9 页,共 34 页 - - - - - - - - - 4 后修课程的指针置零; 同学期学习的课程置零; 前修课程置零 ; 后修课程置零 ; for(j=0;jcourselinkj=NULL; printf(n 初始化完毕。 。 。 。 。 。 。 n); B. 建立课程顺序void createNode() /建立课程顺序 int i; int temp; int flag; for(i=0;inext); printf(n 请输入 %d 的深入课程课程代号分别是什么(用空格分开):,i+1); for(temp=0;tempnext;temp+) scanf(%d,&f
16、lag); coursenodei-courselinktemp=coursenodeflag-1; coursenodeflag-1-previous+; printf(n 课程代号 t 前修课程数 t 深入课程数 n); for(temp=0;tempprevious,coursenodetemp-next); C 排课程void sortNode() /排课程 int i,j,flag=0,session=1; FILE *fp; if(fp=fopen(d:course.txt,a)=NULL) /如果文件已经存在,可以追加学生信息 if(fp=fopen(d:course.txt,w
17、)=NULL) / 文件不存在时,创建新文件,输入学生信息 printf( 文件打开失败!n); return; printf(n-n); printf( 课程代号 t 课程号 t 课程学分 n); fprintf(fp, 课程代号 t 课程号 t 课程学分 n); while(1) flag=1; for(i=0;itotalcourse;i+) if( 课程数目节点为空) if(同学期学习课程为空) if( 前修课程为0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页
18、,共 34 页 - - - - - - - - - 6 printf(%dtt%st%dn,i+1,stri,scorei); fprintf(fp,%dt%st%dn,i+1,stri,scorei); for(j=0;jnext;j+) 前修课程数目节点减一; coursenodei-courselinkj-variable=1; coursenodei-courselinkj=NULL; coursenodei-next=0; 释放数目结点 ; flag=0; if(flag!=0)break; else if(session=termtime) printf( 第%d 学期课程结束n-
19、n,session); fprintf(fp,第%d学期课程结束n-n,session) ; session+; else printf( 学习时间不够 !n); exit(0); if(session=termtime); for(i=0;ivariable=0; fclose(fp); /关闭文件指针 D,输入基本信息void inputBasicInformation() /输入基本信息 int i; printf( 请输入学期总数:); scanf(%d,&termtime); if(termtime=12) printf(n 对不起,学期总数不能超过12n); exit(0); pr
20、intf(n 请输入学分上限:); scanf(%d,&limitgrade); printf(n 请输入课程总数:); scanf(%d,&totalcourse); for(i=0;itotalcourse;i+) printf( 请输入第 %d 门课程号(三个字符,回车结束):,i+1); scanf(%s,&stri); stri3=0; printf( 请输入第 %d 门课程学分(回车结束):,i+1); scanf(%d,&scorei); if( 学分高于上限) printf(n 对不起,课程学分不能超过学分上限n); exit(0); 名师资料总结 - - -精品资料欢迎下载
21、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 34 页 - - - - - - - - - 8 printf(n 您所输入的数据如下,请核实:n); printf( 课程代号 t 课程号 t 课程学分 n); for(i=0;itotalcourse;i+) printf(%dtt%st%dn,i+1,stri,scorei); E清空信息void cls() int i=0; 学期数置零 ; 学分上限置零; for(i=0;icount 栈不空删除栈顶元素,赋给 i count+ 将与第 i 个顶点链接的各
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据结构 2022 数据结构
限制150内