C++算法之石头剪子布.doc_第1页
C++算法之石头剪子布.doc_第2页
C++算法之石头剪子布.doc_第3页
C++算法之石头剪子布.doc_第4页
C++算法之石头剪子布.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书课程设计说明书 题题 目目: 石石头头剪剪子子布布游游戏戏的的 c+c+程序设计程序设计 学学生生姓姓名名 : 学学 院院 : 理理学学院院 班班 级级: 信信计计 08-2 指指导导教教师师 : 田田 毅毅 二一二年 一 月 四 日 学校代码:学校代码: 1012810128 学学 号:号: 内蒙古工业大学课程设计(论文)任务书内蒙古工业大学课程设计(论文)任务书 课程名称:课程名称: 面向对象的程序设计面向对象的程序设计 学院:学院: 理学院理学院 班级:班级: 信计信计0 08 8-2-2 学生姓名:学生姓名: _ 学号:学号: 指导教师:指导教师: 田田 毅毅 一、题目一

2、、题目 石头剪子布游戏的 c+程序设计 二、目的与意义二、目的与意义 面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析 与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。 三、要求三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等) 采用面向对象程序设计语言 c+进行程序开发 选用一种 c+语言的开发环境设计界面及程序 在开发环境下,进行程序的运行及调试 四、工作内容、进度安排四、工作内容、进度安排 主要内容主要内容 使用c+程序设计语言及其开发环境利用文件处理方式实现石头剪子布游戏的编写和调试。 工作进度安排工作进度安排 第一天:熟

3、悉课程设计题目及具体要求,认识所要解决的问题,基本确定选择的开发环境。 第二天到第四天:拿出解决问题的初步方案,根据课题给出的题目,确定题目的解决方式 及步骤。 第五天到第七天:设计系统的功能模块,确定模块的功能,及模块之间的关系。 第八天到第十天:分析模块,确定需要的界面、结构,完成软件的整体框架,在开发环境 下,编程实现所开发的系统。 第十一天到第十二天:综合调试,去除软件中的错误,美化应用程序的界面。 第十三天和第十五天:撰写课程设计报告。 五、主要参考文献五、主要参考文献 1郑莉,董渊,何江舟.c+语言程序设计.第 4 版.北京:清华大学出版.2010.7 2吴乃陵, 况迎辉.c+课程

4、设计. 北京:高等教育出版社,2006 3谢昕,刘觉夫,王更生.c+程序设计.北京:北京邮电大学出版社,2008 审核意见审核意见 系(教研室)主任(签字)系(教研室)主任(签字) 指导教师下达时间指导教师下达时间 2012011 1 年年 1212月月 1919日日 指导教师签字:指导教师签字:_ 摘要 本文主要介绍利用c+高级语言实现石头剪子布游戏的编辑和运行。通过 microsoft visual c+ 6.0软件进行石头剪子布游戏程序的编译,确定模块之间关 系及各模块功能,设计一个简单的操作界面实现石头剪子布游戏, 。 石头剪子布游戏系统通过c+高级语言进行编程,并设计了简单明了的操作

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

6、4 2.1.3 数据流程图 .5 2.2 详细设计 .6 2.2.1 设计思路.6 2.2.2 功能设计.7 第三章第三章 系统运行结果与总结系统运行结果与总结.11 3.1 运行结果 .11 3.2 总结 .13 参考文献参考文献.15 引言 “剪刀石头布”是人们喜欢的一种娱乐游戏,近来,随着计算机的快速发展, 以计算机作为对战平台,各种游戏如雨后春笋般纷纷冒出,使得那些爱好娱乐,又 常常苦于没有对手的爱好者们能随时过足娱乐之瘾,而且这类软件个个水平颇高, 大有与人脑分庭抗礼之势。 当我们与电脑对战对时,您知道这些软件是怎样像人脑一样进行思考的吗?总 的来说,要让电脑知道该怎么选择,就要根据

7、随机状态,产生每一种随即可能,这 便是最基本的算法。 c+语言是一种面向对象的语言,尽管在当前,可视化语言发展迅速,普及很快, 但c+语言作为一种基础的语言,它的有时依然存在,甚至有时它是不可替代的,特 别是和硬件接口技术相联系的软件。石头剪子布游戏是一种简单大众的游戏,自从 计算机实现以来,深受广大电脑玩家的喜爱。本文使用c+语言,设计了剪刀石头布 游戏软件,在人机对弈时,使电脑具有较高的智商。本游戏是以c+语言作为开发工 具,采用搜索算法设计最优落子点开发的游戏软件。本文详细地介绍了石头剪刀布 游戏软件设计的全过程,描述了该软件的功能。 第一章 石头剪子布游戏简介 1.1 选题背景 随着计

8、算机技术的飞速发展,其应用方面已渗透到社会生活的各个领域。它已 经成为我们学习和工作中的重要工具,也是人们娱乐休闲的主要方式。通过一个学 期的c+语言课程的学习,根据学校课程 设计的学习安排,要进行三 周的c+语 言程序设计,自己动手编写 游戏或系统。根据老师布置的设计任务书,根据 我 自己的能力及意愿,我选择了设计一个小游戏:石头剪子布游戏。 石头剪子布游戏是一款简单的游戏,由两个人对抗,每人同时选择一种状态, 状态分为三种:石头、剪子和布。其中,布大于石头,石头大于剪子,剪子又能 大于布。若两个人的状态相同,则是为平局,否则按上述规则分胜负。游戏要求, 两人必须同时出示状态,且状态唯一,不

9、能修改。此次课程设计是人机对弈,一 方为用户,一方为计算机,计算机随机产生状态,不违背规则。 实验准备:做游戏前,首先, 详细参看了面向对象的程序设计 ,理解相 关函数的用法和作用;另外,上网查询了很多相关资料,还 找了很多相关的游 戏设计的代码,都详细的 参看了一遍,加深了对 c+语言以及相关内容进一步理 解。根据实际情况设计出一款比较理想的小游戏。 本论文将具体介绍手 石头剪子布游戏 程序的设计、编译、运行。 1.2 开发环境 石头剪子布游戏的开发环境使用的是 visual c+ 6.0,简称 vc 或者 vc6.0,是 微软推出的一款 c+编译器,将“高级语言”翻译为“机器语言(低级语言

10、) ”的程 序。visual c+是一个功能强大的可视化软件开发工具。自 1993 年 microsoft 公司 推出 visual c+1.0 后,随着其新版本的不断问世,visual c+已成为专业程序员 进行软件开发的首选工具。虽然微软公司推出了 visual c+.net(visual c+7.0), 但它的应用有很大的局限性,只适用于 windows 2000、windows xp 和 windows nt4.0。所以实际中,更多的是以 visual c+6.0 为平台。此次程设计题目是手机名 片系统,通过 cs 模式,在界面中输入信息,对信息直接查询、添加、修改及删除 操作。 vi

11、sual c+6.0 以拥有“语法高亮” ,自动编译功能以及高级除错功能而著 称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重 新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头 文件(stdafx.h)、最小重建功能及累加连结 (link)著称。这些特征明显缩短程 序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。但是,他仍旧 存在着缺点, 由于 c+是由 c 语言发展起来的,也支持 c 语言的编译 。最大的 缺点是对于模版的支持比较差。现在最新补丁为sp6,推荐安装,否则易出现 编译时假死状态。仅支持 windows 操作系统。目前发现与 w

12、indows 7 兼容性不 好,安装成功后可能会出现无法打开 .cpp 文件的现象。 第二章 游戏分析与设计 2.1 游戏功能分析 随着人们生活水平的不断提高,和科学技术的日益进步。生活中我们总会需要 记录一些人的联系方式,包括一些朋友、同学、老师、亲人甚至一些总要客户等等。 而传统的纸质名片显然已经不适应现在的生活方式和节奏。而一些重要的联系方式 又不能丢掉,所以通过 c+文件处理方式来编程的手机名片能够实现基本的电话簿 操作和应用。即简单易用,又不失良好的用户操作界面,通过本次的课程设计,希 望可以给生活中忙碌的人们带来一些帮助。 2.1.1 功能需求分析 本系统定位于简单的“石头剪刀布”

13、小应用程序,暂时只考虑单机环境下的实 现;操作系统选择目前常用的 windows xp 或者 windows 7 系统 。 游戏系统采用人机交互模式,用户可以通过相应的操作完成游戏。 本系统的界面力求简洁、易用,在标准化的基础上考虑界面的美观和新颖。 本系统面向所有人群,凡是懂得计算机基本操作的人都可以对本程序进行应用。 简单明了的操作界面能够让用户迅速的适应并掌握。 本系统操作过程:输入数据;计算机随机输入数据;存储数据:存储计算机的 输入数据;存储用户的合法输入数据;判断用户的输赢:根据用户的选择,比较用 户与计算机的胜负;计算用户的胜负率:根据计算机的记录,计算用户的胜负次数 的总和及概

14、率。 2.1.2 关键技术 本程序是一个简单游戏的应用程序,程序设计结构如表 2-1 中所示,具有一定 的娱乐功能,界面简单,操作简便。如图 2.1 为石头剪刀布游戏系统的数据流程图, 从图中可以清晰地看到系统的功能模块及整体结构。 游戏功能的关键技术: 熟练掌握并运用 c+语言源代码; 熟练掌握并运用 c+中的重要函数; 掌握循环的函数的具体运用; 能于 c+环境中运行游戏; 2.1.3 数据流程图 主 菜 单 输 入计 算输 出 图图 2.12.1 游戏系统游戏系统 数 据 处 理 数 据 比 较 数 据 输 入数 据 输 出 图图 2.22.2 数据处理图数据处理图 图图 2.32.3

15、数据流程图数据流程图 2.2 详细设计 详细设计是整个程序设计的关键,为模块内的数据结构进行设计 ,能满足用 户对数据的处理要求;是对现实世界的具体分析。它易于编辑者的理解,从而可以 用它和不熟悉计算机的用户交换意见,用户的积极参与是程序设计成功的关键。其 次它易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。 2.2.1 设计思路 用户输入:计算机随机输入选择,用户输入选择,并将数据储存。 计算:根据计算机和用户的选择,计算大小,并判断输赢,计算用户的胜负率, 并储存。 输出:根据用户的输入,将用户的游戏结果显示在屏幕上。 如表 2-1 所示,将系统的功能模块已经明晰的列出。

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

17、则是为平局, 否则按上述规则分胜负。 具体功能设计实现代码 : #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 种子值,用来获取计算机 的输入 */ / enum布

18、,剪刀,石头,结束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, /* 用来获取用户的合法输入 */ while(r!=c 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=100/z*p; printf(您的

19、胜率为%.3g%n 您的败率为%.3g%n 您平局率为%.3g%n 您的综合 分数为%.3gn 对您成绩的评语:,y,n,p,f); if(f20 printf(n 随便输入几个字符按回车关闭程序n); scanf(%d, if(dn=r) printf(平手,继续n); p+; else switch(dn) case c : if(r=j) printf(电脑 win! 锤子:剪刀n);n+; else printf(人 win! 锤子:布n);y+; break; case j : if(r=b) printf(电脑 win! 剪刀:布n);n+; else printf(人 win!

20、剪刀:锤子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.13.1 输入锤子输入锤子 图图 3.23.2 多次输入石头剪刀布多次输入石头剪刀布 图图 3.33.3 显示比赛结果(显示比赛结果(1 1) 图图 3.43.4 显示比赛结果(显示比赛结果(2 2) 图图 3.53.5 显示比赛结果(显示比赛结果(3 3) 3.2 总结 此程序设计的实验是对我进入大学以来学习程序设计语言成果的一个检验。自 己动手,自己发现和解决问题,学会了独立,自主的思考,发现了自己的许多不足。 平时没有掌握好的知识在这次实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论