C程序设计21点游戏.doc

上传人:laozhun 文档编号:2384326 上传时间:2023-02-17 格式:DOC 页数:21 大小:416KB
返回 下载 相关 举报
C程序设计21点游戏.doc_第1页
第1页 / 共21页
C程序设计21点游戏.doc_第2页
第2页 / 共21页
C程序设计21点游戏.doc_第3页
第3页 / 共21页
C程序设计21点游戏.doc_第4页
第4页 / 共21页
C程序设计21点游戏.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《C程序设计21点游戏.doc》由会员分享,可在线阅读,更多相关《C程序设计21点游戏.doc(21页珍藏版)》请在三一办公上搜索。

1、学校代码: 学 号: 课程设计说明书题 目:“21点”纸牌游戏 学生姓名:学 号: 学 院:班 级:指导教师: 二一二年一月四日大学课程设计(论文)任务书课程名称: 面向对象的程序设计 学院: 班级: 学生姓名: 学号: 指导教师: 一、题目“21点”纸牌游戏二、目的与意义面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。 三、要求(包括原始数据、技术参数、设计要求、图纸量、工作量要求等) l 采用面向对象程序设计语言C+进行程序开发l 选用一种C+语言的开发环境设计界面及程序l 在开发环境下,进行程

2、序的运行及调试四、工作内容、进度安排 主要内容使用C+程序设计语言及其开发环境实现简单的“21点”纸牌游戏,完成程序的编写和调试。工作进度安排第一天:熟悉课程设计题目及具体要求,认识所要解决的问题,基本确定选择的开发环境。第二天到第四天:拿出解决问题的初步方案,根据课题给出的题目,确定题目的解决方式及步骤。第五天到第七天:设计系统的功能模块,确定模块的功能,及模块之间的关系。第八天到第十天:分析模块,确定需要的界面、结构,完成软件的整体框架,在开发环境下,编程实现所开发的系统。第十一天到第十二天:综合调试,去除软件中的错误,美化应用程序的界面。第十三天和第十五天:撰写课程设计报告。五、主要参考

3、文献1郑莉,董渊,何江舟.C+语言程序设计.第4版.北京:清华大学出版.2010.72Stanley B.Lippman,Jose LaJoie,Barbara E.Moo.C+ Primer(中文版).第四版.北京: 人民邮电出版社.20063 Walter Savitch. C+面向对象程序设计基础、数据结构与编程思想.第4版.北京: 清华大学出版社.20034钱能.C+程序设计教程.第2版.北京:清华大学出版社.20055郑莉.C+语言程序设计案例教程.第1版.北京:清华大学出版社.20056韦朴,陈泰生. Visual C+通用范例开发金典.北京:电子工业出版社.2008审核意见系(教

4、研室)主任(签字) 指导教师下达时间 2011 年 12月 19日指导教师签字:_摘 要本次C+课程设计题目是“21 点纸牌游戏” ,系统的主要功能是娱乐游戏,有电脑和玩家一起玩这个游戏,玩家设法使自己的牌达到总分21并要比电脑开的点数大而且不超过这个数值。扑克牌的分值取它们的面值,J,Q,K 分别是11,12和13分。“21 点纸牌游戏”是比较经典的一款小游戏,实现它的方法很多,可以用很多不同算法和语言实现,如 C,C+,VB,JAVA 等。本文研究的是以 Visual C+ 6.0 为开发环境,设计并开发一款“21 点纸牌游戏”。关键词:程序设计;“21 点纸牌游戏”;C+目 录第一章 引

5、 言61.1 C+介绍61.1.1 组成部分61.1.2 C+语言的主要特点61.2 “21点游戏”介绍71.2.1 游戏起源71.2.2 本课程设计7第二章 设计要求81.1 问题描述81.2 要求分析8第三章 总体设计93.1 功能分析93.1.1 程序的主要功能描述93.1.2 总体结构93.2 详细设计93.2.1序流程图9第四章 功能测试114.1 主界面114.2 功能测试124.2.1输入赌注124.2.2 电脑随机发牌134.2.3 用户决定是否要牌134.2.4 报错界面144.2.5 开牌显示游戏结果144.2.6 退出游戏15第五章 源程序16参考文献21第一章 引 言1

6、.1 C+介绍 C+这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C+是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。1.1.1 组成部分现在C+由以下四个“子语言”组成: (1)C子语言。C+支持C语言的几乎全部功能,主要是c89的部分,在语法上与C语言仅有极微妙的差别(如括号表达式的左右值性,具体请参考C+标准文献)。 (2)面向对象的C+语言。C+语言原本不具备面向对象的设计

7、功能,然而随着面向对象的概念的提出以及如Java等语言的发展成熟,C+语言也开发出了支持面向对象功能的版本。(3)泛型编程语言。C+强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。 (4)STL(C+标准模板库,Standard Template Library)。随着STL的不断发展,它已经逐渐成为C+程序设计中不可或缺的部分,其效率可能比一般的native代码低些,但是其安全性与规范性使它大受欢迎。 此外,包含在TR1等中的C+0x将实现的新功能在开发和测试中。1.1.2 C+语言的主要特点C+语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对

8、象的程序设计方法。(1) C+是一个更好的C,它保持了C语言的优点,大多数的C程序代码略作修改或不作修改就可在C+的集成环境下调试和运行。这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。(2) C+是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。这对于设计、编制和调试一些大型的软件尤为重要。 (3) C+集成环境不仅支持C+程序的编译和调试,而且也支持C程序的编译和调试。通常,C+程序环境约定:当源程序文件的扩展名为c时,则为C程序;而当源程序文件的扩展名为cpp时,则为C+程序。(4

9、) C+语句非常简练,对语法限制比较宽松,因此C+语法非常灵活。其优点是给用户编程带来书写上的方便。其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误不容易发现,给用户编程增加了难度。1.2 “21点游戏”介绍1.2.1 游戏起源又名黑杰克,起源于法国,现已流传到世界各地。现在在世界各地的赌场中都可以看到二十一点,随着互联网的发展,二十一点开始走向网络时代,比如菲律宾的博彩公司就有该游戏。该游戏由 2 到 6 个人玩,使用除大小王之外的52 张牌,游戏者的目标是使手中的牌的点数之和不超过 21 点且尽量大。 有着悠久的历史。1700年左右法国赌场就有这种21点的纸牌游戏。1931年,当美国

10、内华达州宣布赌博为合法活动时,21点游戏第一次公开出现在内华达州的赌场俱乐部,15年内,它取代掷骰子游戏,而一举成为非常流行的赌场庄家参与的赌博游戏。1.2.2 本课程设计本次课程设计是模拟古老的 21 点扑克牌游戏,实现一对一的人机大战。要求游戏过程中任意一方牌的点数之和超过 21 点,则自动出局;在不超过 21 点的情况下, 玩家下注由电脑随机发牌与庄家比累积牌的点数的大小,大者为赢家。第二章 设计要求编写程序实现游戏,该程序是模拟古老的“21点纸牌游戏”,实现一对一的人机大战。要求游戏过程中任意一方牌的点数之和超过 21 点,则自动出局;在不超过 21 点的情况下, 玩家下注由电脑随机发

11、牌与庄家比累积牌的点数的大小,大者为赢家。1.1 问题描述 本次C+课程设计题目是“21点纸牌游戏”,系统的主要功能是娱乐游戏,有电脑和玩家一起玩这个游戏,玩家设法使自己的牌达到总分21并要比电脑开的点数大而且不超过这个数值。扑克牌的分值取它们的面值。J,Q,K分别是11,12和13分。1.2 要求分析编写程序实现游戏,该程序是模拟古老的“21点纸牌游戏”,实现1对1的人机大战。要求游戏过程中任意一方牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家下注由电脑随机发牌与庄家比累积牌的点数的大小,大者为赢家。第三章 总体设计3.1 功能分析3.1.1 程序的主要功能描述该程序主要是

12、模拟古老的“21点纸牌游戏”,但简易为人机大战。玩家与庄家比牌的累积点数的大小,不超过21点的情况下大者为赢家。3.1.2 总体结构游戏界面输入下注金额选择是否要牌 开始游戏退出图3-1 总体结构3.2 详细设计3.2.1序流程图主函数流程图开始键盘输入赌注产生随机数开始游戏键盘输入输出结果循环结束图3-2 流程图第四章 功能测试4.1 主界面本游戏的主界面游戏主界面介绍了本游戏的规则,还有提示玩家下注的提示图4-14.2 功能测试4.2.1输入赌注用户可根据系统提示输入赌金图4-24.2.2 电脑随机发牌图4-34.2.3 用户决定是否要牌图4-44.2.4 报错界面图4-54.2.5 开牌

13、显示游戏结果图4-64.2.6 退出游戏继续游戏按Y,退出游戏按N图4-7第五章 源程序#include#include#include using namespace std;int x=1;int rand(int n ); /声明bool win(); /定义变量win为逻辑型变量void money(); /运行赌注 int main() coutt欢迎进入21点nn;couttt 游戏规则:n; coutendl;couttt 1.玩家最多可下赌注1100;n;coutendl;couttt 2.如果牌点数的总数超过21点则暴点,自动判数;n;coutendl;couttt 3.计算

14、机方在大于等于16点时不再要牌。n;coutendl;coutt祝您好运n; money(); return 0; /死循环int rand(int n ) /调用函数 return rand()%n; /产生随机数,对生成的随机数取余 void money() int a=400,b=400,c;/定义玩家和庄家的赌注各400 for(;) /控制游戏循环 cout请输入您要押的钱数(现在您还有ac; /玩家所压赌注 if(c100|c1)cout请最多输入1-100请重新输入c; else if(win() a+=c;b-=c;/控制赌注 cout您现在的钱数为a; coutn对手还有b;

15、 if(a=800|b=0) cout对手已经没钱了。您赢了游戏结束了endl; exit(0); else coutn请继续下注endl; else a-=c;b+=c;/控制赌注 cout您现在的钱数为a; coutn对手还有b; if(a=800) cout您已经没钱在玩了。游戏结束了endl; exit(0); else coutn请继续下注endl; bool win()bool zhen=true; bool jia=false; int n,r,b,z; char d; int num_i; /庄家的牌 int num_r; /玩家的牌 srand(time(NULL); /调用

16、随机函数NULL空函数 r=rand(13)+1; /取一个数字 int i; i=rand(13)+1; cout您的牌是rendl; a:cout对手的牌是iendl; /a是标记 cout您是否再要一张牌?endl; cout要请输入1,开牌请输入2c; while(x) if(c=1) n=rand(13)+1; coutn您又要到一张n; r+=n; num_r+=1; coutnn您现在总点数为r21)cout牌点数过了21n;goto b;/跳到标记b goto a; /跳到标记a break; else if(c=2) x=0; coutn轮到电脑叫牌endl; coutn现在

17、电脑的牌是i; while(i=18&ir) cout现在电脑在要一张牌endl; b=rand(13)+1; coutn电脑又要到一张b; i+=b; num_i+=1; coutn电脑的点数是i; coutn好了现在开牌; elsecoutc; if(ir&inum_r)/比较对手大小 b:cout这回合电脑赢了nnendl;cout是否继续游戏(y/n)nnd;if (d=n)cout游戏结束endl;exit(0);else return jia; else cout这回合您赢了nnendl;cout是否继续游戏(y/n)nnendl;if (d=n)cout游戏结束endl;exit

18、(0);else return zhen;参考文献1郑莉,董渊,何江舟.C+语言程序设计.第4版.北京:清华大学出版.2010.72Stanley B.Lippman,Jose LaJoie,Barbara E.Moo.C+ Primer(中文版).第四版.北京:人民邮电出版社.20063 Walter Savitch. C+面向对象程序设计基础、数据结构与编程思想.第4版.北京:清华大学出版社.20034钱能.C+程序设计教程.第2版.北京:清华大学出版社.20055郑莉.C+语言程序设计案例教程.第1版.北京:清华大学出版社.20056韦朴,陈泰生. Visual C+通用范例开发金典.北京:电子工业出版社.20087李爱华,程磊著. 面向对象程序设计(C+语言) .北京:清华大学出版社,20108刘振安,刘燕君著. C+程序设计课程设计. 北京: 机械工业出版社,2004

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号