C++课程设计石头剪刀布游戏 最终.docx
《C++课程设计石头剪刀布游戏 最终.docx》由会员分享,可在线阅读,更多相关《C++课程设计石头剪刀布游戏 最终.docx(14页珍藏版)》请在冰点文库上搜索。
C++课程设计石头剪刀布游戏最终
存档资料成绩:
华东交通大学
课程设计报告书
所属课程名称
C++语言及程序设计
题目
院(系)
班级
学 号
学生姓名
指导教师
宋岚
辅导教师
宋岚
不必打印此页,由学校的封面替代,但内容一定要填写完整
2014年6月26日
课程设计(论文)任务书
电气与电子工程学 院 电气工程及其自动化专 业13-8 班
一、课程设计(论文)题目:
石头-剪刀-布游戏
二、课程设计(论文)工作自2014年6月23日起至2014年6月27日止
三、课程设计(论文)地点:
8-501
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)进一步巩固和加深对“C++程序设计”课程基本知识的理解和掌握,了解C++语言在项目开发中的应用。
(2)学习程序设计开发的一般方法,了解和掌握项目开发过程及方式,培养正确的设计思想和分析问题、解决问题的能力,特别是项目设计能力。
(3)通过对标准化、规范化文档的掌握并查阅有关技术资料等,培养项目设计开发
能力,同时提倡团队合作精神。
2.课程设计的任务及要求
1)基本要求:
(1)对系统功能进行需求分析;
(2)使用VisualC++编译器进行程序编译;
(3)提出系统的设计方案;
(4)编写源程序代码并进行调试。
2)创新要求
在基本要求达到后,可进行创新设计。
3)课程设计报告撰写及装订要求
课程设计报告的撰写要求表述简明,图表准确。
报告按如下内容和顺序用A4纸进行打印并装订成册。
(1)封面
采用统一的课程设计封面,并按要求填写好封面要求的个人信息和选题。
(2)设计任务书
(3)评阅书
(4)目录
(5)正文
(6)主要参考文献
4)课程设计评分标准:
每人按指定题目进行设计,严禁抄袭,要求每人自己动手编写程序,采取同一组同时检查程序及运行结果,检查时同组成员每人陈述自己的分工,同一选题不同组如发现代码完全一样,则双方都作不及格处理。
(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;
(2)能正确回答设计的中老师所提问题,可增加10分;
(3)课程设计报告书写规范整齐,可增加10分;
(4)心得体会认真总结,可增加10分;
(5)程序有创新性,可增加10分;
成绩评定实行优秀、良好、中等、及格和不及格五个等级。
不及格者需重做。
5)课程设计进度安排
(1)准备阶段(3学时):
选择设计题目、了解设计目的要求、查阅相关资料。
(2)程序模块设计分析阶段(4学时):
程序总体设计、详细设计。
(3)代码编写调试阶段(10学时):
程序模块代码编写、调试、测试。
(4)撰写论文阶段(3学时):
总结课程设计任务和设计内容,撰写课程设计论文。
6)课程设计题目具体要求:
在游戏中,孩子们用手表示石头、剪刀或布中的一个,由拳头表示石头,伸出两根手指表示剪刀,伸手表示布,孩子们面对面地从1数到3时做出他们的选择,如果所作选择是一样的,则表示平局,否则就按如下规则决定胜负。
(1)石头砸坏剪刀。
(2)剪刀剪碎布
(3)布覆盖石头
编程实现计算机与人进行游戏。
并输出游戏结果。
如果屏幕输出笑脸,则表示人胜利;如果屏幕输出哭脸,则表示人失败;输出无奈,则表示平局。
并且统计结果。
学生签名:
2014年6月28日
课程设计(论文)评阅意见
序号
项目
等 级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
设计中创新性评价
6
论文书写规范化评价
综合评定等级
评阅人宋岚职称讲师
2014年6月29日
目 录
第1章需求分析
实验目的
编程实现计算机与人进行石头-剪刀-布游戏。
在C++语言中,通过菜单应用程序设计实现不同功能,掌握程序设计的
基本方法、常用技巧。
实验要求
在游戏中,孩子们用手表示石头、剪刀或布中的一个,由拳头表示石头,伸出两根手指表示剪刀,伸手表示布,孩子们面对面地从1数到3时做出他们的选择,如果所作选择是一样的,则表示平局,否则就按如下规则决定胜负。
(1)石头胜剪刀
(2)剪刀胜布
(3)布胜石头
编程实现计算机与人进行游戏。
1.出剪刀
2.出石头
3.出布
并统计胜利、失败和平局的次数。
第二章概要设计
设计思路与算法
1.让计算机随机产生0-2任意数,
其中0代表计算机出剪子,1代表出石头,2代表出布
参考代码:
intmain1(intn)
{
srand((unsigned)time(0));/*使用系统定时/计数器的值做为随机种子,指定seed为当前系统流逝了的时间,time(t)被定义为长整型,它返回从1970年1月1日零时零分零秒到目前为止所经过的时间。
*/
n=rand()%3;/*随机产生0-3之间的数,不含有3,取得[a,b)之间的随机整数,使用(rand()%(b-a))+a*/
returnn;/*返回n的值为函数的值*/
}
2.人机游戏在主函数中实现
思路:
可使用while语句和switch…case语句实现菜单功能的循环选择。
参考代码:
voidmain()
{
cin>>cho;//用户输入1-3任意数
good=main1(temp);
switch(good)
{
case0:
cout<<"对方出了剪子\n";
….
case1:
cout<<"对方出了石头\n";
….
case2:
cout<<"对方出了布\n";
….
}}
第三章详细设计
源程序代码
#include
#include
#include
#include
intmain1(intn)
{
srand((unsigned)time(0));
n=rand()%3;
returnn;
}
intmain()
{
intn,cho,c,temp,win=0,lose=0,tie=0;
chara;
cout<<"-------------------------------------------"<cout<<"石头-剪刀-布小游戏"<cout<<"-------------------------------------------"<getch();//函数用途:
从控制台读取一个字符,但不显示在屏幕上
while
(1)
{
cout<<"-----------------新游戏-----------------"<cout<<"1.出剪刀"<cout<<"2.出石头"<cout<<"3.出布"<cout<<"其他任意键结束"<cout<<"---------------------------------------"<cout<<"请根据对应序号输入1~3中的一个数字表示要出的手势:
";
cin>>cho;//用户输入1-3任意数
if(cho<1||cho>3)
{
cout<<"您输入的数字小于1或者大于3,请重新输入"<}
else
{
c=main1(n);
switch(c)
{
case0:
cout<<"对方出了剪刀\n";
if(cho==2)cout<<"( ̄︶ ̄)↗赢喽"<if(cho==1)cout<<"( ̄口 ̄)!
!
平局"<if(cho==3)cout<<"(┬_┬)↘输了"<cout<<"战况:
"<<"胜利:
"<"<"<"<break;
case1:
cout<<"对方出了石头\n";
if(cho==3)cout<<"( ̄︶ ̄)↗赢喽"<if(cho==2)cout<<"( ̄口 ̄)!
!
平局"<if(cho==1)cout<<"(┬_┬)↘输了"<cout<<"战况:
"<<"胜利:
"<"<"<"<break;
case2:
cout<<"对方出了布\n";
if(cho==1)cout<<"( ̄︶ ̄)↗赢喽"<if(cho==3)cout<<"( ̄口 ̄)!
!
平局"<if(cho==2)cout<<"(┬_┬)↘输了"<cout<<"战况:
"<<"胜利:
"<"<"<"<break;
}
}
}
return0;
}
第四章运行结果及分析
1、初始界面
2、按任意键后开始游戏
3、输入数字1,表示出剪刀。
并输出结果:
胜利。
4、输入数字2,表示出石头。
并输出结果:
胜利。
5、输入数字3,表示出布。
并输出结果:
平局。
6、输入数字4,屏幕显示:
您输入的数字小于1或者大于3,请重新输入
界面分析
第一个截图是程序运行的初始结果,然后按任意键结果如第二个截图所示,再输入数字1,2或3,再按Enter键运行出游戏结果,例如输入1,结果是对方出了布,则表示胜利,战况为胜利1次,失败0次,平局0。
次结果如第三个截图所示;继续输入数字接着游戏,如输入2,结果是对方出了剪刀,则表示胜利,战况变为胜利2次,失败0次,平局0次,如第四个截图所示;继续输入数字接着游戏,如输入3,结果是对方出了布,则表示平局,战况变为胜利2次,失败0次,平局1次,如第五个截图所示;继续输入数字接着游戏,如输入4,则没有对应的手势,则输出:
您输入的数字小于1或者大于3,请重新输入。
如果按其他键,再按Enter键,继续按任何键就退出游戏。
第五章 课程设计心得
这次课程设计题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
在进行程序设计的过程中,对于随机数的产生有很多的疑问。
查阅了各种资料,才找到随机产生0~2中三个数中的任意一个数的方法。
在程序中,我还加入了统计胜利次数,失败次数和平局次数的语句。
第六章参考文献
[1]柴欣,张红梅.VisualC++程序设计基础(第二版)[M].中国铁道出版社.2007.8
[2]吕凤翥.C++语言基础教程[M].清华大学出版社.2007.2
[3]陈慧,马杰良.案列式C语言教程[M].中国铁道出版社.2011.2
[4]谢昕,刘觉夫,王更生.C++程序设计[M].北京邮电大学出版社2010.12
[5]《C++程序设计》精品课程
[6]
[7]