首页 > 编程语言 >C/C++数据结构与算法课程设计选题详情[2023-02-23]

C/C++数据结构与算法课程设计选题详情[2023-02-23]

时间:2023-02-23 12:22:07浏览次数:55  
标签:02 选题 课程设计 要求 23 测试数据 算法 输出 输入

C/C++数据结构与算法课程设计选题详情[2023-02-23]

选题详情

选题一:迷宫与栈问题

【问题描述】
以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
【任务要求】

  1. 首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出。其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。
  2. 编写递归形式的算法,求得迷宫中所有可能的通路。
  3. 以方阵形式输出迷宫及其通路。
    【测试数据】
    迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

选题二:算术表达式与二叉树

【问题描述】
一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现基于二叉树表示的算术表达式的操作。
【任务要求】
假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。实现以下操作:

  1. ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。
  2. WriteExpre(E)—用带括弧的中缀表达式输出表达式E。
  3. Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。
  4. Value(E)—对算术表达式E求值。
  5. CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2)
    【测试数据】
  6. 分别输入0;a;-91;+abc;+5x2*8x;+++*3x3*2^x2x6并输出。
  7. 每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

选题三:银行业务模拟与离散事件模拟

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

  1. 编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。
  2. 建议有如下设置:
    a) 客户到达时间随机产生,一天客户的人数设定为100人。
    b) 银行业务员处理时间随机产生,平均处理时间10分钟。
  3. 将一天的数据(包括业务员和客户)以文件方式输出。
    【测试数据】
    由随机数产生器生成

选题四:文学研究助手与模式匹配算法KMP

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

  1. 英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。
  2. 模式匹配要基于KMP算法。
  3. 推广到更一般的模式集匹配问题,并设待查模式串可以跨行(提示:定义操作GetAChar)。
    【测试数据】
  4. 文本文件为testword.c
  5. 待统计的词集:if、else、for、while、return、void、int、char、typedef、struct

选题五: 校园导游咨询与最短路径

【问题描述】

  1. 从校园的平面图中选取有代表性景点(7-10个),抽象成一个无向带权图。以图中顶点表示景点,边上的权值表示两地之间距离。
  2. 本程序的目的是为用户提供路径咨询。根据用户指定的始点和终点输出相应路径,或者根据用户指定的景点输出景点的信息。
    【任务要求】
  3. 从陇桥校园的平面图中选取有代表性景点(7-10个),抽象成一个无向带权图。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。
  4. 为来访客人提供图中任意景点相关信息的查询。
  5. 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
  6. 区分汽车线路与步行线路。
    【测试数据】
    校园校园导游图(距离可估计)。

选题六:哈夫曼(Huffman)编/译码器

【问题描述】
利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。
【任务要求】
一个完整的系统应具有以下功能:

  1. I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。
  2. E:编码(Encoding)。利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。
  3. D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。
  4. P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。
  5. T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。
    【测试数据】
  6. 利用教科书中的数据调试程序。
  7. 用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE”。
字符	空格	A	B	C	D	E	F	G	H	I	J	K	L	M
频度	186	64	13	22	32	103	21	15	47	57	1	5	32	20

字符	N	O	P	Q	R	S	T	U	V	W	X	Y	Z	 
频度	57	63	15	1	48	51	80	23	8	18	1	16	1	 

选题七:内部排序算法比较

【问题描述】
在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机数据比较各种算法的关键字比较次数和关键字移动次数,以取得直观感受。
【任务要求】

  1. 对以下4种常用的内部排序算法进行比较:冒泡排序、直接插入排序、选择排序、快速排序。
  2. 待排序表的表长不小于100;其中的数据要用伪随机数程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。
  3. 最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。

选题八:文章编辑

【问题描述】
输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共20行。
【任务要求】

  1. 分别统计出其中英文字母数和空格数及整篇文章总字数。
  2. 统计某一字符串在文章中出现的次数,并输出该次数。
  3. 删除某一子串,并将后面的字符前移。
    【测试数据】
    输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

选题九:停车场管理系统

【问题描述】

  1. 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。
  2. 每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。
  3. 对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费,功能可自己添加)。
    【任务要求】
    1)掌握栈和队列的建立及基本操作。
    2)深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们。

选题十:集合的交、并、差运算

【问题描述】
编制一个能演示执行集合的交、并和差运算的程序。
【任务要求】

  1. 集合元素用小写英文字母,执行各种操作应以对话方式执行。
  2. 算法要点:利用单链表表示集合;理解好三种运算的含义。

选题十一:学生成绩管理系统

【问题描述】
本例对学生的成绩管理做一个简单的模拟,用菜单选择方式完成下列功能:登记学生成绩;查询学生成绩;插入学生成绩;删除学生成绩。
【任务要求】
1)算法输入:操作要求,学生信息
2)算法输出:操作结果
3)算法要点:把问题看成是对线性表的操作。将学生成绩组织成顺序表,则登记学生成绩即是建立顺序表操作;查询学生成绩、插入学生成绩、删除学生成绩即是在顺序表中进行查找、插入和删除操作。
【测试数据】
自行设定(测试数据不少于5人)。

选题十二:马踏棋盘

【问题描述】
将马随机放在国际象棋的88棋盘Bord[8Ⅱ8]的某个方格中,马按走棋规则进行移动。要求每个方格上只进入一次,走遍棋盘上全部64个方格。
【任务要求】
1)编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,…,64依次填入一个8
8的方阵,输出之。
2)测试数据:由读者指定,可自行指定一个马的初始位置。
3)实现提示:每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。

选题十三:joseph环

【问题描述】
编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
【任务要求】
1)利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
2)测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?
3)要求:
输入数据:建立输入处理输入数据,输入m的初值,n,输入每个人的密码,建立单循环链表。
输出形式:建立一个输出函数,将正确的输出序列
【测试数据】
自行设定。

选题十四:最小生成树

【问题描述】
在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。
对于图,其生成树中的边也带权,将生成树各边的权值总和称为生成树的权,并将权值最小的生成树称为最小生成树(Minimun Spanning Tree),简称为MST。有两种非常典型的算法:Prim算法和kruskal算法。
【任务要求】
设计程序完成如下功能:对给定的网和起点,用PRIM算法和kruskal算法的基本思想求解出所有的最小生成树。存储结构可自行选择。
【测试数据】
自行设定(城市数不少于15个,权值参考距离)。

选题十五:通讯录管理系统

【问题描述】
该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。该设计的任务是利用一个简单实用的菜单,通过菜单单项进行选择,实现和完成通讯录管理中常用的几个不同的功能。
【任务要求】
(1) 菜单内容
1、 通讯录链表的建立
2、 通讯者结点的插入
3、 通讯者结点的查询
4、 通讯者结点的删除
5、 通讯录链表的输出
1、 退出管理系统
请选择0~5:
(2 )设计要求
1、使用0~5来选择菜单项,其他输入则不起作用。
2、功能函数设计
3、5个不同功能的算法实现编程题,目的是练习利用链表结构来解决实际应用问题的能力,进一步理解和熟悉线形表的链式存储结构。
【测试数据】
自行设定(测试数据不少于10人,通讯录项目不少于3个)。

选题十六:运动会分数统计系统

【问题描述】
参加运动会有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以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)  
输出形式:有中文提示,各学校分数为整形  
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。  
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
【测试数据】
自行设定(男女运动员分别不少于5人,学校不少于10个)。

选题十七:航班信息的查询系统

【问题描述】
该设计要求对飞机航班信息进行排序和查找。可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。
【任务要求】
对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他次关键字的查找可采用最简单的顺序查找方法进行,因此他们用得较少。
每个航班记录包括八项,分别是:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价等,假设航班信息表(8条记录)

航班号	起点站	终点站	班期	起飞时间	到达时间	机型	票价
CA1544	合肥	北京	1.2.4.5	1055	1240	733	960
MU5341	上海	广州	每日	1420	1615	M90	1280
CZ3869	重庆	深圳	2.4.6	0855	1035	733	1010
MU3682	桂林	南京	2.3.4.6.7	2050	2215	M90	1380
HU1836	上海	北京	每日	0940	1120	738	1250
CZ3528	成都	厦门	1.3.4.5.7	1510	1650	CRJ	1060
MU4594	昆明	西安	1.3.5.6	1015	1140	328	1160
SC7425	青岛	海口	1.3.6	1920	2120	DH4	1630

其中航班号一项的格式为:

K0                         K1                           K2                    K3                   K4                     K5
C	Z	3	8	6	9

其中K0和K1的输入值是航空公司的别称,用两个大写字母标示,后4位为航班号,这种航班号关键字可分成两段,即字母和数字。其余七项输入内容因为不涉及本设计的核心,因此除了票价为数值型外,均定义为字符串即可。
【测试数据】
自行设定(航班号不少于20个)。

选题十八:哈希表应用

【问题描述】
利用哈希表进行存储。
【任务要求】
1)任务要求:针对一组数据进行初始化哈希表,可以进行显示哈希表,查找元素,插入元素,删除元素,退出程序操作。
2)设计思想:哈希函数用除留余数法构造,用线性探测再散列处理冲突。
3)设计目的:实现哈希表的综合操作
4)简体中文控制台界面:用户可以进行创建哈希表,显示哈希表,查找元素,插入元素,删除元素。
5)显示元素:显示已经创建的哈希表。
6)查找元素:查找哈希表中的元素,分为查找成功和查找不成功。
7)插入元素:在哈希表中,插入一个元素,分为插入成功和失败。
8)删除元素:在已有的数据中,删除一个元素。
9)退出系统:退出程序。
【测试数据】
自行设定(测试数据不少于3组,每组数据不少于12个)。

选题十九:拓扑排序

【问题描述】
拓扑排序可判断AOV网络中是否存在回路,使的所有活动可排成一个线性序列,使用每个活动的所有前驱活动都排在该活动的前面。
关键路径的工期决定了整个项目的工期。任何关键路径上的终端元素的延迟将直接影响项目的预期完成时间(例如在关键路径上没有浮动时间)。
【任务要求】
构建AOV网络,并输出其拓扑序列结果,输出该图的关键路径和关键活动,存储结构自行选择。
【测试数据】
自行设定(结点数不少于10个)。

选题二十:员工管理系统

【问题描述】
每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
【任务要求】
(1) 排序:按不同关键字,对所有员工的信息进行排序。
(2) 查询:按特定条件查找员工。
(3) 更新:按编号对某个员工的某项信息进行修改。
(4) 插入:加入新员工的信息。
(5) 删除:按编号删除已离职的员工的信息。
【测试数据】
自行设定。

选题二十一:王伯买鱼

【问题描述】
王伯退休后开始养鱼。他一早起来就赶去动物公园,发现这个世界的鱼真不少,五光十色、色彩斑斓,大的、小的,什么样的都有。这些鱼实在太美了,买的人越来越多,湖里的鱼越来越少。没有美丽的鱼,哪里有美丽的湖?于是动物公园不得不规定,对于每种鱼,每个人最多只能买一条。并且有些鱼是不能一起买的,因为放在一起他们相互争斗吞食。 王伯想买尽可能多的鱼,但很可惜,他的资金有限。他冥思苦想,不知如何是好。请编程帮他,如果有多个方案能买尽可能多的鱼,选择所花资金最多的一种方案。具体要求:
【输入】
第一行:资金m(<=1000)和鱼的种类n(<=30)。以下n行,每行有两个正整数,鱼的编号s(1<=s<=n)和该鱼的价格t。接着又有若干行,每行两个整数p和q,当p和q都大于0时,表示p和q不能共处;当p和q均等于0时,表示输入结束。
【输出】
第一行两个整数,x和y,x表示买的鱼的条数,y表示总的花费。以下x行,每行有一个整数,表示所买鱼的编号。编号按升序排列输出。
选题二十二:家族关系查询系统
【问题描述】
建立家族关系数据库,实现对家庭成员的相关查询。
【任务要求】
(1)建立家族关系并能存储到文件中。
(2)实现家族成员的添加。
(3)可以查询家族成员的双亲、祖先、兄弟、 孩子和后代等信息。
【测试数据】
自行设定。

选题二十三:图书管理系统

【问题描述】
设计一个计算机管理系统完成图书管理基本业务。
【任务要求】
(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;
(2)对书号建立索引表(线性表)以提高查找效率;
(3)系统主要功能如下:
*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
*归还:注销对借阅者的登记,改变该书的现存量。

选题二十四:公司销售管理系统

【问题描述】
帮助某公司开发一个销售管理系统。
【任务要求】
(1)客户信息管理:对客户的基本信息进行添加、修改和删除。
(2)产品信息管理:对产品的基本信息进行添加、修改和删除。
(3)供应商信息管理:对供应商的基本信息进行添加、修改和删除。
(4)订单信息管理:对订单的基本信息进行添加、修改和删除。

选题二十五:自拟题目

【要求】

  1. 学生原则上可以结合个人爱好自选课题。
  2. 自选课题必须覆盖数据结构的主要内容,有一定的深度与难度,有一定的算法复杂性,能明确体现数据抽象与组织、算法设计与性能分析以及编码实现等过程。
  3. 学生自选课题需提前报课程设计指导教师批准方可生效。

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

标签:02,选题,课程设计,要求,23,测试数据,算法,输出,输入
From: https://www.cnblogs.com/codewriter/p/17147498.html

相关文章

  • 软件体系结构课堂测试02– 架构评价
     班级:信2005-1  学号:20204010   姓名:耿晴 根据观看的视频内容,回答下列问题:1、 你认为改造的房屋存在什么样的问题?(至少五个存在问题)安全问题:楼梯过于陡峭......
  • 软件体系结构课堂测试02– 架构评价
    根据观看的视频内容,回答下列问题:1、 你认为改造的房屋存在什么样的问题?(至少五个存在问题)安全问题:楼梯陡峭。可用性:空间小易用性:上厕所不方便采光不足,做饭吃饭不方......
  • YACS2023年2月乙组
    T3:最大子集本题是01背包的变种题记dp[i]表示选到的奶牛的智商总和为\(i\)时对应的情商总和的最大值这里由于\(x\)可能是负数,所以需要将\(i\)向后偏移\(3e5\)......
  • [.Net] 解决 Oracle.DataAccess 在 VS2022 下不兼容的问题
    环境VisualStudio2022Oracle.DataAccess.dllv4.121.2.0错误信息在VS中启动 IISExpress,收到报错信息Couldnotloadfileorassembly'Oracle.DataAccess'oro......
  • 软件体系架构课堂测试02
    根据观看的视频内容,回答下列问题:1、 你认为改造的房屋存在什么样的问题? (至少五个存在问题)1及其危险的楼梯2同时要做卫生间的厨房3闲置空间难以被利用4拥挤的客厅......
  • 2022-2023学年第二学期-实变函数
    课程信息作业课程信息曲阜师范大学统计学院,2021级数学与应用数学专业5-6班.上课时间地点:2-18周,周二1-2节数学楼201,周四1-2节数学楼201.教材:实变函......
  • Nginx基础02:配置文件nginx.conf(Part1)
    我们使用Nginx主要是通过其配置文件nginx.conf来实现的。按照一定的规则,编写特定的指令,可以帮助我们实现对Web服务的控制!所以,学习Nginx的用法,几乎就是学习nginx.conf!如何......
  • 0002图像的采样和量化
    目录数字图像数字图像以像素为元素的矩阵,f(x,y)是矩阵中x行,y列的像素值采样:空间分辨率就是普通的分辨率采样:亮度分辨率就是灰度级别,0到256灰度级图像的......
  • 2.23
    app.json:{  "pages":[    "pages/index/index",    "pages/home/home",    "pages/msg/msg",    "pages/logs/logs"   ],  "window":{......
  • 代码随想录算法Day21 | 530.二叉搜索树的最小绝对差 ,501.二叉搜索树中的众数 ,236. 二
    530.二叉搜索树的最小绝对差题目链接:530.二叉搜索树的最小绝对差-力扣(LeetCode)思路题目中要求在二叉搜索树上任意两节点的差的绝对值的最小值。注意是二叉搜索树,二......