数据结构教学计划编制课程设计指导书.docx

上传人:b****6 文档编号:9183069 上传时间:2023-02-03 格式:DOCX 页数:7 大小:27.55KB
下载 相关 举报
数据结构教学计划编制课程设计指导书.docx_第1页
第1页 / 共7页
数据结构教学计划编制课程设计指导书.docx_第2页
第2页 / 共7页
数据结构教学计划编制课程设计指导书.docx_第3页
第3页 / 共7页
数据结构教学计划编制课程设计指导书.docx_第4页
第4页 / 共7页
数据结构教学计划编制课程设计指导书.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

数据结构教学计划编制课程设计指导书.docx

《数据结构教学计划编制课程设计指导书.docx》由会员分享,可在线阅读,更多相关《数据结构教学计划编制课程设计指导书.docx(7页珍藏版)》请在冰豆网上搜索。

数据结构教学计划编制课程设计指导书.docx

数据结构教学计划编制课程设计指导书

课程设计指导书

姓名

学号

班级

课程名称

数据结构

课程性质

专业必修课

设计时间

2010年12月1日——2010年12月20日

设计名称

教学计划编制

设计目的

使用MicrosoftVisualC++设计教学计划编制,并能够在程序设计中调用

设计要求

(1)输入参数包括:

学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

(2)允许用户指定下列两种编排策略之一:

一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。

(3)若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。

计划的表格格式自行设计。

设计思路

设计过程

运用图的拓扑排序对课程先修排列的实现,并调用递归完成拓扑排列。

设计过程:

用户输入信息后保存课程编排的具体信息

保存可以选择的课程

初始化要用到的各个数据再调用递归

递归函数,完成拓扑排序

统计该层递归可以选择的课程

当课程安排成功时将课程安排记录保存

根据客户要求输出相应的课程安排

负责输出课程信息

输出课程的联系

负责将课程信息写入文件

将课程的联系写入文件

计划与进度

12.01-13.03复习数据结构,了解数学计划编制;

12.04-12.07进行需求分析;

12.08-12.12进行总体设计;

12.13-12.16进行详细设计,代码实现各模块;

12.17-12.18进行程序调试;

12.19-12.20资料归档,填写相关文档。

任课教师

意见

备注

 

课程设计报告

 

课程:

数据结构

学号:

姓名:

班级:

教师:

时间:

2010.12.01~2010.12.20

 

计算机科学与技术系

 

设计名称:

教学计划编制

日期:

2010年12月15日

设计内容:

大学的每个专业都要制定教学计划。

假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。

每个专业开设课程都是确定的,而且课程在开设时间的安排必须满足先修关系。

每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。

每门课恰好占一个学期。

试在这样的前提下设计一个教学计划编制程序。

设计目的与要求:

(1)输入参数包括:

学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

(2)允许用户指定下列两种编排策略之一:

一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。

(3)若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。

计划的表格格式自行设计。

设计环境或器材、原理与说明:

设计环境或器材:

硬件:

计算机软件:

MicrosoftVisualC++

设计原理说明:

运用图的拓扑排序对课程先修排列的实现,并调用递归完成拓扑排列。

设计过程(步骤)和部分程序代码(可以加页):

存储结构设计

structCourseHead//表头结点的结构体,保存课程信息

{

intflag;//标记该门课程是否已经编排

intpriornum;//给课程的直接先修课的个数

charName[30];//课程的名字

charOfcourse[4];//课程号

floatScore;//学分

CourseLink*first;//以该门课程为先修的后修课程

};

structCourseLink//表头结点的链结点,即该门课程的后继课程

{

intIndex;//该课程在表头结点的下标,

CourseLink*next;//下一门与它有公共先修课的课程

};

structTopo//保存课程安排的最终结果

{

intlevel;//标记是否平均分配,

ArryInTopo*toporesualt;//一个一维数组保存课程的具体安排

Topo*next;//下一种课程安排的情况

};

structArryInTopo//用于保存课程编排的具体信息

{

intIndex;//保存课程的序号

intTime;//保存课程的开课时间

};

structZero//保存可以选择的课程

{

intzero;//课程在原始数据里的下标

Zero*next;//下一个可选课程结点的地址

};

 

主要算法设计

用到的函数的功能

voidInitData();//完成数据初始化

voidInitData(intnum);//由课程数目num来完成数据的细节

floatInitData(char*b);//方便判断输入数据的准确性而已

voidStartTopoSort();//初始化要用到的各个数据再调用递归

voidTopoSort(inttopotempsum,inttime);//递归函数,完成拓扑排序,

voidCheck(intindex);//当选择course[index]时,相应的课//程的priornum项要减一

voidCheckBack(intindex);//当退选course[index]时,相应的课程

//的priornum项要加

intZERO();//统计该层递归可以选择的课程

//并且完成可选课程的记录

voidIfsuccessed();//当课程安排成功时将课程安排记录保存

//并对课程安排做评价

voidPrint();//根据客户要求输出相应的课程安排

voidprintf1(int);//负责输出课程信息

voidprintf2();//输出课程的联系

voidprintf1(FILE*);//负责将课程信息写入文件

voidprintf2(FILE*);//将课程的联系写入文件

设计结果与分析(可以加页):

分析:

在每一层递归开始时,必须将该层递归可以选择的课程选出来。

求出可以选择的课程数目n然后要考虑在此层递归中,如何选择课程的问题:

可以选一课,一直到最大的许可范围.这样便存在Cn1+Cn2+……+Cnn种情况,即2n-1种情况。

我开始是在每一层递归里面都建立的一个二位数组,保存每一种选课情况,0(不选),1(选),这样的话,存储空间会以2n的速度增加,那样效果相当的不好。

后来考了到,若过将上面的01串当成是一个数据的二进制表示,那么每一种情况都与一个数是对应的,这样便可以运用数的位运算来达到遍历每一种情况。

例如:

假设某一层递归时,它的可选课程有三门:

离散数学,数据结构,汇编语言,那么在该层递归里面就有23(8-1)种选择(不可能一门课程都不选,那样的话就没有实际意义),若果按照初始思路则要建立一个二维数组:

其中0代表不选则,1代表选择。

但是结果观察,如果将它的选项的二进制看做是数的表示,则分别对应与1,2,3,4,5,6,7(23-1).于是可以在递归里面去掉二维数组,用数的位运算来求出选课的各个情况。

以下是其关键思路:

(详细的源代码在“教学计划编制.cpp”里)

For(i=1;i

{//考虑每一种情况

For(j=1;;)

{//位运算,遍历每一位二进制位

if((i&j)==j)

{

//相应的操作,即选择该门课程

}

j=j<<1;

//下一个二进制位

}

}.

这样的话既可以节约存储空间,又可以加快运算(位运算效率高).

设计体会与建议:

经过这次数据结构课程设计,我学习到:

一、不拘泥于课本,将学的知识转换为自己的知识,体会到将课本知识运用到实际问题中的重要性.学习课本也只是学习其思想方法,并不是全盘照搬.比如这次我的课程设计课题《教学计划编制》,实际就是图的拓扑排序,但是又不是简单的排序,要考虑到实际情况,假如就像书本上的那样思路写,其结果会很不全,因为在实际课程编排中课程并没有什么第一个后继或者第二个后继,而是只要它的先修课已经全部修完,那么它在什么时候修都可以,而不是一定要马上去修这门课程.

二、要与老师多交流,那样可以知道很多自己没有考虑过的问题.可以通过与老师交谈扩大自己的知识面,要明白一件事:

老师的知识面远远超过我们的,所以我们应该谦虚地向老师学习。

有不懂的地方要多多向老师请教。

三、这次的课程设计的算法,我觉得还可以加以改进:

可以调用数据库,直接在数据库里面读取课程信息(包括课程名,课程号,先修课,学分,学期数,一学期的学分上限),那样当有大量数据时才有实际应用价值,而不是在界面输入。

设计成绩:

教师签名:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1