- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
舞会课程设计1
一.实验目的
1.掌握队列的数据结构的特点。
2.熟练掌握在两种存储结构上实现栈的基本运算。
3.学会用队列的知识去解决实际问题。
4.掌握和理解本实验中出现的一些基本的C语言语句。
5.体会算法在程序设计中的重要性。
二.实验内容
某班级举办周末交谊舞会,舞会规则为:
1. 在舞会开始时,按照到来的先后顺序,男生、女生各排成一对等候。
2. 每支舞曲开始时,排在最前面的男生可以邀请排在最前面的女生跳舞。但当男生身高低于女生或高于女生25cm时,女生就会拒绝男生的邀请。当男生第1次被拒绝后,则男生将会重新去排队;而当男生连续2次遭到拒绝后,则离开舞会。当女生第1次拒绝邀请时,女生并不离开队伍重新去排队;而若女生连续3次拒绝邀请时,则离开舞会。
3. 每支舞曲完毕,所有正在跳舞的同学则按照进入舞池的顺序重新进行排队,等候下一支舞曲。
4. 舞会结束后,跳的舞曲最多且被拒绝次数最少的男生则为男生中的优胜者,同样跳的舞曲最多且拒绝男生次数最少的女生则为女生中的优胜者。
编程模拟此舞会过程,并求出最终舞会的男、女优胜者。
三.实验基本要求
本实验要求在电脑上安装有VC++6.0环境下运行此程序,编程模拟此舞会过程,要求建立一个男生等待队列、女生等待队列、还有一个正在跳舞的队列,舞伴配对成功进入舞池;则男生在先,女生在后依次入队;舞曲结束每对舞伴中男生退出舞池,出队后重新入队;舞曲结束每对舞伴中女生退出舞池,出队后重新入队列。
四.算法设计思想
根据舞会规则,由此可知是一个排队等待问题,应用队列来解决。因为男女生各有一个等待队伍,所以用队列boyQ表示男生等待队伍、队列girlQ表示女生等待队伍,还有一个正在跳舞的等待队列danceQ。队列boyQ和girlQ在舞会开始时按照到来的先后顺序而建立,作为一个模拟程序可采用随机函数来生成每位学生的信息。而当每支舞曲开始及结束后,这两个等待队列将随之变化。若男生邀请女生成功,出队进入舞池;一次被拒绝,重新入队等待;
连续两次被拒绝,出队离开舞会;舞会开始及舞曲结束时,入队;如果女生不拒绝邀请,出队进入舞池;一次拒绝邀请,不出队等待被邀请;连续两次拒绝,重新入队等待;连续三次拒绝,出队离开舞会;舞会开始及舞曲结束时,入队;还有舞会配对成功进入舞池,则男生在先,女生在后依次入队;舞曲结束每对舞伴中退出舞池,出队后重新入队列boyQ;
舞曲结束每对舞伴中女生退出舞池,出队后重新入队列girlQ.
五.算法流程图
六.算法源代码
#includestdio.h
#includestdlib.h
#includetime.h
typedef struct{
int id; //编号
int height; //身高
int refuse; //男生的邀请被拒绝次数或女生拒绝邀请的连续次数
int totalRefuse; //拒绝或被拒绝的总次数
int finished; //完成的跳舞次数
}stuType; //学生信息类型
typedef int QElemType; //队列中元素类型
#include s1.h
CirQueue boyQ,girlQ,danceQ; //分别为男生等待队列、女生等待队列、正在跳舞的队列
stuType *stu; //动态数组,存储所有学生信息
void partyStart(int boyNum,int girlNum) //舞会开始生成个男生和个女生信息,并按顺序插入相应队列
{
int i;
time_t t;
stu=(stuType *)malloc((boyNum+girlNum)*sizeof(stuType)); //分配内存空间
InitCirQueue(boyQ,boyNum+1); //男生等待队列初始化
InitCirQueue(girlQ,girlNum+1); //女生等待队列初始化
InitCirQueue(danceQ,boyNum+girlNum+1); //正在舞池跳舞的学生队列初始化
srand((unsigned int)time(t)); //设置随机种子
for(i=0;iboyNum;i++)
{
stu[i].id=i+1;
stu[i].height=165+rand()%30; //随机生成男生身高
stu[i].refuse=stu[i].totalRefuse=0;
stu[i].finished=0;
inSertQueue(boyQ,i); //将该男生插入队列boyQ
}
for(i=boyNum;iboyNum+girlNum;i++)
{
stu[i].id=i-boyNum+1;
stu[i].height
您可能关注的文档
- boundaries(BW, conn, dir)冈萨雷斯图像处理源代码.doc
- linux内核部件分析(九)——设备驱动模型之device-driver.docx
- 西安交通大学统计实验报告.docx
- repeater简单应用.docx
- 水手英语练习题.doc
- 中山医硕士试题(95内科).doc
- 五星村民俗体验场馆项目.doc
- 户外拓展培训相关情况介绍.doc
- 消防部售后服务人员岗位责任新.doc
- 西工大CFD 答案.docx
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
文档评论(0)