c语言课程设计-约瑟夫问题.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言课程设计-约瑟夫问题

约瑟夫问题 一 目的 通过课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。 学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 二 需求分析 1、约瑟夫问题的算法设计 使用链表构成一个环形链。结构中有三个成员,其一为指向下一个人的指针,以构成环形的链;其二为该人是否被仍下海的标记,为0表示还在船上。其三为 数字(1~30)从第一个人开始对尚未仍下海的人进行计数,每数到9时,将结构中的标记改为1,表示该人已被仍下海了。这样循环计数直到15个人被扔下海时为止。数据可以由用户输入。 2、功能要求与简要说明 使用菜单操作,提示用户相应的操作;有一定的辅助功能,例:注册,密码验证,在屏幕上查看保存到文件中的结果。 用户输入的数据及结果保存到outfile.txt文件中(或自建文件)。 三 概要设计 1、可满足输入与输出的形式与限制 本程序现只支持英文,只是字符输入、输出及整数,本程序可以要求第一次使用该程序的用户在开始游戏前必须进行简单的输入信息(姓名字符形式)及由用户自己设定的密码,该信息将保存到名为mima.dat(属于密文)文件中,下次该用户进入游戏时,将可直接输入信息(姓名及对应密码)可进入游戏(约瑟夫问题),游戏中用户输入的有效信息及对应的结果将保存到名为outfile.txt的文件中,用户可查询游戏结果,可在操作界面查看从outfile.txt文件中输出到屏幕的结果。 运行时,机器会给用户提示,并输出到屏幕上来提示用户操作,若用户输入格式不正确,程序会做出判断,使用户重新输入,在密码注册与验证部分(要求用户输入字符在0~10之内),用户输错就会退出;在游戏部分,用户自测时(数字限制在100个数之内),若超出范围,将会提示用户重新输入。其他地方的输入相似,都有此类功能。方便用户。 2、所达到的功能及测试计划 所实现的功能有用户初次进入要求注册;进入游戏前要密码信息(对使用有了限制);约瑟夫问题游戏由用户自己设定船上人总数(例:30 最优为偶数,若为奇数则扔下船的人数为(n-1)/2,n为总人数),及所数的号码(例:9),用户可直接在操作界面来检查以前游戏的结果(用户未删除的情况);outfile.txt为追加式写入,用户在操作界面可删除文件中的内容,方便使用。1.游戏的辅助功能:用户注册后可通过输入密码进入游戏,用户也可不注册进入游戏,但略有不同的是注册的用户游戏中,游戏结果保存到文件中时会加上用户的注册名,方便了用户的结果查看,但为了满足使用的方便也可直接进入游戏。还有在操作界面查看结果和删除结果的作用。2.约瑟夫游戏中的功能:用户可在操作界面自己创建文件;进入游戏用户可按自己的意愿,确定人数和号码;用户还可自测(输入下海人的号码),程序判断并打分或者直接运行出结果;根据用户自己的要求来结束或继续。3.退出游戏:用户可在菜单处直接来退出游戏,或者在子操作结束后,不回到菜单,直接退出。最后关于程序的测试,可以多次测试,并且根据实际情况和用户使用的方便角度来测试,在运行正常并能一定程度的容错,在进一步优化。 3、所用数据类型的定义及含义 此程序运用了整形、实型、字符型、指针、数组、结构体。下面是全局(举例): struct man { int num; int state; struct man *next; }; /*结构体数据,用来连接链表*/ struct person { char name[20]; char mima[5]; }; /*结构体数据,用来信息注册*/ FILE *fpfile; /*指向文件的指针*/ char tempname[20]=,tempmima[5]=; /*数组,用来进入游戏保存用户输入

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档