《汉诺塔演示程序实验报告.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文档。上传文档
查看更多
《汉诺塔演示程序实验报告

课 程 设 计 报 告 课程名称: 高级语言课程设计 课程代码: 设计内容: 汉诺塔演示系统 专 业: 计算机科学与技术 2012 年 12月 16日 目 录 1.课程设计目的 3 1.1 内容简介 3 1.2 功能实现 3 2.课程设计题目描述和要求 3 2.1 描述 3 2.2 要求 3 3.课程设计报告内容 3 3.1 内容概要 3 3.2 功能实现 3 3.3 程序流程图 3 3.4程序截图 3 3.5详细内部设计介绍 4.总结 5小组分工情况 1.课程设计目的 随着社会的进步我们用来娱乐的游戏世界也越来越丰富,越来越复杂。本程序的汉诺塔游戏不但包括了游戏最基本的功能,而且还能培养用户的逻辑思维能力,本游戏实现的是一个自动演示搬移汉诺塔的功能,此功能能够帮助初次接触此游戏的用户了解此游戏的玩法。 2.课程设计题目描述和要求 2.1 描述 本程序是一个能够实现汉诺塔搬移演示功能的MFC程序 2.2要求 实现用图形界面,画出三个杆和最多七个矩形盘子,形成三个塔,分别为A、B、C塔,同时盘子数目可以人工进行设定,让程序自动的完成把A塔上的盘子搬移到C塔上的过程,实现自动演示。 3.课程设计报告内容 3.1内容概要 有三个表示塔的对象,分别命名为A、B、C塔,A上有若干个(不超过七个)盘子,盘子大小不等,并按照大小顺序依次摆放在A塔上,大盘在下小盘在上,程序实现自动演示,把A塔上的盘子依次全部搬移到C塔上,要求每次只能移动一个盘子并且在任何时候不允许大盘子在小盘子之上,并且在演示过程中可以实现暂停功能。 3.2功能实现 设计图形用户界面的MFC程序,用户可以通过单击汉诺塔界面中提供的按钮,进行盘子数量的设置并且单击开始按钮让程序自动演示A塔上盘子移动到C塔上的过程,并且在程序运行过程中可随时单机程序界面中提供的按钮实现游戏暂停,重新开始游戏等功能。 3.3程序流程图 3.4程序截图 1、开始游戏: 为了更好地人机交互,在执行游戏时会弹出一个欢迎的对话框。 功能图: 相关代码:int CMyDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here MessageBox(欢迎进入游戏!); return 0; } 2.游戏主界面 2.开始演示 相关代码: void CMyDlg::OnButton1() { if(0 == number) { MessageBox(请选择盘子数!); return ; } SetDishNumber(number); MoveDish(number, 0, 2); SetTimer(1015, 400, NULL); } 暂停演示: 相关代码:void CMyDlg::OnButton3() { // TODO: Add your control notification handler code here KillTimer(1015); MessageBox(游戏暂停); SetTimer(1015, 400, NULL); } 演示继续: 退出游戏:弹出欢迎试对话框 功能图: 相关代码: void CMyDlg::OnDestroy() { CDialog::OnDestroy(); // TODO: Add your message handler code here MessageBox(游戏已关闭!); } 3.5 详细内部设计介绍 本汉诺塔演示系统采用c++编程,使用面向对象的程序设计思想来编写的。主要采用了数据结构中的递归和栈,来实现盘子的移动。主要包含CMyDlg类,CMyDlg类中主要包含了MoveDish、Button(1、2、3等)、Create、Destroy、OnTimer、SetDishNumber、ShowBg等函数。其中MoveDish函数通过栈的递归实现了盘子的移动;多个Button函数与游戏运行界面中的相应功能按钮匹配;Create和Destroy函数是为了更好地实现人机交互而添加的游戏开始运行和退出结束时弹出的对话框;OnTimer函数负责每个盘子移动的速度以及进行中断暂停操作时的回调;SetDishNu

文档评论(0)

saity3 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档