还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
.需求分析1约瑟夫环问题是典型的线性表的应用实例,其开辟主要包括后台数据库的建立和维护以及前端应用程序的开辟两个方面对于前者要求建立起数据一致性和完整性强、数据安全性好的库而对于后者则要求应用程序功能完备,易使用等特点关键词单循环链表;c语言;约瑟夫环;.概要设计2本次课程设计的内容是用单循环链表摹拟约瑟夫环问题,循环链表是一种首尾相接链表,其特点是无须增加存储容量,仅对表的链接方式稍作改变,使表处理更加灵活,约瑟夫环问题就是用单循环链表处理的一个实际应用.问题描述3约瑟夫环问题描述的是设编号为1,2,…,n的nn0个人按顺时针方向围坐一圈,每一个人持有一正整数密码开始时选择一个正整数作为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m时住手报数,报m的人出圈,将他的密码作为新的m值,从他在顺时针方向上的下一个人起重新从1报数如此下去,直到所有人都出圈为止令n最大值为100要求设计一个程序摹拟此过程,求出出圈的编号序列采用类语言定义相关的数据类型
2.c
2.1结点的定义typedef struct Node{int data;int password;structNode*next;Node,*LinkList;
1.各模块的伪码算法31主函数int mainvoidLinkListL;int personNumber,report Value;int anay[MAXPERSONNUMBERJ;personNumber=GetPersonNumber;reportValue=GetFirstCountValue;CreatLinkListL;InitLinkListL,personNumber;GetOutputOrderL,personNumber,reportValue,array;printResultarray,personNumber;return0;I2链表:void CreatLinkListLinkList*L*L=LinkListmallocsizeofNode;if*L==NULL{exitl;void InitLinkListLinkList*L,int personNumberNode*p,*q;int i,a;P=*L;p-data=1;swilcha{case l:p-password=GetPassword1;break;case2:p-password=GetPassword2;break;for i=2;i=personNumber;i++q=LinkListmal locsizeofNode;ifq==NULLexitl;switcha{case l:p-password=GetPassword1;break;case2:p-password=GctPassword2;brcak;q-data=i;p-next=q;P二q;p-next=*L;3输入密码int GetPassword1{int password1;static intcount1=1;if password1MAXPASSWORD||password I0number isnot usefuLpleaseprintfthe intfrom0counll++;return password1;int GetPassword2{int password2;static intcount2=1;password2=count2+2;count2++;return password2;4输出结果:void printRcsultintarray」,int personNumbcrinti;fori=0;ipersonNumbcr;i++1语言程序设计
4.C#includestdio.hInt main{int n=100,s=1,m=10,i,j,s,w,q
[100],p
[100];fori=0;in;i++q[i]=0;sl=s;Fori=l;i+n;i++p[i-l]=i;Fori=n;i=2;i-{sl=sl+m-l%i;Ifsl==sl=i;W=p[sl-1];Forj=sl;ji;j+t U-l]=p[j];P[i-l]=w;Fori=0,j=n-l;in,j=0;i++,j-q[j]=p[i];Fori=0;in;i++plij=q[i];Fori=0;in;i++.函数的调用关系图
5.调试分析和测试结果
6.软件使用说明书7这是一个使用循环链表的经典问题因为要不断地出列,采用链表的存储形式能更好地摹拟出列的情况问题描述采用不带头结点的循环单链表其中,Maxpersonnumber为最大人数值,Maxflrstcountvalu为e最大上限数,Maxpassword为最大个人密码值,Next为指向下一个结点的指针设计总结我的这次数据结构课程设计的题目是《约瑟夫环》,通过对该题目的设计,我加深了对数据结构及存储结构的理解,进一步地理解和掌握了课本中所学的各种数据结构,特别是对单循环链表上基本运算的实现,学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力在此过程我深深地体味到了在自己独立自主地解决问题的同时,也要借助团队的力量!俗话说的好单木不成林!团结就是力量!我们不能脱离群体!一个人的力量惟独通过群体才干发挥出来!在今后的学习和生活中,我要充分赋予其重视!此外,我还意识到自己知识的严重不足!不断地充实自己才是目前的当务之急!三周的课程设计很短暂,但此间的内容是很充实的,在其中我学习到了不少平时巾本中无法学到的东西,积累了经验,锻炼了自己分析问题,解决问题的能力,并学会了如何将所学的各课知识融会,组织起来进行学习,总而言之这三周中我学到不少,收益匪浅。