《算法设计综合实训》题目讲解Word下载.docx

上传人:b****3 文档编号:6416637 上传时间:2023-05-06 格式:DOCX 页数:33 大小:35.81KB
下载 相关 举报
《算法设计综合实训》题目讲解Word下载.docx_第1页
第1页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第2页
第2页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第3页
第3页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第4页
第4页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第5页
第5页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第6页
第6页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第7页
第7页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第8页
第8页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第9页
第9页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第10页
第10页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第11页
第11页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第12页
第12页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第13页
第13页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第14页
第14页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第15页
第15页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第16页
第16页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第17页
第17页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第18页
第18页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第19页
第19页 / 共33页
《算法设计综合实训》题目讲解Word下载.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《算法设计综合实训》题目讲解Word下载.docx

《《算法设计综合实训》题目讲解Word下载.docx》由会员分享,可在线阅读,更多相关《《算法设计综合实训》题目讲解Word下载.docx(33页珍藏版)》请在冰点文库上搜索。

《算法设计综合实训》题目讲解Word下载.docx

【数据输入】测试输入包含若干测试用例,每个测试用例的格式为

第1行:

N

第2行:

N名学生的成绩,相邻两数字用一个空格间隔。

第3行:

给定分数

当读到N=0时输入结束。

其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。

【数据输出】对每个测试用例,将获得给定分数的学生人数输出。

806090

60

8566

5

6075905575

75

1

4.高斯日记大数学家高斯有个好习惯:

无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:

4210。

后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。

这或许也是个好习惯,它时时刻刻提醒着主人:

日子又过去一天,还有多少时光可以用于浪费呢?

高斯出生于:

1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:

5343,因此可算出那天是:

1791年12月

15日。

高斯获得博士学位的那天日记上标着:

8113请你算出高斯获得博士学位的年月日。

5.牛的繁殖问题有位科学家曾出了这样一道数学题:

有一头母牛,它每年年初要生一头小母牛;

每头小母牛从第四个年头起,每年年初也要生一头小母牛。

按此规律,若无牛死亡,第20个年头上共有多少头母牛。

6.最少钱币数问题

【问题描述】这是一个古老而又经典的问题。

用给定的几种钱币凑成某个钱数,一般而言有多种方式。

例如:

给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。

显然,最少需要2个钱币才能凑成15元。

你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。

(代码需加注释)【数据输入】输入可以有多个测试用例。

每个测试用例的第一行是待凑的钱数值M(1

<

=M<

=2000,整数),接着的一行中,第一个整数K(1<

=K<

=10)表示币种个数,随后是K个互不相同的钱币面值Ki(1<

=Ki<

=1000)。

输入M=0时结束。

【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。

如果凑钱失败,输出“Impossible”。

你可以假设,每种待凑钱币的数量是无限多的。

15

625102050100

12

Impossible

7.运动会分数统计

【任务描述】参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,

和w个女子项目。

项目编号为男子1m,女子m+1••…m+w。

不同的项目取前五名或前

三名积分;

取前五名的得分分别为:

7、5、3、2、1,前三名的得分分别为:

5、3、2;

哪些取前五名或前三名由学生自己设定。

(m<

=20,n<

=20)

【功能要求】

1)可以输入各个项目的前三名或前五名的成绩。

2)能统计各学校总分。

3)可以按学校编号或名称、学校总分、男女团体总分排序输出。

4)可以按学校编号查询学校某个项目的情况;

可以按项目编号查询取得前三或前五名的学校。

5)数据存入文件并能随时查询。

6)规定:

输入数据形式和范围:

可以输入学校的名称,运动项目的名称。

【输出形式】有合理的提示,各学校分数为整型。

【界面要求】有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

【存储结构】学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

(数据文件的数据读写方法等相关内容在C/C++语言程序设计的书上,请自

学解决)请在最后的上交资料中指明你用到的存储结构。

【测试数据】要求使用

(1)全部合法数据;

(2)整体非法数据;

(3)局部非法数据分别进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明。

8.飞机订票系统

任务:

通过此系统可以实现如下功能:

1)录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。

2)查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);

可以输入起飞抵达城市,查询飞机航班情况。

3)订票:

(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班。

4)退票:

可退票,退票后修改相关数据文件。

客户资料有姓名、证件号、订票数量及航班情况,订单要有编号。

5)修改航班信息:

当航班信息改变时,可以修改航班数据文件。

要求:

根据以上功能说明,设计航班信息、订票信息的存储结构,设计程序完成功能。

9.文章编辑

功能:

输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;

要求

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

存储结构:

使用线性表,分别用几个子函数实现相应的功能。

输入数据的形式和范围:

可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

(1)分行输出用户输入的各行字符;

(2)分4行输出"

全部字母数"

、"

数字个数"

、"

空格个数"

、"

文章总字数"

(3)输出删除某一字符串后的文章。

10.宿舍管理查询软件

问题描述:

为宿舍管理人员编写一个宿舍管理查询软件。

程序设计要求:

(1)采用交互工作方式。

(2)建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)。

(3)查询菜单(用二分查找实现以下操作):

按姓名查询、按学号查询、按房号查询。

(4)打印任一查询结果(可以连续操作)。

11.学校超市选址问题(带权有向图的中心点)

设计要求:

对于某一学校超市,其他各单位到其该超市的距离不同,同时各单位人员去超市的频度也不同。

请为超市选址,要求实现总体最优。

12.教学计划编制问题

针对学院的计算机系本科课程,根据课程之间的依赖关系,制定课程安排计划,并满足各学期课程数大致相同。

按照用户输入的课程数、学期数、课程间的先后关系数目以及课程间两两间的先后关系,程序执行后会给出每学期应学的课程。

功能要求:

(1)输入的形式和输入值的范围:

输入间用空格隔开。

要求用户输入的课程数小于20,学期数小于或是等于8,课程名的长度小于等于10个字符。

(2)程序所能达到的功能:

按照用户的输入,给出每学期应学的课程。

(3)测试数据:

输入:

学期数:

5,课程数:

12,课程间的先后关系数:

16,课程的代表值:

v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12。

课程间两两间的先后关系:

v1v2,v1v3,v1v4,v1v12,v2v3,v3v5,v3v7,v3v8,v4v5,v5v7,v6v8,v9v10,v9v11,v9v12,v10v12,v11v6

第1学期应学的课程:

v1v9

第2学期应学的课程:

v2v4v10v11

第3学期应学的课程:

v3v6v12

第4学期应学的课程:

v5v8

第5学期应学的课程:

v7

13.散列法的实验研究

散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同。

两者是影响查询算法性能的关键因素。

对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响。

14.图书借阅管理系统

主要分为两大功能:

1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书)。

2)会员管理(增加会员、查询会员、删除会员、借书信息)。

15.排序方法时间性能研究

对各种排序方法(直接插入排序、希尔排序、起泡排序、快速排序、直接选择排序、堆排序和归并排序)的时间性能进行比较。

基本要求:

(1)设计并实现上述各种排序算法。

(2)产生随机的初始排列,分别调用上述排序算法,并比较时间性能。

待排序表的表长不小于100。

至少要用5组不同的输入数据作比较;

比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。

(3)统计在完全正序、完全逆序情况下的关键字比较次数和移动次数。

(4)最后对结果作出简单分析,包括对各组数据得出结果波动大小的解释。

16.活期储蓄帐目管理活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求:

1)能比较迅速地找到储户的帐户,以实现存款、取款记账;

2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。

17.二叉排序树的实现用顺序和二叉链表作存储结构

1)以回车('

\n'

)为输入结束标志,输入数列L,生成一棵二叉排序树T;

2)对二叉排序树T作中序遍历,输出结果;

3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作

2);

否则输出信息“无x”;

18.最小生成树问题

在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。

存储结构采用多种。

求解算法多种。

19.通讯录的制作设计目的:

用〈〈数据结构〉〉中的双向链表作数据结构,结合所选语言基本知识。

编写一个通讯录管理系统。

以把所学数据结构知识应用到实际软件开发中去。

设计内容:

本系统应完成一下几方面的功能:

1)输入信息——enter();

2)显示信息———display();

3)查找以姓名作为关键字———search();

4)删除信息———delete();

5)存盘———save();

6)装入———load();

1)每条信息至包含:

姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)

几项

2)作为一个完整的系统,应具有友好的界面和较强的容错能力

20.哈夫曼编码/译码器

设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。

【基本要求】

1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中)

2)分别采用动态和静态存储结构

3)初始化:

键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;

4)编码:

利用建好的哈夫曼树生成哈夫曼编码;

5)输出编码;

6)设字符集及频度如下表:

字符空格ABCDEFGHIJKLM

频度1866413223210321154757153220

字符NOPQRSTUVWXYZ

频度5763151485180238181161

【进一步完成内容】

1)译码功能;

2)显示哈夫曼树;

3)界面设计的优化。

21.图书管理系统

【问题描述】设计一个计算机管理系统完成图书管理基本业务。

基本要求】

1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;

2)对书号建立索引表(线性表)以提高查找效率;

3)系统主要功能如下:

*采编入库:

新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;

*借阅:

如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变

现存量;

*归还:

注销对借阅者的登记,改变该书的现存量。

1)系统功能的进一步完善;

2)索引表采用树表。

3)设计内容

4)程序流程图

5)源程序

6)软件测试报告(包括所用到的数据及结果)

22.散列表的设计与实现

【问题描述】设计散列表实现电话号码查找系统。

1)设每个记录有下列数据项:

电话号码、用户名、地址;

2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;

3)采用一定的方法解决冲突;

4)查找并显示给定电话号码的记录;

5)查找并显示给定用户名的记录。

1)系统功能的完善;

2)设计不同的散列函数,比较冲突率;

3)在散列函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度的变化。

23.顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现。

设有一元多项式Am(x)和Bn(x).

123m

Am(X)=Ao+AiX+A2X+A3X+…+AmX

Bn(X)=B0+BJ+B2X2+B3X3+…+BnXn

请实现求M(X)=Am(X)+Bn(x)、M(X)=Am(X)-Bn(X)和M(X)=Am(X)Bn(X)。

1)首先判定多项式是否稀疏

2)分别采用顺序和动态存储结构实现;

3)结果M(X)中无重复阶项和无零系数项;

4)要求输出结果的升幂和降幂两种排列情况

24.利用栈求表达式的值,可供小学生作业,并能给出分数。

建立试题库文件,随机产生n个题目;

题目涉及加减乘除,带括弧的混合运算;

随时

可以退出;

保留历史分数,能回顾历史,给出与历史分数比较后的评价

25.简易文本编辑器

1)具有图形菜单界面;

2)查找,替换(等长,不等长),插入(插串,文本块的插入)、块移动(行块,列块移动)删除

3)可正确存盘、取盘;

4)正确显示总行数。

26.二叉树遍历算法实现二叉树的中序、前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。

遍历的内容应是千姿百态的。

树与二叉树的转换的实现。

以及树的前序、后序的递归、非递归遍历算法,层次序的非递归遍历算法的实现,应包含建树的实现。

27.学生搭配问题

一班有m个女生,有n个男生(m不等于n),现要开一个舞会.男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴.

请设计一系统模拟动态地显示出上述过程,要求如下:

1)输出每曲配对情况

2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况•至少求出K的两个值.

3)尽量设计出多种算法及程序,可视情况适当加分

提示:

用队列来解决比较方便•

28.猴子吃桃子问题

有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就

只余下一个桃子。

用多种方法实现求出原来这群猴子共摘了多少个桃子。

1)采用数组数据结构实现上述求解

2)采用链数据结构实现上述求解

3)采用递归实现上述求解

29.数制转换问题

任意给定一个M进制的数x,请实现如下要求

1)求出此数x的10进制值(用MD表示)

2)实现对x向任意的一个非M进制的数的转换。

3)至少用两种或两种以上的方法实现上述要求(用栈解决,用数组解决,其它方法解决)

30.客户消费积分管理系统

针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。

基本要求:

(1)采用一定的存储结构进行客户信息的存储;

(2)对客户的信息可以进行修改、删除、添加;

(3)能够根据消费情况进行客户积分的计算;

(4)根据积分情况实行不同程度的打折优惠;

31.学生成绩管理系统

现有学生成绩信息文件1(1.txt),内容如下

姓名

学号

语文

数学

英语

张明明

01

67

78

82

李成友

02

91

88

张辉灿

03

68

56

王露

04

45

77

陈东明

05

38

47

学生成绩信息文件

2(2.txt),内容如下

陈果

31

57

李华明

32

90

张明东

33

48

42

李明国34504587

陈道亮35475877

试编写一管理系统,要求如下:

1)实现对两个文件数据进行合并,生成新文件3.txt

2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt

3)合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)

4)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)

5)要求使用结构体,链或数组等实现上述要求.

6)采用多种方法且算法正确者,可适当加分.

32.校园最短路径问题

图的最短路径问题是指从指定的某一点v开始,求得从该地点到图中其它各地点的最短路径。

并且给出求得的最短路径的长度及途径的地点。

除了完成最短路径的求解外,还能对该图进行修改,如顶点以及边的增删、边上权值的修改等。

校园最短路径问题中的数据元素有:

(1)顶点数;

(2)边数;

(3)边的长度。

功能需求:

要求完成以下功能

(1)输出顶点信息:

将校园内各位置输出。

(2)输出边的信息:

将校园内每两个位置(若两个位置之间有直接路径)的距离输出。

(3)修改:

修改两个位置(若两个位置之间有直接路径)的距离,并重新输出每两个位置(若两个位置之间有直接路径)的距离;

(4)求最短路径:

输出给定两点之间的最短路径的长度及途经的地点或输出任意一点与其他各点的最短路径。

(5)删除:

删除任意一条边。

(6)插入:

插入任意一条边。

33.校园导航服务系统

设计一个校园导游程序,为来访的客人提供各种信息查询服务。

(1)设计你的学校的校园平面图,所含景点不少于10个。

以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;

以边表示路径,存放路径长度等相关信息。

(2)为来访客人提供图中任意景点相关信息的查询。

(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

34.稀疏矩阵应用要求:

实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。

(1)稀疏矩阵的存储

(2)稀疏矩阵加法

(3)矩阵乘法

(4)矩阵转置

35.树的应用要求:

实现树与二叉树的转换的实现。

以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。

36.文本文件单词的检索与计数

设计要求与分析:

要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;

统计给定单词在文本文件中出现的总次数;

检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。

该设计要求可分为三个部分实现:

其一,建立文本文件,文件名由用户用键盘输入;

其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;

其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。

(1)建立文本文件

(2)给定单词的计数

(3)检索单词出现在文本文件中的行号、次数及其位置

(4)主控菜单程序的结构

1头文件包含

2菜单选项包含

建立文件、单词定位、单词计数、退出程序

3选择1-4执行相应的操作,其他字符为非法。

37.任意长的整数加法

设计一个程序实现两个任意长的整数的求和运算。

利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。

要求输入和输出每四位一组,组间用逗号隔开。

如:

1,0000,0000,0000,0000。

38.二叉平衡排序树

从一棵空树开始创建,在创建过程中,保证树的有序性,同时还要针对树的平衡性做些调整。

最终要把创建好的二叉排序树转换为二叉平衡排序树。

1.创建(插入、调整、改组)

2.输出

39.串的查找和替换问题描述:

打开一篇英文文章,在该文章中找出所有给定的单词,然后对所有给定的单词替换为另外一个单词,再存盘。

40.约瑟夫环

编号为12…n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。

一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报

数,报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个开始重新从1报数,如此下去,直至所有人全部出列为止,设计一个程序求出出列顺序。

1、利用单循环链表作为存储结构模拟此过程;

2、键盘输入总人数

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2