文档详情

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

文***
实名认证
店铺
2025-03-16
DOC
208KB
约32页
数据结构与C语言综合训练习题集_第1页
1/32
数据结构与C语言综合训练习题集_第2页
2/32
数据结构与C语言综合训练习题集_第3页
3/32

真诚为您提供优质参考资料,若有不当之处,请指正序号项目名称任务描述设计要求1.身份证管理程序该程序应该具有下列功能:(1) 通过键盘可以输入身份证信息,大量信息可存放在文件中身份证包含的信息请参看自己的身份证;(2) 给定身份证号码,显示其身份证信息;(3) 给定省份的编号,显示该省的人数;(4) 给定某区的编号,显示该区的人数;(5) 给定身份证号码,可以修改该身份证信息;(6) 给定身份证号码,可以删除该身份证信息;提供一些统计各类信息的功能例如男女的人数、比例;以及哪年、哪月、哪日出生的人数等界面要合理2.期刊论文管理程序该程序应该具有下列功能:(1) 通过键盘输入某期刊论文的信息,也可以把大量期刊论文信息放在文件中;(2) 给定期刊论文的论文名称,显示该论文的XXX信息,XXX单位,发表期刊的名称;(3) 给定XXX姓名,显示所有该XXX发表的期刊论文情况;(4) 给定期刊名称,显示该期刊的所有论文信息;提供一些统计各类信息的功能例如某人发表论文的个数,某期刊出版论文的个数等3.哈夫曼编码问题描述:利用哈夫曼编码,实现压缩和解压缩基本要求:对于给定的一组字符,可以根据其权值进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;实现哈夫曼解码。

提高要求:(1)能够分析文件,统计文件中出现的字符,统计字符出现的概率,再对文件进行编码,实现文件的压缩和解压缩2)能够对于文件的压缩比例进行统计完成任务描述中的各种功能,自己可以适当增加必要的功能4.运动会分数统计任务:参加运动会有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、局部非法数据进行程序测试,以保证程序的稳定测试数据及测试结果请在上交的资料中写明;5.背包问题的求解假设有一个能装入总体积为T的背包和n件体积分别为w1 , w2 , … , wn 的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1 +w2 + … + wn=T,要求找出所有满足上述条件的解例如:当T=10,各件物品的体积{1,8,4,3,5,2}时,可找到下列4组解:(1,4,3,2)(1,4,5)(8,2)(3,5,2)提示:可利用回溯法的设计思想来解决背包问题首先将物品排成一列,然后顺序选取物品装入背包,假设已选取了前i 件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品"太大"不能装入,则弃之而继续选取下一件,直至背包装满为止但如果在剩余的物品中找不到合适的物品以填满背包,则说明"刚刚"装入背包的那件物品"不合适",应将它取出"弃之一边",继续再从"它之后"的物品中选取,如此重复,直至求得满足条件的解,或者无解。

由于回溯求解的规则规则是"后进先出"因此自然要用到栈6.客户消费积分管理系统问题描述:针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠基本要求:1. 采用一定的存储结构进行客户信息的存储;2. 对客户的信息可以进行修改、删除、添加;3. 能够根据消费情况进行客户积分的计算;根据积分情况实行不同程度的打折优惠; 7.家电销售系统用链式结构建立有序表,结点的数据域应该包括家电名称、品牌型号、单价以及数量,以结点中单价的递增顺序排列日常的维护操作应该包括初始化,创建链表,插入,删除,更新数据,打印,查询界面安排合理,提示信息完善8.图书管理系统基本业务活动包括:对新书的采编入库、清除库存、借阅和归还等等图书的基本信息:图书编号,出版社,XXX信息,定价,图书名称等完成任务描述中的各种功能,自己可以适当增加必要的功能9.对链表进行整理的系统通过此系统可以实现如下功能: 1、系统以菜单方式工作;2、输入相应的数据,能生成节点并保存在单链表里;3、相应的菜单操作,能剔除链表中数值域相同的节点;4、相应的菜单操作,能将节点按照数值域的大小顺序排序;5、相应的菜单操作,能将链表逆置。

6、拆分开每一个数的各个位的值,按各位之和升序排序的功能;7、相应的菜单操作,能输出节点的信息; 要求:设计合理的存储结构,设计界面,设计程序完成功能;10.个人关系网的设计与实现系统通过此系统可以实现如下功能: 1、系统以菜单方式工作;2、录入随机组合的XXX人信息(XXX人信息用文件保存)--输入;3、通过程序,实现图的建立;4、XXX人之间的关系浏览功能--输出;5、查询和排序功能:(至少一种查询方式)—算法1)按与某个人的亲密程度升序或者降序排序2)按亲密值的大小范围查询6、XXX人信息的删除、修改功能(任选项)要求:设计合理的存储结构,设计界面,设计程序完成功能;11.工作人员被访问频率统计系统通过此系统可以实现如下功能: 1、系统以菜单的方式工作;2、首先从文件“原始数据”中读入“人员”信息;3、计算访问频率,并输出频率值,以他们的访问频率为权重建立赫夫曼树;4、通过系统查询相关人员的信息,每次查询后都从新修正访问次数和访问频率;5、系统根据第(4)步得到的值对赫夫曼树进行修正;6、层序遍历赫夫曼树,并将访问结果写入“层序遍历”下“层序遍历.csv”要求:1、设计合理的存储结构,设计界面,设计程序完成功能; 2、人员信息包括:姓名,访问次数,访问频率; 3、通过窗体界面实现所有的功能12.订票系统录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;完成任务描述中的各种功能,自己可以适当增加必要的功能。

13.简单算术表达式运算给定简单的算术表达式,包括加减乘除括号这几种运算操作符,请计算表达式的值1)能够正确处理加减乘除这四种运算;(2)能够正确处理括号运算;首先将算术表达式转化成逆波兰式,针对逆波兰式进行运算14.失物招领系统通过此系统可以实现如下功能: 1、系统以菜单的方式工作;2、系统内部维护“寻物.CSV”、“捡到物品.CSV”、“已归还物品.CSV”三张表;3、捡到物品时先在“寻物.CSV”中查询,若存在,删除该物品的信息;若不存在,把它记录到“捡到物品.CSV”文件中;4、已经被领走的物品,先把该物品的信息记录到“已归还物品.CSV”文件中,再从文件“捡到物品.CSV”中删除该物品的信息;5、当有人来认领时,先在“捡到物品.CSV”表里查询,若没有找到,则在文件“寻物.CSV”中记录下该物品的信息;要求:1、设计合理的存储结构,设计界面,设计程序完成功能;2、通过窗体界面实现所有的功能;3、“捡到物品.CSV”表里每条记录包括:物品名称,捡到者的XXX方式,捡拾时间、地点,值班人;4、已归还物品.CSV”表里的每条记录包括:物品名称,捡到者的XXX方式,捡拾时间、地点,招领者的学号,XXX方式,所在学院,专业,班级,招领时间,值班人;5、“寻物.CSV”表里的每条记录包括:物品名称,丢失者的XXX方式,丢失时间、地点,值班人。

6、自己建立所需的表15.集合操作用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、并、差运算1)用单链表存放集合中的元素,链表中的元素按大小存放;(2)实现集合加入一个元素删除一个元素的元素操作;(3)实现集合的交、并、差集合操作;完成任务描述中的各种功能,自己可以适当增加必要的功能16.C语言源程序代码行统计工具codeCounter编写程序,统计C语言源程序的代码1. /* */ 和//的都认为是注释行2. 统计空行3. 非空非注释行,基本上可以认为是有效的代码行 如果同一行中有注释和代码的认为是代码行4, 统计总代码行数、注释行数、空行数5 输入: codeCounter –filename/filepath 输出列表: filename 总代码行数、注释行、空行17.实现链表按节点的数值域值升序排序的系统通过此系统可以实现如下功能: 1、系统以菜单方式工作;2、每个节点包括三个域:next、prior、data;3、根据输入的值构造出节点,并以头插的方式存储在链表里;4、输入完毕后,用相关菜单能实现将所有节点按数值域值升序排序,用prior指针域连接5、能分别打印输出沿next指向和沿prior指向的所有节点信息;要求:设计合理的存储结构,设计界面,设计程序完成功能;存储空间有伸缩性;18.一个简单的栈和队列的演示系统通过此系统可以实现如下功能: 1、 系统以菜单的方式工作;2、 从窗体上输入相应的信息,能够生成对应的节点,分别保存到栈和队列里面;3、 通过相应的菜单实现,输出栈和队列里面的内容;4、 实现将栈置空、判空、弹栈、压栈基本操作;实现队列的置空、判空、入队、出队基本操作;要求:1、设计合理的存储结构,设计界面,设计程序完成功能;2、所有功能均通过窗体界面实现,输出的内容显示在窗体上;19.二叉树的重构和遍历系统通过此系统可以实现如下功能: 1、系统以菜单的方式工作;2、能实现从已有文件中读入原二叉树的后序遍历结果和中序遍历结果;3、根据第(2)步的信息,重构出原来的二叉树,并将树的先序遍历结果输出到Output目录的“先序遍历.CSV”文件中;4、可以将Output里的数据显示到窗体上。

要求:设计合理的存储结构,设计界面,设计程序完成功能;20.多项式的加法和乘法实现系统通过此系统可以实现如下功能: 1、从指定的.csv文件读入多项式f(x)和g(x)的系数和相应的指数信息;2、将多项式f(x)按照指数递增的顺序排列,并将结果写入f(x)排序结果.csv 文件中;3、将多项式g(x) 按照指数递减的顺序排列,并将结果写入g(x)排序结果.csv文件中;4、将两个多项式相加,结果写入多项式相加结果.csv文件中;5、将两个多项式相乘,将结果写入多项式相乘结果.csv文件中 要求:设计合理的存储结构,设计界面,设计程序完成功能;将最后的相加结果和相乘结果,以多项式的形式显示在自己设定的窗体界面上;21.万年历查询程序实现万年历程序功能要求:(1)提供菜单方式选择,假定输入的年份在1940-2040年之间2)输入一个年份,输出是在屏幕上显示该年的日历3)输入年月,输出该月的日历如:(4)输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几;(5)输入公历的年月日,输出农历年月日6)输入农历节气,输出当年农历的年月日及公历年月日可以假定只涉及年份是1940年到2040年。

22.学生成绩管理实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出23.散列法的实验研究散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同两者是影响查询算法性能的关键因素对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响24.利用栈求表达式的值,可供小学生作业,并能给出分数建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价25.个人电话号码查询系统实现简单的个人电话号码查询系统,根据用户输入的信息(如姓名,身份证号,电话号码、邮件XXX等)进行快速查询基本要求: (1) 插入:实现将用户的信息插入到系统中;(2) 删除:删除某个用户的信息;(3) 修改:修改某个用户的信息;(4) 查询:根据姓名、身份证号等查询用户信息(包括简单条件查询,组合条件查询、模糊查询等);(5) 排序:对于用户信息进行排序,提高查询速度;(6) 输出:输出用户信息提示:(1) 在内存中,设计数据结构存储电话号码的信息;在外存中,利用文件的形式来保存电话号码信息,系统运行时,将电话号码信息从文件调入内存来进行插入、查找等操作。

2) 如果数据的插入删除频繁,可以考虑采取二叉排序树组织电话号码信息(也可采用较复杂的平衡二叉树),可以提高查找和维护的时间性能3) 选择不同的排序和查找算法,尽可能提高查找和维护性能26.单源最短路径求解给定一个带权有向图G=(V,E),其中每条边的权是一个非负实数另外,还给定V中的一个顶点,成为源现在计算从源到其他各顶点的最短路径路径的长度是指路上各边权值之和27.散列表的设计与实现【问题描述】设计散列表实现电话号码查找系统基本要求】1)设每个记录有下列数据项:电话号码、用户名、XXX;2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3)采用一定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录进一步完成内容】1)系统功能的完善;2)设计不同的散列函数,比较冲突率;3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化28.数组编码和解码问题的求解设计与实现设有一个数组A: array[0..N-1];存放的元素为0-N-1(1

29.通讯录的XXX本系统应完成一下几方面的功能:①输入信息:调用此函数用以输入数据到内存中,此过程包括建立相应的链表或相应的数组,便于读取②显示信息:用以显示输入的数据,包括从内存中读出和从磁盘中读出③查找:以姓名作为关键字查找要找的信息④删除信息:用以删除选定的输入信息(姓名作为关键字)⑤存盘:调用此函数将内存中的数据保存至磁盘中⑥装入:调用此函数用以将之前保存在磁盘的内容读入到内存中或显示到屏幕上注:本课题中输入的数据应包括以下几项信息:姓名、学校、城市、邮编、国家30.活期储蓄帐目管理活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:1)能比较迅速地找到储户的帐户,以实现存款、取款记账;2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要31.排序方法的比较利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序要求:1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)并把排序后的结果保存在不同的文件中2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。

3)如果采用4种或4种以上的方法者,可适当加分32.学生成绩管理系统现有学生成绩信息文件1(1.txt),内容如下姓名 学号 语文 数学 英语 张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 03 68 82 56 王露 04 56 45 77 陈东明 05 67 38 47 ... .. .. .. .. 学生成绩信息文件2(2.txt),内容如下:姓名 学号 语文 数学 英语陈果 31 57 68 82 李华明 32 88 90 68张明东 33 48 42 56李明国 34 50 45 87陈道亮 35 47 58 77... .. .. .. .. 试编写一管理系统,要求如下:1) 实现对两个文件数据的合并,生成新文件3.txt2) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3) 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)4) 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)5) 要求使用结构体,链表实现上述要求.33.字符串操作编写程序,不使用标准库函数,实现字符串的拷贝、拼接、字串查找、长度计算等函数。

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);34.集合操作用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、并、差运算1)用单链表存放集合中的元素,链表中的元素按大小存放;(2)实现集合加入一个元素删除一个元素的元素操作;(3)实现集合的交、并、差集合操作;35.找数字对输入N(2<=N<=100)个数字(在0与9之间),然后统计出这组数种相邻两数字组成的链环数字对出现的次数例如:输入:N=20 {表示要输入数的数目}0 1 5 9 8 7 2 2 2 3 2 7 8 7 8 7 9 6 5 9输出(7,8)=2 (8,7)=3{指(7,8)、(8,7)数字对出现次数分别为2次、3次}36.二叉树遍历算法的实现四种算法都是前序、中序、后序三种算法要求递归和非递归实现,层遍历用非递归实现。

37.哈夫曼编码根据输入文本中每个字符的权重,构建哈夫曼树,并生成对应的哈夫曼编码38.Prim算法的实现输入一个含有十个结点的无向图,用prim算法生成一颗最小生成树并显示39.克鲁斯卡尔算法求图的最小生成树任务:用邻接矩阵实现图的遍历,并用克鲁斯卡尔算法求图的最小生成树40.n元多项式乘法(1) 界面友好,函数功能要划分好(2) 总体设计应画一流程图(3) 程序要加必要的注释(4) 要提供程序测试方案(5) 程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的41.学生成绩管理程序设计一个简单的学生成绩管理程序,要求根据菜单处理相应功能1)管理功能包括列表、求平均成绩、查找最高分等2)可按指定的性别或高于指定的个人平均分来筛选列表;(3)可按平均成绩排序;(4)平均成绩可按个人或科目进行;(5)查找可按最高个人平均分进行,或按指定科目的最高分进行;(6)每个学生的信息包括:序号、学号、性别、成绩1、成绩2、成绩3、成绩4;(7)基本功能为:建立文件、增加学生记录、新建学生信息文件、删除/修改学生记录42.数组操作设计菜单处理程序,对一维数组进行不同的操作。

1)操作项目包括求数组最大值、最小值、求和、求平均值、排序、 二分查找、有序插入;(2)设计并利用字符菜单进行操作项目的选择,程序一次运行可根据选择完成一项或多项操作;通过菜单“退出”来结束程序的运行;(3)数组的输入、输出可支持命令行输入文件名、界面输入文件名从数据文件中输入和输出;也支持界面录入43.图书管理系统【问题描述】设计一个计算机管理系统完成图书管理基本业务基本要求】1)每种书的登记内容包括书号、书名、著XXX、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量进一步完成内容】1)系统功能的进一步完善;2)索引表采用树表44.学生搭配问题一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴.请设计一系统模拟动态地显示出上述过程,要求如下:1)输出每曲配对情况2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值.3)尽量设计出多种算法及程序,可视情况适当加分提示:用队列来解决比较方便.45.图书登记管理程序该程序应该具有下列功能:(1) 通过键盘输入某本图书的信息;(2) 给定图书编号,显示该本图书的信息;(3) 给定XXX姓名,显示所有该XXX编写的图书信息;(4) 给定出版社,显示该出版社的所有图书信息;(5) 给定图书编号,删除该本图书的信息;(6) 提供一些统计各类信息的功能。

46.学生学分管理程序假设每位学生必须完成基础课50学分、专业课50学分、选修课24学分、人文类课程8学分、实验性课程20学分才能够毕业因此在管理学分时,要考虑每个学分所属于的课程类别该程序应该具有下列功能:(1) 通过键盘输入某位学生的学分; (2) 给定学号,显示某位学生的学分完成情况;(3) 给定某个班级的班号,显示该班所有学生学分完成情况;(4) 给定某位学生的学号,修改该学生的学分信息;(5) 按照某类课程的学分高低进行排序;(6) 提供一些统计各类信息的功能47.作业完成情况管理程序假设某门课程一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记学期期末要根据每次作业的成绩计算出最终的平时成绩(满分100)该程序应该具有下列功能:(1) 通过键盘输入某位学生某次作业的分数;(2) 给定学号,显示某位学生作业完成情况;(3) 给定某个班级的班号,显示该班所有学生的作业完成情况;(4) 给定某位学生的学号,修改该学生的作业完成信息;(5) 给定某位学生的学号,删除该学生的信息;(6) 提供一些统计各类信息的功能48.旅店POS机管理系统旅店收款POS机管理系统的简单实现。

1)前台管理:包括空房分等级显示、入住登记、退房结算、洗衣房管理、娱乐项目管理;(2)后台管理包括客房预定分析、营业额统计、日报表、月报表、年报表);(3)设计数据结构文件来实现数据库管理,包括数据录入、查询、删除、修改、更新49.学生通讯录管理系统用链表方式来实现学生通讯录管理系统1)通过定义一个包含学生通讯录(主要包括:学号、姓名、系别、专业、籍贯、家庭住址、XXX电话等)的结构体类型,实现增加学生通讯录的内容、删除某个学生通讯录、输出全部学生通讯录内容、根据用户需求查找某个或某些学生的通讯录内容(如:按系别、专业、学号、姓名等内容进行查找)2)能够实现以上给定的各项功能,具有方便简洁的操作界面,具有一定的容错性50.超长正整数的加法利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序要求输入和输出每四位一组,组间用逗号隔开如:1,0000,0000,0000,0000提高要求:完成两个超长正整数的乘法51.个人电话号码查询系统问题描述:实现简单的个人电话号码查询系统,根据用户输入的信息(如姓名,身份证号,电话号码、邮件XXX等)进行快速查询基本要求: (1) 插入:实现将用户的信息插入到系统中;(2) 删除:删除某个用户的信息;(3) 修改:修改某个用户的信息;(4) 查询:根据姓名、身份证号等查询用户信息(包括简单条件查询,组合条件查询、模糊查询等);(5) 排序:对于用户信息进行排序,提高查询速度;(6) 输出:输出用户信息。

提示:(1) 在内存中,设计数据结构存储电话号码的信息;在外存中,利用文件的形式来保存电话号码信息,系统运行时,将电话号码信息从文件调入内存来进行插入、查找等操作2) 如果数据的插入删除频繁,可以考虑采取二叉排序树组织电话号码信息(也可采用较复杂的平衡二叉树),可以提高查找和维护的时间性能3) 选择不同的排序和查找算法,尽可能提高查找和维护性能52.哈夫曼编码问题描述:利用哈夫曼编码,实现压缩和解压缩基本要求:对于给定的一组字符,可以根据其权值进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;实现哈夫曼解码提高要求:(1)能够分析文件,统计文件中出现的字符,再对文件进行编码,实现文件的压缩和解压缩2)能够对于文件的压缩比例进行统计3)能够打印文件53.订票系统基本要求:(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);(3)可以输入起飞抵达城市,查询飞机航班情况;(4)订票:(订票情况可以存在一个数据文件中,结构自己设定),可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号;(5)修改航班信息:当航班信息改变可以修改航班数据文件。

54.学籍管理系统问题描述:建立学籍管理系统,实现对于学生信息的添加和维护管理基本要求:完成学籍登记表中的下面功能(登记表中包括学号、姓名、性别、出生日期、政治面貌、XXX方式、家庭住址等信息)⑴ 插入:将某学生的基本信息插入到登记表中;⑵ 删除:将满足条件的基本信息删除;⑶ 修改:对基本信息的数据项进行修改;⑷ 查询:查找满足条件的学生;⑸ 输出:将登记表中的全部(或满足条件)基本信息输出提高要求:⑴ 可以添加课程信息(如开课学期、上课时间、上课地点等信息),学生选课信息,实现学生的选课功能;⑵ 增加学生成绩信息,可以对学生的成绩进行插入、删除、修改等操作;⑶ 实现查找某学生的选课记录,课程成绩等;⑷ 利用二叉排序树、平衡树、排序算法等数据结构知识提高排序和查找速度提示:⑴ 学生登记表一般建立后,比较少更改,因此,可以采用顺序表方式建立;⑵ 学生选课、成绩等信息,一般更改比较频繁,则可以采取链表建立;⑶ 可以将学生的信息存储到文件中;系统运行时,将信息从文件调入到内存中运行55.数制转换问题任意给定一个M进制的数x ,请实现如下要求1)求出此数x的10进制值(用MD表示)2)实现对x向任意的一个非M进制的数的转换。

3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)56.稀疏矩阵的应用实现三元组表下的稀疏矩阵的加、转、乘的实现1)把给定的稀疏矩阵用为三元组表示;同时把三元组转换为稀疏矩阵形式2)稀疏矩阵加法(3)矩阵乘法(4)矩阵转置57.文章编辑输入一页文字,程序可以统计出文字、数字、空格的个数静态存储一页文章,每行最多不超过80个字符要求:(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号 输出形式:(1) 分行输出用户输入的各行字符;(2) 分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"(3) 输出删除某一字符串后的文章;58.拓扑排序建立有向无环图,并输出拓扑的序列.59.图的遍历及用克鲁斯卡尔算法求图的最小生成树任务:用邻接矩阵实现图的遍历,并用克鲁斯卡尔算法求图的最小生成树60.公园的导游图给出一张某公园的导游图,游客通过终端询问可知:从某一景点到另一景点的最短路径。

游客从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)分步实施:(1) 初步完成总体设计,建好框架,确定人机对话的界面,确定函数个数;(2) 完成最低要求:建立一个文件,包括5个景点情况,能完成遍历功能;(3) 进一步要求:进一步扩充景点数目,画出景点图,有兴趣的同学可以自己扩充系统功能61.商店存货管理系统建立一商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物分步实施:(1)初步完成总体设计,建好框架,确定人机对话的界面,确定函数个数;(2)完成最低要求:建立一个文件,包括5个种类的货物情况,能对商品信息进行扩充(追加),修改和删除以及简单的排序;(3)进一步要求:扩充商品数量,以及完成系统查询功能有兴趣的同学可以自己扩充系统功能62.Josephus问题功能:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一个正整数密码开始时任选一个正整数做为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的下一个人开始重新从1报数如此下去,直到所有人全部出列为止。

令n最大值取30要求设计一个程序模拟此过程,求出出列编号序列要求:用数组和链表分别实现63.二叉树遍历算法的实现四种算法都是前序、中序、后序三种算法要求递归和非递归实现,层序遍历用非递归实现,应包含建树的实现64.链表的综合算法设计设有一职工文件,其结构为:职工号(no)、姓名(name)、部门号(depno)、工资数(salary)、职工号指针(pno)、部门号指针(pdepno)、工资数指针(psalary),设计一程序,从一文件中读取记录到单链表中,并完成如下功能:(1) 输入:添加一个职工记录;(2) 输出:输出全部职工记录;(3) 按no排序:通过pno指针将职工记录按no从小到大链接起来;(4) 按no输出:沿pno链输出全部职工记录;(5) 按depno排序:通过pdepno指针将职工记录按depno从小到大链接起来;(6) 按depno输出:沿pdepno链输出全部职工记录;(7) 按salary排序:通过psalary指针将职工记录按salary从小到大链接起来;(8) 按salary输出:沿psalary链输出全部职工记录;(9) 全清:删除职工文件中的全部记录;(10) 存贮退出:将单链表中的全部结点存贮到职工文件中,然后退出程序运行。

65.哈希表的设计与实现设计一个哈希表,实现个人电话号码查询系统基本要求:(1) 设每个记录有下列数据项:电话号码、用户名、用户住址;(2) 从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表; a) 设计不同的哈希函数,比较冲突率;b) 在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化3) 查找并显示给定电话号码/用户名的记录;66.关键路径问题基本要求:(1)对一个描述工程的AOE网,建立其存储结构;(注:数据的输入可以是键盘输入或文件输入两种方式)(2)判断该AOE网是否能够顺利进行3)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间注:结果的输出可以是屏幕输出和文件输出两种方式)67.邮路问题问题描述:一个邮递员从邮局选好邮件去投递,然后回到邮局当然他必须经过他所管辖的每条街至少一次请为他设计一条投递路线,使其所行的路程尽可能地短基本要求:(1)设计邮递员的辖区,并将其抽象成图结构进行表示,建立其存储结构 (注:数据输入可以是键盘输入和文件输入两种方式)(2)按照输入邮局所在位置,为邮递员设计一条最佳投递路线,要能考虑到辖区一般情况。

3)界面要求:有合理的提示和人机交互68.n元多项式加法及乘法要求:(1) 界面友好,函数功能要划分好(2) 总体设计应画一流程图(3) 程序要加必要的注释(4) 要提供程序测试方案(5) 程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的69.文件目录管理系统问题描述:文件是管理用户信息和应用程序的一种工具每个文件有唯一的文件名,可以通过文件名访问文件,同时可对文件进行生成、删除及文件名修改等操作文件系统对若干文件进行管理时将所有的文件目录组合在一起构成一个目录文件通过对目录文件的管理达到“按名存取”的目的,目录文件常采用的组织结构是树型目录结构基本要求:函数功能要划分好,程序要有必要的注释用户通过界面菜单选择以下操作: (1) 生成文件,选择路径和文件名,实现对文件的生成2) 删除文件,对指定文件进行删除操作3) 修改文件,对指定文件进行内容修改或者文件名修改4) 输出该目录结构70.简单算术表达式运算给定简单的算术表达式,包括加减乘除括号这几种运算操作符,请计算表达式的值1)能够正确处理加减乘除这四种运算;(2)能够正确处理括号运算;实现提示: 首先将算术表达式转化成逆波兰式,然后针对逆波兰式进行运算。

71.机器人布线布线区域分成的方格阵列要求确定连接方格s到方格d的最短布线方案布线的时候,电路只能沿着直线或者直角布线,有障碍的方格做了封锁标记(X),其他线路不允许穿过被封锁的方格1)用文件保存布线区域,用1、0分别表示某个格子是否有障碍;S,D表示起点和终点;(2)给出最短的布线路径长度; (3)用文件保存布线路径,用*表示布线的方格;主要功能:(1)从文件中读出题目的输入;(2)向屏幕上打印出题目的计算结果;72.图的遍历的实现要求:1)先任意创建一个图;2)图的DFS,BFS的递归和非递归算法的实现3)要求用有向图和无向图分别实现4)要求用邻接矩阵、邻接表多种结构存储实现73.线索二叉树的应用要求:实现线索树建立、插入、删除、恢复线索的实现74.二叉平衡排序树问题描述:从一棵空树开始创建,在创建过程中,保证树的有序性,同时还要针对树的平衡性做些调整最终要把创建好的二叉排序树转换为二叉平衡排序树基本要求:1.创建(插入、调整、改组) 2.输出75.商品管理系统任务:以链表结构的有序表表示某商场家电部的库存模型,当有提货或进货时需要对该链表及时进行维护,每个工作日结束以后,将该链表中的数据以文件形式保存,每日开始营业之前,须将文件形式保存的数据恢复成链表结构的有序表。

链表结构的数据域 包括家电名称、品牌、单价和数量,以单价的升序体现链表的有序性程序功能包括:初始化、创建表、插入、删除、更新数据、查询及链表数据与文件之间的转换等76.建立Haffman树并查询对文件file1.txt中的姓名按姓氏进行统计,计算每个姓氏出现的概率,并生产Haffman树,用另一个文件file2.txt中的姓氏在Haffman树中查询,得出查询完成所用的时间;在file1.txt中查询file2.txt中姓氏,得出查询完成所用的时间,对两者进行对比,得出结论并写进论文77.俄罗斯方块龙哥小时候最爱的游戏就是俄罗斯方块了,当年他可是个高手,每次游戏他都会选择最快的速度,以至于根本来不及将方块转向而仅仅能够进行左右移动.为了能够坚持更久,必须尽可能地使"落下来方块"与"底下已有方块"上表面完全贴合.在熟悉掌握程序设计后龙哥想要用程序来模拟小时候玩俄罗斯方块的过程,下面请你来帮龙哥参谋一下吧:-)(1)输入包括两个部分:1、落下来方块的矩阵(第一行两个小于5的整数a、b由空格隔开,从下一行开始是一个a行b列的矩阵,1表示方块,0表示空)2、底下已有方块的矩阵(第一行两个小于10的整数c、d由空格隔开,从下一行开始是一个c行d列的矩阵,1表示方块,0表示空.输入底下已有方块矩阵时需确保不存在朝下的表面)(2)输出:根据"落下来方块"和"底下已有方块"的形状,若"落下来方块"的下表面与"底下已有方块"的上表面可能完全贴合则输出一行“YES”否则输出一行“NO”Sample Input2 31110103 80010000010100011111101113 21110102 81100111011011111Sample OutputYESNO主要功能:(1)从文件中读出题目的输入;(2)向屏幕上打印出题目的计算结果;78.六数码问题现有一两行三列的表格如下:A B CD E F把1、2、3、4、5、6六个数字分别填入A、B、C、D、E、F格子中,每个格子一个数字且各不相同。

每种不同的填法称为一种布局如下:1 3 52 4 6布局12 5 64 3 1布局2定义α变换如下:把A格中的数字放入B格,把B格中的数字放入E格,把E格中的数字放入D格,把D格中的数字放入A格定义β变换如下:把B格中的数字放入C格,把C格中的数字放入F格,把F格中的数字放入E格,把E格中的数字放入B格问:对于给定的布局,可否通过有限次的α变换和β变换变成下面的目标布局:1 2 34 5 6输入:本题有多个测例,第一行为输入测例的个数n,下面是n行测例,每个测例的输入是1到6这六个数字的一个排列,空格隔开,表示初始布局ABCDEF格中依次填入的数字输出:每个输出占一行输出转换到目标格局需要变换的最少次数若不能转换则输出-1)输入样例:22 5 3 1 4 62 3 6 1 5 4输出样例:12注意不能转换到目标格局的情况应输出-1;输出格式为:printf(“%d\n”,min);79.算24每局4个整数,运用四则运算(可以加括号),但为了降低程序设计的难度,除法的结果只保留整数部分,即5/2=2给出计算出24的方法输入:本题包含多个测例数据的第一行有一个整数N(0从第二行开始的N行,各包含4个不大于15的以空格分隔的非零整数。

输出:对于每个测例,如果可以计算得到24,则输出“Yes”,否则输出“No”每个输出占一行输入样例:22 2 3 32 4 9 10输出样例:Yes Yes主要功能:(1)从文件中读出题目的输入;(2)向屏幕上打印出题目的计算结果;80.城市之间(OJ1129)Vela在玩游戏时遇到麻烦了,需要你帮忙:这个游戏有M个城市,有的城市有传送点,可以直接到达另外一些城市,如a[2][3]表示可以从城市2直接到达3无法直接到达的城市,有的可以通过某些城市中转到达Vela在城市X,她想知道是否可以到达某城市Z输入:此题第一行输入N表示城镇数目(N为小于10的正整数);从第二行开始输入一个N*N的矩阵,若a[m][k]=1(0<=m,k

输入:输入三个整数,均大于0,小于1000输出:输出为一个整数,当可以得到12时输出1,否则输出0输入样例:2 2 3输出样例:1提示:输出格式:printf("%d\n",1);主要功能:(1)从文件中读出题目的输入;(2)向屏幕上打印出题目的计算结果;82.树转换为二叉树树和二叉树是两种不同的数据结构,树实现起来比较麻烦,二叉树实现起来比较容易,因此可以通过把树转换为二叉树进行处理,处理完后在从二叉树还原为树树和二叉树的定义及转换请参考(清华版数据结构(c),西安交大版数据结构(c))要求:a:实现树与二叉树的相互转换;b:树的前序、后序的递归遍历;c:包含树的创建83.本班同学通讯录设计要求:小巧实用,具有添加,查询和删除功能姓、名、英文名、QQ号、电子邮箱、籍贯、电话号码组成,姓名可以由字符和数字混合编码电话号码可由字符和数字组成实现功能为:系统以菜单方式工作、信息录入功能、信息浏览功能输入个人关键字信息(电话/籍贯/QQ号/邮箱等,)能实现查询功能、信息修改功能、系统退出功能84.模拟银行自动取款机程序要求:1.要能开户 2.模拟一个账户:10001 10002 3.工商银行的账号:6222020200003518966 4.验证客户信息:请输入密码6位密码 5.显示子菜单,例如================================================ 中国银行西北农科大支行 支行行长:XXX================================================1.存款 4.密码重置2.取款 5.其他业务3.转账 6.退出================================================85.打字测试系统设计要求: 1.可以练习中文,英文,字符 2.可以自己设定文件内容 3.打完需要系统给出正确率、错误率、每分钟打字的速度。

提示:可以通过文件I/O操作,从文件中读取要练习的篇幅 字符串 文件I/O等知识的综合应用86.最小生成树问题(1) 根据普里姆算法思想,画出构造该无向带权图最小生成树的过程根据克鲁斯卡尔算法思想,画出构造该无向带权图最小生成树的过程87.设计C语言实现字符统计设计C语言实现字符统计,统计一段用户输入的文字中包含的英文字符数、数字、空格及其他类型字符数88..排班系统学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈由于工作需要进行轮休制度,一星期中每人休息一天预先让每一个人选择自己认为合适的休息日请编制程序,打印轮休的所有可能方案当然使每个人都满意,例如每人选择的休息日如下: 钱:星期一、星期六赵:星期二、星期四 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日 运行结果: Solution: 1 赵 钱 孙 李 周 吴 陈 ========================================================星期四 星期一 星期三 星期五 星期六 星期二 星期日 Solution: 2 赵 钱 孙 李 周 吴 陈 ========================================================星期四 星期一 星期日 星期五 星期六 星期二 星期三 Solution: 3 赵 钱 孙 李 。

下载提示
相关文档
正为您匹配相似的精品文档