2014-数据结构课程设计题目

更新时间:2024-06-02 18:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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、长整数的加法运算 问题描述:

设计一个实现任意长的整数进行加法、减法运算的演示程序。 基本要求: 1利用链表实现长整数的存储,每个结点含一个整型变量。 2任何整型变量的范围是-(2^15-1)~(2^15-1)。

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

4、一元多项式计算器 问题描述:

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

123m

Am(x) = A0+A1x+A2x+A3x+… +Amx

123n

Bn(x) = B0+B1x+B2x+B3x+… +Bnx

试求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个权值,建立哈夫曼树; ⑵编码:利用建好的哈夫曼树生成哈夫曼编码; ⑶ 输出其哈夫曼树及哈夫曼编码; ⑷ 设字符集及频度如下表:

字符 空格 A B C D E F G H I J K L M 频度 197 64 13 22 32 103 21 15 47 57 5 1 20 32 字符 N O P Q R S T U V W X Y Z 频度 57 63 1 15 48 16 80 23 8 18 1 51 1 9、校园导游咨询系统的设计与实现 问题描述:

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

⑴设计华东交通大学南区的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 ⑵为来访客人提供图中任意景点相关信息的查询。

⑶为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 10、地图着色问题 问题描述:

设计地图着色软件,对江西地图中11个地级市进行着色,要求相邻地级市所使用的颜色不同,并保证使用的颜色最少。 基本要求:

⑴地图采用图型数据结构,每个地级市为一个节点,边表示对应的两个地级市相邻。 ⑵设计着色算法,保证邻接点不是同一种颜色。 ⑶演示程序以用户和计算机的对话方式进行。 11、内部排序算法比较 问题描述:

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

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

⑵待排序表的表长不小于100,其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。 ⑶最后对结果作出简单分析,包括对各组数据得出结果波动大小的解释。 12、哈希表的设计与实现——线性探测再散列 问题描述:

设计哈希表实现电话号码查找系统。 基本要求:

⑸ 设每个记录有下列数据项:电话号码、用户名、地址;

⑹ 从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表; ⑺ 采用线性探测再散列的方法解决冲突; ⑻ 查找并显示给定电话号码的记录; ⑼ 查找并显示给定用户名的记录。

13、哈希表的设计与实现——二次探测再散列 问题描述:

设计哈希表实现电话号码查找系统。 基本要求:

(1)设每个记录有下列数据项:电话号码、用户名、地址;

(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表; (3)采用二次探测再散列的方法解决冲突; (4)查找并显示给定电话号码的记录; (5)查找并显示给定用户名的记录。 14、哈希表的设计与实现——链地址法 问题描述:

设计哈希表实现电话号码查找系统。 基本要求:

(1)设每个记录有下列数据项:电话号码、用户名、地址;

(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立不同的哈希表; (3)采用链地址法解决冲突;

(4)查找并显示给定电话号码的记录; (5)查找并显示给定用户名的记录。 15、火车售票系统的设计与实现 问题描述:

通过此系统可以实现售票、退票、车票剩余情况查询等功能。每张车票包含车次、车厢、座位信息。 基本要求:

⑴在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、车厢、座位情况。 ⑵为简单起见,在此假设所有出售的车票均为同一车次的车票。

⑶退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票,而且退票可以再次销售。 16、图书管理系统的设计与实现 问题描述:

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

⑴每种书的登记内容包括书号、书名、著作者、现存量、库存量和借阅信息;

⑵对书号建立索引顺序表以提高查找效率; ⑶系统主要功能如下:

①采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; ②借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; ③归还:注销对借阅者的登记,改变该书的现存量。 17、客户消费积分管理系统的设计与实现 问题描述:

针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。 基本要求:

⑴采用一定的存储结构进行客户信息的存储; ⑵对客户的信息可以进行修改、删除、添加; ⑶能够根据消费情况进行客户积分的累加;

⑷根据积分情况,对客户实行不同程度的打折优惠; 18、产品进销存管理系统的设计与实现 问题描述:

针对某一种行业的库房的产品进销存情况进行管理。 基本要求:

⑴采用一定的存储结构对库房的货品及其数量进行分类管理; ⑵可以进行产品类的添加、产品的添加、产品数量的添加;

⑶能够查询库房每种产品的总量、进货日期、销出数量、销售时间等。 19、学生成绩管理系统的设计与实现 问题描述:

能够实现对学生成绩的常用管理功能。 基本要求:

⑴采用一定的存储结构对学生成绩进行管理;

⑵可以进行成绩的录入、查询、修改、删除等操作;

⑶可以查询某门课程的平均分,学生的排名,不同分数段的学生人数及学生信息等; ⑷可以查询某学生的各课程分数,总分及学生的班级排名等; ⑸可以按学号排序输出全部学生的成绩信息、总分及班级排名等。 20、通讯录管理系统的设计与实现——线性表 任务:利用线性表完成通讯录的一般性管理工作: (1) 添加信息;

(2) 显示信息:可以按照手机或联系人的姓名拼音排序显示; (3) 查找:可用不同的关键字作为查找的依据,进行查找; (4) 编辑信息; (5) 删除信息; (6) 保存到文件;

要求:(1)界面友好,可反复操作。

(2)每条记录至少包括姓名、手机、QQ、电子邮箱、城市、邮编等信息。 21、通讯录管理系统的设计与实现——哈希表 任务:利用哈希表完成通讯录的一般性管理工作: (1)添加信息;

(2)显示信息:可以按照手机或联系人的姓名拼音排序显示; (3)查找:可用不同的关键字作为查找的依据,进行查找; (4)编辑信息; (5)删除信息;

(6)保存到文件; 要求:

(1)界面友好,可反复操作。

(2)每条记录至少包括姓名、手机、QQ、电子邮箱、城市、邮编等信息。 22、简单目录管理系统的设计与实现

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

23、最短旅程的求解

任务:有n个城市(编号从1到n),它们之间通过双向的道路相连。那里只有n-1条道路,但是,它们的连接方式使得从任意城市都可以走到其他的任何城市。 一天,某个游客到了编号为k的城市。他计划从城市k开始,游遍所有的城市m1,m2,m3……,mi,…(不一定要按这个顺序旅游)。每个城市mi都是不同的,并且,也与k不同。他想要以最短的路程旅行完所有的城市(从城市k开始)。请你帮助计算一下,旅游完上述的城市最短需要多少路程。 24、迷宫求解

任务:以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

要求:首先实现一个栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。 25、家谱管理系统的设计与实现

任务:设计并实现一个简单的家谱管理系统。 基本要求:

(1)建立家族关系并能存储到文件中。 (2)实现家族成员的添加、删除功能。

(3)可以查询家族成员的双亲、祖先、兄弟、 孩子和后代等信息。 (4)按某种顺序输出家谱信息(树的遍历操作)、以树型结构输出家谱资料等功能。 26、宿舍管理查询软件

任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求: (1)采用交互工作方式;

(2)可以增加、删除、修改信息;

(3)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序; (4) 查询: a.按姓名查询 ;b.按学号查询 ;c按房号查询 (5) 输出任一查询结果(可以连续操作)。 27、语言中平衡符号的问题

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

28、算术表达式求解

问题描述:给定一个算术表达式,通过程序求出最后的结果。 基本要求:

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

(2)采用栈结构进行算术表达式的求解过程; (3)能够判断算术表达式正确与否; (4)对于错误表达式给出提示;

(5)对于正确的表达式给出最后的结果,并可以显示运算的整个过程。 29、表达式求值,可供小学生作业,并能给出分数

要求:建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括号的混合运算;随时可以退出;

保留历史分数,能回顾历史,给出与历史分数比较后的评价。 30、数制转换问题

任意给定一个M进制的数x,实现如下要求: (1) 求出此数x的10进制值;

(2) 实现对X向任意的一个非M进制的数的转换;

(3) 至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决) 31、病人就医管理

编写一个程序实现就医管理。在病人就医过程中,主要发生三件事: ⑴预检,分科室,挂号。

⑵病人到达诊室,将病历本交给护士,排到等待队列中候诊。 ⑶护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。 要求程序采用菜单方式,其选项及功能说明如下: ⑴挂号------预检,分科室,生成就诊号。

⑵排队------输入病人的就诊号,加入到病人排队队列中。

⑶就诊-------病人排队队列中最前面的病人就诊,并将其从队列中删除。 ⑷查看排队------从队首到队尾列出所有的排队病人的病历号。 ⑸下班---------退出运行。 32、九宫格问题

在一个3×3的九宫格中有1—8这8个数字,混乱排序,一个空格随机地摆放在一个格子里。现要求将该九宫格调整为正常按顺序的格式。调整的规则是:每次只能将与空格(上、下或左、右)相邻的一个数字平移到空格中。编程实现这一问题的求解,并输出求解过程。 33、银行业务模拟

问题描述:设银行有四个服务窗口,一个等待队列, 每个窗口均可以办理存款、取款、挂失、还贷业务,每种业务所需的服务时间不同,优先级不同。客户到达银行后,先到打号机上打号,号票上包括到达时间、编号和需要办理的业务,然后在银行内等候。当任一服务窗口空闲时,处理等候客户中优先级最高,排在最前面的客户的业务。写一个上述银行业务的模拟系统,通过模拟方法求出客户在银行内逗留的平均时间和每个窗口办理的客户数及办理的每种业务数。 基本要求:每个客户到达银行的时间和需要办理的业务随机产生,输出一天客户在银行的平均逗留时间和每个窗口每天办理的客户数和每种业务数。 34、停车场管理

设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端);若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上依次等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 35、关键路径问题 问题描述:

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

⑴对一个描述工程的AOE网,应判断其是否能够顺利进行。 ⑵若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间。 36、地铁站建设问题 问题描述:

以南昌为例,假设要在南昌各辖区之间修建地铁来加快经济发展,但由于建设地铁的费用昂贵,因此需要设计一个程序,合理安排地铁的建设路线,使乘客可以沿地铁到达各个辖区,并使总的建设费用最小。

基本要求:

⑴从包含各辖区的地图文件中读入辖区名称和各辖区间的直接距离。

⑵根据读入的各辖区的距离信息,计算出应该建设哪些辖区间的地铁路线。 ⑶输出应该建设的地铁路线及所需要建设的总里程信息。 37、学校超市选址问题

设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。 38、教学计划编制问题

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

活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求: 能比较迅速地找到储户的帐户,以实现存款、取款记账;

能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。 40、银行业务模拟 问题描述

假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。 任务要求:

1) 编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时 间。

2) 建议有如下设置:

a) 客户到达时间随机产生,一天客户的人数设定为100人。 b) 银行业务员处理时间随机产生,平均处理时间10分钟。 3) 将一天的数据(包括业务员和客户)以文件方式输出。 41、模式匹配算法的应用 问题描述

文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个实现这一目标的文字统计系统 任务要求

1) 英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。 2) 模式匹配要基于KMP算法。 42、马踏棋盘 问题描述

将马随机放在国际象棋的8* 8棋盘Bord[8Ⅱ8]的某个方格中,马按走棋规则进行移动。要求每个方格上只进入一次,走遍棋盘上全部64个方格。 任务要求

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

43、拓扑排序和关键路径

问题描述

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

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

任务要求: 构建AOV网络,并输出其拓扑序列结果,输出该图的关键路径和关键活动。 44、 医务室模拟 问题描述:假设只有一位医生,在一段时间内随机地来几位病人;假设病人到达的时间间隔 为 0~14 分钟之间的某个随机值,每个病人所需处理时间为 1~9 分钟之间的某个随机值。试 用队列结构进行模拟。 实现要求 : 要求输出医生的总等待时间和病人的平均等待时间。

设计思路:计算机模拟事件处理时,程序按模拟环境中的事件出现顺序逐一处理,在本程序中体现为医生逐个为到达病人看病。 当一个病人就诊完毕而下一位还未到达时, 时间立 即推进为下一位病人服务,中间时间为医生空闲时间。当一个病人还未结束之前,另有一位 病人到达,则这些病人应依次排队,等候就诊。 45、 招聘模拟

问题描述:某集团公司为发展生产向社会公开招聘 m 个工种的工作人员,每个工种各有不 同的编号 (0, 2, m-1) 1, …, 和计划招聘人数, 参加招聘的人数有 n 个 (编号为 0, 2,。, 1, 。。 n-1) 。每位应聘者可以申报两个工种,并参加公司组织的考试。公司将按应聘者的成绩,从 高到低的顺序排队录取。 公司的录取原则是: 从高分到低分依次对每位应聘者按其第一志愿 录取;当不能按第一志愿录取时,便将他的成绩扣去 5 分后,重新排队,并按其志愿考虑录 取。 程序为每个工种保留一个录取者的有序队列。 录取处理循环直至招聘额满, 或已对全部应聘 者都做了录用处理。 实现要求:要求程序输出每个工种录用者的信息(编号、成绩) ,以及落选者的信息(编号、 成绩) 。

本文来源:https://www.bwwdw.com/article/jxq6.html

Top