数据结构C语言综合训练题目描述.docx
- 文档编号:7808216
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:98
- 大小:161.13KB
数据结构C语言综合训练题目描述.docx
《数据结构C语言综合训练题目描述.docx》由会员分享,可在线阅读,更多相关《数据结构C语言综合训练题目描述.docx(98页珍藏版)》请在冰豆网上搜索。
数据结构C语言综合训练题目描述
序号
项目名称
任务描述
指导教师
1
英文文本压缩
问题描述:
利用哈夫曼编码,实现英文文本的压缩和解压缩。
基本要求:
对于给定的英文文本,可以根据其频度进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;实现哈夫曼解码。
提高要求:
(1)能够分析文件,统计文件中出现的字符,统计字符出现的概率,再对文件进行编码,实现文件的压缩和解压缩。
(2)能够对于文件的压缩比例进行统计。
2
文本编辑系统
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。
3
简单算术表达式运算
给定简单的算术表达式,包括加减乘除括号这几种运算操作符,请计算表达式的值。
(1)能够正确处理加减乘除这四种运算;
(2)能够正确处理括号运算。
4
小学生测验系统
面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;
(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN”。
5
数字游戏的设计
实现一个简单的猜数字游戏
(1)一个四位数,各位上的数字不重复,从1到9。
(2)按以下提示猜出这个四位数。
(3)每次猜测输入的数据给出类似的提示*A*B。
(4)其中A前的*代表你本次猜对了多少个数字。
(5)其中B前的*代表你本次猜对的数字并且位置正确的个数。
(6)给定猜测次数,如果超过次数未猜中,游戏失败。
6
学生成绩管理程序
设计一个简单的学生成绩管理程序,要求根据菜单处理相应功能。
(1)管理功能包括列表、求平均成绩、查找最高分等。
(2)可按指定的性别或高于指定的个人平均分来筛选列表;(3)可按平均成绩排序;(4)平均成绩可按个人或科目进行;(5)查找可按最高个人平均分进行,或按指定科目的最高分进行;(6)每个学生的信息包括:
序号、学号、性别、成绩1、成绩2、成绩3、成绩4;(7)基本功能为:
建立文件、增加学生记录、新建学生信息文件、删除/修改学生记录。
7
图书登记管理程序
该程序应该具有下列功能:
(1)通过键盘输入某本图书的信息;
(2)给定图书编号,显示该本图书的信息;(3)给定作者姓名,显示所有该作者编写的图书信息;(4)给定出版社,显示该出版社的所有图书信息;(5)给定图书编号,删除该本图书的信息;(6)提供一些统计各类信息的功能。
8
集合操作
用单链表模拟有序集合,实现集合的加入一个元素、删除一个元素、集合的交、并、差运算。
(1)用单链表存放集合中的元素,链表中的元素按大小存放;
(2)实现集合加入一个元素删除一个元素的元素操作;(3)实现集合的交、并、差集合操作;
9
树的重构和遍历系统
系统菜单,信息输入、输出,遍历。
10
个人关系网的设计与实现系统
系统菜单,信息输入、输出,建图、查询。
11
简单栈和队列演示系统的设计与实现
系统菜单,信息输入、输出。
12
按每个数的各位值进行排序的系统
系统菜单,信息输入、输出,排序。
13
学生基本信息管理系统
系统菜单,信息输入、输出,查询。
14
身份证管理程序
该程序应该具有下列功能:
(1)通过键盘可以输入身份证信息,大量信息可存放在文件中。
身份证包含的信息请参看自己的身份证;
(2)给定身份证号码,显示其身份证信息;(3)给定省份的编号,显示该省的人数;(4)给定某区的编号,显示该区的人数;(5)给定身份证号码,可以修改该身份证信息;(6)给定身份证号码,可以删除该身份证信息。
15
学生宿舍管理查询软件
设计一个简单的学生宿舍管理查询程序,要求根据菜单处理相应功能。
(1)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序
(2)查询菜单:
(可以用二分查找实现以下操作)A.按姓名查询B.按学号查询C.按房号查询等(3)可以打印任一查询结果(4)每个学生的信息包括:
序号、学号、性别、房号、楼号等。
16
万年历查询程序
实现万年历程序功能要求:
(1)提供菜单方式选择,假定输入的年份在1940-2040年之间。
(2)输入一个年份,输出是在屏幕上显示该年的日历。
(3)输入年月,输出该月的日历。
如:
(4)输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几;(5)输入公历的年月日,输出农历年月日。
(6)输入农历节气,输出当年农历的年月日及公历年月日。
可以假定只涉及年份是1940年到2040年。
17
二叉树遍历算法的实现
四种算法都是前序、中序、后序三种算法要求递归和非递归实现,层遍历用非递归实现。
18
二叉排序树的实现
要求:
分别以顺序表和二叉链表作为储结构,实现二叉排序树。
基本操作有插入、删除。
19
管道铺设施工的最佳方案选择
功能:
设计一个最佳方案使得这N个居民区之间铺设煤气管道所需代价最少。
20
数组编码和解码问题的求解设计与实现
设有一个数组A:
array[0..N-1];存放的元素为0-N-1(1 例如当N=6时,有: A=(4,3,0,5,1,2)。 此时,数组A的编码定义如下: A[0]编码为0;A[i]编码为: 在A[0],A[1],…,A[i-1]中比A[i]的值小的个数(i=1,2,…,N-1)上面数组A的编码为: B=(0,0,0,3,1,2)要求如下: 给出数组A,利用C求解A的编码.给出数组A的编码后,求出A中原数据。 21 简易文本编辑器的设计与实现 功能: 具有图形菜单界面;查找、替换、块移动(行块,列块移动)、删除;具有基本功能。 22 利用哈希表实现电话号码查找系统 功能: 建立哈希表。 选择不同的哈希函数;选择不同的解决冲突的办法。 23 迷宫问题求解 要求: 对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 24 排序算法综合 功能: 数据随机生成;五种常用排序算法实现;从时间上分析效率并比较。 25 简易通讯录的制作 功能: 输入信息;显示信息;查找以姓名作为关键字;删除信息;存盘;装入。 26 图的遍历的实现 功能: 实现图的深度优先,广度优先遍历算法,并输出原图结构及遍历结果。 27 稀疏矩阵运算器的设计与实现 功能: 压缩存储;矩阵的基本运算(加、乘、求逆);常规矩阵方式输出。 28 小学生作业题练习系统(利用堆栈实现) 功能: 建立试题库文件,随机产生n个题目;题目涉及加减乘除,带括弧的混合运算;给出分数判定;随时可以退出;保留历史分数,能回顾历史,根据历史分数给出评价。 29 一元多项式的加法、减法、乘法的实现 要求: 判定是否稀疏;分别采用顺序和链式存储结构实现;结果M(x)中无重复阶项和无零系数项;要求输出结果的升幂和降幂两种排列情况 30 邻接表克鲁斯卡尔算法的实现 要求: 根据需要建立图的邻接表存储结构;构造最小生成树,模拟演示生成过程。 31 期刊论文管理程序 该程序应该具有下列功能: (1)通过键盘输入某期刊论文的信息,也可以把大量期刊论文信息放在文件中; (2)给定期刊论文的论文名称,显示该论文的作者信息,作者单位,发表期刊的名称;(3)给定作者姓名,显示所有该作者发表的期刊论文情况;(4)给定期刊名称,显示该期刊的所有论文信息; 32 字符串操作 编写程序,不使用标准库函数,实现字符串的拷贝、拼接、字串查找、长度计算等函数。 (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); 33 单源最短路径求解 给定一个带权有向图G=(V,E),其中每条边的权是一个非负实数。 另外,还给定V中的一个顶点,成为源。 现在计算从源到其他各顶点的最短路径。 路径的长度是指路上各边权值之和。 34 歌手比赛系统 设计一个简单的歌手比赛绩管理程序,对一次歌手比赛的成绩进行管理功能要求: 1.输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。 2.显示主菜单如下: 1)输入选手数据2)评委打分3)成绩排序(按平均分)4)数据查询5)追加学生数据6)写入数据文件7)退出系统 35 找数字对 输入N(2<=N<=100)个数字(在0与9之间),然后统计出这组数种相邻两数字组成的链环数字对出现的次数。 例如: 输入: N=20{表示要输入数的数目} 01598722232787879659 输出(7,8)=2(8,7)=3{指(7,8)、(8,7)数字对出现次数分别为2次、3次} 36 二叉树遍历算法的实现 四种算法都是前序、中序、后序三种算法要求递归和非递归实现,层遍历用非递归实现。 37 中文文本压缩 问题描述: 利用哈夫曼编码,实现中文文本的压缩和解压缩。 基本要求: 对于给定的中文文本,可以根据其频度进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;实现哈夫曼解码。 提高要求: (1)能够分析文件,统计文件中出现的字符,统计字符出现的概率,再对文件进行编码,实现文件的压缩和解压缩。 (2)能够对于文件的压缩比例进行统计。 38 邻接矩阵普利姆算法的实现 要求: 根据需要建立图的邻接矩阵存储结构;构造最小生成树,模拟演示生成过程。 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)输入年份为1990~2050内任一年; (2)可以选择输出公历表或农历表; (3)农历表包括二十四节气。 44 学生证管理程序 该程序应该具有下列功能: (1)通过键盘输入某位学生的学生证信息。 学生证包含的信息请参看自己的学生证; (2)给定学号,显示某位学生的学生证信息; (3)给定某个班级的班号,显示该班所有学生的学生证信息; (4)给定某位学生的学号,修改该学生的学生证信息; (5)给定某位学生的学号,删除该学生的学生证信息; (6)提供一些统计各类信息的功能。 45 图书登记管理程序 该程序应该具有下列功能: (1)通过键盘输入某本图书的信息; (2)给定图书编号,显示该本图书的信息; (3)给定作者姓名,显示所有该作者编写的图书信息; (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)通过定义一个包含学生通讯录(主要包括: 学号、姓名、系别、专业、籍贯、家庭住址、联系电话等)的结构体类型,实现增加学生通讯录的内容、删除某个学生通讯录、输出全部学生通讯录内容、根据用户需求查找某个或某些学生的通讯录内容(如: 按系别、专业、学号、姓名等内容进行查找)。 (2)能够实现以上给定的各项功能,具有方便简洁的操作界面,具有一定的容错性。 50 超长正整数的乘法 设计一个算法来完成两个超长正整数的乘法。 算法提示: 首先要设计一种数据结构来表示一个超长的正整数,然后才能够设计算法。 51 个人电话号码查询系统 问题描述: 实现简单的个人电话号码查询系统,根据用户输入的信息(如姓名,身份证号,电话号码、邮件地址等)进行快速查询。 基本要求: (1)插入: 实现将用户的信息插入到系统中; (2)删除: 删除某个用户的信息;(3)修改: 修改某个用户的信息;(4)查询: 根据姓名、身份证号等查询用户信息(包括简单条件查询,组合条件查询、模糊查询等);(5)排序: 对于用户信息进行排序,提高查询速度;(6)输出: 输出用户信息。 提示: (1)在内存中,设计数据结构存储电话号码的信息;在外存中,利用文件的形式来保存电话号码信息,系统运行时,将电话号码信息从文件调入内存来进行插入、查找等操作。 (2)如果数据的插入删除频繁,可以考虑采取二叉排序树组织电话号码信息(也可采用较复杂的平衡二叉树),可以提高查找和维护的时间性能。 (3)选择不同的排序和查找算法,尽可能提高查找和维护性能。 52 数字文本压缩 问题描述: 利用哈夫曼编码,实现数字文本的压缩和解压缩。 基本要求: 对于给定的数字文本,可以根据其频度进行哈夫曼编码,并能输出对应的哈夫曼树和哈夫曼编码;实现哈夫曼解码。 提高要求: (1)能够分析文件,统计文件中出现的字符,统计字符出现的概率,再对文件进行编码,实现文件的压缩和解压缩。 (2)能够对于文件的压缩比例进行统计。 53 订票系统 基本要求: (1)录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) (2)查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); (3)可以输入起飞抵达城市,查询飞机航班情况; (4)订票: (订票情况可以存在一个数据文件中,结构自己设定),可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号; (5)修改航班信息: 当航班信息改变可以修改航班数据文件。 54 学籍管理系统 问题描述: 建立学籍管理系统,实现对于学生信息的添加和维护管理。 基本要求: 完成学籍登记表中的下面功能(登记表中包括学号、姓名、性别、出生日期、政治面貌、联系方式、家庭住址等信息)。 ⑴插入: 将某学生的基本信息插入到登记表中; ⑵删除: 将满足条件的基本信息删除; ⑶修改: 对基本信息的数据项进行修改; ⑷查询: 查找满足条件的学生; ⑸输出: 将登记表中的全部(或满足条件)基本信息输出。 提高要求: ⑴可以添加课程信息(如开课学期、上课时间、上课地点等信息),学生选课信息,实现学生的选课功能; ⑵增加学生成绩信息,可以对学生的成绩进行插入、删除、修改等操作; ⑶实现查找某学生的选课记录,课程成绩等; ⑷利用二叉排序树、平衡树、排序算法等数据结构知识提高排序和查找速度。 提示: ⑴学生登记表一般建立后,比较少更改,因此,可以采用顺序表方式建立; ⑵学生选课、成绩等信息,一般更改比较频繁,则可以采取链表建立; ⑶可以将学生的信息存储到文件中;系统运行时,将信息从文件调入到内存中运行。 55 数字游戏的设计 (1)一个四位数,各位上的数字不重复,从1到9。 (2)按以下提示猜出这个四位数。 (3)每次猜测输入的数据给出类似的提示*A*B。 (4)其中A前的*代表你本次猜对了多少个数字。 (5)其中B前的*代表你本次猜对的数字并且位置正确的个数。 56 稀疏矩阵的压缩与还原 一个矩阵含有非零元素比较少,而零元素相对较多,这样的矩阵称为稀疏矩阵,对稀疏矩阵的存储我们不用完全用二维数组来存储,可以用一个三元组,即任意一个稀疏矩阵可以用一个只有三列的二维数组来存放, 要求把给定的稀疏矩阵用为三元组表示;同时把三元组转换为稀疏矩阵形式。 57 文章编辑 输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符。 要求: (1)分别统计出其中英文字母数和空格数及整篇文章总字数; (2)统计某一字符串在文章中出现的次数,并输出该次数; (3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围: 可以输入大写、小写的英文字母、任何数字及标点符号。 输出形式: (1)分行输出用户输入的各行字符; (2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章; 58 拓扑排序 建立有向无环图,并输出拓扑的序列。 59 随机探测再散列哈希表 实现随机探测再散列哈希表的创建与查找 60 公园的导游图 给出一张某公园的导游图,游客通过终端询问可知: 从某一景点到另一景点的最短路径。 游客从公园大门进入,选一条最佳路线,使游客可以不重复地游览各景点,最后回到出口(出口就在入口旁边)。 分步实施: (1)初步完成总体设计,建好框架,确定人机对话的界面,确定函数个数; (2)完成最低要求: 建立一个文件,包括5个景点情况,能完成遍历功能; (3)进一步要求: 进一步扩充景点数目,画出景点图,有兴趣的同学可以自己扩充系统功能。 61 商店存货管理系统 建立一商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。 分步实施: (1)初步完成总体设计,建好框架,确定人机对话的界面,确定函数个数; (2)完成最低要求: 建立一个文件,包括5个种类的货物情况,能对商品信息进行扩充(追加),修改和删除以及简单的排序; (3)进一步要求: 扩充商品数量,以及完成系统查询功能。 有兴趣的同学可以自己扩充系统功能。 62 运动会分数统计 输入,统计,排序,查询,信息存储。 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)从键盘输入各记录,分别以身份证号码和用户名为关键字建立哈希表; 设计不同的哈希函数,比较冲突率; b)在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度 的变化。 (3)查找并显示给定电话号码/用户名的记录。 66 关键路径问题 基本要求: (1)对一个描述工程的AOE网,建立其存储结构;(注: 数据的输入可以是键盘输入或文件输入两种方式) (2)判断该AOE网是否能够顺利进行。 (3)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言 综合 训练 题目 描述