您所在位置: 网站首页 / 约瑟夫环课程设计实验报告.docx / 文档详情
约瑟夫环课程设计实验报告.docx 立即下载
2025-08-28
约1.6万字
约31页
0
25KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

约瑟夫环课程设计实验报告.docx

约瑟夫环课程设计实验报告.docx

预览

免费试读已结束,剩余 26 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

约瑟夫环课程设计实验报告

第一篇:约瑟夫环课程设计实验报告《数据结构》课程设计报告课程名称:课程设计题目:姓名:院系:专业:年级:学号:指导教师:《数据结构》课程设计joseph环计算机学院2011年12月18日目录课程设计的目的………………………………………………………………22需求分析………………………………………………………………………23课程设计报告内容……………………………………………………………31、概要设计……………………………………………………………………32、详细设计……………………………………………………………………33、调试分析……………………………………………………………………x4、用户手册……………………………………………………………………x5、测试结果……………………………………………………………………66、程序清单……………………………………………………………………74小结…………………………………………………………………………101、课程设计的目的(1)熟练使用C++编写程序,解决实际问题;(2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(3)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(4)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;2、需求分析1、问题描述:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。2、要求:利用不带表头结点的单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。3、测试数据:m的初值为20,n=7,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?输出形式:建立一个输出函数,将正确的输出序列3、课程设计报告内容概要设计:在理解了题目后,我先想到的是我们所学的单链表,利用单链表先建立循环链表进行存贮,建立完循环链表后,我将所要编写的函数分为了两块,一块是经过学过的单链表改编的循环链表的基本操作函数,还有一块是运行约瑟夫环的函数。详细设计:我先建立一个结构体,与单链表一样,只是多了一个存密码的code域structLinkNode{intdata;//顺序intcode;//密码LinkNode*next;};建立一个类LinkList,包含的函数:LinkList();//构造函数voidCreat(constint);//创建循环链表intDelete(LinkNode*);//删除报到数的结点intJoseph(int);//约瑟夫环私有成员是LinkNode*head;//指向第一个结点的指针LinkNode*elem;//同上intlen;//长度我定义了一个elem指针是为了约瑟夫环里运行方便,elem只在约瑟夫环这个函数里用到,其他函数没有特别大的用处。构造函数与书上的没什么大差别,创建循环链表时,要考虑几个问题,一个是题目要求是不带头结点,所以head指针直接指向了第一个结点,我在创建链表时把第一个结点初始化data为1,表明这个结点是第一个结点。具体如下:voidLinkList::Creat(constintnumber)//number为结点个数,也就是参与的人数{if(number==1)//只有一个人的情况{head=elem=newLinkNode;head->data=1;coutcin>>head->code;head->next=head;}else{head=elem=newLinkNode;head->data=1;coutcin>>head->code;LinkNode*q=head;q=head;for(inti=1;i//将每个结点链接上,在链接时填入密码{LinkNode*p=newLinkNode;p->data=i+1;cin>>p->code;q->next=p;q=p;}q->next=head;//构成循环链表}len=number;}在构建约瑟夫环的执行函数时,我首先考虑了递归调用的函数,原本的这个程序的所有的都定为elemtype类型的,虽然编译没出错,但是在连接时发生了错误,在老师的指导下改成了具体的int型。intLinkList::Joseph(intm){if(len>1){LinkNode*q;if(m==1)//在初始报数为1的情况下{q=elem;inta=q->code;//将选中的结点的密码记录在a中elem=ele
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

约瑟夫环课程设计实验报告

文档大小:25KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用