算法设计综合实训题目.docx

上传人:b****1 文档编号:511136 上传时间:2022-10-10 格式:DOCX 页数:26 大小:38.78KB
下载 相关 举报
算法设计综合实训题目.docx_第1页
第1页 / 共26页
算法设计综合实训题目.docx_第2页
第2页 / 共26页
算法设计综合实训题目.docx_第3页
第3页 / 共26页
算法设计综合实训题目.docx_第4页
第4页 / 共26页
算法设计综合实训题目.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

算法设计综合实训题目.docx

《算法设计综合实训题目.docx》由会员分享,可在线阅读,更多相关《算法设计综合实训题目.docx(26页珍藏版)》请在冰豆网上搜索。

算法设计综合实训题目.docx

算法设计综合实训题目

算法设计综合实训题目

0.逆序数字(借助栈)

编写一个函数,接收一个4位整数值,返回这个数中数字逆序后的结果值。

例如,给定数7631,函数返回1367.

输入:

第一行一个正整数T(T<=10),表示有T组测试数据;以下T行,每行一个非负的整数N。

输出:

共T行,对于每组输入数据输出一行,即数字逆序后的结果值。

样本输入:

3

7631

1018

5158

样本输出:

1367

8101

8515

1.人见人爱A+B

这个题目的A和B不是简单的整数,而是两个时间,A和B都是由3个整数组成,分别表示时分秒,比如,假设A为344556,就表示A所表示的时间是34小时45分钟56秒。

输入:

输入数据有多行组成,首先是一个整数N,表示测试实例的个数,然后是N行数据,每行有6个整数AH,AM,AS,BH,BM,BS,分别表示时间A和B所对应的时分秒。

题目保证所有的数据合法。

输出:

对于每个测试实例,输出A+B,每个输出结果也是由时分秒3部分组成,同时也要满足时间的规则(即:

分和秒的取值范围在0-59),每个输出占一行,并且所有的部分都可以用32位整数表示。

样本输入:

2

123456

344556122334

样本输出:

579

47930

2.敲七

【问题描述】

输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)

【要求】

【数据输入】一个整数N。

(N不大于30000)

【数据输出】从小到大排列的不大于N的与7有关的数字,每行一个。

【样例输入】

20

【样例输出】

7

14

17

3.统计同成绩学生人数问题

【问题描述】

读入N名学生的成绩,将获得某一给定分数的学生人数输出。

【要求】

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

第1行:

N

第2行:

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

第3行:

给定分数

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

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

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

【样例输出】

3

806090

60

2

8566

0

5

6075905575

75

0

【样例输出】

1

0

2

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

1

12

0

【样例输出】

2

Impossible

 

7.运动会分数统计

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

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子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()

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

当前位置:首页 > 党团工作 > 党团建设

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

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