《C语言程序设计课程设计》题目(3)

2019-01-03 16:14

软件工程10-2班 《C语言程序设计》课程设计题目

⑹ 以商品为单位,统计每种商品的销售总额;

⑺ 以商品为单位,将所有销售的商品按销售总额的非递减顺序构造一个单链表并输出;

⑻ 设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。

13 joseph环

题目之一: 问题描述:

编号是1,2,??,n的n个人按照顺时针方向围坐一圈,一开始任选一个正整数作为报数上限(开始)值m(m<n),从第s(s<n)个人开始沿顺时针方向顺序报数,报到m时停止报数,报m的人出列,然后在从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。

实现要求:

⑴ 利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

输入数据:建立输入处理输入数据,输入m、n、s的初值和每个人的编号,建立单循环链表。

输出形式:建立一个输出函数,将正确的序列输出。

⑵ 利用顺序表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 输入数据:建立输入处理输入数据,输入m、n、s的初值和每个人的编号,建立单循环链表。

输出形式:建立一个输出函数,将正确的序列输出。

测试数据:

m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?

题目之二:

11

软件工程10-2班 《C语言程序设计》课程设计题目

问题描述:

编号是1,2,??,n的n个人按照顺时针方向围坐一圈,一开始任选一个正整数作为报数上限(开始)值m(m<n),从第s(s<n)个人开始沿逆时针方向顺序报数,报到m时停止报数,报m的人出列,然后在从他在逆时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。

实现要求:

⑴ 利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

输入数据:建立输入处理输入数据,输入m、n、s的初值和每个人的编号,建立单循环链表。

输出形式:建立一个输出函数,将正确的序列输出。

⑵ 利用顺序表存储结构模拟此过程,按照出列的顺序输出各个人的编号。 输入数据:建立输入处理输入数据,输入m、n、s的初值和每个人的编号,建立单循环链表。

输出形式:建立一个输出函数,将正确的序列输出。

测试数据:

m的初值为31,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?

14 队列及其操作

问题描述:

队列(Queue):也是运算受限的线性表。是一种先进先出(First In First Out ,简称FIFO)的线性表。只允许在表的一端进行插入,而在另一端进行删除。队首(front) :允许进行删除的一端称为队首。队尾(rear) :允许进行插入的一端称为队尾。

队列中没有元素时称为空队列。在空队列中依次加入元素a1, a2, …, an之后,a1是队首元素,an是队尾元素。显然退出队列的次序也只能是a1, a2, …, an ,即队列的修改是依先进先出的原则进行的。

12

软件工程10-2班 《C语言程序设计》课程设计题目

队列的链式存储结构简称为链队列,它是限制仅在表头进行删除操作和表尾进行插入操作的单链表。

需要两类不同的结点:数据元素结点,队列的队首指针和队尾指针的结点,链队的基本形式如下:

空队列

只有一个元素的队列

queue

有n个元素的队列

data 数据元素结点 queue ? ? front rear 指针结点 queue a ? a1 a2 a3 ┅ an ? 实现要求:

⑴ 链队列基本操作的实现:链队列的初始化,生成一个空链队列;链队列的撤消,即删除队列中的所有结点,仅留下指针结点;

⑵ 链队列的入队操作,即在已知队列的队尾插入一个元素e,即修改队尾指针;

⑶ 链队列的出队操作,即返回队首结点的元素值并删除队首结点; ⑷ 设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。

13

软件工程10-2班 《C语言程序设计》课程设计题目

15 背包问题的求解

题目之一: 问题描述:

假设有一个能装入总体积为T的背包和n件体积分别为w1 , w2 , … , wn 的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1 +w2 + … + wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积{1,8,4,3,5,2}时,可找到下列4组解: (1,4,3,2) (1,4,5) (8,2) (3,5,2)。

问题提示:

可利用回溯法的设计思想来解决背包问题。首先将物品排成一列,然后顺序选取物品装入背包,假设已选取了前i 件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品\太大\不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明\刚刚\装入背包的那件物品\不合适\,应将它取出\弃之一边\,继续再从\它之后\的物品中选取,如此重复,直至求得满足条件的解,或者无解。

题目之二: 问题描述:

假设有n件物品,这些物品的重量分别是W1 , W2 , … , Wn,物品的价值分别是V1,V2, …,Vn。求从这n件物品中选取一部分物品的方案,使得所选中的物品的总重量不超过限定的重量W(W<∑Wi, i=1,2,┅,n),但所选中的物品价值之和为最大。

问题提示:

利用递归寻找物品的选择方案。假设前面已有了多种选择的方案,并保留了其中总价值最大的方案于数组option[]中,该方案的总价值保存于变量max_value

14

软件工程10-2班 《C语言程序设计》课程设计题目

中。当前正在考察新方案,其物品选择情况保存于数组eop[]中。假设当前方案已考虑了i-1件物品,现在要考虑第i件物品:当前方案已包含的物品的重量之和为tw;因此,若其余物品都选择是可能的话,本方案所能达到的总价值的期望值设为tv。引入tv是当一旦当前方案的总价值的期望值也小于前面方案的总价值max_value时,继续考察当前方案已无意义,应终止当前方案而去考察下一个方案。

第i件物品的选择有两种可能:

① 物品i被选择。这种可能性仅当包含它不会超过方案总重量的限制才是可行的。选中之后继续递归去考虑其余物品的选择;

② 物品i不被选择。这种可能性仅当不包含物品i也有可能找到价值更大的方案的情况。

16猴子摘桃子

问题描述:

五只猴子一起摘了一堆桃子,因为太累,五只猴子决定先睡一觉再分。不久,其中一只猴子醒来了,它见别的猴子没有醒来,便将一堆桃子平均分成 5 份,结果多了一个,就将多的这个吃了,拿走其中的一份并离开。又不久,第二只猴子醒来了,它不知道有一个同伴已经拿走过桃子,便又将剩下的桃子平均分成 5 份,发现也多了一个,同样吃了这一个,拿走其中的一份。如此类推第3只,第4只,第5 只猴子都是这样分、吃、拿走。问这5只猴子至少摘了多少个桃子?

根据上述描述,编制程序解决问题。

17 字符串的处理

问题描述:

设有若干个字符串,这些字符串存储位置的首地址保存在指针数组中(即字符串用指向字符的指针变量表示)。

15


《C语言程序设计课程设计》题目(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高级无线电装配调试工技能鉴定实操部分(排故、单片机、PLC)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: