- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
24点游戏程序课程设计说明书(C实现)
目 录
1. 基本功能描述 1
2. 设计思路 1
3. 软件设计 3
3.1 设计步骤 3
3.2 界面设计 3
3.3 关键功能的实现 4
4. 结论与心得体会 4
5. 参考文献 5
6. 思考题 5
7. 附录 6
7.1 调试报告 6
7.2 测试结果 6
7.3 关键源代码 9
24点游戏
1. 基本功能描述
(1)游戏开始之前可以进行难度选择(默认为简单),难度选定后点击“发牌”按钮,程序上方会随机显示4张扑克牌,进度条开始工作,用以标识耗时,同时“发牌”按钮名称变为“重新开始”。
(2)在规定时间范围内,用户可以思考并输入算式。输入完成后,点击“验算”按钮,系统将对输入结果进行检验。若结果正确,显示“你真行!”,同时计分栏将根据难度给予不同的分值奖励;若结果不是24,则显示“输入错误!”,计分栏分数不变。
(3)若在规定时间内没有完成输入或没有点击“验算”按钮,则会弹出“时间到!”对话框。
(4)菜单可同样实现“发牌”和“结束”功能,同时还有“帮助”菜单,下面的“关于”项写入程序信息。
(5)完成一次游戏后,若用户想继续游戏,点击“重新开始”即可;若不想继续,点击“退出”按钮即可关闭程序。
2. 设计思路
本程序采用基本对话框,初始化过程中载入位图,位图资源从系统的纸牌游戏资源Card.dll中获得。点击“发牌”调用OnStart函数,完成随机发牌和计时功能,时间长短根据难度的不同,由变量m_length控制。用户完成输入后,点击“验算”调用OnCalc函数(OnCalc函数调用qiuzhi函数对输入的多项式进行计算),完成对输入的正误判断并给出相应提示,计分栏显示分值,每次得分分值大小由m_PScore变量根据难度设置。若想重新开始,点击“重新开始”,重新执行OnStart函数;若想结束,点击“结束”,调用OnOK函数,即可退出游戏。程序流程图如下:
图1 24点游戏程序流程图
3. 软件设计
3.1 设计步骤
1)进入VC++程序后,创建MFC AppWizard(exe)工程,以自己姓名的拼音作为工程名,在应用程序类型中选择基本对话框,完成对话框的创建。
2)在对话框中根据设计要求添加控件,包括按钮,单选按钮,编辑框,进度条,组合框,静态文本和位图。修改其属性,并建立类向导,在相应的地方添加代码。
3)添加菜单,关联到主窗口。
4)对程序进行调试,修改其中的错误,直到实现所要求的各项功能。
3.2 界面设计
表1 界面控件表
控件序号 控件名称 控件类型 属性 对应变量 1 发牌 按钮 IDC_START 2 验算 按钮 IDC_CALC 3 退出 按钮 IDC_OK 4 简单 单选按钮 IDC_Easy 5 中等 单选按钮 IDC_Middle 6 困难 单选按钮 IDC_Hard 7 算式输入框 编辑框 IDC_EDIT1 m_Input 8 得分栏 编辑框 IDC_EDIT2 m_Score 9 耗时标识 进度条 IDC_PROGRESS 10 难度 组框 IDC_STATIC 11 输入算式(以=结束) 静态文本 IDC_STATIC 12 时间进度 静态文本 IDC_STATIC 13 得分 静态文本 IDC_STATIC 14 纸牌1 位图 IDC_Picture1 15 纸牌2 位图 IDC_Picture2 16 纸牌3 位图 IDC_Picture3 17 纸牌4 位图 IDC_Picture4 18 游戏 菜单 19 帮助 菜单 20 发牌 菜单 ID_START 21 验算 菜单 ID_CALC 22 结束 菜单 ID_OK 23 关于 菜单 ID_ABOUT 3.3 关键功能的实现
1)纸牌显示:在BOOL CHukunDlg::OnInitDialog( )中,使用LoadBitmap( )加载纸牌位图,然后在void CHukunDlg::OnStart( )中,通过SetBitmap( )显示纸牌。
2)随机发牌:在void CHukunDlg::OnStart( )中,通过随机函数Number[i]=rand()%13得到随机数,控制纸牌的显示。同时为了使每次运行程序时发牌都不一样,需要调用系统时间做种子,语句srand((unsigned) time(t))来实现SetRange( ),SetStep( )和SetPos( )函数设置进度条, 将控制进度条的函数置于OnTimer( )函数中。每次计时器向窗口发送消息WM_TIMER时会触发函数OnTimer( ),从而使进度条前进。
4)难度变化:三种难度有各自不同的ID值,通过
您可能关注的文档
- -液压控制阀的研究与设计.doc
- c++课程设计-车辆仓库库存管理系统.doc
- PLC自动售货机的设计.doc
- 人体脉搏测量仪设计.doc
- 功率放大器优化设计.doc
- 国产300MW机组热力系统的拟定计算及分析(终稿).doc
- 基于PLC的远程温度控制系统的设计与调试(终稿).doc
- 基于单片机超声波倒车防撞系统的设计.doc
- 通辽发电厂第一期工程电气部分初步设计.doc
- 锅炉汽包给水位系统设计》.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
文档评论(0)