C++剪刀石头布游戏课程设计.docx
《C++剪刀石头布游戏课程设计.docx》由会员分享,可在线阅读,更多相关《C++剪刀石头布游戏课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
C++剪刀石头布游戏课程设计
华科学院信息管理与信息系统专业
《程序设计综合课程设计》报告
(2011/2012学年第一学期)
学生姓名:
王奥辉
学生班级:
信息管理102202H
学生学号:
201022040217
指导教师:
薛颂东
2011年12月30日
锤
子
剪
刀
布
游
戏
目录
一、设计课题………………………………………………………4
二、设计要求………………………………………………………4
三、设计过程………………………………………………………4
四、流程图…………………………………………………………5
五、功能模块………………………………………………………6
六、本次设计的评价与收获………………………………………6
附录一……………………………………………………………7
附录二……………………………………………………………8
一、设计课题
锤子剪刀布(游戏)
二、设计要求
1、开发平台:
VC++6.0
2、对设计内容的要求
①源文件要采用多文件的工程结构;在源程序中必须使用类,输入输出要符合C++语言的特性;
②功能必须完善,程序代码要有相应的注释。
3、对设计说明书的要求
①设计过程、流程图及源代码。
②对本次设计的评价、此次设计的收获与建议。
4、源文件要采用多文件的工程结构;在源程序中必须使用类,输入输出要符合C++语言的新特性。
三、设计过程
本次设计主要参考了网上搜索的资料,但搜索的资料并不符合课程设计要求,所以就要求我们运用我们所学知识按照课程设计要求改进,生成C++面向对象的程序文件。
首先,我根据网上的资料,把程序的流程图画出来。
把程序分成若干的功能块。
每个功能块能实现不通的功能,各功能块之间能够相互的调用。
功能块之间的合理组合实现了整个游戏的功能。
然后再定义各个功能块的作用,再根据作用用C++语言实现其功能。
并编译与链接各功能块,各功能块编译与链接正确后再把它们链接成一个工程。
本次设计中构造了一个Game类,将实现游戏的一些过程函数封装成类的函数,将在游戏里面需要的变量变成C++程序里面的数据成员。
然后分块将各个功能实现。
五、功能模块
输入模块:
由键盘输入代表相应功能的字母,回车;
运算模块:
由编写的程序根据所输入的字母进行运算;
输出模块:
将运行结果输出到对话框中。
六、本次设计的评价与收获
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.
通过这次模具设计,本人在多方面都有所提高。
通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次冷冲压模具设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了冷冲压模具设计等课程所学的内容,掌握冷冲压模具设计的方法和步骤,掌握冷冲压模具设计的基本的模具技能懂得了怎样分析零件的工艺性,怎样确定工艺方案,了解了模具的基本结构,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。
(附录一)参考文献
1谭浩强著.C程序设计(第三版).北京:
清华大学出版社,2005
2谭浩强著.C程序设计题解与上机指导(第三版)北京:
清华大学出版社,2005
3谭浩强著.C++面向对象程序设计.北京:
清华大学出版社,2009
(附录二)程序源代码:
**************************类模块head.h*****************************
#include
usingnamespacestd;
enumc_h_s{cloth,hammer,scissors,game,help,instructions,quit};
classGame//构造类
{
public:
Game();
enumc_h_sselect();
enumc_h_smach();
voidinstruct();
intwon(enumc_h_s,enumc_h_s);
voidgamee(int,int,int);
voidhelpp();
voidsolution();
private:
intwin;
intlose;
inttie;
enumc_h_splayer;
enumc_h_smachine;
};
*****************成员函数定义模块define.cpp************************
#include
usingnamespacestd;
Game:
:
Game()//初始化数据成员
{
win=0;
lose=0;
tie=0;
}
voidGame:
:
instruct()
{
cout<cout<<""<<"****剪刀锤子布****"<cout<<"在这个游戏中"<cout<<"c表示布"<cout<<"h表示锤子"<cout<<"s表示剪刀."<cout<<"游戏者和机器都只选择c,h,s中的一个.如果二者的选择相同"<cout<<"那么这一局就是平局.此外:
"<cout<<"\"布包锤子\"(布获胜)."<cout<<"\"锤子打烂剪刀\"(锤子获胜)."<cout<<"\"剪刀剪布\"(剪刀获胜)."<cout<cout<<"还有其它的选择是:
"<cout<<"g表示游戏的结果(至今获胜的次数)"<cout<<"p可获得帮助"<cout<<"i可获得游戏方法的指导信息"<cout<<"q表示退出游戏."<cout<<"这个游戏一直重复到游戏者选择q为止."<cout<<"祝你好运!
"<}
enumc_h_sGame:
:
select()
{
charc;
enumc_h_sp;
cout<cout<<"请选择c,h,或s:
";//提示用户输入字符
while((c=getchar())==''||c=='\n'||c=='\t');
switch(c){
case'c':
p=cloth;
break;
case'h':
p=hammer;
break;
case's':
p=scissors;
break;
case'g':
p=game;
break;
case'i':
p=instructions;
break;
case'q':
p=quit;
break;
default:
p=help;
break;
}
return(p);
}
enumc_h_sGame:
:
mach()
{
staticinti;
i=++i%3;
return((i==0)?
cloth:
((i==1)?
hammer:
scissors));
}
voidGame:
:
gamee(intwin,intlose,inttie)
{
cout<cout<<"游戏结果如下:
";
cout<cout.width(7);
cout<<"你获胜的次数是:
"<cout.width(7);
cout<<"我获胜的次数是:
"<cout.width(7);
cout<<"平局的次数为:
"<cout.width(7);
cout<<"游戏的总次数是:
"<}
voidGame:
:
helpp()
{
cout<cout<<"你可以输入下列的字符:
"<cout<<"c表示布"<cout<<"h表示锤子"<cout<<"s表示剪刀"<cout<<"g查看游戏结果"<cout<<"p打印出这些信息"<cout<<"i重新打印出游戏指导信息"<cout<<"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);
}
voidGame:
:
solution()
{
instruct();
while((player=select())!
=quit)
switch(player)
{
casecloth:
casehammer:
casescissors:
machine=mach();
if(player==machine)
{
++tie;
cout<cout<<"平局";
}
elseif(won(player,machine))
{
++win;
cout<cout<<"你获胜";
}
else{
++lose;
cout<cout<<"我获胜";
}
casegame:
gamee(win,lose,tie);
break;
caseinstructions:
instruct();
break;
casehelp:
helpp();
break;
}
gamee(win,lose,tie);
cout<cout<cout<<"BYE!
"<}
********************主函数定义模块main.cpp**************************
#include
usingnamespacestd;
intmain()
{
Gameg;
g.solution();
return0;
}
运行结果:
1、未输入任何命令
2、输入命令c
3、输入命令s
4、输入命令q,结束游戏。