- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013122834_殷晓波
淮 海 工 学 院 计算机工程学院
课程设计报告
设计名称: 数据结构课程设计
选题名称:
姓 名: 学 号:
专业班级: 计算机科学 计算机131
系 (院): 计算机工程学院
设计时间: 2014.12.22~2015.1.4
设计地点: 计算机实验室、教室
指导教师评语:
签名:
年 月 日
1.课程设计目的 1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。
2、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
3提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4训练用系统的观点和软件开发一般规范进行软件开发,3.课程设计说明书 猴子选大王
一 需求分析
1、问题描述: 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
2、基本要求: 输入数据:输入m,n。 m,n 为整数,nm。 输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的 猴子是几号 ,建立一个函数来实现此功能。
3、需求分析:
① 输入数据m,n
② 计算出最终猴子大王的序号。
③ 模拟出整个过程。
④ 找到合适的数据结构处理这个问题。
⑤ 找到正确的方法解决这个问题。
二 概要设计
假如现在m=5,n=2, 即有5只猴子,我们演变这个过程:
第一次:1???2???3???4???5
×?????????? 2号出局?????
第二次:1 2 3 4 5
× × 4号出局
第三次:1 2 3 4 5
× × × 1号出局
第四次:1 2 3 4 5
× × × × 5号出局
King为3号
基本操作
Monkey() //输入需求信息
GetMonkeyKing() //核心函数
GetLeaveNumber() //得到离开的个数
GetNumber() //得到总数
DisplayKing() //输出结果
三 详细设计
Monkey::Monkey()
{
cout多少个猴子参加选拔赛:;
cinMonkeyNumber;
cout报到第几个数离开:;
cinLeaveNumber;;
p=new int[MonkeyNumber];
for(int i=0;iMonkeyNumber;i++)
*(p+i)=i+1; /*为每个猴子编号1-n*/
}
Monkey()函数用于键入猴子数量与第几个离开,并建立基本模型用指针为猴子编号;
int Monkey::GetMonkeyKing()
{
int i,k,m;
i=0;
k=0; /*记录报数的号码*/
m=0; /*记录离开的猴子数目*/
if(MonkeyNumberLeaveNumber)
{
cout输入有误,;
return 0;
}
while(mMonkeyNumber-1) /*若有n-1个猴子离开了此圈则说明圈子里只剩下一个猴子此猴子就是猴王不要再报数了*/
{
if(*(p+i)!=0) k++; /*若这只猴子没有离此圈开就报数*/
if(k==LeaveNumber) /*报的数字若是N这设置其值为0表示此猴子离开此圈*/
{
*(p+i)=0;
k=0; /*报数器从新开始*/
m++; /*离开猴子的数量加1*/
}
i++; /*从下一个猴子报数*/
if(i==MonkeyNu
文档评论(0)