您的当前位置:首页正文

数据结构与C语言综合训练题目集

来源:华佗小知识
1. 订票系统 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:确定航班是否满仓); 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣, 可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票: 可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息: 当航班信息改变可以修改航班数据文件 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 2. 3. 用Haffman编码压缩文件 商品管理系统 准备一个文件,统计该文件中各种字符的频率,对各字符进行Huffman编码,将该 文件翻译成Huffman编码文件,再将Huffman编码文件翻译成源文件。 以链表结构的有序表表示某商场家电部的库存模型,当有提货或进货时需要对该链 表及时进行维护,每个工作日结束以后,将该链表中的数据以文件形式保存,每日开始营业之前,须将文件形式保存的数据恢复成链表结构的有序表。 链表结构的数据域 包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性。程序功能包括:初始化、创建表、插入、删除、更新数据、查询及链表数据与文件之间的转换等。 对文件file1.txt中的姓名按姓氏进行统计,计算每个姓氏出现的概率,并生产 Haffman树,用另一个文件file2.txt中的姓氏在Haffman树中查询,得出查询完成所用的时间;在file1.txt中查询file2.txt中姓氏,得出查询完成所用的时间,对两者进行对比,得出结论并写进论文。 4. 建立Haffman树并查询 5. 校园导游咨询 1)、功能描述:设计你的学校的校园平面图,所含景点不少于10个。以图中顶 点表示学校各景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径长度等相关信息。 2)、为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 3)、为来访客人提供图中任意景点相关信息的查询。 测试数据:由读者根据实际情况指定。 实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网,顶点和边均含有相关信息。 问题描述:针对某一种行业的库房的产品进销存情况进行管理。 基本要求: 1. 采用一定的存储结构对库房的货品及其数量进行分类管理; 2. 可以进行产品类的添加、产品的添加、产品数量的添加; 能够查询库房每种产品的总量、进货日期、销出数量、销售时间等; 6. 产品进销存管理系统 7. 图书管理系统 【问题描述】 设计一个计算机管理系统完成图书管理基本业务。 【基本要求】 1)每种书的登记内容包括书号、书名、著作者、现存量和库存量; 2)对书号建立索引表(线性表)以提高查找效率; 3)系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。 【进一步完成内容】 1)系统功能的进一步完善; 2)索引表采用树表。 3)设计内容 4)程序流程图 5)源程序 6)软件测试报告(包括所用到的数据及结果) 8. 散列表的设计与实现 【问题描述】 设计散列表实现电话号码查找系统。 【基本要求】 1)设每个记录有下列数据项:电话号码、用户名、地址; 2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表; 3)采用一定的方法解决冲突; 4)查找并显示给定电话号码的记录; 5)查找并显示给定用户名的记录。 【进一步完成内容】 1)系统功能的完善; 2)设计不同的散列函数,比较冲突率; 3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。 问题描述:给定一个算术表达式,通过程序求出最后的结果。 基本要求: 1. 从键盘输入要求解的算术表达式; 2. 采用栈结构进行算术表达式的求解过程; 3. 能够判断算术表达式正确与否; 4. 对于错误表达式给出提示; 5. 对于正确的表达式给出最后的结果; 9. 算术表达式的求解 10. 构造可以使n个城市连接的最小生成树 问题描述:给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立 最小生成树,并计算得到的最小生成树的代价。 基本要求: 1、城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。 2、表示城市间距离网的邻接矩阵(要求至少6个城市,10条边) 3、最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。 要求:实现线索树建立、插入、删除、恢复线索的实现。 要求:实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。 11. 线索二叉树的应用 12. 树的应用 13. 图的遍历的实现 1)先任意创建一个图; 2)图的DFS,BFS的递归和非递归算法的实现 3)要求用有向图和无向图分别实现 4)要求用邻接矩阵、邻接表多种结构存储实现 14. 运动会分数统计 任务:参加运动会有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)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或 前五名的学校。 5)数据存入文件并能随时查询 6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有合理的提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 15. 停车场管理 设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽 车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内己停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开人;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 以桟模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达“或“离去“信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。钱以顺序结构实现,队列以链表结构实现。 问题描述:设计一个哈希表,实现个人电话号码查询系统。 16. 哈希表的设计与 实现 基本要求: (1)设每个记录有下列数据项:电话号码、用户名、用户住址; (2)从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表; a) 设计不同的哈希函数,比较冲突率; b) 在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。 (3)查找并显示给定电话号码/用户名的记录; 提供一些统计各类信息的功能。例如男女的人数、比例;以及哪年、哪月、哪日出生的人数等。界面要合理。 17. 身份证管理程序 该程序应该具有下列功能: (1) 通过键盘可以输入身份证信息,大量信息可存放在文件中。身份证包含的信息请参看自己的身份证; (2) 给定身份证号码,显示其身份证信息; (3) 给定省份的编号,显示该省的人数; (4) 给定某区的编号,显示该区的人数; (5) 给定身份证号码,可以修改该身份证信息; (6) 给定身份证号码,可以删除该身份证信息; 18. 约瑟夫环问题 功能:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个要求:用数组和链表分人持有一个正整数密码。开始时任选一个正整数做为报数上限m,从第一个人开始顺别实现。m和n的值可时针方向自1起顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新以由键盘输入。 的m值,从他的下一个人开始重新从1报数。如此下去,直到所有人全部出列为止。令n最大值取30。要求设计一个程序模拟此过程,求出出列编号序列。 现有学生成绩信息文件1(1.txt),内容如下 学生成绩信息文件2(2.txt),内容如下: 姓名 学号 语文 数学 英语 姓名 学号 语文 数学 英语 张明明 01 67 78 82 陈果 31 57 68 82 李成友 02 78 91 88 李华明 32 88 90 68 张辉灿 03 68 82 56 张明东 33 48 42 56 要求使用结构体链表或数组等实现上述要求. 19. 学生成绩管理系统 王露 04 56 45 77 李明国 34 50 45 87 陈东明 05 67 38 47 陈道亮 35 47 58 77 --------- --- -- -- -- -------- -- -- -- -- 试编写一管理系统,要求如下: 1) 实现对两个文件数据的合并,生成新文件3.txt 2) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt 3) 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现) 4) 输入一个学生姓名后,能查找到此学生的信息并输出结果 20. 家电销售系统 用链式结构建立有序表,结点的数据域应该包括家电名称、品牌型号、单价以及数量,以结点中单价的递增顺序排列。日常的维护操作应该包括初始化,创建链表,插入,删除,更新数据,打印,查询。 基本业务活动包括:对新书的采编入库、清除库存、借阅和归还等等。 图书的基本信息:图书编号,出版社,作者信息,定价,图书名称等。 界面安排合理,提示信息完善。 完成任务描述中的各种功能,自己可以适当增加必要的功能。 作为一个完整的系统,应具有友好的界面和较强的容错能力 21. 图书管理系统 22. 问题描述:编写一个通讯录管理系统。本系统应完成以下几方面的功能: 1) 输入信息——enter(); 2) 显示信息———display( ); 通讯录管理系统 3) 查找以姓名作为关键字 search( ); 4) 删除信息———delete( ); 5) 存盘———save ( ); 6) 装入———load( ) ; 要求:(1) 每条信息应包含 :姓名(NAME )街道(STREET)城市(CITY) 邮编(EIP)国家(STATE)等信息。 23. 订票系统 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据完成任务描述中的各种自定) 功能,自己可以适当增查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,加必要的功能。 航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; 给定简单的算术表达式,包括加减乘除括号这几种运算操作符,请计算表达式的值。 首先将算术表达式转化 24. 简单算术表达式 运算 25. 字符串操作 (1)能够正确处理加减乘除这四种运算; (2)能够正确处理括号运算; 编写程序,不使用标准库函数,实现字符串的拷贝、拼接、字串查找、长度计算等函数。 (1)在不使用相关的标准库函数的情况下,完成本任务; (2)实现两个字符串拼接的函数strcat(str1, str2); (3)实现字符串拷贝的函数strcpy(str1,str2); (4)实现字符串查找的函数strcstr(str1,str2); (5)实现字符串长度计算的函数strlen(str1); (6)实现字符串查找字符的函数strcchar(str1,c); (7)实现字符串替换的函数strcreplacestr(str1,str2,str3); (8)实现字符串替换字符的函数strcreplacechar(str1,str2,c); 成逆波兰式,针对逆波兰式进行运算。 完成任务描述中的各种功能,自己可以适当增加必要的功能。 26. 集合操作 用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、并、完成任务描述中的各种差运算。 功能,自己可以适当增(1)用单链表存放集合中的元素,链表中的元素按大小存放; 加必要的功能。 (2)实现集合加入一个元素删除一个元素的元素操作; (3)实现集合的交、并、差集合操作; 设计一个简单的歌手比赛绩管理程序,对一次歌手比赛的成绩进行管理 功能要求: 1.输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。 2.显示主菜单如下:1)输入选手数据 2)评委打分 3)成绩排序(按平均分)4)数据查询 5)追加学生数据 6)写入数据文件7)退出系统 编写程序,不使用标准库函数,实现字符串的拷贝、拼接、字串查找、长度计算、拆分、等函数。 (1)在不使用相关的标准库函数的情况下,完成本任务; 27. 歌手比赛系统 28. 字符串操作 1 (2)实现两个字符串拼接的函数strcat(str1, str2); (3)实现字符串拷贝的函数strcpy(str1,str2); (4)实现字符串查找的函数strcstr(str1,str2); (5)实现字符串长度计算的函数strlen(str1); (6)实现字符串查找字符的函数strcchar(str1,c); (7)实现字符串替换的函数strcreplacestr(str1,str2,str3); (8)实现字符串替换字符的函数strcreplacechar(str1,str2,c); (9)实现字符串拆分函数strsplit(str1,c,str[]) 29. n元多项式乘法 要求: (1) 界面友好,函数功能要划分好 (2) 总体设计应画一流程图 (3) 程序要加必要的注释 (4) 要提供程序测试方案 (5) 程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。 30. 学籍管理系统 问题描述:建立学籍管理系统,实现对于学生信息的添加和维护管理。 基本要求:完成学籍登记表中的下面功能(登记表中包括学号、姓名、性别、出生日期、政治面貌、联系方式、家庭住址等信息)。 ⑴ 插入:将某学生的基本信息插入到登记表中; ⑵ 删除:将满足条件的基本信息删除; ⑶ 修改:对基本信息的数据项进行修改; ⑷ 查询:查找满足条件的学生; ⑸ 输出:将登记表中的全部(或满足条件)基本信息输出。 提高要求: ⑴ 可以添加课程信息(如开课学期、上课时间、上课地点等信息),学生选课信息,实现学生的选课功能; ⑵ 增加学生成绩信息,可以对学生的成绩进行插入、删除、修改等操作; ⑶ 实现查找某学生的选课记录,课程成绩等; ⑷ 利用二叉排序树、平衡树、排序算法等数据结构知识提高排序和查找速度。 提示: ⑴ 学生登记表一般建立后,比较少更改,因此,可以采用顺序表方式建立; ⑵ 学生选课、成绩等信息,一般更改比较频繁,则可以采取链表建立; ⑶ 可以将学生的信息存储到文件中;系统运行时,将信息从文件调入到内存中运行。

因篇幅问题不能全部显示,请点此查看更多更全内容