C语言课程设计报告(约瑟夫环)胡存夫(2)

2019-01-12 12:45

沈阳航空航天大学课程设计报告

原理图介绍

第三步: 第二次,1号出列 1 3 1 2 约瑟夫环原理演示图 3 4 5 6 7 7 2 4 8 4 第一步:给第一个人赋初始密码为:20则从它开始向下走20次,到6第四步:第三次,4号出列 最后排序后的密码序列: 第二部:第一次停下的位置,此时6号出列,并将他的值作为新的m值,即:新的m=8;从7好开始继续向下走8次,到18 6 3 1 2 4 4 7 1 2 7 3 4 5 图2.1 约瑟夫环原理演示图

4

沈阳航空航天大学课程设计报告

2.2.1 功能模块图

Case 1:一个简单的输出函数,用于说明约瑟夫环; void instruction() Case 2:建立的约瑟夫环,并输出已建立的约瑟夫环: createList(LNode **ppHead,int n) 输出该约瑟夫环的每个人的出列顺序: jose(LNode *ppHead,int Case 0:default : 输入0,退出 exit(0);

主函数调用函数; main() 菜单函数; void menu() 图2.2 约瑟夫环函数调用关系图

2.2.2 流程图分析

5

沈阳航空航天大学课程设计报告

1.

Main()函createList(); 创建储存玩家密码的循环单链表的方法 从主函数中获取玩家信息n 如果n>0 是 否 退出 创建循环单链表,储存各个玩家密码 创建链表完成返回主函数main() 图2.3 创建链表函数的数据流程图

2.

6

沈阳航空航天大学课程设计报告

Main()函jose();出队函数 出队处理的方法 从循环链表中按初始密码依次扫描,找出对应的玩家序列 输出其持有的密码i=ppHead->pwd; j=ppHead->num; 移动浮标指针 m_pwd=ppHead->pwd; 输出密码后,删除相应的结点,并释放所占的储存空间free(ppHead); ppHead=p->next; 图2.4出队函数的数据流程图

3. void instruction() {

printf(\\\n\

printf(\约瑟夫环:\\n\

printf(\ 编号为1,2,3,4?,n的n个人按顺时针方向围坐一圈,每人持有一个密\\n\

执行完后返回主函数

7

沈阳航空航天大学课程设计报告

printf(\码(正整数).一开始任选一个正整数作为报数的上限值m,从第一个人开始\\n\

printf(\按顺时针方向自1开始顺序报数,报到时停止.报m的人出列,将他的密码\\n\

printf(\作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如此下去,\\n\

printf(\直到所有人全部出列为止.编程打印出列顺序.\\n\

printf(\

return 0; }

4菜单模块 void menu(){

printf(\

*****************************\\n\

printf(\

\\n\

printf(\

[1]约瑟夫环问题的阐述

\\n\

printf(\

[2]按要求求解约瑟夫环

\\n\

printf(\

[0]

退

\\n\

printf(\

使

****************************\\n\

}

8


C语言课程设计报告(约瑟夫环)胡存夫(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:生理试题

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

马上注册会员

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