23.数制转换问题
任意给定一个M进制的数x ,请实现如下要求 1)求出此数x的10进制值(用MD表示) 2)实现对x向任意的一个非M进制的数的转换。
3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)。
24.排序综合
利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求:
1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。
2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。 3)如果采用4种或4种以上的方法者,可适当加分。
25.学生成绩管理系统
现有学生成绩信息文件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.txt
2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt
3)合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)
4)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现) 5)要求使用结构体,链或数组等实现上述要求. 6)采用多种方法且算法正确者,可适当加分.
26.图的遍历的实现 要求:
11
1)先任意创建一个图;
2)图的DFS,BFS的递归和非递归算法的实现 3)要求用有向图和无向图分别实现
4)要求用邻接矩阵、邻接表多种结构存储实现
27.线索二叉树的应用
要求:实现线索树建立、插入、删除、恢复线索的实现。
28.稀疏矩阵应用
要求:实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。 (1)稀疏矩阵的存储 (2)稀疏矩阵加法 (3)矩阵乘法 (4)矩阵转置
29.树的应用
要求:实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。
30.文本文件单词的检索与计数 设计要求与分析:
要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。该设计要求可分为三个部分实现:其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。 (1).建立文本文件 (2)给定单词的计数
(3)检索单词出现在文本文件中的行号、次数及其位置 (4)主控菜单程序的结构 ①头文件包含 ②菜单选项包含
建立文件、单词定位、单词计数、退出程序 ③选择1-4执行相应的操作,其他字符为非法。
31.任意长的整数加法
问题描述:设计一个程序实现两个任意长的整数的求和运算。
基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。
32.二叉平衡排序树
问题描述:从一棵空树开始创建,在创建过程中,保证树的有序性,同时还要针对树的平衡性做些调整。最终要把创建好的二叉排序树转换为二叉平衡排序树。
12
基本要求:1.创建(插入、调整、改组) 2.输出
33.串的查找和替换
问题描述:打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。
34.约瑟夫环
问题描述:编号为1,2… n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。 基本要求:
1、利用单循环链表作为存储结构模拟此过程; 2、键盘输入总人数、初始报数上限值m及各人密码; 3、按照出列顺序输出各人的编号。
35.构造可以使n个城市连接的最小生成树
问题描述:给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 基本要求:
1、城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。
2、表示城市间距离网的邻接矩阵(要求至少6个城市,10条边) 3、最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。
36.客户消费积分管理系统
问题描述:针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。 基本要求:
1. 采用一定的存储结构进行客户信息的存储; 2. 对客户的信息可以进行修改、删除、添加; 3. 能够根据消费情况进行客户积分的计算; 4. 根据积分情况实行不同程度的打折优惠;
37.产品进销存管理系统
问题描述:针对某一种行业的库房的产品进销存情况进行管理。 基本要求:
1. 采用一定的存储结构对库房的货品及其数量进行分类管理; 2. 可以进行产品类的添加、产品的添加、产品数量的添加;
3. 能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;
13
38.特殊矩阵的压缩存储算法的实现
问题描述:对于特殊矩阵可以通过压缩存储减少存储空间。 基本要求:
1.针对多种特殊矩阵进行压缩存储,并能显示压缩后的相关地址和值; 2.输入在原来特殊矩阵中的地址,要求能从压缩后的矩阵中读出相应的值;
39.算术表达式的求解
问题描述:给定一个算术表达式,通过程序求出最后的结果。 基本要求:
1. 从键盘输入要求解的算术表达式; 2. 采用栈结构进行算术表达式的求解过程; 3. 能够判断算术表达式正确与否; 4. 对于错误表达式给出提示; 5. 对于正确的表达式给出最后的结果;
40.实时监控报警系统
问题描述:建立一个报警和出警管理的系统 基本要求:
1. 采用一定的存储结构存储报警信息,要求有内容、时间; 2. 有一次的出警就应该在待处理的信息中删除这条信息; 3. 记录出警信息;
4. 待处理信息过多时会发出警告;
41.车厢调度
问题描述:假设停在铁路调度站入口处的车厢序列的编号一次为1,2,3,4。设计一个程序,求出所有可能由此输出的长度为4的车厢序列。
42.迷宫问题(栈) 问题描述:
以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 基本要求:
首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向,如:对于下列数据的迷宫,输出的一条通路为:(1,1,1),(1,2,2),(3,2,3),(3,1,2),…。 测试数据:
迷宫的测试数据如下:左下角(1,1)为入口,右下角(8,9)为出口。 实现提示:
计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到而未能到达出口,则所设的迷宫没有通路。
可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(n,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、西、北四个方向可通。 选做内容:
14
(1)编写递归形式的算法,求得迷宫中所有可能的通路; (2)以方阵形式输出迷宫及其通路。 43.迷宫问题(队列)(同上) 44二叉搜索树:各种搜索树效率比较 题目要求:
本题目要求对普通的二叉排序树、AVL树分别实现制定操作,并分析比较这两种不同数据结构对应的一系列插入和删除操作的效率。要求测试对N个不同整数进行下列操作的效率: (1) 按递增顺序插入N个整数,并按同样顺序删除; (2) 按递增顺序插入N个整数,并按相反顺序删除; (3) 按随机顺序插入N个整数,并按随机顺序删除;
要求N从1000到10000取值,并以数据规模N为横轴,运行时间为纵轴,画出3种不同数据结构对应的操作效率比较图。
45. 病毒测试程序 本题的任务是:
当整个网络被感染后,计算有多少台机器被某个特定变种所感染。 输入要求:
输入由若干组测试数据组成。
每组数据的第1行包含2个整数M和N(1≤M,N≤500),接下来是一个M*N的矩阵表示网络的初始感染状态,其中的正、负整数的意义如题目描述中所定义。
下面一行给出一个正整数Q,是将要查询的变种的个数。接下去的Q行里,每行给出一个变种的类型。 当M或N为0时,表示全部测试结束,不要对该数据做任何处理。 输出要求:
对每一组测试,在一行里输出被某个特定变种所感染的机器数量。
46关键路径问题
问题描述:设计一个程序求出完成整项工程至少需要多少时间以及整项工程中的关键活动。 基本要求:
(1)对一个描述工程的AOE网,应判断其是否能够顺利进行。
(2)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间。
47.神秘国度的爱情故事
输入要求:输入由若干组测试数据组成。
每组数据的第1行包含一正整数N(1≤N≤50000),代表神秘国度中小村的个数,每个小村即从0到N-1编号。接下来有N-1行输入,每行包含一条双向道路的两端小村的编号,中间用空格分开。之后一行包含一正整数M(1≤M≤500000),代表着该组测试问题的个数。接下来M行,每行给出A,B,C三个小村的编号,中间用空格分开。
当N为0时,表示全部测试结束,不要对该数据做任何处理。
输出要求:对每一组测试给定的A,B,C,在一行里输出答案,即:如果C在A和B之间的路径上,输出Yes,否则输出No。
48.并查集:检查网络
题目要求:给定一个计算机网络以及机器间的双向连线列表,每一条连线允许两端的计算机进行直接的文
15