当前位置:首页|资讯

C/C++《数据结构》课程设计题目(52题)

作者:高校程序发布时间:2024-10-18

C/C++《数据结构》课程设计题目(52题)

《数据结构》课程设计题目

一人一题,不得重复

目录
题目1:单电梯模拟系统 1
题目2:一元多项式的加法、减法、乘法的实现 1
题目3:送水管理系统 2
题目4:哈夫曼编/译码器 2
题目5:校园导游系统 3
题目6:运动会分数统计 3
题目7:走迷宫游戏升级版 4
题目8:农夫过河问题的求解 4
题目9:广州地铁乘车路线规划系统 5
题目10:宿舍管理查询软件 5
题目11:航班信息的查询与检索 5
题目12:高校社团管理系统 5
题目13:散列表的设计与实现 6
题目15:广州地铁线网票价查询系统 7
题目16:简单的职工管理系统 7
题目17:通讯录的制作 7
题目18:家族关系查询系统 8
题目19:银行活期储蓄账目管理系统 8
题目20:安排教学计划 8
题目21:简单目录管理系统的设计与实现 9
题目22:后疫情时代校园行动轨迹查询系统 9
题目23:药店的药品销售统计系统  9
题目24:仓库管理系统 10
题目25:考试报名系统 10
题目26:酒店客房管理系统 11
题目27:班级创新学分管理系统 11
题目28:简单的客户管理系统 12
题目29:垃圾分类查询系统 12
题目30:关键路径系统 12
题目31: 全国交通咨询模拟系统 12
题目32:文章编辑系统(字符串) 13
题目33:电视大赛观众投票及排名系统(排序应用) 13
题目34:银行客户排队系统(队列的应用) 14
以下题目要求选择2题完成 14
题目35:集合运算 14
题目36:马的遍历问题 15
题目37:排序算法综合(37与38不能同时选) 15
题目38:排序算法动态演示(37与38不能同时选) 15
题目39:猴子选大王(35、 36、37、38不能同时选) 15
题目40:敢死队问题(35、 36、37、38不能同时选) 16
题目41:纸牌游戏(35、 36、37、38不能同时选) 16
题目42:约瑟夫环 (35、 36、37、38不能同时选) 16
题目43:任意长的整数加法 17
题目44:图的遍历 17
题目45:构造可以使n个城市连接的最小生成树 17
题目46:求最短路径 18
题目47:走迷宫游戏基础版本 18
题目48: 学生搭配问题 18
题目49:停车场管理问题 18
题目50:表达式计算 19
题目51:使用栈为栈中的元素排序 19
题目52:线索二叉树的应用 20

源码联系UP主 -> https://space.bilibili.com/329101171

题目1:单电梯模拟系统
学校八层教学楼的单电梯系统基本情况如下:
(1)该楼有一个自动电梯,能在每层停留。八个楼层由下至上依次称为地下层、第一层、第二层、第三层和第四层,…,第七层。其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。
(2)电梯一共有七个状态,即正在开门(Opening)、已开门(Opened)、正在关门(Closing)、已关门(Closed)、等待(Waiting)、移动(Moving)、减速(Decelerate)。乘客可随机地进出于任何层。对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
(3)模拟时钟从0开始,时间单位为0.1秒。人和电梯的各种动作均要耗费一定的时间单位(简记为t),比如:
有人进出时,电梯每隔50t测试一次,若无人进出,则关门;
关门和开门各需要25t;
每个人进出电梯均需要30t;
如果电梯在某层静止时间超过300t,则回到1层候命。
请设计数据结构和算法,要求输出:按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。

题目2:一元多项式的加法、减法、乘法的实现
设有一元多项式 和 ,其中:

请实现求 、 和
要求:
(1)分别采用顺序和动态存储结构实现;
(2)结果 中无重复阶项和无零系数项;
(3)输出结果的升幂和降幂两种排列情况。

题目3:送水管理系统
设计多个结构体,保存桶装水入库、会员要桶装水、安排送水及其相关的资金等信息管理,设计算法实现批量对临近会员送水的安排。
功能要求:
(1)水站点的入库水、空桶回收和送出、接收会员要水信息。包括新增、修改、删除、查询。
(2)用户管理:管理员、经理、送水工人、会员。实现新增、修改、删除、查询。
(3)根据会员要水的信息,设计一个算法实现临近会员的集中送水。
(4)资金管理管理,会员押金、充值、扣款,与水厂的资金往来,员工的工资。
(5)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由键盘输入用户信息、要水送水、充值扣款等数据,以文件方式保存,程序执行时先将文件读入内存,并使用顺序表或链表存放。

题目4:哈夫曼编/译码器
利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。
功能要求:
(1)初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。
(2)编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。
(3)译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
(4)打印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(横向输出)显示在终端上。

题目5:校园导游系统
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。
功能要求:
(1)查询各景点的相关信息;
(2)查询图中任意两个景点间的最短路径。 
(3)查询图中任意两个景点间的所有路径。 
(4)增加、删除、更新有关景点和道路的信息。
(5)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由键盘输入景点、道路等对象数据,以文件方式保存,程序执行时先将文件读入内存,并使用顺序表或链表存放推荐线路信息。

题目6:运动会分数统计
参加运动会有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) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

题目7:走迷宫游戏升级版
程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。
设计要求:
(1)老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;
(2)正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;
(3)添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;
(4)找出走出迷宫的所有路径,以及最短路径。

题目8:农夫过河问题的求解
一个农夫带着一只狼、一只羊和一棵白菜,身处河的南岸。他要把这些东西全部运到北岸。他面前只有一条小船,船只能容下他和一件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会 吃白菜,所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离开,而狼不吃白菜。
功能要求:
(1)用向量表示状态。
(2)设计一个通用算法,安全地实现农夫过河。
(3)解决类似问题,例如教士和野人过河。其中教士和野人数可以是变化的,分析算法如何修改实现动态变化。
(4)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由图的邻接表实现状态存储以及状态转移,通过键盘输入动态数据执行指定的算法。

题目9:广州地铁乘车路线规划系统
通过调研,查清楚广州现有的地铁线路和站点情况,选择合适的存储结构,设计和实现一个广州地铁乘车路线规划系统。功能要求:输入始点和终点,能够给出规划路线及中间换乘信息等,具有换乘次数少或经过站点最少两种优先选择功能。要求系统维护时,能比较方便地进行线路或站点的增删。

题目10:宿舍管理查询软件
为宿舍管理人员编写一个宿舍管理查询软件。
功能要求:
(1) 录入:采用交互工作方式录入数据,建立数据文件;
(2) 查询:(用二分查找实现以下操作)按姓名查询、按学号查询 、按房号查询;
(3) 排序:按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种),输出排序结果;
(4) 删除:根据学号删除相关信息;
(5) 修改:根据学号修改相关信息。

题目11:航班信息的查询与检索
对飞机航班信息进行录入、排序和查找等操作,每个航班记录包括八项,分别是:航班号、起点站、终点站、起飞时间、到达时间、机型以及票价。
2.功能要求:
(1)录入:采用交互工作方式添加航班信息,建立数据文件;
(2)查询:可按航班的航班号、起点站、终点站、起飞时间以及到达时间等信息进行查询;
(3)排序:可按航班的航班号、票价进行排序;
(4)删除:根据航班号删除航班相关信息;
(5)修改:根据航班号修改航班相关信息。

题目12:高校社团管理系统
编写一个系统完成高校社团的管理,包括录入、查询、删除、修改、排序等操作。社团信息包括:社团名称、创建的时间、主要职责、主要负责人、社团成员等。
功能要求:
(1) 录入:采用交互式方式录入社团信息后存入文件,之后可导入;
(2) 查询:可以特定条件查询社团信息;
(3) 删除
(4) 修改:根据给出的条件查询出社团信息后进行相应的修改;
(5) 排序:根据社团的创建时间进行排序。

题目13:散列表的设计与实现
设计散列表实现电话号码查找系统,把数据保存在文件中,充分利用顺序表和链表完成以下功能:
(1)设每个记录有下列数据项:电话号码、用户名、地址;
(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;
(3)采用一定的方法解决冲突;
(4)查找并显示给定电话号码的记录;
(5)查找并显示给定用户名的记录。
(6)设计不同的散列函数,比较冲突率;
(7)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

题目14:商店存货管理系统
建立商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。
功能要求:
(1)录入:采用交互工作方式添加5个种类的货物,并建立数据文件;
(2)查询、修改和删除功能
(3)排序;
(4)有兴趣的同学可以自己扩充系统功能。

题目15:广州地铁线网票价查询系统
广州地铁是按里程分段计价,起步4公里以内 2元;4至12公里范围内每递增4公里 加1元;12至24公里范围内每递增6公里 加1元;24公里以后,每递增8公里 加1元。试设计和实现一个广州地铁线网票价查询系统。功能要求:输入始点和终点,能够给出相应的票价,两站点间有多条路径的,以最短路径计费。相邻站点间距离信息是安装部署时输入,并要求系统维护时,能比较方便进行线路或站点的增删。

题目16:简单的职工管理系统
对单位的职工进行管理,包括插入、删除、查找、排序等功能。职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。
功能要求:
(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2)删除一名职工:从职工管理文件中删除一名职工对象。
(3)查询:从职工管理文件中查询符合某些条件的职工。
(4)修改:检索某个职工对象,对其某些属性进行修改。
(5)排序:按某种需要对职工对象文件进行排序。

题目17:通讯录的制作
用双向链表作数据结构,编写一个通讯录管理系统。
功能要求:
(1)输入信息——enter();
(2) 显示信息———display( );
(3)查找以姓名作为关键字 ———search( );
(4)删除信息———delete( );
(5) 存盘———save ( );
(6) 装入———load( ) ;

题目18:家族关系查询系统
设计要求:
(1) 建立家族关系并能存储到文件中。
(2) 实现家族成员的添加。
(3) 可以查询家族成员的双亲、祖先、兄弟、孩子和后代等信,查找家族成员的祖先路径、确定成员是家族中的第几代。

题目19:银行活期储蓄账目管理系统
设计要求:
(1) 开户
(2) 存款
(3) 取款
(4) 销户
(5) 查询:按指定条件查询客户信息(比如给定日期范围查询某客户的交易明细等)

题目20:安排教学计划
设计要求:
(1) 通过键盘对输入课程及课程的先行、后继关系(如果存在回路关系时应提示错误)。
(2) 根据输入课程信息及其先行、后继关系,计算安排教学计划的序列。
(3) 输出教学计划的安排顺序。

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

题目22:后疫情时代校园行动轨迹查询系统
校园入口、各教学楼、实验楼、图书馆等均模拟实现“扫码登记”制度。设计算法,给出人员编号、查询日期后,查询该人员在校园内行动轨迹,并可以进一步查询密切接触者信息。
(1)登记点、人员管理:包括新增、修改、删除、查询。其中登记点指校园入口名、教学楼、图书馆等;人员指学生、教师、工作人员、外来人员等。
(2)扫码登记:输入登记点名称(如教学楼)、学号的方式进行模拟。
(3)人员轨迹查询:给出人员编号、查询日期后,查询该人员在校园内行动轨迹。
(4)测试:设计模拟数据,并进行测试。
(5)分析所设计算法的时间复杂度、空间复杂度。
存储结构:由键盘输入对象数据,以文件方式保存,程序执行时先将文件读入内存,并使用顺序表或链表存放轨迹信息。

题目23:药店的药品销售统计系统
实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。 
功能要求:
(1)载入:从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字;
(2)排序:按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。
(3)输出:将各种排序结果输出显示。

题目24:仓库管理系统
设计要求:
建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物信息、实现货物的入库出库,要求能用文件保存仓库货品信息。

题目25:考试报名系统
对学生考试报名管理的简单模拟, 每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成。
功能要求:
(1) 录入考生信息
(2) 查询考生信息
(3) 添加考生信息
(4) 修改考生信息
(5) 删除考生信息
(6) 输出考生信息
(7) 存盘。

题目26:酒店客房管理系统
设计一酒店客房管理系统,能完成客房的查询、排序,订房及退房功能。客房信息至少包括房号、房型、价格、状态等信息。
功能要求:
(1) 载入:客房信息存储在文件中,进入系统先导入客房信息,并存在单链表中;
(2) 查询:可根据房型、客房状态等查询客房信息;
(3) 排序:根据房型、房价等进行客房信息排序;
(4) 订房:修改客房状态,并将订房信息要写入文件中;
(5) 退房:退房后修改相关数据。

题目27:班级创新学分管理系统
创新学分管理系统主要完成学生创新学分的录入、修改、查询、排序等操作。创新学分的构成为:发明专利和著作权登记、发表论文和作品、参与创新创业基金项目、参加学科及科技竞赛、获得各类专业资格证书、参加学术活动、参加社会实践等(具体可参考文件:信息科学与技术学院课外创新实践学分认定范围及标准.doc)。
功能要求:
(1) 录入:根据学生学号或姓名,按照创新学分构成项目分别录入对应分值,录入的信息存入文件,之后可导入;
(2) 查询:按学号或姓名查询学生各项创新学分分值;
(3) 修改:修改指定学生的创新学分分值;
(4) 排序:按照创新学分总分或各项分数对全班学生进行排序。

题目28:简单的客户管理系统
对客户信息进行简单管理,包括插入、查找、删除、修改等功能。客户信息包括姓名、性别、年龄、工作单位、地址、电话等。
功能要求:
(1)插入:采用交互式方式录入客户信息,保存在文件中,之后可导入;
(2)删除:从客户信息管理文件中删除一名客户对象;
(3)查找:从客户管理文件中查询符合某些条件的客户信息;
(4)修改:检索某个客户,对其某些属性进行修改。

题目29:垃圾分类查询系统
对垃圾的类别及每个类别常见的垃圾信息进行简单管理,包括插入、查找、删除、修改等功能。垃圾信息包括垃圾名称、垃圾类别、垃圾描述等。
功能要求:
(1)插入:采用交互式方式录入垃圾信息,保存在文件中,之后可导入;
(2)删除:从垃圾信息管理文件中删除一个垃圾对象;
(3)查找:从垃圾信息管理文件中查询符合某些条件的垃圾信息;
(4)修改:检索某个垃圾对象,对其某些属性进行修改。

题目30:关键路径系统
创建并存储AOE网,然后基于该AOE网求解关键活动及关键路径。
功能要求:
(1)创建:创建并存储AOE网,保存在文件中,之后可导入;
(2)查询:事件V的最早开始时间;事件V的最迟开始时间;活动a的最早开始时间;活动a的最迟开始时间;
(3)求解并输出:关键活动、关键路径。

题目31: 全国交通咨询模拟系统
【问题描述】
出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。
【基本要求】
(1)提供对城市信息进行编辑(如:添加或删除)的功能。
(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。
(3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具。
(4)旅途中耗费的总时间应该包括中转站的等候时间。
(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。

题目32:文章编辑系统(字符串)
【问题描述】
实现一个文章编辑系统,可以统计一页文字中文字、数字及空格的个数,存储一页文章保存在文件中,每行最多不超过80个字符,共N行,分别统计出其中英文字母数和空格数及整篇文章总字数;统计某一字符串在文章中出现的次数,并输出该次数;当删除某一子串时,后面的字符随之前移;用指定的字符串替换某一子串
【实现提示】存储结构使用线性表,分别用几个子函数实现相应的功能输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号输出形式:①分行输出用户输入的各行字符;②分4行输出"全部字母数"、“数字个数”、“空格个数”、“文章总字数”;③输出删除某一字符串后的文章;④输出替换某一字符串后的文章界面要友好,输入有提示,尽量展示人性化源程序代码清晰、有层次。用户输入非法数据时,系统要及时给出警告信息

题目33:电视大赛观众投票及排名系统(排序应用)
【问题描述】
在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军和季军。现在要求编写一程序模拟实现上述系统的功能。
【实现提示】
在本例中,首先输入参赛选手的人数(范围为1-9个),然后根据人数通过malloc函数来开辟存放选手信息的顺序表。将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票,按’1’为1号选手投票,按’2’为2号选手投票,以此类推,以按’0’作为投票结束标志。投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次,得票相同的名次也相同,
(1)存储类型的定义
参赛选手信息存储类型的定义:

typedef struct node{
char name[8]; /选手姓名/
int num; /选手编号/
int score; /选手得分/
int tax; /选手名次/
}Node;

题目34:银行客户排队系统(队列的应用)
【问题描述】
银行的营业网点会客户根据来到的先后顺序同时考虑客户的级别为其办理业务。设计并一个银行客户排队系统,可以根据客户的先后顺序和客户的级别办理业务。客户分为普通客户和VIP客户。客户首次注册之后,成为普通客户。当客户的交易额满一百万后就成为VIP客户。当同时有普通客户和VIP客户等待办理业务时,按照VIP客户的先后顺序先办理VIP客户的业务,再按照普通客户的先后顺序办理普通客户的业务。
【实现提示】
首先实现注册功能,用户结构体中有用户的基本信息以及用户的以往交易总额。建立两个队列,一个普通客户队列,一个VIP客户队列。一个用户来办理业务时,首先到排队系统登记,排队系统通过用户身份证号查询到用户的交易记录,判断用户的类型,并将其加入对应的队列中。银行业务员端,只要输入“下一个”,系统自动决定并显示下一个客户的资料。

以下题目要求选择2题完成

题目35:集合运算
集合的元素可以是字母[a,b,…,z],也可以是整数[0,1,…,9]。集合输入的形式为一个以“回车符”为结束标志的字符串,允许出现重复字符或非法字符,程序应能自动滤去。输出的运算结果字符串中将不含重复字符或非法字符。
请设计数据结构和算法,编写程序实现两个集合A、B的交集、并集和差集。

题目36:马的遍历问题
在中国象棋棋盘上,对任一位置上放置的一个马,均能选择一个合适的路线,使得该棋子均能按照象棋的规则不重复地走过棋盘上的每一个位置。
要求:
(1)依次输出所走过的位置坐标;
(2)最好能画出棋盘的图形形式,并在其上动态地标注行走的过程;
(3)程序能方便的移植到其它规格的棋盘上。

题目37:排序算法综合(37与38不能同时选)
设计要求:利用随机函数产生N个随机整数(10000以上),对这些数进行多种方法进行排序。
(1)采用七种方法实现上述问题求解(提示,可采用的方法有直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。
(2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。

题目38:排序算法动态演示(37与38不能同时选)
设计要求:使用直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、归并排序6种排序算法对随机产生的20个数进行排序,给出每种排序算法每趟排序的结果。

题目39:猴子选大王(35、 36、37、38不能同时选)
一堆猴子都有编号,编号是1,2,3 …m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
功能要求:
(1)输入数据:输入m,n m,n 为整数,n<m
(2)输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能

题目40:敢死队问题(35、 36、37、38不能同时选)
有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。
排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。

题目41:纸牌游戏(35、 36、37、38不能同时选)
编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;…再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?

题目42:约瑟夫环 (35、 36、37、38不能同时选)
任务:编号是1,2,……n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
要求:
(1)利用单循环链表作为存储结构模拟此过程;
(2)键盘输入总人数n及个人的密码、初始报数上限值m;
(3)建立一个输出函数,按照出列的顺序输出各个人的编号。

题目43:任意长的整数加法
设计一个程序实现两个任意长的整数的求和运算。
设计要求:
利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。

题目44:图的遍历
设计要求:
(1)先任意创建一个图(点与边从键盘输入);
(2)分别采用邻接表和邻接矩阵两种存储结构存储;
(3)分别在两种存储结构上实现图的DFS,BFS的递归算法
(4)分别在两种存储结构上实现图的DFS的非递归算法

题目45:构造可以使n个城市连接的最小生成树
给定一个地区的n个城市间的距离网,用Prim算法和Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。
设计要求:
(1)城市间的距离网采用邻接矩阵表示,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。
(2)输入:表示城市间距离网的邻接矩阵(要求至少6个城市,10条边)
(3)输出:最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。

题目46:求最短路径
设计要求:使用图的邻接表表示法,求有向带权图中源点到其他各顶点的最短路径。

题目47:走迷宫游戏基础版本
设计要求:
(1)可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;
(2)至少使用两种数据结构完成。

题目48: 学生搭配问题
一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴. 请设计一系统模拟动态地显示出上述过程。
功能要求:
(1)输出每曲配对情况
(2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.
提示:用队列来解决比较方便.

题目49:停车场管理问题
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。
设计要求:
要求程序按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。

题目50:表达式计算
利用栈求表达式的值,先判断表达式是否正确,再计算。
功能要求:
(1) 输入带有()、[]、{}的加减乘除混合运算表达式;
(2) 先判断括号是否匹配,如果匹配错误,提示重新输入;
(3) 如果表达式正确,将中缀表达式利用栈转为后缀表达式,并完成计算。

题目51:使用栈为栈中的元素排序
用一个整数栈保存从键盘输入的一组整数,使用另一个临时栈对整数栈中整数进行升序排序,并输出排序结果。要求:最多只能使用一个临时栈存放临时数据,但不得将数据保存到别的数据结构中。示例如下:
Input : [34, 3, 31, 98, 92, 23]
Output : [3, 23, 31, 34, 92, 98]
Input : [3, 5, 1, 4, 2, 8]
Output : [1, 2, 3, 4, 5, 8]

题目52:线索二叉树的应用
要求实现线索二叉树的建立、插入、删除、查找中序序列中前驱和后继结点的功能。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1