C语言课程设计报告约瑟夫环胡存夫.docx

上传人:b****5 文档编号:28472323 上传时间:2023-07-14 格式:DOCX 页数:4 大小:17.55KB
下载 相关 举报
C语言课程设计报告约瑟夫环胡存夫.docx_第1页
第1页 / 共4页
C语言课程设计报告约瑟夫环胡存夫.docx_第2页
第2页 / 共4页
C语言课程设计报告约瑟夫环胡存夫.docx_第3页
第3页 / 共4页
C语言课程设计报告约瑟夫环胡存夫.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计报告约瑟夫环胡存夫.docx

《C语言课程设计报告约瑟夫环胡存夫.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告约瑟夫环胡存夫.docx(4页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告约瑟夫环胡存夫.docx

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

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

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

C语言课程设计  课程设计题目:

约瑟夫环      院:

计算机学院  专  业:

计算机科学与技术  班  级:

3410301  学  号:

2013040103023  姓  名:

胡存夫  指导教师:

丁一军  沈阳航空航天大学课程设计报告      目  录    1课程设计介绍............................................................................................................1课程设计内容及要求............................................................................................1系统需求................................................................................................................12课程设计原理............................................................................................................3课设题目粗略分析................................................................................................3功能模块图.....................................................................................................5流程图分析.....................................................................................................53调试与分析..............................................................................................................10调试过程..............................................................................................................10

      沈阳航空航天大学课程设计报告      原理图介绍  第三步:

第二次,1号出列1312约瑟夫环原理演示图3456772484第一步:

给第一个人赋初始密码为:

20则从它开始向下走20次,到6第四步:

第三次,4号出列最后排序后的密码序列:

第二部:

第一次停下的位置,此时6号出列,并将他的值作为新的m值,即:

新的m=8;从7好开始继续向下走8次,到186312447127345图约瑟夫环原理演示图    4    沈阳航空航天大学课程设计报告        功能模块图  Case1:

一个简单的输出函数,用于说明约瑟夫环;voidinstruction()Case2:

建立的约瑟夫环,并输出已建立的约瑟夫环:

createList(LNode**ppHead,intn)输出该约瑟夫环的每个人的出列顺序:

jose(LNode*ppHead,intCase0:

default:

输入0,退出exit(0);  主函数调用函数;main()菜单函数;voidmenu()图约瑟夫环函数调用关系图  流程图分析        5  沈阳航空航天大学课程设计报告      1.  Main()函createList;创建储存玩家密码的循环单链表的方法从主函数中获取玩家信息n如果n>0是否退出创建循环单链表,储存各个玩家密码创建链表完成返回主函数main()图创建链表函数的数据流程图  2.    6  沈阳航空航天大学课程设计报告      Main()函jose();出队函数出队处理的方法从循环链表中按初始密码依次扫描,找出对应的玩家序列输出其持有的密码i=ppHead->pwd;j=ppHead->num;移动浮标指针m_pwd=ppHead->pwd;输出密码后,删除相应的结点,并释放所占的储存空间free(ppHead);ppHead=p->next;图出队函数的数据流程图  3.voidinstruction(){    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(\  return0;}  4菜单模块voidmenu(){  printf(\  约  瑟  夫  环  *****************************\\n\  printf(\            \\n\  printf(\    [1]约瑟夫环问题的阐述    \\n\  printf(\    [2]按要求求解约瑟夫环    \\n\  printf(\                [0]  退  出    \\n\  printf(\  欢  迎  使  用  !

  ****************************\\n\  }    8

  

      沈阳航空航天大学课程设计报告        5.  9  沈阳航空航天大学课程设计报告      Main()开Menu()功能菜单选择要执行的操作功能1:

约瑟夫环说明功能2:

按要求求解约瑟夫环输入总人数n输入开始上线数:

功能3:

退出系统输入每个玩家的密码调用:

createList(&ppHead,n);jose(ppHead,m);函数求解所需的密码序列图主函数数据流程图  程序运行完,自动返回到功能菜单    3调试与分析  调试过程  在调试程序是主要遇到一下几类问题:

  这是一个使用循环链表的经典问题。

本程序开始运行界面如下:

    10  沈阳航空航天大学课程设计报告        图约瑟夫环开始运行选择1进入约瑟夫环问题阐述。

界面      11  图约瑟夫环问题阐述  沈阳航空航天大学课程设计报告      ①选择2,输入下列数据测试:

请输入总人数n:

7请输入开始上限数m:

20;  请依次输入每个人的密码:

3172484出队顺序:

6147235      12    图约瑟夫环测试1  沈阳航空航天大学课程设计报告      ②继续选择2,输入下列数据测试:

请输入总人数n:

5请输入开始上限数m:

30  请依次输入每个人的密码:

34567出队顺序:

53124        13  图约瑟夫环测试2

  

      沈阳航空航天大学课程设计报告        ③继续选择2,输入下列数据测试:

请输入总人数n:

8请输入开始上限数m:

14  请依次输入每个人的密码:

345678910出队顺序:

67283514      14  沈阳航空航天大学课程设计报告        测试完成,选择0退出。

.  图约瑟夫环测试3    15  沈阳航空航天大学课程设计报告        

      沈阳航空航天大学课程设计报告      }  printf(\最后一个出列是%d号,密码是:

%d\\n\free(ppHead);//释放头结点  voidinstruction(){    printf(\\\n\  printf(\约瑟夫环:

\\n\  printf(\编号为1,2,3,4?

n的n个人按顺时针方向围坐一圈,每人持有一个密\\n\  printf(\码(正整数).一开始任选一个正整数作为报数的上限值m,从第一个人开始\\n\  printf(\按顺时针方向自1开始顺序报数,报到时停止.报m的人出列,将他的密码\\n\  printf(\作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如此下去,\\n\  printf(\直到所有人全部出列为止.编程打印出列顺序.\\n\  printf(\  return0;}  voidmenu(){  printf(\  约  瑟  夫  环  *****************************\\n\  printf(\            \\n\  printf(\    [1]约瑟夫环问题的阐述    \\n\    19  沈阳航空航天大学课程设计报告      printf(\  [2]按要求求解约瑟夫环    \\n\  printf(\                [0]  退  出    \\n\  printf(\  欢  迎  使  用  !

  ****************************\\n\}  /*主函数模块*/intmain(){    intn,m,x;  LNode*ppHead=NULL;menu();{  printf(\请选择要执行的操作:

\scanf(\system(\switch(x){  case1:

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

\\n\  printf(\编号为1,2,3,4?

n的n个人按顺时针方向围坐一圈,每人持有一个密\\n\  printf(\码(正整数).一开始任选一个正整数作为报数的上限值m,从第一个人开始\\n\  printf(\按顺时针方向自1开始顺序报数,报到m时停止.报m的人出列,将他的密码\\n\    20  沈阳航空航天大学课程设计报告      printf(\作为新的m值,从他在顺时针方向上的下一人开始重新从1报数,如此下去,\\n\  printf(\直到所有人全部出列为止.编程打印出列顺序.\\n\    printf(\\\n\  main();      break;  case2:

  printf(\请输入总人数n:

\  scanf(\  printf(\请输入开始上限数m:

\        scanf(\  createList(&ppHead,n);  printf(\    printf(\出队顺序:

\\n\  jose(ppHead,m);  printf(\约瑟夫环游戏结束!

\\n\    main();    break;  case0:

  }  exit(0);  default:

  system(\  printf(\您选择的操作有误,请重新选择...\\n\\n\\n\main();    21  沈阳航空航天大学课程设计报告      }}  }return0;    22  沈阳航空航天大学课程设计报告  课程设计总结:

本次课程设计涉及到的范围很广,让本人能够比较系统的对C语言和数据结构进行一次整理和复习。

同时有了很多的体会和经验。

巩固了以前学过的C语言的知识,在这次课程设计中我体会到C语言超强的逻辑性,能够熟练使用VC++的编译环境,也对这两门课程有了新的认识,他们既有联系,又相互区别,在编写程序过程中要灵活应用对数据结构的理解有待加强,算法的知识面也有待于提高。

不同的人会选择不同的算法,所以即使同样的程序,不同的人必然会设计出不同的方案,所以以后的学习生活中,一定要广泛涉猎,掌握更多更好的解决问题的方法。

此次设计让我意识到程序设计是脑力劳动和体力劳动相结合的,没有平时基础的训练是不会写出高效的算法。

此次课程设计时间虽短,但却课设的过程是短暂的,但我所收获的是永恒的。

它让我尝到了学习的快乐,成功的喜悦,更让我懂得了不少做人的道理。

要完成一项任务或把东西学好就必须有足够的信心,持久的耐心,有面对困难无所畏惧的精神,这对我日后的学习和生活产生了深远一个影响。

指导教师评语:

  指导教师(签字):

    年月日课程设计成绩    23

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1