《算法设计综合实训》题目分析_第1页
《算法设计综合实训》题目分析_第2页
《算法设计综合实训》题目分析_第3页
《算法设计综合实训》题目分析_第4页
《算法设计综合实训》题目分析_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法设计综合实训题目0 0逆序数字(借助栈)编写一个函数, 接收一个 4 位整数值,返回这个数中数字逆序后的结果值。例如,给定 数 7631 ,函数返回 1367.输入 :第一行一个正整数 T (T=10),表示有T组测试数据;以下T行,每行一个非负的整数 N。输出:共 T 行,对于每组输入数据输出一行,即数字逆序后的结果值。样本输入 :3763110185158样本输出 :1367810185151 1人见人爱 A+BA+B这个题目的A和B不是简单的整数,而是两个时间,A和B都是由3个整数组成,分别 表示时分秒,比如,假设 A为34 45 56,就表示A所表示的时间是34小时45分钟56秒。

2、输入:输入数据有多行组成,首先是一个整数N,表示测试实例的个数,然后是N行数据,每行有6个整数AH,AM,AS,BH,BM,BS分别表示时间 A和B所对应的时分秒。题目保证所有的 数据合法。输出:对于每个测试实例,输出 A+B ,每个输出结果也是由时分秒 3 部分组成,同时也要满足时 间的规则(即:分和秒的取值范围在 0-59),每个输出占一行,并且所有的部分都可以用 32 位整数表示。样本输入:21 2 3 4 5 634 45 56 12 23 34样本输出:5 7 947 9 302 2敲七【问题描述】输出 7和 7 的倍数,还有包含 7的数字例如( 17,27,37.70,71,72,

3、73.)【要求】【数据输入】一个整数 N。 (N 不大于 30000) 【数据输出】从小到大排列的不大于 N 的与 7 有关的数字,每行一个。【样例输入】20【样例输出】714173 3统计同成绩学生人数问题【问题描述】读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。【要求】【数据输入】测试输入包含若干测试用例,每个测试用例的格式为第 1 行: N第 2 行: N 名学生的成绩,相邻两数字用一个空格间隔。第 3 行:给定分数当读到 N=0 时输入结束。其中 N 不超过 1000,成绩分数为(包含) 0 到 100 之间的一 个整数。【数据输出】对每个测试用例,将获得给定分数的学生人数

4、输出。【样例输出】380 60 9060285 660560 75 90 55 75750【样例输出】1024 4高斯日记 大数学家高斯有个好习惯: 无论如何都要记日记。 他的日记有个与众不同的地方, 他从 不注明年月日,而是用一个整数代替,比如: 4210。后来人们知道,那个整数就是日期,它 表示那一天是高斯出生后的第几天。 这或许也是个好习惯, 它时时刻刻提醒着主人: 日子又 过去一天,还有多少时光可以用于浪费呢?高斯出生于: 1777年 4月 30日。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是: 1791 年 12 月15 日。高斯获得博士学位的那天日记上标着:

5、8113 请你算出高斯获得博士学位的年月日。5 5牛的繁殖问题 有位科学家曾出了这样一道数学题: 有一头母牛, 它每年年初要生一头小母牛; 每头小 母牛从第四个年头起,每年年初也要生一头小母牛。按此规律,若无牛死亡,第 20 个年头 上共有多少头母牛。6 6最少钱币数问题【问题描述】 这是一个古老而又经典的问题。 用给定的几种钱币凑成某个钱数, 一般而言有多种方式。例如:给定了 6种钱币面值为 2、5、10、20、50、100,用来凑 15元,可以用 5个 2元、1 个 5 元,或者 3 个 5 元,或者 1 个 5 元、 1 个 10 元,等等。显然,最少需要 2 个钱币才能 凑成 15 元

6、。你的任务就是, 给定若干个互不相同的钱币面值, 编程计算, 最少需要多少个钱币才能 凑成某个给出的钱数。【要求】(代码需加注释) 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M( 1= M = 2000 ,整数),接着的一行中,第一个整数 K(1 = K = 10 )表示币种个数,随后 是 K 个互不相同的钱币面值 Ki(1 = Ki = 1000) 。输入 M=0 时结束。【数据输出】每个测试用例输出一行,即凑成钱数值 M 最少需要的钱币个数。如果凑 钱失败,输出“ Impossible ”。你可以假设,每种待凑钱币的数量是无限多的。【样例输入】156 2 5 1

7、0 20 50 10011 20【样例输出】2Impossible7.7.运动会分数统计【任务描述】 参加运动会有n个学校,学校编号为1n。比赛分成m个男子项目,和w个女子项目。项目编号为男子 1.m ,女子m+1m+w 。不同的项目取前五名或前三名积分;取前五名的得分分别为:7、5、3、2、1,前三名的得分分别为: 5、3、2;哪些 取前五名或前三名由学生自己设定。 ( m=20 , n=20 )【功能要求】1)可以输入各个项目的前三名或前五名的成绩。2)能统计各学校总分。3)可以按学校编号或名称、学校总分、男女团体总分排序输出。4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取

8、得前三或前五名 的学校。5)数据存入文件并能随时查询。6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称。【输出形式】 有合理的提示,各学校分数为整型。【界面要求】 有合理的提示, 每个功能可以设立菜单, 根据提示, 可以完成相关的功能 要求。【存储结构】 学生自己根据系统功能要求自己设计, 但是要求运动会的相关数据要存储 在数据文件中。(数据文件的数据读写方法等相关内容在C /C+语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构。【测试数据】 要求使用( 1)全部合法数据; ( 2)整体非法数据; ( 3)局部非法数据分 别进行程序测试,以保证程序的稳定

9、。测试数据及测试结果请在上交的资料中写明。8.8.飞机订票系统任务: 通过此系统可以实现如下功能:1) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据 自定)。2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市, 航班票价,票价折扣,确定航班是否满仓) ;可以输入起飞抵达城市,查询飞机航班情况。3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班 已经无票,可以提供相关可选择航班。4)退票:可退票,退票后修改相关数据文件。 客户资料有姓名、证件号、订票数量及航班情况,订单要有编号。5)修改航班信息:当航班信息改变时,

10、可以修改航班数据文件。要求: 根据以上功能说明,设计航班信息、订票信息的存储结构,设计程序完成功能。9.9. 文章编辑功能: 输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过 80 个字符,共 N 行;要求( 1)分别统计出其中 英文字母数和空格数及整篇文章总字数; ( 2)统计某一字符串在文章中出现的次数, 并输出 该次数;(3)删除某一子串,并将后面的字符前移。存储结构: 使用线性表,分别用几个子函数实现相应的功能。输入数据的形式和范围: 可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符; (2)分 4 行输出

11、 全部字母数 、 数字 个数 、空格个数 、文章总字数 ;(3)输出删除某一字符串后的文章。10.10.宿舍管理查询软件问题描述: 为宿舍管理人员编写一个宿舍管理查询软件。程序设计要求:(1)采用交互工作方式。(2)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、 插入排序等任选一种) 。( 3)查询菜单(用二分查找实现以下操作) :按姓名查询、按学号查询、按房号查询。( 4)打印任一查询结果(可以连续操作) 。11.11.学校超市选址问题(带权有向图的中心点)设计要求: 对于某一学校超市, 其他各单位到其该超市的距离不同, 同时各单位人员去 超市的频度也不同。请为超市

12、选址,要求实现总体最优。12.12.教学计划编制问题针对学院的计算机系本科课程, 根据课程之间的依赖关系, 制定课程安排计划, 并满足 各学期课程数大致相同。 按照用户输入的课程数、 学期数、 课程间的先后关系数目以及课程 间两两间的先后关系,程序执行后会给出每学期应学的课程。功能要求:( 1)输入的形式和输入值的范围: 输入间用空格隔开。 要求用户输入的课程数小于 20, 学期数小于或是等于 8,课程名的长度小于等于 10 个字符。(2)程序所能达到的功能:按照用户的输入,给出每学期应学的课程。(3)测试数据:输 入:学期 数: 5,课程 数: 12, 课程间的 先后 关系数: 16,课程

13、的代 表值: v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12 。课程间两两间的先后关系: v1 v2, v1 v3, v1 v4, v1 v12, v2 v3, v3 v5, v3 v7, v3 v8, v4 v5, v5 v7, v6 v8, v9 v10, v9 v11, v9 v12, v10 v12, v11 v6输出:第 1 学期应学的课程:v1 v9第 2 学期应学的课程:v2 v4 v10 v11第 3 学期应学的课程:v3 v6 v12第 4 学期应学的课程:v5 v8第 5 学期应学的课程:v713.13.散列法的实验研究散列法中, 散列函数构造

14、方法多种多样, 同时对于同一散列函数解决冲突的方法也可以 不同。 两者是影响查询算法性能的关键因素。 对于几种典型的散列函数构造方法, 做实验观 察,不同的解决冲突方法对查询性能的影响。14.14.图书借阅管理系统主要分为两大功能:1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书)。2)会员管理 (增加会员、查询会员、删除会员、借书信息)。15.15.排序方法时间性能研究问题描述:对各种排序方法(直接插入排序、希尔排序、起泡排序、快速排序、直接选择排序、堆 排序和归并排序)的时间性能进行比较。基本要求:(1)设计并实现上述各种排序算法。(2)产生随机的初始排列,分别调用上述排序算法,

15、并比较时间性能。待排序表的表 长不小于 100。至少要用 5 组不同的输入数据作比较;比较的指标为有关键字参加的比较次 数和关键字的移动次数(关键字交换计为 3 次移动)。(3)统计在完全正序、完全逆序情况下的关键字比较次数和移动次数。(4)最后对结果作出简单分析,包括对各组数据得出结果波动大小的解释。16.16.活期储蓄帐目管理 活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:1)能比较迅速地找到储户的帐户,以实现存款、取款记账;2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。17.17.二叉排序树的实现 用顺序和二叉链表作存储结构1)以回车(n)为输入结束标

16、志,输入数列L,生成一棵二叉排序树T;2)对二叉排序树 T 作中序遍历,输出结果;3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息 “无 x”;18.18.最小生成树问题设计要求: 在 n 个城市之间建设网络,只需保证连通即可,求最经济的架设方法。 存储结构 采用多种。求解算法多种。19.19.通讯录的制作 设计目的:用数据结构中的双向链表作数据结构,结合所选语言基本知识。编写一个 通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。设计内容:本系统应完成一下几方面的功能:1)输入信息 enter();2)显示信息 displa

17、y( );3)查找以姓名作为关键字 search( );4)删除信息 delete( );5)存盘 save ( );6)装入 load( ) ;设计要求:1)每条信息至包含 :姓名(NAME )街道(STREET)城市(CITY )邮编(EIP)国家(STATE)几项2)作为一个完整的系统,应具有友好的界面和较强的容错能力20.20.哈夫曼编码 / /译码器【问题描述】设计一个利用哈夫曼算法的编码和译码系统, 重复地显示并处理以下项目, 直到选择退出为 止。【基本要求】1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)2)分别采用动态和静态存储结构3)初始化:

18、键盘输入字符集大小n、n 个字符和 n 个权值,建立哈夫曼树;4)编码:利用建好的哈夫曼树生成哈夫曼编码;5)输出编码;6)设字符集及频度如下表:字符 空格 A B C D E F G H I J K L M频度 186 64 13 22 32 103 21 15 47 57 1 5 32 20字符 N O P Q R S T U V W X Y Z频度 57 63 15 1 48 51 80 23 8 18 1 16 1【进一步完成内容】1) 译码功能;2)显示哈夫曼树;3)界面设计的优化。21.21.图书管理系统【问题描述】 设计一个计算机管理系统完成图书管理基本业务。基本要求】1)每种书

19、的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下: *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存 量增加;* 借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;*归还:注销对借阅者的登记,改变该书的现存量。【进一步完成内容】1)系统功能的进一步完善;2)索引表采用树表。3)设计内容4)程序流程图5)源程序6)软件测试报告(包括所用到的数据及结果)22.22.散列表的设计与实现【问题描述】 设计散列表实现电话号码查找系统。【基本要求】1)设每个记录有下列数据

20、项:电话号码、用户名、地址;2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;3)采用一定的方法解决冲突;4)查找并显示给定电话号码的记录;5)查找并显示给定用户名的记录。【进一步完成内容】1)系统功能的完善;2)设计不同的散列函数,比较冲突率;3)在散列函数确定的前提下, 尝试各种不同类型处理冲突的方法, 考察平均查找长度的变化。23.23.顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。 设有一元多项式 Am(x) 和 Bn(x).1 2 3 mAm(X)=Ao+AiX +A2X +A3X + +AmXBn(X)=B 0+B J + B 2X2+B3X3 +Bn

21、Xn请实现求 M(X)= A m(X)+B n(x)、M(X)= A m(X)-B n(X)和 M(X)= A m(X)Bn(X)。要求:1)首先判定多项式是否稀疏2)分别采用顺序和动态存储结构实现;3)结果 M(X) 中无重复阶项和无零系数项;4)要求输出结果的升幂和降幂两种排列情况24.24.利用栈求表达式的值,可供小学生作业,并能给出分数。要求: 建立试题库文件,随机产生 n 个题目;题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价25.25.简易文本编辑器要求:1)具有图形菜单界面;2)查找,替换(等长,不等长) ,插入(插串,文本

22、块的插入) 、块移动(行块,列块移动) 删除3)可正确存盘、取盘;4)正确显示总行数。26.26.二叉树遍历算法实现 二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现, 应包含建树的实现。要求: 遍历的内容应是千姿百态的。树与二叉树的转换的实现。以及树的前序、后序的递归、 非递归遍历算法, 层次序的非递归 遍历算法的实现,应包含建树的实现。要求: 遍历的内容应是千姿百态的。27.27.学生搭配问题一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池的两 边的椅子上 .每曲开始时 ,依次从男生和女生中各出一人配对跳舞 , 本曲没成功配对者坐

23、着等 待下一曲找舞伴 .请设计一系统模拟动态地显示出上述过程,要求如下 :1)输出每曲配对情况2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况至少求出 K 的两个值 .3)尽量设计出多种算法及程序,可视情况适当加分提示 :用队列来解决比较方便28.28.猴子吃桃子问题有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10 天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。要求:1)采用数组数据结构实现上述求解2)采用链数据结构实现上述求解3)采用递归实现上述求解29.29.数制转换问题任意给定一个 M 进制的数 x ,请实现

24、如下要求1)求出此数 x 的 10 进制值(用 MD 表示)2)实现对 x 向任意的一个非 M 进制的数的转换。3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)30.30.客户消费积分管理系统问题描述:针对客户的消费情况, 进行客户管理, 根据客户的消费积分对客户实行不同程度的打折优惠。 基本要求:(1)采用一定的存储结构进行客户信息的存储;(2)对客户的信息可以进行修改、删除、添加;(3)能够根据消费情况进行客户积分的计算;(4)根据积分情况实行不同程度的打折优惠;31.31.学生成绩管理系统现有学生成绩信息文件1 ( 1.txt),内容如下姓名学号语文数学英

25、语张明明01677882李成友02789188张辉灿03688256王露04564577陈东明05673847学生成绩信息文件2(2.txt) ,内容如下姓名学号语文数学英语陈果31576882李华明32889068张明东33484256李明国 34 50 4587陈道亮 35 47 5877试编写一管理系统 ,要求如下 :1)实现对两个文件数据进行合并 ,生成新文件 3.txt2)抽取出三科成绩中有补考的学生并保存在一个新文件 4.txt3)合并后的文件 3.txt 中的数据按总分降序排序 (至少采用两种排序方法实现 )4)输入一个学生姓名后 ,能查找到此学生的信息并输出结果 (至少采用两种

26、查找方法实现 )5)要求使用结构体 ,链或数组等实现上述要求 .6)采用多种方法且算法正确者 ,可适当加分 .32.32.校园最短路径问题问题描述: 图的最短路径问题是指从指定的某一点 v 开始,求得从该地点到图中其它各地点 的最短路径。并且给出求得的最短路径的长度及途径的地点。除了完成最短路径的求解外, 还能对该图进行修改,如顶点以及边的增删、边上权值的修改等。校园最短路径问题中的数据元素有: ( 1)顶点数;(2)边数;( 3)边的长度。 功能需求:要求完成以下功能( 1) 输出顶点信息:将校园内各位置输出。(2)输出边的信息:将校园内每两个位置(若两个位置之间有直接路径)的距离输出。(3

27、)修改:修改两个位置(若两个位置之间有直接路径)的距离,并重新输出每两个位置 (若两个位置之间有直接路径)的距离;(4)求最短路径: 输出给定两点之间的最短路径的长度及途经的地点或输出任意一点与其 他各点的最短路径。(5)删除:删除任意一条边。(6)插入:插入任意一条边。33.33.校园导航服务系统问题描述:设计一个校园导游程序,为来访的客人提供各种信息查询服务。基本要求:(1)设计你的学校的校园平面图,所含景点不少于 10 个。以图中顶点表示校内各景点,存放 景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点相关信息的查询。(3)为来访客人提供

28、图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单 路径。34.34. 稀疏矩阵应用 要求:实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。(1)稀疏矩阵的存储(2)稀疏矩阵加法(3)矩阵乘法(4)矩阵转置35.35.树的应用 要求:实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的 非递归算法的实现,应包含建树的实现。36.36.文本文件单词的检索与计数设计要求与分析:要求编程建立一个文本文件, 每个单词不包含空格且不跨行, 单词由字符序列构成且区 分大小写; 统计给定单词在文本文件中出现的总次数; 检索输出某个单词出现在文本中的行 号、在该行中出现的

29、次数以及位置。 该设计要求可分为三个部分实现: 其一,建立文本文件, 文件名由用户用键盘输入;其二,给定单词的计数, 输入一个不含空格的单词,统计输出该 单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的 行号、该行中出现的次数以及在该行中的相应位置。(1)建立文本文件(2)给定单词的计数(3)检索单词出现在文本文件中的行号、次数及其位置(4)主控菜单程序的结构头文件包含菜单选项包含建立文件、单词定位、单词计数、退出程序选择 1-4 执行相应的操作,其他字符为非法。37.37. 任意长的整数加法问题描述: 设计一个程序实现两个任意长的整数的求和运算。基本要求: 利

30、用双向循环链表, 设计一个实现任意长的整数进行加法运算的演示程序。 要求 输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000, 0000。38.38. 二叉平衡排序树问题描述: 从一棵空树开始创建,在创建过程中, 保证树的有序性,同时还要针对树的平衡 性做些调整。最终要把创建好的二叉排序树转换为二叉平衡排序树。基本要求: 1.创建(插入、调整、改组)2.输出39.39.串的查找和替换 问题描述: 打开一篇英文文章, 在该文章中找出所有给定的单词, 然后对所有给定的单词替 换为另外一个单词,再存盘。40.40.约瑟夫环问题描述:编号为1 2n的n个人按顺时针方向围坐一圈,

31、每人持有一个密码 (正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到 m 时停止报数,报 m 的人出列,将他的密码作为新的 m 值,从他的顺时针方向上 的下一个开始重新从 1报数, 如此下去, 直至所有人全部出列为止, 设计一个程序求出出列 顺序。基本要求:1、利用单循环链表作为存储结构模拟此过程;2、 键盘输入总人数、初始报数上限值m 及各人密码;3、按照出列顺序输出各人的编号。41.41.构造可以使 n n 个城市连接的最小生成树问题描述: 给定一个地区的 n 个城市间的距离网,用 Prim 算法或 Kruskal 算法建立最小生 成树,并

32、计算得到的最小生成树的代价。基本要求:1、城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义, 若两个城市之间不存在道路, 则将相应边的权值设为自己定义的无穷大值。 要求在屏幕上显 示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。2、表示城市间距离网的邻接矩阵(要求至少6个城市, 10 条边)3、最小生成树中包括的边及其权值,并显示得到的最小生成树的代价。42.42.客户消费积分管理系统问题描述: 针对客户的消费情况, 进行客户管理, 根据客户的消费积分对客户实行不同程度 的打折优惠。基本要求:1.采用一定的存储结构进行客户信息的存储;2.对客

33、户的信息可以进行修改、删除、添加;3.能够根据消费情况进行客户积分的计算;4.根据积分情况实行不同程度的打折优惠;43.43.产品进销存管理系统问题描述: 针对某一种行业的库房的产品进销存情况进行管理。基本要求:1. 采用一定的存储结构对库房的货品及其数量进行分类管理;2. 可以进行产品类的添加、产品的添加、产品数量的添加;3.能够查询库房每种产品的总量、进货日期、销出数量、销售时间等;44.44.特殊矩阵的压缩存储算法的实现问题描述: 对于特殊矩阵可以通过压缩存储减少存储空间。基本要求:1.针对多种特殊矩阵进行压缩存储,并能显示压缩后的相关地址和值;2.输入在原来特殊矩阵中的地址,要求能从压

34、缩后的矩阵中读出相应的值;45.45.算术表达式的求解 问题描述: 给定一个算术表达式,通过程序求出最后的结果。基本要求:1 从键盘输入要求解的算术表达式;2 采用栈结构进行算术表达式的求解过程;3 能够判断算术表达式正确与否;4 对于错误表达式给出提示;5 对于正确的表达式给出最后的结果;46.46.电视大赛观众投票及排名系统 在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进 行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚 军和季军。 现在要求编写一程序模拟实现上述系统的功能。 (注意 :排序数据从文件中读入) 。 设计提示 :首

35、先输入参赛选手的人数(范围为 1-9个),然后根据人数通过 malloc 函数来开辟存放 选手信息的顺序表。将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票, 按1为 1 号选手投票,按 2为 2号选手投票,以此类推,以按 0作为投票结束标 志。投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次, 得票相同的名次 也相同。47.47. 停车场管理设停车场内只有一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽 车在停车场内按车辆到达时间的先后顺序, 依次由北向南排列 (大门在最南端, 最先到达的 第一辆车停放在车场的最北端) ,若车场内已停满 n 辆汽车,则

36、后来的汽车只能在门外的便 道上等候, 一旦有车开走, 则排在便道上的第一辆车即可开入; 当停车场内某辆车要离开时, 在它之后开入的车辆必须先退出车场为它让路, 待该辆车开出大门外, 其它车辆再按原次序 进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。基本要求:试为停车场编制按上述要求进行管理的模拟程序。选作内容:( 1)汽车可有不同种类,则它们的占地面积不同,收费标准也不同,如1辆客车和 1.5 辆小汽车的占地面积相同, 1 辆十轮卡车占地面积相当于 3 辆小汽车的占地面 积。如何处理该问题?(2)汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后再依

37、 次排到队尾。如何处理该问题?48.48.迷宫问题(栈)问题描述: 以一个 m*n 的长方阵表示迷宫, 0 和 1 分别表示迷宫中的通路和障碍。 设计一个程序, 对任 意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论 。基本要求:首先实现一个以链表作存储结构的栈类型, 然后编写一个求解迷宫的非递归程序。 求得的通 路以三元组( i,j,d )的形式输出,其中: (i,j )指示迷宫中的一个坐标, d 表示走到下一坐标 的方向,女口:对于下列数据的迷宫, 输出的一条通路为:(1,1,1), (1,2,2) ,(3,2,3),(3,1,2),。 测试数据:迷宫的测试数据如下:左下角(

38、 1, 1)为入口,右下角( 8, 9)为出口。实现提示:计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某个方向进行探索,若能 走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条 通路。假如所有可能的通路都探索到而未能到达出口,则所设的迷宫没有通路。可以二维数组存储迷宫数据,通常设定入口点的下标为(1, 1),出口点的下标为( n,n)。为处理方便起见,可在迷宫的四周加一圈障碍。对于迷宫中任一位置,均可约定有东、南、 西、北四个方向可通 。选做内容:( 1 )编写递归形式的算法,求得迷宫中所有可能的通路;(2)以方阵形式输出迷宫及其通路。49.49.迷

39、宫问题(队列) (同上)5050二叉搜索树:各种搜索树效率比较题目要求: 本题目要求对普通的二叉排序树、 AVL 树分别实现制定操作,并分析比较这两种不同数据 结构对应的一系列插入和删除操作的效率。 要求测试对 N 个不同整数进行下列操作的效率:( 1 ) 按递增顺序插入 N 个整数,并按同样顺序删除;( 2)按递增顺序插入 N 个整数,并按相反顺序删除;( 3)按随机顺序插入 N 个整数,并按随机顺序删除;要求N从1000到10000取值,并以数据规模 N为横轴,运行时间为纵轴,画出3种不同数据结构对应的操作效率比较图。5151关键路径问题问题描述 :设计一个程序求出完成整项工程至少需要多少

40、时间以及整项工程中的关键活动。 基本要求:(1 )对一个描述工程的 AOE 网,应判断其是否能够顺利进行。(2)若该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所 依附的两个顶点、最早发生时间、最迟发生时间。52.52. 病毒测试程序本题的任务是:当整个网络被感染后,计算有多少台机器被某个特定变种所感染。输入要求:输入由若干组测试数据组成。每组数据的第1行包含2个整数M和N (1 M,NW 500),接下来是一个 M*N的矩阵表示网络的初始感染状态,其中的正、负整数的意义如题目描述中所定义。下面一行给出一个正整数Q,是将要查询的变种的个数。接下去的Q行里,每行给出一个变

41、种的类型。当M或N为0时,表示全部测试结束,不要对该数据做任何处理。输出要求:对每一组测试,在一行里输出被某个特定变种所感染的机器数量。53.53.神秘国度的爱情故事输入要求: 输入由若干组测试数据组成。每组数据的第1行包含一正整数 N (1 NW 50000),代表神秘国度中小村的个数,每个小村即从 0 到 N-1 编号。接下来有 N-1 行输入,每行包含一条双向道路的两端小村的编号,中 间用空格分开。之后一行包含一正整数M ( K MK 500000),代表着该组测试问题的个数。接下来 M 行,每行给出 A,B,C 三个小村 的编号,中间用空格分开。当 N 为 0 时,表示全部测试结束,不

42、要对该数据做任何处理。输出要求:对每一组测试给定的 A,B,C,在一行里输出答案,即:如果C在A和B之间的路径上,输出Yes,否则输出No。54.54.并查集:检查网络题目要求: 给定一个计算机网络以及机器间的双向连线列表, 每一条连线允许两端的计算机 进行直接的文件传输, 其他计算机间若存在一条连通路径, 也可以进行间接的文件传输。 请 写出程序判断:任意指定两台计算机,它们之间是否可以进行文件传输?输入要求:输入若干测试数据组成。对于每一组测试,第1行包含一个整数 N (W 10000),即网络中计算机的总台数,因而每台计算机可用 1 到 N 之间的一个正整数表示。接下来的 几行输入格式为

43、I C1 C2或者C或者C C1C2或者S,其中C1和C2是两台计算机的序号, I表示在C1和C2间输入一条连线,C表示检查C1和C2间是否可以传输文件,S表示该组 测试结束。当N为0时,表示全部测试结束,不要对该数据做任何处理。输出要求:对每一组C开头的测试,检查 C1和C2间是否可以传输文件,若可以,则在一行中输出yes”,否则输出no”。当读到S时,检查整个网络。若网络中任意两机器间都可以传输文件,则在一行中输出“Thenetwork is connected.”,否则输出“There are k components.”,其中k是网络中连通集的个数。 两组测试数据之间请输出一空行分隔。

44、55.55. 多窗口管理问题图形用户界面 (GUIGUI )维护屏幕上的多个窗口。 这些窗口按层次组织, 最前面的窗口作为活 动窗口。有些应用程序维护一个当前打开窗口表。从菜单中可以访问此表。用户可以选择 一个窗口标题以使成为最前面的或活动的窗口。当一个底层窗口的视线被挡时,这就显得 特别有用。从菜单的表中选择“ Window_1Window_1 ”可以激活该窗口。试为窗口编制按上述要求进 行管理的模拟程序。56.56.网络流:宇宙旅行题目要求:在走遍了地球上的所有景点以后, 旅游狂人开始计划他的宇宙旅行项目。 经过谨慎调查, 他 目前掌握了一张各卫星空间站可以临时容纳的旅客人数列表。 但旅客

45、从一个星球飞往另一个 星球时, 需要在若干卫星空间站临时停靠中转, 而这些空间站不能接待任何旅客驻留, 旅客 必须立刻转乘另一艘飞船离开, 所以空间站不能接待超过自己最大容量的旅客流。 为了估计 预算,现在旅游狂人需要知道终点星球的接待站应该设计多大容量, 才能使得每艘飞船在到 达时都可以保证让全部旅客下船。输入要求:输入若干组测试数据组成。每组测试数据的第 1行包含旅行的起点星球和终点星球的名称和一个不超过 500 的正整数 N (N 为 0 标志全部测试结束,不要对该数据做任何处理) 。接下来的 N 行里,数据格式为: sourcei capacity i ,其中 sourcei 和 de

46、stinationi 是卫星空间站 的名称或起点、终点星球的名称,正整数capacityi 是飞船从 sourcei 到 destinationi 一次能运载的最大旅客流量。每个名称是由AZ之间三个大写字母组成的字符串,例如: ZJU。测试数据中不包含任何到达起点星球的信息以及任何从终点星球出发的信息。输出要求:对每一组测试, 在一行里输出终点星球接待站应具有的最小容量, 使得每艘飞船在到达时都 可以保证让全部旅客下船。57.57.转发器网络评到使用量问题当无线电台在一个非常大的区域上传播信号时,为了每个接收器都能得到较强信号,使用 转发器转发信号。然而,需要仔细选择每个转发器使用的频道,一是

47、附近的转发器不彼此 干扰。如果临近的转发器使用不同的频道,条件就得到满足。因为无线电波的频谱是宝贵的资源,转发器所需频道的数量应减到最少。编程任务: 读取转发器网络的描述信息,并计算出所需频道的最少使用量。输入格式:输入包含许多转发器网络图。每幅图的第一行是转发器数目(126)。转发器用连续的大写字母表示,从 A开始。例如,10个转发器名称分别是 A , B, C,I和J。当转发器 的个数是 0 时,表示输入结束。转发器数目之后,是其邻近关系的列表。每行的格式为:A: BCDH 表示转发器 B、C、D 和 H 与转发器 A 邻近。第一行描述与转发器 A 邻近的,第二行描述与 B 邻近的,直到描

48、述完所有的转发器。如果某个转发器不与其他转发器相邻,它的形式为:A:转发器依字母顺序列出。注意:相邻是对称关系,如果 A 与 B 相邻,则 B 与 A 也相邻。因为转发器位于水平面 内,由相邻的转发器构成的网络图没有相交的线。输出格式:对于每幅图(除了最后一个没有转发器) ,输出一行,是转发器不互相干扰所需的最少 频道数。输出格式参考样例输出。注意:频道数为1的话,“Channel”为单数。输入样例:2A:B:4A:BCB:ACDC:ABDD:BC4A:BCDB:ACDC:ABDD:ABC0输出样例:1 channel needed.3 channels needed.4 channels needed.58.58.遗传基因数据处理问题计算分子生物学( CMBCMB )正在研究遗传基因的数据处理。对于两种链之间的金花关系,如 果他们相差不大,我们就说他们有亲缘关系。我们可以用树形像地描述这种关系。组现在 上面,他们的后裔依次排列。这样的树叫做进化树。种系遗传学的一个任务就是从给出的生物链里推断出进化树。我们将问题简化一些, 出一个树形结构和树的 n 片叶子,他是一颗完全二叉树( n 总是 2 的指数)。每片叶子都是 含氨基酸的一个序列(如下面所示的单字符编码) ,所有序列的长度相等( l 表示长度)。你 的任务是找出拥有共同祖先的序列,且花

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论