数据结构课程设计指导书.docx

上传人:b****4 文档编号:3513913 上传时间:2022-11-23 格式:DOCX 页数:7 大小:18.69KB
下载 相关 举报
数据结构课程设计指导书.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

数据结构课程设计指导书

数据结构课程设计指导书

一、设计方法

本次设计提供一次实际环境,使学生对数据结构有进一步的了解。

设计环境和开发工具

操作系统:

windows2000(或更高版本)。

开发工具:

Turboc

二、设计任务

1、链表操作

①设计目的

(1)掌握线性链表的建立。

(2)掌握线性链表的基本操作。

②设计容和要求

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

(2)实现两个链表的合并

a)建立两个链表A和B,链表元素个数分别为m和n个。

b)假设元素分别为(x1,x2,…xm),和(y1,y2,…yn)。

把它们合并成一个线形表C,使得:

当m>=n时,C=x1,y1,x2,y2,…xn,yn,…,xm

当n>m时,C=y1,x1,y2,x2,…ym,xm,…,yn

输出线形表C

c)用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。

2、joseph环

①设计目的

检验对链表结构及算法的掌握程度。

②设计容和要求

编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。

一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。

报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。

设计一个程序来求出出列顺序。

要求:

利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

测试数据:

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

要求:

输入数据:

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

输出形式:

建立一个输出函数,将正确的输出序列

3、排序算法比较

①设计目的

1.掌握各种排序的基本思想。

2.掌握各种排序方法的算法实现。

3.掌握各种排序方法的优劣分析及花费的时间的计算。

4.掌握各种排序方法所适应的不同场合。

②设计容和要求

利用随机函数产生3000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。

4、二叉树的周游

①设计目的

1.掌握二叉树的二叉链表存贮结构。

2.掌握栈的基本运算实现。

3.掌握二叉树的先序、中序、后序三种周游的算法实现。

②设计容和要求

对任意给定的二叉树(顶点数自定)建立它的二叉链表存贮结构,并利用栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现二叉树的先序、中序、后序三种周游,输出三种周游的结果。

5、图的深度周游

①设计目的

1.掌握图的邻接表存贮结构。

2.掌握堆栈的基本运算实现。

3.掌握图的邻接表的算法实现。

4.掌握图的深度优先搜索周游算法实现。

②设计容和要求

对任意给定的图(顶点数和边数自定),建立它的邻接表并输出,然后利用堆栈的五种基本运算(清空堆栈、压栈、弹出、取栈顶元素、判栈空)实现图的深度优先搜索周游

6、图的广度周游

①设计目的

1.掌握图的邻接表存贮结构。

2.掌握队列的基本运算实现。

3.掌握图的邻接表的算法实现。

4.掌握图的广度优先搜索周游算法实现。

②设计容和要求

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

7、运动会分数统计

①设计目的

检验对数据结构及算法的掌握程度。

②设计容和要求

参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:

7、5、3、2、1,前三名的积分分别为:

5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)

1.可以输入各个项目的前三名或前五名的成绩;

2.能统计各学校总分,

3.可以按学校编号、学校总分、男女团体总分排序输出;

4.可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

规定:

输入数据形式和围:

20以的整数(如果做得更好可以输入学校的名称,运动项目的名称)

输出形式:

有中文提示,各学校分数为整形

界面要求:

有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:

学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

测试数据:

要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;

8、一元多项式计算

①设计目的

检验对链表结构及算法的掌握程度。

②设计容和要求

能够按照指数降序排列建立并输出多项式;

能够完成两个多项式的相加、相减,并将结果输入;

在上交资料中请写明:

存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

9、订票系统

①设计目的

检验对数据结构及算法的掌握程度。

②设计容和要求

通过此系统可以实现如下功能:

录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

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

订票:

(订票情况可以存在一个数据文件中,结构自己设定)

可以订票,如果该航班已经无票,可以提供相关可选择航班;

退票:

可退票,退票后修改相关数据文件;

客户资料有,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:

当航班信息改变可以修改航班数据文件

要求:

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

10、文章编辑

①设计目的

检验对栈结构及算法的掌握程度。

②设计容和要求

输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;

要求

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和围:

可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"

(3)输出删除某一字符串后的文章;

11、猴子选大王

①设计目的

检验对链表结构及算法的掌握程度。

②设计容和要求

一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。

要求:

输入数据:

输入m,n,m,n为整数(n

输出形式:

中文提示按照m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能

12、赫夫曼树的建立

①设计目的

掌握赫夫曼树存贮结构。

②设计容和要求

建立建立最优二叉树函数

要求:

可以建立函数输入二叉树,并输出其赫夫曼树

13、舞伴问题

①设计目的

检验对链表结构及算法的掌握程度。

②设计容和要求

假定在一舞会上,男士排成一队,女士排成一队。

跳舞开始时,依次从男队和女队的队头各出一人配成舞伴。

若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。

设计要求:

模拟上述舞伴系统,并能计算对于任何男士A和女士B在哪一轮舞曲中的k次跳舞?

14、纸牌游戏

①设计目的

检验对链表结构及算法的掌握程度。

②设计容和要求

编号为1-52牌,正面向上,从第2开始,以2为基数,是2的倍数的牌翻一次,直到最后一牌;然后,从第3开始,以3为基数,是3的倍数的牌翻一次,直到最后一牌;然后…从第4开始,以4为基数,是4的倍数的牌翻一次,直到最后一牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:

这时正面向上的牌有哪些?

15、迷宫求解

①设计目的

检验对栈结构及算法的掌握程度。

②设计容和要求

可以输入一个任意大小的迷宫数据,求出一条走出迷宫的路径,并将路径输出;

三、课程设计容及安排

1、问题分析和任务定义:

根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?

2、逻辑设计:

对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。

逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;

3、详细设计:

定义相应的存储结构并写出各函数的伪码算法。

在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。

详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;

4、程序编码:

把详细设计的结果进一步求精为程序设计语言程序。

同时加入一些注解,使程序中逻辑概念清楚;

5、程序调试与测试:

采用自底向上,分模块进行,即先调试低层函数。

能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。

调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;

6、结果分析:

程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。

算法的时间、空间复杂性分析,收获及体会;

7、编写课程设计论文具体要求:

写明存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法,最后将每一个人的课程设论文统一上交。

课程设计的时间为两周。

 

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

当前位置:首页 > 表格模板 > 合同协议

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

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