C++算法之石头剪子布.doc

上传人:仙人指路1688 文档编号:2915225 上传时间:2023-03-03 格式:DOC 页数:19 大小:896.50KB
返回 下载 相关 举报
C++算法之石头剪子布.doc_第1页
第1页 / 共19页
C++算法之石头剪子布.doc_第2页
第2页 / 共19页
C++算法之石头剪子布.doc_第3页
第3页 / 共19页
C++算法之石头剪子布.doc_第4页
第4页 / 共19页
C++算法之石头剪子布.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C++算法之石头剪子布.doc》由会员分享,可在线阅读,更多相关《C++算法之石头剪子布.doc(19页珍藏版)》请在三一办公上搜索。

1、学校代码: 10128学 号: 课程设计说明书题 目: 石头剪子布游戏的C+程序设计学生姓名: 学 院: 理学院班 级: 信计08-2指导教师: 田 毅 二一二年 一 月 四 日内蒙古工业大学课程设计(论文)任务书课程名称: 面向对象的程序设计 学院: 理学院 班级: 信计08-2 学生姓名: _ 学号: 指导教师: 田 毅 一、题目石头剪子布游戏的C+程序设计二、目的与意义面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等) l 采用面

2、向对象程序设计语言C+进行程序开发l 选用一种C+语言的开发环境设计界面及程序l 在开发环境下,进行程序的运行及调试四、工作内容、进度安排 主要内容使用C+程序设计语言及其开发环境利用文件处理方式实现石头剪子布游戏的编写和调试。工作进度安排第一天:熟悉课程设计题目及具体要求,认识所要解决的问题,基本确定选择的开发环境。第二天到第四天:拿出解决问题的初步方案,根据课题给出的题目,确定题目的解决方式及步骤。第五天到第七天:设计系统的功能模块,确定模块的功能,及模块之间的关系。第八天到第十天:分析模块,确定需要的界面、结构,完成软件的整体框架,在开发环境下,编程实现所开发的系统。第十一天到第十二天:

3、综合调试,去除软件中的错误,美化应用程序的界面。第十三天和第十五天:撰写课程设计报告。五、主要参考文献1郑莉,董渊,何江舟.C+语言程序设计.第4版.北京:清华大学出版.2010.72吴乃陵, 况迎辉.C+课程设计. 北京:高等教育出版社,20063谢昕,刘觉夫,王更生.C+程序设计.北京:北京邮电大学出版社,2008审核意见系(教研室)主任(签字) 指导教师下达时间 2011 年 12月 19日指导教师签字:_摘要本文主要介绍利用C+高级语言实现石头剪子布游戏的编辑和运行。通过Microsoft Visual C+ 6.0软件进行石头剪子布游戏程序的编译,确定模块之间关系及各模块功能,设计一

4、个简单的操作界面实现石头剪子布游戏,。石头剪子布游戏系统通过C+高级语言进行编程,并设计了简单明了的操作界面,为用户提供更好的操作体验,更直接而充分的掌握本程序的一些应用和功能。通过直观的方式,最终实现C+设计的应用程序石头剪子布游戏。本次课设所做程序虽然只是一个简单的C+手石头剪子布游戏程序,但是基本的应用功能都已具备,可以更好的用在实际应用中。关键词:C+高级语言;Microsoft Visual C+ 6.0;石头剪子布游戏 目录引言1第一章 石头剪子布游戏简介21.1 选题背景21.2 开发环境2第二章 游戏分析与设计42.1游戏功能分析42.1.1功能需求分析42.1.2关键技术42

5、.1.3数据流程图52.2详细设计62.2.1 设计思路62.2.2 功能设计7第三章 系统运行结果与总结113.1运行结果113.2总结13参考文献15引言“剪刀石头布”是人们喜欢的一种娱乐游戏,近来,随着计算机的快速发展,以计算机作为对战平台,各种游戏如雨后春笋般纷纷冒出,使得那些爱好娱乐,又常常苦于没有对手的爱好者们能随时过足娱乐之瘾,而且这类软件个个水平颇高,大有与人脑分庭抗礼之势。当我们与电脑对战对时,您知道这些软件是怎样像人脑一样进行思考的吗?总的来说,要让电脑知道该怎么选择,就要根据随机状态,产生每一种随即可能,这便是最基本的算法。C+语言是一种面向对象的语言,尽管在当前,可视化

6、语言发展迅速,普及很快,但C+语言作为一种基础的语言,它的有时依然存在,甚至有时它是不可替代的,特别是和硬件接口技术相联系的软件。石头剪子布游戏是一种简单大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱。本文使用C+语言,设计了剪刀石头布游戏软件,在人机对弈时,使电脑具有较高的智商。本游戏是以C+语言作为开发工具,采用搜索算法设计最优落子点开发的游戏软件。本文详细地介绍了石头剪刀布游戏软件设计的全过程,描述了该软件的功能。第一章 石头剪子布游戏简介1.1 选题背景随着计算机技术的飞速发展,其应用方面已渗透到社会生活的各个领域。它已经成为我们学习和工作中的重要工具,也是人们娱乐休闲的主要方

7、式。通过一个学期的C+语言课程的学习,根据学校课程设计的学习安排,要进行三周的C+语言程序设计,自己动手编写游戏或系统。根据老师布置的设计任务书,根据我自己的能力及意愿,我选择了设计一个小游戏:石头剪子布游戏。石头剪子布游戏是一款简单的游戏,由两个人对抗,每人同时选择一种状态,状态分为三种:石头、剪子和布。其中,布大于石头,石头大于剪子,剪子又能大于布。若两个人的状态相同,则是为平局,否则按上述规则分胜负。游戏要求,两人必须同时出示状态,且状态唯一,不能修改。此次课程设计是人机对弈,一方为用户,一方为计算机,计算机随机产生状态,不违背规则。实验准备:做游戏前,首先,详细参看了面向对象的程序设计

8、,理解相关函数的用法和作用;另外,上网查询了很多相关资料,还找了很多相关的游戏设计的代码,都详细的参看了一遍,加深了对C+语言以及相关内容进一步理解。根据实际情况设计出一款比较理想的小游戏。本论文将具体介绍手石头剪子布游戏程序的设计、编译、运行。1.2开发环境石头剪子布游戏的开发环境使用的是Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序

9、员进行软件开发的首选工具。虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。此次程设计题目是手机名片系统,通过CS模式,在界面中输入信息,对信息直接查询、添加、修改及删除操作。Visual C+6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx

10、.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。但是,他仍旧存在着缺点,由于C+是由C语言发展起来的,也支持C语言的编译。最大的缺点是对于模版的支持比较差。现在最新补丁为SP6,推荐安装,否则易出现编译时假死状态。仅支持Windows操作系统。目前发现与windows 7兼容性不好,安装成功后可能会出现无法打开.cpp文件的现象。第二章 游戏分析与设计2.1游戏功能分析随着人们生活水平的不断提高,和科学技术的日益进步。生活中我们总会需要记录一些人的联系方式,包括一些朋友、同学、老师、亲人甚至一些总要客户等等。而传统的纸质

11、名片显然已经不适应现在的生活方式和节奏。而一些重要的联系方式又不能丢掉,所以通过C+文件处理方式来编程的手机名片能够实现基本的电话簿操作和应用。即简单易用,又不失良好的用户操作界面,通过本次的课程设计,希望可以给生活中忙碌的人们带来一些帮助。2.1.1 功能需求分析本系统定位于简单的“石头剪刀布”小应用程序,暂时只考虑单机环境下的实现;操作系统选择目前常用的Windows xp或者Windows 7系统 。游戏系统采用人机交互模式,用户可以通过相应的操作完成游戏。本系统的界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。本系统面向所有人群,凡是懂得计算机基本操作的人都可以对本程序进行应

12、用。简单明了的操作界面能够让用户迅速的适应并掌握。本系统操作过程:输入数据;计算机随机输入数据;存储数据:存储计算机的输入数据;存储用户的合法输入数据;判断用户的输赢:根据用户的选择,比较用户与计算机的胜负;计算用户的胜负率:根据计算机的记录,计算用户的胜负次数的总和及概率。2.1.2 关键技术本程序是一个简单游戏的应用程序,程序设计结构如表2-1中所示,具有一定的娱乐功能,界面简单,操作简便。如图2.1为石头剪刀布游戏系统的数据流程图,从图中可以清晰地看到系统的功能模块及整体结构。游戏功能的关键技术:熟练掌握并运用C+语言源代码;熟练掌握并运用C+中的重要函数;掌握循环的函数的具体运用;能于

13、C+环境中运行游戏;2.1.3 数据流程图主 菜 单输 入计 算输 出图2.1 游戏系统数 据处 理数 据 比 较数 据 输 入数 据 输 出图2.2 数据处理图图2.3 数据流程图2.2详细设计详细设计是整个程序设计的关键,为模块内的数据结构进行设计,能满足用户对数据的处理要求;是对现实世界的具体分析。它易于编辑者的理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是程序设计成功的关键。其次它易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。2.2.1 设计思路用户输入:计算机随机输入选择,用户输入选择,并将数据储存。计算:根据计算机和用户的选择,计算大小,并判断输

14、赢,计算用户的胜负率,并储存。输出:根据用户的输入,将用户的游戏结果显示在屏幕上。如表2-1所示,将系统的功能模块已经明晰的列出。表2-1 系统设计思路操 作 说 明用户输入用户输入选择计算计算大小,并判断输赢输出将游戏结果显示在屏幕上在系统中,电脑要完成绝大部的功能。在玩家下完了之后,电脑要判断玩家是否获胜、是否电脑获胜。石头剪刀布游戏中包含了三条关键信息:锤子、剪刀、布,如表2-2所示。表2-2 输入信息标 号内 容c锤子j剪刀b布2.2.2 功能设计石头剪子布游戏是一款简单的游戏,由两个人对抗,本程序一方为用户,一方为计算机,计算机随机产生状态,状态分为三种:石头、剪子和布。其中,布大于

15、石头,石头大于剪子,剪子又能大于布。若两方的状态相同,则是为平局,否则按上述规则分胜负。具体功能设计实现代码:#include #include #include void main() char r; /* 用来存放用户的选择 */char dn; /* 用来存放电脑的选择 */int s,q; double p,y,n,f,z; p=0; y=0; n=0; printf(出锤子输入cn出剪刀输入jn出布输入bn计算您的得分输入fn可以一次输入许多 会一次性出很多结果哦n请输入您的选择:n); srand(time(0); /* 随机数生成器,设置rand种子值,用来获取计算机的输入 */

16、 enum布,剪刀,石头,结束dn,r;do do s=rand()%3; switch(s) case 0 : dn=c;break; case 1 : dn=j;break; case 2 : dn=b;break; do scanf(%c,&r); /* 用来获取用户的合法输入 */while(r!=c&r!=b&r!=j&r!=f); if(r=f) z=y+n+p; f=100/z*(p/2.0+y); /p 平局 y 赢局 n 输局 z 总共局数printf(一共比了%g场n赢了%g场n输了%g场n平局%g场n,z,y,n,p); y=100/z*y; n=100/z*n; p=1

17、00/z*p; printf(您的胜率为%.3g%n您的败率为%.3g%n您平局率为%.3g%n您的综合分数为%.3gn对您成绩的评语:,y,n,p,f); if(f20&f40&f60&f80&f=100) printf(哇!您的运气真的好到家了 你太帅了GG 你太可爱了MM!nn); printf(n随便输入几个字符按回车关闭程序n); scanf(%d,&q); if(dn=r) printf(平手,继续n); p+; else switch(dn) case c : if(r=j) printf(电脑WIN! 锤子:剪刀n);n+; else printf(人WIN! 锤子:布n);y

18、+; break; case j : if(r=b) printf(电脑WIN! 剪刀:布n);n+; else printf(人WIN! 剪刀:锤子n);y+; break; case b : if(r=c) printf(人WIN! 剪刀:锤子n);y+; else printf(电脑WIN! 布:锤子n);n+; break; while(r=dn); while(r=j|r=b|r=c); 第三章 系统运行结果与总结3.1运行结果运行游戏时,进行相应的操作,其显示结果如下所示。图3.1 输入锤子图3.2 多次输入石头剪刀布图3.3 显示比赛结果(1)图3.4 显示比赛结果(2)图3.5

19、 显示比赛结果(3)3.2总结此程序设计的实验是对我进入大学以来学习程序设计语言成果的一个检验。自己动手,自己发现和解决问题,学会了独立,自主的思考,发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C+的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。当我选择编写小游戏“石头剪子布”这个题目时,一开始想运用大量函数及循环来完成,但是在慢慢琢磨之后,觉得这个程序可以简化,于是改变了编程思路。当然还有不少文件的读

20、写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的选择循环,因此对于循环的控制要十分小心。还有一点体会就是,书上和老师教的内容是有限的,我们需要不断地靠自己去学习,向他人请教,学会利用网络等了解知识的平台去学习和掌握更多的知识,这样我们才能编出更好的C+程序。总体来说,这次C+语言程序设计实验还是比较成功的,虽然最终程序还存在一些不足,但能取得这样的成绩我还是比较高兴的。最后,要感谢学校为我们提供这次实验机会,也要感谢老师的教导和其他同学对我的帮助与支持。参考文献1郑莉,董渊,何江舟.C+语言程序设计M.第4版.北京:清华大学出版.2010年.7月. 2吴乃陵, 况迎辉.C+课程设计M. 北京:高等教育出版社,2006年.3谢昕,刘觉夫,王更生.C+程序设计M.北京:北京邮电大学出版社,2008年.4韦朴,陈泰生. Visual C+通用范例开发金典M.北京:电子工业出版社.2008年.5冷金麟. C+程序设计M.上海:上海交通大学出版社.2008年

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号