数据结构C语言综合训练题目描述.docx

上传人:b****6 文档编号:7808216 上传时间:2023-01-26 格式:DOCX 页数:98 大小:161.13KB
下载 相关 举报
数据结构C语言综合训练题目描述.docx_第1页
第1页 / 共98页
数据结构C语言综合训练题目描述.docx_第2页
第2页 / 共98页
数据结构C语言综合训练题目描述.docx_第3页
第3页 / 共98页
数据结构C语言综合训练题目描述.docx_第4页
第4页 / 共98页
数据结构C语言综合训练题目描述.docx_第5页
第5页 / 共98页
点击查看更多>>
下载资源
资源描述

数据结构C语言综合训练题目描述.docx

《数据结构C语言综合训练题目描述.docx》由会员分享,可在线阅读,更多相关《数据结构C语言综合训练题目描述.docx(98页珍藏版)》请在冰豆网上搜索。

数据结构C语言综合训练题目描述.docx

数据结构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)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1