数据结构课程设计题目要求.docx

上传人:b****8 文档编号:10353400 上传时间:2023-02-10 格式:DOCX 页数:17 大小:46.51KB
下载 相关 举报
数据结构课程设计题目要求.docx_第1页
第1页 / 共17页
数据结构课程设计题目要求.docx_第2页
第2页 / 共17页
数据结构课程设计题目要求.docx_第3页
第3页 / 共17页
数据结构课程设计题目要求.docx_第4页
第4页 / 共17页
数据结构课程设计题目要求.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据结构课程设计题目要求.docx

《数据结构课程设计题目要求.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计题目要求.docx(17页珍藏版)》请在冰豆网上搜索。

数据结构课程设计题目要求.docx

数据结构课程设计题目要求

一、课程设计要求:

1.每人一题,同学之间可以协商更换,但是不允许两人或两人以上的同学完成同一题目。

2.分析设计要求,给出解决方案,建立必要的数据结构,然后设计总体流程(包括界面)、详细设计必要的算法,并最终显示结果。

3.提交设计报告,包括设计思想流程、主要数据结构、程序清单、运行结果、设计心得、参考资料等(报告格式见附件)。

4.严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。

5.所提交源程序应是能够运行通过的完整程序。

6.成绩标准:

优秀,100-90;良好,89-80;中等,79-70;及格,69-60;不及格,60以下。

7.请借助互联网检索所需相关技术,尤其是要积极借鉴开源代码,但一定要调试到可以运行演示,否则按复制论处。

二、设计题目

1、运动会分数统计

问题描述:

参加运动会的n个学校编号为1~n。

比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。

由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。

哪些项目取前五名或前三名由学生自己设定。

写一个统计程序产生各种成绩单和得分报表。

基本要求:

(1)各项目结束时,输入前三名或前五名的项目编号、运动员姓名、校名和名次(成绩);

(2)产生各学校的成绩单,内容包括每个学校所取得的每项成绩的项目号、名次(成绩)、姓名和得分,并统计各学校总分;

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

(4)可以按学校编号查询学校某个项目的情况;

(5)可以按项目编号查询取得前三或前五名的学校。

2、集合的并、交和差运算的程序

问题描述:

编制一个能演示执行集合的并、交和差运算的程序。

基本要求:

集合的元素限定为小写字母符[′a′….′z′],集合的大小n<27。

⑵集合输入的形式为一个以"回车符"为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤去。

⑶输出的运算结果字符串中将不含重复字符或非法字符。

⑷演示程序以用户和计算机的对话方式执行。

3、长整数的加法运算

问题描述:

设计一个实现任意长的整数进行加法、减法运算的演示程序。

基本要求:

利用链表实现长整数的存储,每个结点含一个整型变量。

任何整型变量的范围是-(2^15-1)~(2^15-1)。

输入和输出形式按照中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。

如:

-2345,6789,3211;

4、一元多项式计算器

问题描述:

设有一元多项式Am(x)和Bn(x).

Am(x)=A0+A1x1+A2x2+A3x3+…+Amxm

Bn(x)=B0+B1x1+B2x2+B3x3+…+Bnxn

试求M(x)=Am(x)+Bn(x)、M(x)=Am(x)-Bn(x)和M(x)=Am(x)×Bn(x)。

基本要求:

⑴首先判定多项式是否稀疏;

⑵分别采用顺序和链式结构实现;

⑶结果M(x)中无重复阶项和无零系数项;

⑷要求输出结果的升幂和降幂两种排列情况。

5、车厢调度问题

问题描述:

假设停在铁路调度站(如教科书中图3.1(b)所示)入口处的车厢系列的编号依次为1,2,3,…n。

设计一个程序,求出所有可能由此输出的长度为n的车厢系列。

基本要求:

⑴设计一个程序,求出由一个编号依次为1,2,、、、,n的车厢序列可能产生的所有出栈系列。

⑵利用双向栈存储结构实现调度站和输出序列这两个栈的空间共享。

⑶对于每个输出序列演示出所有操作序列的变化过程。

6、文章编辑

问题描述:

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

基本要求:

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

⑵分别统计出其中英文字母和空格数及整篇文章总字数。

⑶统计某一字符串在文章中出现的次数,并输出该次数。

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

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

7、广义表的应用 

问题描述:

实现的广义表的建立、查找、输出、取表头和取表尾以及求深度等。

 

基本要求:

本设计用一个主控菜单程序控制,共分为6个子系统。

 

(1)建立广义表 

(2)输出广义表 (3)结点的查找 (4)求广义表表头 (5)求广义表表尾 (6)求广义表的深度

8、哈夫曼树及其编码

问题描述:

设计一个利用哈夫曼算法的编码系统,重复地显示并处理以下项目,直到选择退出为止。

基本要求:

⑴初始化:

键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;

⑵编码:

利用建好的哈夫曼树生成哈夫曼编码;

2输出其哈夫曼树及哈夫曼编码;

3设字符集及频度如下表:

字符空格ABCDEFGHIJKLM

频度1976413223210321154757512032

字符NOPQRSTUVWXYZ

频度5763115481680238181511

9、校园导游咨询系统的设计与实现  

问题描述:

设计一个校园导游程序,为来访的客人提供各种信息查询服务。

基本要求:

⑴设计中南大学南区的校园平面图,所含景点不少于10个。

以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

⑵为来访客人提供图中任意景点相关信息的查询。

⑶为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

10、地图着色问题

问题描述:

设计地图着色软件,对湖南省地图中的地级市进行着色,要求相邻地级市所使用的颜色不同,并保证使用的颜色最少。

基本要求:

⑴地图采用图型数据结构,每个地级市为一个节点,边表示对应的两个地级市相邻。

⑵设计着色算法,保证邻接点不是同一种颜色。

⑶演示程序以用户和计算机的对话方式进行。

11、内部排序算法比较

问题描述:

试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。

基本要求:

⑴至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。

⑵待排序表的表长不小于100,其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。

⑶最后对结果作出简单分析,包括对各组数据得出结果波动大小的解释。

12、哈希表的设计与实现——线性探测再散列

问题描述:

设计哈希表实现电话号码查找系统。

基本要求:

设每个记录有下列数据项:

电话号码、用户名、地址;

从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表;

采用线性探测再散列的方法解决冲突;

查找并显示给定电话号码的记录;

查找并显示给定用户名的记录。

13、哈希表的设计与实现——二次探测再散列

问题描述:

设计哈希表实现电话号码查找系统。

基本要求:

(1)设每个记录有下列数据项:

电话号码、用户名、地址;

(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表;

(3)采用二次探测再散列的方法解决冲突;

(4)查找并显示给定电话号码的记录;

(5)查找并显示给定用户名的记录。

14、哈希表的设计与实现——链地址法

问题描述:

设计哈希表实现电话号码查找系统。

基本要求:

(1)设每个记录有下列数据项:

电话号码、用户名、地址;

(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表;

(3)采用链地址法解决冲突;

(4)查找并显示给定电话号码的记录;

(5)查找并显示给定用户名的记录。

15、简单目录管理系统的设计与实现

基本要求:

利用树型结构设计并实现一个简单的目录管理系统,该系统可以对所有目录进行管理,如目录的新建、删除、查询、目录名称修改、按某种顺序输出所有目录(树的遍历操作)、以树型结构输出所有目录等功能。

16、最短旅程的求解

问题描述:

有n个城市(编号从1到n),它们之间通过双向的道路相连。

那里只有n-1条道路,但是,它们的连接方式使得从任意城市都可以走到其他的任何城市。

一天,某个游客到了编号为k的城市。

他计划从城市k开始,游遍所有的城市m1,m2,m3……,mi,…(不一定要按这个顺序旅游)。

每个城市mi都是不同的,并且,也与k不同。

他想要以最短的路程旅行完所有的城市(从城市k开始)。

基本要求:

请你帮助计算一下,旅游完上述的城市最短需要多少路程。

17、迷宫求解

问题描述:

以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。

设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

基本要求:

首先实现一个栈类型,然后编写一个求解迷宫的非递归程序。

求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。

18、家谱管理系统的设计与实现

问题描述:

设计并实现一个简单的家谱管理系统。

 

基本要求:

(1)建立家族关系并能存储到文件中。

 

(2)实现家族成员的添加、删除功能。

 

(3)可以查询家族成员的双亲、祖先、兄弟、 孩子和后代等信息。

(4)按某种顺序输出家谱信息(树的遍历操作)、以树型结构输出家谱资料等功能。

19、语言中平衡符号的问题

基本要求:

设C语言程序代码中包含如下符号/**/,(),[],{},编写程序检测一段C代码中上述符号是否正确。

20、算术表达式求解

问题描述:

给定一个算术表达式,通过程序求出最后的结果。

基本要求:

(1)从键盘输入要求解的算术表达式;

(2)采用栈结构进行算术表达式的求解过程;

(3)能够判断算术表达式正确与否;

(4)对于错误表达式给出提示;

(5)对于正确的表达式给出最后的结果,并可以显示运算的整个过程。

21、九宫格问题

问题描述:

在一个3×3的九宫格中有1—8这8个数字,混乱排序,一个空格随机地摆放在一个格子里。

现要求将该九宫格调整为正常按顺序的格式。

调整的规则是:

每次只能将与空格(上、下或左、右)相邻的一个数字平移到空格中。

编程实现这一问题的求解,并输出求解过程。

22、关键路径问题

问题描述:

设计一个程序,求出完成整项工程至少需要多少时间,以及整项工程中的关键活动。

 

基本要求:

 

⑴对一个描述工程的AOE网,应判断其是否能够顺利进行。

 

⑵若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间。

23、教学计划编制问题

基本要求:

针对自己所在专业本科课程,根据课程之间的依赖关系(如C语言应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。

24、模式匹配算法的应用

问题描述:

文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。

试写一个实现这一目标的文字统计系统 

基本要求:

英文小说存于一个文本文件中。

待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。

程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。

待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。

模式匹配要基于KMP算法。

25、马踏棋盘 

问题描述:

  将马随机放在国际象棋的8* 8棋盘Bord[8Ⅱ8]的某个方格中,马按走棋规则进行移动。

要求每个方格上只进入一次,走遍棋盘上全部64个方格。

 

基本要求:

编制非递归程序,求出马的行走路线 ,并按求出的行走路线,将数字1,2,…,64依次填入一个8*8的方阵,输出之。

26、拓扑排序和关键路径

问题描述:

拓扑排序可判断AOV网络中是否存在回路,使的所有活动可排成一个线性序列,使用每个活动的所有前驱活动都排在该活动的前面。

 

关键路径的工期决定了整个项目的工期。

任何关键路径上的终端元素的延迟将直接影响项目的预期完成时间(例如在关键路径上没有浮动时间)。

 

基本要求:

构建AOV网络,并输出其拓扑序列结果,输出该图的关键路径和关键活动。

27.最小生成树问题

基本要求:

在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。

存储结构采用多种。

求解算法多种。

28.学生搭配问题

 问题描述:

一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴.请设计一系统模拟动态地显示出上述过程。

 基本要求:

输出每曲配对情况

计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.

尽量设计出多种算法及程序,可视情况适当加分

 提示:

用队列来解决比较方便.

 29.约瑟夫环

问题描述:

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

一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。

基本要求:

利用单循环链表作为存储结构模拟此过程;

键盘输入总人数、初始报数上限值m及各人密码;

按照出列顺序输出各人的编号。

 

30.拓扑排序

问题描述:

建立图的存储结构,能够输入图的顶点和边的信息,并存储到相应存储结构中,再编写函数实现图的拓扑排序。

基本要求:

选择邻接表作为有向图的存储结构模拟整个过程,输出拓扑排序的顶点序列,并利用下图中的数据调试程序

31.HTML文档标记匹配算法

基本要求:

输入一段HTML代码,判断该代码是否符合HTML的语法。

HTML文档由不同的标记划分为不同的部分与层次。

与括号类似,这些标记需要成对出现,对于名为的起始标记,相应的结束标记为

常用的HTML标记:

●:

HTML文档

:

文档标题

●:

文档体

:

节的头部

:

居中对齐

:

左对齐

●:

段落

●。

HTML语言有合理的嵌套,如

32.背包问题的求解

问题描述:

假设有一个能装入总体积为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)。

33.LZW压缩器/解压器

问题描述:

为了节省存储空间,常常需要把文本文件采用压缩编码的方式储存。

例如:

一个包含1000个x的字符串和2000个y的字符串的文本文件在不压缩时占用的空间为3002字节(每个x或每个y占用一个字节,两个字节用来表示串的结尾)。

同样是这个文件,采用游程长度编码(run-lengthcoding),可以存储为字符串1000x2000y,仅为10个字母,占用12个字节。

若采用二进制表示游程长度(1000和2000)可以进一步节约空间。

如果每个游程长度占用2个字节,则可以表示的最大游程长度为2*pow(16),这样,上例中的字符串只需要用8个字节来存储。

当要读取编码文件时,需要对其进行解码。

由压缩器(compressor)对文件进行编码,由解压器(decompressor)进行解码。

(1)长度-游程编码的压缩/解压;+

(2)LZW压缩/解压(散列);②

(1)长度-游程编码的压缩/解压;+(3)霍夫曼编码压缩/解压(霍夫曼树)

基本要求:

要求选用二种压缩/解压策略实现压缩/解压器[

(1)为必选]。

输入的为本文文件(.txt),输出的为一种自定义的文件(.nz)。

考虑当构成文本的字符集合为{a,b,c,……,z,0,1,2,…9}时,请用实例测试你的压缩/解压器。

你的压缩器会不会出现抖动?

(压缩后的文本比原来的还要大)。

扩充构成文本的字符集合以便使它适应更一般的情况。

34.扑克牌排序实现

问题描述:

扑克牌中52张牌,可按花色和面值分成两个字段,其大小关系为:

花色:

 梅花<方块<红心<黑心 

面值:

 2<3<4<5<6<7<8<9<10

若对扑克牌按花色、面值进行升序排序,得到如下序列:

即两张牌,若花色不同,不论面值怎样,花色低的那张牌小于花色高的,只有在同花色情况下,大小关系才由面值的大小确定。

这就是多关键码排序

基本要求:

要求选用适当的排序算法,实现扑克牌按上述规则的排序。

35.求矩阵的特征值/特征向量

问题描述:

设A是n阶方阵,如果存在数m和非零n维列向量x,使得Ax=mx成立,则称m是A的一个特征值(characteristicvalue)或本征值(eigenvalue)。

非零n维列向量x称为矩阵A的属于(对应于)特征值m的特征向量或本征向量,简称A的特征向量或A的本征向量。

基本要求:

设计算法,求出n阶方阵的特征值/特征向量。

36.求矩阵的逆矩阵

问题描述:

设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得:

AB=BA=E。

则我们称B是A的逆矩阵,而A则被称为可逆矩阵。

基本要求:

设计算法,求出n阶方阵的逆矩阵。

 

附件:

报告格式说明

一、封面(单独页)

C++和数据结构课程设计

题目名称:

 

姓名

学号

专业

班级

指导教师

编写日期

二、目录(单独起始页)

三、正文部分(每章单独起始页)

1、问题描述(标题均为小三号,宋体)

(正文均为小四号,宋体,单倍行距)

(对所选择题目进行分析,描述问题。

简述课题要解决的问题是什么,有什么要求和限制条件。

2、系统设计

(对设计目标进行总体分析,对其中的关键问题给出算法流程及相关的数据结构,并附有详细的解释说明。

3、源代码清单

(要求列出所有编写的函数清单,说明每个函数的功能,各形式参数的意义,画出各函数的调用关系图。

4、运行结果测试与分析

(以截屏图片的方式给出运行结果,并对结果理想或以外情况进行分析。

五、结论与心得

(主要说明程序调试中发现的问题和解决办法,包括你在该设计中主要承担什么任务,在设计中学到了什么,哪里遇到了困难,解决的办法,可能但因时间关系没有来得及完成的想法,今后的目标等。

 

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

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

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

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