C剪刀石头布游戏课程设计Word格式文档下载.docx
《C剪刀石头布游戏课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C剪刀石头布游戏课程设计Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
专业班级
软件工程152601
学号
201526170101
课程设计任务内容
[问题描述]
[基本要求]
(1)实现人机对战的功能,
(2)可以记录比赛次数,输赢的次数
[测试要求]
(1)
(2)
时间:
年月日
目
录
(1)设计问题描述与需求分析
待定
(2)数据结构与算法设计
4
(3)程序设计编码与测试
5
(4)设计过程总结与体会
13
程序源代码:
#include<
iostream>
usingnamespacestd;
enum
c_h_s{cloth,hammer,scissors,game,help,instructions,quit};
class
Game
//构造类
{
public:
Game();
enumc_h_sselect();
enumc_h_smach();
voidinstruct();
int
won(enumc_h_s,enumc_h_s);
voidgamee(int,int,int);
voidhelpp();
voidsolution();
private:
win;
lose;
tie;
enumc_h_splayer;
enumc_h_smachine;
};
*****************成员函数定义模块define.cpp************************
Game:
:
Game()
//初始化数据成员
win=0;
lose=0;
tie=0;
}
voidGame:
instruct()
cout<
<
endl;
"
"
****剪刀
锤子
布****"
在这个游戏中"
c表示布"
h表示锤子"
s表示剪刀."
游戏者和机器都只选择c,h,s中的一个.如果二者的选择相同"
那么这一局就是平局.此外:
\"
布包锤子\"
(布获胜)."
锤子打烂剪刀\"
(锤子获胜)."
剪刀剪布\"
(剪刀获胜)."
还有其它的选择是:
g表示游戏的结果(至今获胜的次数)"
p可获得帮助"
i可获得游戏方法的指导信息"
q表示退出游戏."
这个游戏一直重复到游戏者选择q为止."
祝你好运!
//游戏结束
enumc_h_s
Game:
select()
charc;
enumc_h_sp;
请选择c,h,或s:
;
//提示用户输入字符
while((c=getchar())=='
'
||c=='
\n'
\t'
);
switch(c){
case'
c'
p=cloth;
break;
h'
p=hammer;
s'
p=scissors;
g'
p=game;
i'
p=instructions;
q'
p=quit;
default:
p=help;
return(p);
mach()
staticinti;
i=++i%3;
return((i==0)?
cloth:
((i==1)?
hammer:
scissors));
gamee(intwin,intlose,inttie)
游戏结果如下:
cout.width(7);
你获胜的次数是:
win<
我获胜的次数是:
lose<
平局的次数为:
tie<
游戏的总次数是:
win+lose+tie<
helpp()
你可以输入下列的字符:
c表示布"
h表示锤子"
s表示剪刀"
g查看游戏结果"
p打印出这些信息"
i重新打印出游戏指导信息"
q退出游戏"
intGame:
won(enumc_h_splayer,enumc_h_smachine)
intvictory;
if(player==cloth)
victory=machine==hammer;
elseif(player==hammer)
victory=machine==scissors;
elsevictory=machine==cloth;
return(victory);
solution()
instruct();
while((player=select())!
=quit)
switch(player)
casecloth:
casehammer:
casescissors:
machine=mach();
if(player==machine)
++tie;
平局"
elseif(won(player,machine))
++win;
你获胜"
else{
++lose;
我获胜"
casegame:
gamee(win,lose,tie);
caseinstructions:
casehelp:
helpp();
BYE!
********************主函数定义模块main.cpp**************************
intmain()
Gameg;
g.solution();
return
0;
运行结果:
1、未输入任何命令
2、输入命令c
3、输入命令s
4、输入命令q,结束游戏。
设计过程
本次设计主要参考了网上搜索的资料,但搜索的资料并不符合课程设计要求,所以就要求我们运用我们所学知识按照课程设计要求改进,生成C++面向对象的程序文件。
首先,我根据网上的资料,把程序的流程图画出来。
把程序分成若干的功能块。
每个功能块能实现不通的功能,各功能块之间能够相互的调用。
功能块之间的合理组合实现了整个游戏的功能。
然后再定义各个功能块的作用,再根据作用用C++语言实现其功能。
并编译与链接各功能块,各功能块编译与链接正确后再把它们链接成一个工程。
本次设计中构造了一个Game类,将实现游戏的一些过程函数封装成类的函数,将在游戏里面需要的变量变成C++程序里面的数据成员。
然后分块将各个功能实现。
本次设计的评价与收获
三周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.
提高了计算能力,,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
继续阅读