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

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

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

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

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

数据结构课程设计题目

数据结构课程设计题目

1、运动会分数统计

  任务:

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

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

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

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

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

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

(m<=20,n<=20)

功能要求:

产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号,名次,姓名和得分;产生团体总分报表,内容包括校号,男子团体总分,女子团体总分和团体总分.

输出形式:

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

界面要求:

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

存储结构:

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

(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:

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

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

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

2、约瑟夫环

问题描述:

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

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

基本要求:

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

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

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

 

3、 算术表达式求值演示

任务:

表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子

设计一个程序,实现利用算符优先算法计算算术表达式求值。

基本要求:

(1)通过键盘输入表达式字符序列,并转换为整数表达式。

(2)进行输入合法性验证,对于错误表达式给出提示;

(3)对算术运算表达式求值,对于正确的表达式给出最后的结果

(4)运算符包括乘方,开方,单目减等运算符

界面要求:

有合理的提示,每个表达式求值结束后,根据提示,决定是否进行下一个表达式的计算;

提示:

(1)设置运算符栈和运算数栈辅助分析算符优先关系;

(2)在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应的运算;

(3)在识别出运算数的同时,要将其字符序列形式转换成整数形式;

(4)在程序的适当位置输出运算符栈,运算数栈,输入字符和主要操作的内容。

4、 停车场管理系统

设计内容:

设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。

车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。

停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆在依原来的次序进场。

每辆车在离开停车场时,都应依据它在停车场内停留的时间长短交费。

如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。

编制一程序模拟该停车场的管理。

设计目的:

(1)掌握栈和队列的建立。

(2)掌握栈和队列的基本操作。

(3)深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。

(4)加深对栈和队列的理解和认识。

设计要求:

(1)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

(2)每一组输入数据包括三个数据项:

汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。

(3)对每一组输入数据进行操作后的输出信息为:

若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。

5、文章编辑

功能:

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

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

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

(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)替换某一子串,输出结果。

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

输入数据的形式和范围:

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

输出形式:

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

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3)输出替换某一字符串后的文章;

6、 简易文本编辑器

要求:

1) 具有图形菜单界面;

2) 查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动),删除

3) 可正确存盘、取盘;

4) 正确显示总行数。

7、特殊矩阵的压缩存储算法的实现

问题描述:

对于特殊矩阵可以通过压缩存储减少存储空间。

基本要求:

1)针对多种特殊矩阵进行压缩存储,并能显示压缩后的相关地址和值;

输入在原来特殊矩阵中的地址,要求能从压缩后的矩阵中读出相应的值。

 

8、树与二叉树的转换

要求:

实现树与二叉树的转换,应包含建树的实现。

9、二叉树的遍历算法 

任务:

二叉树的创建、中序、前序、后序的递归、非递归遍历算法。

要求:

二叉树的形态是任意的。

10.校园导航问题

设计要求:

设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

11、学校超市选址问题(带权有向图的中心点)

设计要求:

对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。

请为超市选址,要求实现总体最优。

12、 图的BFS遍历

要求:

1) 先任意创建一个图;

2) 图的BFS的递归和非递归算法的实现

3) 要求用邻接矩阵、邻接表两种结构存储实现

13、 宿舍管理查询软件

1) 任务:

为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:

A. 采用交互工作方式

B. 建立数据文件,数据文件按关键字(姓名、学号、宿舍号)进行排序(冒泡、选择、插入排序等任选一种)

2) 查询菜单:

(用二分查找实现以下操作)

A. 按姓名查询

B. 按学号查询

C. 按宿舍号查询

3) 打印任一查询结果(可以连续操作)

14.二叉排序树的实现

  用二叉链表作存储结构  

1) 以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;

2) 对二叉排序树T作中序遍历,输出结果;

3) 输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”;

15、航空客运订票系统

航空客运订票系统的业务主要包括:

查询航线,客票预订,办理退票等。

试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

(1)每条航线所涉及的信息有:

终点站名,航班号,飞机号,飞行周日(星期几),乘员定额,余票量。

乘客信息有:

乘客名,预订票数,航班号。

(2)系统的主要功能是:

1)查询航线,根据旅客提出的终点站名输出下列信息:

航班号,飞机号,星期几飞行;最近一天航班的日期和余票量。

2)承办订票业务,根据客户提出的要求(航班号,订票量)查询该航班的票余量,如果尚有余票,则为客户办理手续,输出座位号,若已经满员或者余票少于订票额,则需要重新询问客户要求,若需要,则为客户登记排队候补。

3)承办退票业务,根据客户提供的情况(航班,姓名),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,如果退票额能满足他的需求,则为其办理订票,否则依次询问其他候补客户是否订票。

16、 一元多项式的加法、减法的实现。

 设有一元多项式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)。

要求:

1) 首先判定多项式是否稀疏

2) 分别采用顺序和动态存储结构实现;

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

4) 要求输出结果按指数的升幂和降幂两种排列情况

17、车厢调度

问题描述:

假设停在铁路调度站入口处的车厢序列的编号依次为1、2、3、4。

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

18、走迷宫游戏

程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。

游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。

要求:

1) 老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;

2) 迷宫的墙足够结实,老鼠不能穿墙而过;

3) 正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;

4) 添加编辑迷宫功能,可修改当前迷宫,修改内容:

墙变路、路变墙;

5) 找出走出迷宫的所有路径,以及最短路径。

利用序列化功能实现迷宫地图文件的存盘和读出等功能

19、文本文件单词的检索与计数

设计要求与分析:

要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。

该设计要求可分为三个部分实现:

其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。

(1).建立文本文件

(2)给定单词的计数

(3)检索单词出现在文本文件中的行号、次数及其位置

(4)主控菜单程序的结构

①头文件包含

②菜单选项包含

建立文件、单词定位、单词计数、退出程序

③选择1-4执行相应的操作,其他字符为非法。

20、稀疏矩阵应用

要求:

实现三元组的稀疏矩阵的加法、转置、乘法运算的实现。

(1)稀疏矩阵的存储

(2)稀疏矩阵加法

(3)矩阵乘法

(4)矩阵转置

21、 哈夫曼编码/译码器

【问题描述】

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

【基本要求】

1) 将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)

2) 分别采用动态和静态存储结构

3) 初始化:

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

4) 编码:

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

5) 输出编码;

6) 设字符集及频度如下表:

字符空格ABCDEFGHIJKLM

频度1866413223210321154757153220

字符NOPQRSTUVWXYZ

频度5763151485180238181161

【进一步完成内容】

1) 译码功能;

2) 显示哈夫曼树;

3) 界面设计的优化。

 

22、 线索二叉树的应用

要求:

实现线索树建立、插入、删除、恢复线索的实现。

 

23、 教学计划编制问题

设计要求:

针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。

24、最小生成树问题

问题描述:

给定一个地区的n个城市间的距离网,用prim算法或kruskal算法建立最小生成树,并计算得到的最小生成树的代价。

基本要求:

(1)城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。

要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价;

(2)表示城市间距离网的邻接矩阵(要求至少6个城市,10条边);

(3)最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。

设计要求:

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

存储结构采用多种。

求解算法多种。

 

25、关键路径问题

问题描述:

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

基本要求:

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

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

 

26、哈希表设计

任务:

针对某个集体(比如你所在的班级)中的“姓名”设计一个哈希表,使得平均查找长度不超过R,完成相应的建表和查表程序。

要求:

假设人名为中国人姓名的汉语拼音形式。

待填入哈希表的人名共有30个,取平均查找长度的上限为2.哈希函数用除留余数法构造,用伪随机探测再散列法和拉链法处理冲突。

27.排序综合

 利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。

要求:

1) 至少采用三种方法实现上述问题求解(提示,快速排序必做。

其他可采用的方法还有插入排序、希尔排序、起泡排序、选择排序、堆排序、归并排序)。

并把排序后的结果保存在不同的文件中。

2) 统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。

3) 如果采用4种或4种以上的方法者,可适当加分。

28、图书管理系统

问题描述

设计一个计算机管理系统完成图书管理基本业务。

【基本要求】

1) 每种书的登记内容包括书号、书名、著作者、现存量和库存量;

2) 对书号建立索引表(线性表)以提高查找效率;

3) 系统主要功能如下:

*采编入库:

新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;

*借阅:

如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;

*归还:

注销对借阅者的登记,改变该书的现存量。

29、数制转换问题

任意给定一个M进制的数x,请实现如下要求

1) 求出此数x的10进制值(用MD表示)

2) 实现对x向任意的一个非M进制的数的转换。

3) 用两种方法实现上述要求(用栈解决和用数组解决)。

30、实时监控报警系统

问题描述:

建立一个报警和出警管理的系统

基本要求:

(1)采用一定的存储结构存储报警信息,要求有内容、时间;

(2)有一次的出警就应该在待处理的信息中删除这条信息;

(3)记录出警信息;

(4)待处理信息过多时会发出警告

31、链表操作

输入一组整形元素序列,建立带头结点的单链表。

要求:

(1)实现链表的遍历、查找、插入、删除;

(2)将链表中的元素分解成两个带头结点的单链表,其中一个全部存放奇数,另一个全部存放偶数;

32、 图的DFS遍历

要求:

1) 先任意创建一个图;

2) 图的DFS的递归和非递归算法的实现

3) 要求用邻接矩阵、邻接表两种结构存储实现

33、树的应用

要求:

实现树的前序、后序遍历的递归、非递归算法,层次遍历的非递归算法。

34. 散列表的设计与实现

【问题描述】

设计散列表实现电话号码查找系统。

【基本要求】

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

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

2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;

3) 采用一定的方法解决冲突;

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

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

【进一步完成内容】

1) 系统功能的完善;

2) 设计不同的散列函数,比较冲突率;

3) 在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

35、二叉平衡排序树

问题描述:

从一棵空树开始创建,在创建过程中,保证树的有序性,同时还要针对树的平衡性做些调整。

最终要把创建好的二叉排序树转换为二叉平衡排序树。

基本要求:

(1)创建(插入、调整);

(2)输出。

36.航班信息排序与检索

问题描述:

根据旅客提出的终点站名输出下列信息:

航班号、飞机号、星期几飞行、最近一天航班的日期和余票额。

设计要求:

(1)对飞机航班信息进行排序和查找。

可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询;

(2)采用基数排序法对一组具有结构特点的飞机航班号进行排序;

(3)利用二分法查找对排好序的航班记录按航班号实现快速排序;

(4)每个航班记录包括八项,分别为:

航班号、起点站、终点站、班次、起飞时间、到达时间、飞机型号以及票价等。

37.任意长的整数加法

问题描述:

设计一个程序实现两个任意长的整数的求和运算。

基本要求:

利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。

要求输入和输出每四位一组,组间用逗号隔开。

如:

1,0000,0000,0000,0000。

38.敢死队问题

有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。

如果前一个战士没完成任务,则要再派一个战士上去。

现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。

如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。

以此类推,直到任务完成为止。

  排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。

 要求:

至少采用两种不同的数据结构的方法实现。

如果采用三种以上的方法者,可加分。

39、顺序表操作

输入一组整形元素序列,建立顺序表。

要求:

(1)实现顺序表的遍历、查找、插入、删除;

(2)实现将顺序表中所有奇数排在偶数之前,表的前面为奇数,后面为偶数;

 

40、通讯录的制作

设计目的:

用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。

编写一个通讯录管理系统。

以把所学数据结构知识应用到实际软件开发中去。

设计内容:

本系统应完成一下几方面的功能:

1) 输入信息——enter();

2) 显示信息———display();

3) 查找以姓名作为关键字———search();

4) 删除信息———delete();

5) 存盘———save();

6) 装入———load();

设计要求:

1) 每条信息至包含:

姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项

2) 作为一个完整的系统,应具有友好的界面和较强的容错能力

3) 上机能正常运行,并写出课程设计报告

41、 学生搭配问题

一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴.

 请设计一系统模拟动态地显示出上述过程,要求如下:

1) 输出每曲配对情况

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

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

 提示:

用队列来解决比较方便.

 

数据结构课程设计题目

 三、上交相关内容要求

上交的成果的内容必须由以下四个部分组成,缺一不可

 1.上交源程序:

学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);

 2.上交程序的说明文件:

(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明;

 3.课程设计报告:

(保存在word文档中,文件名要求按照"姓名-学号-课程设计报告"起名,如文件名为"张三-001-课程设计报告".doc)按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成;

  其中包括:

  a)需求分析:

  在该部分中叙述,每个模块的功能要求

  b)概要设计

  在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义。

  c)详细设计

  各个算法实现的源程序,对每个题目要有相应的源程序(可以是一组源程序,每个功能模块采用不同的函数实现)

  源程序要按照写程序的规则来编写。

要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

  d)调试分析

  测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?

问题如何解决?

),算法的改进设想。

  4.课设总结:

(保存在word文档中)总结可以包括:

课程设计过程的收获、遇到问题、遇到问题解决问题过程的思考、程序调试能力的思考、对数据结构这门课程的思考、在课程设计过程中对《数据结构》课程的认识等内容

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

当前位置:首页 > 小学教育 > 小学作文

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

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