C高级语言程序设计课程设计石头剪刀布小游戏.doc
《C高级语言程序设计课程设计石头剪刀布小游戏.doc》由会员分享,可在线阅读,更多相关《C高级语言程序设计课程设计石头剪刀布小游戏.doc(30页珍藏版)》请在三一办公上搜索。
1、 计算机科学与技术学院C高级语言程序设计课程设计报告 ( 2014 /2015 学年 第 1 学期)学生姓名: 学生专业: 学生班级: 学生学号: 指导教师: 2015年1月9日计算机科学与技术学院课程设计任务书课程设计名称C高级语言程序设计课程设计课程设计题目 石头剪刀布小游戏学生姓名专业班级学号课程设计任务内容问题描述 设计一个游戏,在游戏中用户用手表示石头、剪刀或布中的一个,出拳头表示石头,伸出两根手指表示剪刀,伸手表示布,用户做出他们的选择,计算机也随机的做出选择,如果所作的选择是一样的,则表示平局,否则就按如下规则决定胜负:石头砸坏剪刀;剪刀剪碎布;布覆盖石头,编写程序实现计算机与人
2、进行游戏。基本要求 (1)知识要求:了解和掌握枚举类型的要求;知道c+中类的各部分定义时的要求和注意;函数调用的必备知识;随机函数rang所需要点;知道调用类里面的函数要用到区域符“:”,函数输出输入所需内容等(2)结果要求:至少可以在输入相应的命令如(c,h,s,I,p,q)后,可以显示相应的结果能够让玩家可以了解和体会游戏,并且可以自由的运行游戏。 测试要求(1)可以运行代码并显示这是基本要求。(2)在输入布,剪刀,石头中任一选项时,电脑会出现任一选项与之对应并输出结果。(3)输入正确的命令测试是否运行正常,并得到想要的结果。指导教师: 时 间: 年 月 日 计算机科学与技术学院课程设计成
3、绩评审表课程设计名称C高级语言程序设计课程设计课程设计题目石头剪刀布小游戏学生姓名专业班级同组人学号指导教师设计成绩评价内容签 字: 时 间: 年 月 日 目录第一章. 设计问题描述与分析.11.1问题描述.11.2 系统功能分析.1第二章.算法设计与流程图.2 2.1算法设计.2 2.2流程图.5第三章.程序设计编码与测试.7 3.1程序代码.7 3.2测试.14第四章.设计过程总结或分析.19 第一章.设计问题描述与分析1 .问题描述;在游戏中,玩家们用手表示石头、剪刀或布中的一个,出拳头表示石头,伸出两根手指表示剪刀,伸手表示布,玩家和计算机做出他们的选择,如果所作的选择是一样的,则表示
4、平局,否则就按如下规则决定胜负:(1)石头砸坏剪刀;(2)剪刀剪碎布;(3)布覆盖石头。编写程序实现计算机与人进行游戏。2. 系统功能分析:游戏中可能出现的选择情况都可以估计到,因此,定义一个枚举类型把游戏中可能出现的选择项都列出来,包括cloth(布),hammer(锤子),scissors(剪刀),game(游戏结果),help(帮助),instructions(游戏方法指导),quit(退出游戏)。定义一个类Game,把需要让外界调用的成员函数指定为公用的,类中的公用部分包含玩家选择命令(select())、机器选择(mach())、提示游戏规(gamehelp())、判断输赢(Win_
5、lose())、游戏结果(gameshow())、帮助(gamehelp())游戏说明(instruct()每局游戏结果(solution())七个成员函数,另外有一个用来赋初值构造函数(Game();而为了保证类的封装性和信息的隐蔽,把数据成员指定为私有的。 创建游戏类对象g,调用对象g的成员函数solution(),开始游戏。 第二章.算法设计与流程图1.算法设计:(1)在头文件head.h中定义枚举类型enumc_h_scloth,hammer,scissors,game,help,instructions,quit来列出游戏选择项,同时定义一个类Game把需要让外界调用的成员函数sel
6、ect()、mach()、gamehelp()、Win_lose()、gameshow()、solution()、instruct()、Game()指定为公用的,为了保证类的封装性和信息的隐蔽,把数据成员intwin、intlose、inttie、enumc_h_splayer、enumc_h_smachine指定为私有的。(2)在源文件head.cpp中定义构造函数Game(),对赢、输、平局的数据成员初始化为0。(3)在源文件head.cpp中定义成员函数select(),获取玩家选择一个命令(即在石头、剪刀、布、游戏结果、游戏帮助、游戏介绍、退出中做出选择),并将选择的结果返回。(4)在
7、源文件head.cpp中定义成员函数mach(),实现机器对锤子、剪刀或布选择,这中间用到随机函数,利用到time.h和stdlib.h头文件,以及关键字rand、srand。(5)在源文件head.cpp中定义成员函数gameshow(intwin,intlose,inttie),输出游戏结果,包含有赢、输、平局以及游戏总次数的情况。(6)在源文件head.cpp中定义成员函数gamehelp(),输出各字符所表示的意义,以帮助玩家进行选择。 (7)在源文件head.cpp中定义成员函数成员函数win_lose(enumc_h_splayer,enumc_h_smachine),读取玩家和电
8、脑的选择,根据游戏规则判断玩家赢、输或平局,返回判断结果。(8)在源文件head.cpp中定义成员函数instruct(),对游戏规则进行说明。最后定义成员函数solution(),统计游戏从开始运行到现在运行的结果,并输出每局的游戏结果。(9)在源文件game.cpp中,定义主函数。在主函数中,创建游戏类对象g,调用对象g的成员函数solution(),开始游戏。2.流程图:2.1功能模块图:开始输入显示结果判断结果机器选择玩家选择 图2.1 功能模块2.2用户选择模块: 开始输入定义变量c获取用户输入选择定义枚举变量p用以返回玩家下一模块返回“布”返回“石头”返回“游戏介绍”返回“游戏结果
9、”返回“剪刀”返回“游戏帮助”返回“退出”return p 图2.2用户选择图2.3机器选择模块:开始输入 下一模块初始化随机种子定义变量 i并随机初始化i=i%3当i=0时,返回cloth当i=1时,返回hammer当i=2时,返回scissors 图2.3 机器选择图2.4判断模块:上一模块 下一模块定义变量 victory用以记录评判结果player= =clothplayer= =hammerYNvictory=machine= =hammer;victory=machine= =scissors;victory=machine= =cloth;YN 上一模块 图2.4 判断模块ins
10、truct( )(player=select( )!=quitswitch(player)2.5显示模块: clothhammerscissors machine = mach();player=machine累计平局次数输出“平局”win_lose( )累计玩家获胜次数输出玩家获胜累计电脑获胜次数输出电脑获胜输出游戏统计结果结束 图2.5显示模块图 第三章.程序设计编码与测试3.1程序代码: /head.h enum c_h_scloth,hammer,scissors,game,help,instructions,quit;class Game /Game类public: Game();
11、/构造函数 enum c_h_s select( ); /选择命令函数 enum c_h_s mach( ); /机器选择函数 void gamehelp( );/帮助函数 int Win_lose(enum c_h_s player,enum c_h_s machine);/判断输赢函数 void gameshow(int,int,int );/游戏结果函数 void solution( );/游戏结果函数 void instruct( );/游戏说明函数private: int win; / 赢的次数 int lose; /输的次数 int tie; /平局次数 enum c_h_s pl
12、ayer; /玩家的选择 enum c_h_s machine; /机器的选择;/head.cpp #include#include#includeGame:Game()win=0;lose=0;tie=0; enum c_h_s Game:select()char c;enum c_h_s p;cout请选择c,h或sc;switch(c)case c: p=cloth; cout玩家的选择:n; cout n; cout n; cout n; cout n;cout n; break;case h: p=hammer; cout玩家的选择:n;cout n; cout n;cout n;c
13、out n; break;case s: p=scissors; cout玩家的选择:n; cout n; cout n;cout n;cout n; break;case g: p=game;break;case p: p=help;break;case i: p=instructions;break;case q: p=quit;break;default: cout输入有误,请重新输入:endl;return p;enum c_h_s Game:mach() /机器选则结果int i;srand(unsigned)time(NULL); 8/函数rand()是真正的随机数生成器,而sra
14、nd()会设置供rand()使用的随机数种子。/如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。/而使用同种子相同的数调用 srand()会导致相同的随机数序列被生成。i=rand();i=i%3;if(i=0) cout电脑的选择:n; cout n; cout n; cout n; cout n;cout n;return cloth; elseif(i=1) cout电脑的选择:n; cout n; cout n; cout n; cout n;return hammer;elsecout电脑的选择:n; cout n; cout n; c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 课程设计 石头 剪刀 小游戏
链接地址:https://www.31ppt.com/p-4192763.html