人人范文网 范文大全

《数据结构课程设计》教学大纲

发布时间:2020-03-02 14:36:22 来源:范文大全 收藏本文 下载本文 手机版

《数据结构课程设计》教学大纲

课程名称: 课程编号: 适用专业: 总 学 分: 总 学 时: 其中实验学时 主 撰 人: 撰写日期:

一、目的与任务

《数据结构》是计算机软件的一门基础课程,计算机科学各领域及有关的应用软件都要用到各种类型的数据结构。学好数据结构对掌握实际编程能力是很有帮助的。为了学好《数据结构》,必须编写一些在特定数据结构上的算法,通过上机调试,才能更好地掌握各种数据结构及其特点,同时提高解决计算机应用实际问题的能力。

二、教学基本要求

1.设计和调试过程要规范化

需求分析:将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。

给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来 。

对有些题目提出算法改进方案,比较不同算法的优缺点。

如果程序不能正常运行,写出实现此算法中遇到的问题,和改进方法。②源程序(可以是一组源程序,即详细设计部分)

源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环。 2.课程设计实习报告的书写格式

① 设计题目

数据结构 408104 计算机科学与技术

4 72 30 2012.6

436104 软件工程

审 核 人:

②运行环境(软、硬件环境) ③算法设计的思想 ④算法的流程图 ⑤算法设计分析 ⑥源代码 ⑦运行结果分析 ⑧收获及体会 3.实施方式

可设3-4人一题,安排在《数据结构》课程开课学期布置题目,然后在期末两周时间内完成。

4.答辩:课题的论述、测试及问题回答

三、课程设计内容

1、背包问题的求解:

假设有一个能装入总体积为T的背包和n件体积分别为w1 , w2 , … , wn 的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1 +w2 + … + wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2), (1,4,5), (8,2), (3,5,2)。

提示:可利用回溯法的设计思想来解决背包问题。首先将物品排成一列,然后顺序选取物品装入背包,假设已选取了前i 件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品\"太大\"不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明\"刚刚\"装入背包的那件物品\"不合适\",应将它取出\"弃之一边\",继续再从\"它之后\"的物品中选取,如此重复,直至求得满足条件的解,或者无解。

由于回溯求解的规则规则是\"后进先出\"因此自然要用到栈。

2、订票系统 (1)问题描述

通过此系统可以实现如下功能: 1)录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 2)查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

可以输入起飞抵达城市,查询飞机航班情况;

3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;

4)退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

5)修改航班信息:当航班信息改变可以修改航班数据文件 (2)要求

根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;

3、迷宫求解 (1)问题描述

可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出; (2)要求

在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

4、dijkstra算法求最短路径

问题描述:从键盘上输入一个图的基本信息(图用邻矩阵表示)

1)首先输入图的结点数->num 2)依次输入图的各条边

3)程序所能达到的功能:输出用dijkstra算法求出的一条最短路径。

5、joseph环 (1)问题描述

编号是1,2,„„,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。 (2)要求 利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 (3)测试数据:

m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?

(4)输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。

(5)输出形式:建立一个输出函数,将正确的输出序列

6、建立二叉树,层序、先序遍历( 用递归或非递归的方法都可以) (1)问题描述:建立二叉树,并实行层序、先序遍历等算法

(2)要求:能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数;

7、赫夫曼树的建立

(1)问题描述:建立建立最优二叉树函数

(2)要求:可以建立函数输入二叉树,并输出其赫夫曼树

在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、输入输出、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

8、图的建立及输出

(1)问题描述:建立图的存储结构(图的类型可以是有向图、无向图、有向网、无向网,学生可以任选两种类型)

(2)要求:能够输入图的顶点和边的信息,并存储到相应存储结构中,而后输出图的邻接矩阵。

9、拓扑排序

(1)问题描述:编写函数实现图的拓扑排序。 (2)要求:能够以一定的方式输入数据结点

10、各种排序

(1)问题描述:对30000个随机整数,利用插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。 (2)要求:输入的数据形式为任何一个正整数,大小不限。

输出的形式:数字大小逐个递增的数列

11、图的遍历 对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用队列的五种基本运算(置空队列、进队、出队、取队头元素、判队空)实现图的广度优先搜索周游。

12、线性表的操作

利用链表的插入运算建立线性链表,然后利用链表的查找、删除、计数、输出等运算反复实现链表的这些操作(插入、删除、查找、计数、输出单独写成函数的形式),并能在屏幕上输出操作前后的结果。

13、长整数四则运算

*问题描述:设计一个实现任意长的整数进行加法运算的演示程序。*基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -(2^151)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。 *测试数据:

(1)0;0;应输出“0”。

(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。 (3)-9999,9999;1,0000,0000,0000;应输出“999 (4)1,0001,0001;-1,0001,0001;应输出“0”。 (5)1,0001,0001;-1,0001,0000;应输出“1”。

(6)-9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998”。 (7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。 *实现提示:

(1)每个结点中可以存放的最大整数为32767,才能保证两数相加不会溢出,但若这样存放,即相当于按32768进制存放,在十进制与32768进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的4位,即不超过9999的非负整数,整个链表表示为万进制。

(2)可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结

点数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中是简化程序结构的一种方法。不能给长整数位数规定上限。

14、克鲁斯尔算法求最小生成树

问题描述:从键盘上输入一个图的基本信息(图用邻矩阵表示)

1)首先输入图的结点数->num 2)依次输入图的各条边

3)程序所能达到的功能:能够输出这个图的一棵最小生成树

15、算术表达式求值演示

(1)问题描述:表达式求值是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。 (2)基本要求:以字符序列的形式从终端上输入语法正确的、不含变量的整数表达式。利用教材中给出的算符优先关系,实现对算术四则混合运算表达式的求值,并仿照教材例3-1演示在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。

16.稀疏矩阵运算器

*问题描述:稀疏矩阵是指那些多数元素为0的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本原酸的运算器。

*基本要求:以“带行逻辑链接信息”的三元组顺序表示稀疏矩阵,实现两个矩阵相加、相减和相乘的运算。稀疏矩阵的输入形式采用三元组表示,而运算结构的矩阵则以通常的阵列形式列出。

*实现提示:(1)首先应输入矩阵的行数和列数,并判别给出的两个矩阵的行、列数对于所要求作的运算是否匹配。可设矩阵的行数和列数均不超过20。(2)程序可以对三元组的输入顺序加以限制,例如,按行优先。注意研究教科书中的算法,以便提高计算效率。(3)在用三元组表示稀疏矩阵时,相加或相减所得结果矩阵应该另生成,乘积矩阵也可以用二维数组存放。

四、时间安排

《数据结构课程设计》安排在第三学期进行,时间2周(17-18周)。

五、组织管理

1.由院、系指派经验丰富的专业教师担任指导教师。

2.课程设计实行指导教师负责制,由指导教师全面负责课程设计的指导与管理工作。

六、成绩考核与评定

学生课程设计结束后写出总结报告,对设计的内容和效果进行总结,按照学生在设计期间的表现,指导老师对每位学生写出评语和鉴定,系课程设计领导小组组织答辩,最后确定每位学生课程设计成绩,课程设计成绩分为优、良、中、及格和不及格五个等级。

课程设计成绩为平时表现30%、设计报告50%、答辩20%。 评分标准:

① 优秀:目的明确,态度端正,模范遵守学校的各项纪律。工作认真,积极 主动,吃苦耐劳,能出色的完成设计任务。撰写了高质量的总结报告。答辩准确流利。

② 良好:目的明确,态度端正,能遵守学校的各项纪律,工作比较积极主动。 能较好地完成设计任务,成绩较突出,表现良好;撰写了质量比较高的实习报告。答辩较准确流利。

③ 及格:目的明确,态度基本端正,能遵守学校纪律,在督促下能开展工作 并完成一定的设计任务,无大的违纪违规现象;撰写了实习报告。通过了答辩。

④ 不及格:实习态度端正,不能遵守实习单位的纪律,不服从领导,自由散漫,工作消极被动,不能完成实习任务,实习期间有失职、旷工、打架、酗酒等大的过失。或无实习报告,没有通过答辩。

2.成绩评定

依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(

七、主要参考资料

《数据结构 C语言》 严蔚敏 清华大学出版社 2006.2 《c语言程序设计》 谭浩强 清华大学出版社 2010.8 《数据结构习题》 李春保 清华大学出版社 2006.4 《数据结构习题》 严蔚敏 清华大学出版社 2006.2 《c语言与数据结构》 王立柱 清华大学出版社 2010.6 《数据结构(C语言篇)习题与解析》李春葆 清华大学出版社2006.4

数据结构课程设计课程设计教学大纲

数据结构课程设计教学大纲

数据结构课程设计教学大纲

《数据结构》课程设计教学大纲

《数据结构课程设计》教学大纲12

数据结构课程设计教学大纲计科

《数据结构与算法》课程设计教学大纲

综合课程设计1数据结构教学大纲

数据结构课程设计

课程设计(数据结构)

《数据结构课程设计》教学大纲
《《数据结构课程设计》教学大纲.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档