欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计报告约瑟夫环完整版.docx

    • 资源ID:25734093       资源大小:14.25KB        全文页数:9页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计报告约瑟夫环完整版.docx

    数据结构课程设计报告约瑟夫环完整版 * 实践教学 * 兰州理工大学 软件职业技术学院 2022年春季学期 算法与数据结构课程设计 题目:约瑟夫环 专业班级: 姓名: 学号: 指导教师: 成绩: 摘要 约瑟夫环问题是典型的线性表的应用实例,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我们使用MICROSOFT公司的Microsoft Visual C+6.0开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键词:单循环链表;c语言;约瑟夫环; 序言 数据结构是研究数据元素之间的逻辑关系的一门课程,以及数据元素及其关系在计算机中的存储表示和对这些数据所施加的运算。该课程设计的目的是通过课程设计的综合训练,培养分析和编程等实际动手能力,系统掌握数据结构这门课程的主要内容。 本次课程设计的内容是用单循环链表模拟约瑟夫环问题,循环链表是一种首尾相接链表,其特点是无须增加存储容量,仅对表的链接方式稍作改变,使表处理更加灵活,约瑟夫环问题就是用单循环链表处理的一个实际应用。通过这个设计实例,了解单链表和单循环链表的相同与不同之处,进一步加深对链表结构类型及链表操作的理解。 通过该课程设计,能运用所学知识,能上机解决一些实际问题,了解并初步掌握设计、实现较大程序的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。 目录 摘要 (1) 序言 (2) 目录 (3) 正文 (4) 一、问题描述 (4) 二、逻辑设计 (5) 三、详细设计 (7) 四、程序代码 (13) 五、程序调试与测试 (13) 设计总结 (18) 参考文献 (19) 致谢 (20) 附录 (21) 正文 一、问题描述 约瑟夫环问题描述的是:设编号为1,2,n的n(n>0)个人按顺时针方向围坐一圈,每个人持有一正整数密码。开始时选择一个正整数作为报数上限m,从第一个人开始顺时针方向自1起顺序报数,报到m时停止报数,报m的人出圈,将他的密码作为新的m值,从他在顺时针方向上的下一个人起重新从1报数。如此下去,直到所有人都出圈为止。令n最大值为100。要求设计一个程序模拟此过程,求出出圈的编号序列。如下图分析: 二、逻辑设计 1、循环链表抽象数据类型定义 typedef struct LNode/定义单循环链表中节点的结构 int num;/编号 int pwd;/password struct LNode *next;/指向下一结点的指针 LNode; 2、本程序包含一下几个模块 (1)构造结点模块 LNode *createNode(int m_num,int m_pwd) 图2 约瑟夫环原理演示图 LNode *p; p=(LNode *)malloc(sizeof(LNode);/生成一个结点 p->num=m_num;/把实参赋给相应的数据域 p->pwd=m_pwd; p->next=NULL;/指针域为空 return p; (2)创建链表模块 void createList(LNode *ppHead,int n) (3)出队处理模块 void jose(LNode *ppHead,int m_pwd) (4)约瑟夫环说明输出模块 void instruction() (5)菜单模块 void menu() (6)主函数模块 int main() 函数的调用关系图如下: 三、详细设计 1.主函数 图4 主函数数据流程图 根据流程图,主函数程序如下: int main() int n,m,x; LNode *ppHead=NULL; menu(); for(;) printf("n请选择要执行的操作:"); scanf("%d",&x); system("cls"); switch(x) case 1: printf("* *n"); printf("约瑟夫环:n"); printf(" 编号为1,2,3,4,n的n个人按顺时针方向围坐一圈,每人持有一个密n"); printf("码(正整数).一开始任选一个正整数作为报数的上限值m,从第一个人开始n"); printf("按顺时针方向自1开始顺序报数,报到m时停止.报m的人出列,将他的密码n"); printf("m作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如此下去,n"); printf("直到所有人全部出列为止.编程打印出列顺序.n"); printf("* *n"); main(); break; case 2: printf("n请输入总人数n:"); scanf("%d",&n); printf("请输入开始上限数m:"); scanf("%d",&m); createList(&ppHead,n); printf("n"); printf("出队顺序:n"); jose(ppHead,m); printf("n约瑟夫环游戏结束!n"); main(); break; case 0: exit(0); default: system("cls"); printf("n您选择的操作有误,请重新选择.nnn"); main(); return 0; 2.链表的创建 图5 创建链表函数的数据流程图 /*创建单向循环链表ppHead,人数个数为n,并输入每个人的密码值,若建立失败则生成头结点,让cur指向他,若建立成功则插入结点P,cur指向的数据元素为p,后续为"空"的节点,再把P插入循环链表ppHead中*/ 根据流程图,创建链表函数程序如下: void createList(LNode *ppHead,int n) int i,m_pwd; LNode *p,*cur;/cur:浮标指针 for(i=1;i<=n;i+) printf("输入第%d个人的密码:",i); scanf("%d",&m_pwd);/输入持有密码 p=createNode(i,m_pwd);/调用构造结点函数 if(*ppHead=NULL)/如果头结点为空 *ppHead=cur=p;/生成头结点,让cur指向他

    注意事项

    本文(数据结构课程设计报告约瑟夫环完整版.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开