ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:69.47KB ,
资源ID:11819261      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11819261.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++课程设计21点扑克牌游戏.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++课程设计21点扑克牌游戏.docx

1、c+课程设计21点扑克牌游戏福建农林大学计算机与信息学院计算机类课程设计结果评定评语:评分项目分值得分 课程设计报告符合规范10 类层次结构图和用例图合理30 主要技术路线正确30 设计报告条理清晰,重点突出20 有一定的创新性,难易程度10成绩:指导教师签字:任务下达日期:2008年12月 日评定日期:1课程设计目的42课程设计要求43运行环境44设计内容44.1程序说明4 4.2设计内容及功能44.3题目分析及算法描述54.4系统程序流程图及层次模块图64.5系统测试65总结96参考文献97源代码921点扑克牌游戏1.课程设计目的面向对象程序设计课程设计是计算机科学与技术专业和软件工程专业

2、集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生能够熟练运用C+进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。2.课程设计要求1、掌握使用一种面向对象程序设计语言如Borland C+或Visual C+等。 2、培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 3、通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括: 通过调查研究和

3、上机实习,收集和调查有关技术资料。 掌握设计课题的基本步骤和方法。 根据课题的要求进行上机实验调试。4、课程设计完成后,提交课程设计报告3运行环境联想计算机,WindowsXP操作系统,Microsoft Visual C+ 6.04.设计内容4.1程序说明该程序是模拟21点扑克牌游戏,玩家最多可以要5张牌,但如果牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数的大小,大者为赢家。4.2设计内容及功能(1)将大于10点的点数改为半点(修改点数的类型)。(2)高级玩家(经理级)可以查看下一张牌,即按键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌。(3)超

4、级玩家(总经理级)可以查看庄家(计算机)的所有牌面,并任意输入自己想要的牌,有赢无输,为保密起见,输入自己想要的牌后应立刻屏。(4)每次要完牌后可以重新设定赔率,只能回流。也就是说如果牌好,可以加大赌注。4.3 题目分析及算法描述类class CCard该程序只需要一个CCard类,其中有表格如下:class CCardprivate: int m_Pip5;/一共五张牌 int m_Number;/发了多少张牌 int m_Dollar;/赌本 int m_Gamble;/赌注 int m_Win;/赢局数 int m_Lose;/输局数 int m_Draw;/平局数public: CCa

5、rd();/构造函数。 void FirstPlayTwo();/最初的两张牌 int GetNumber();/返回牌张 int GetPip();/返回点数 void DisplayPip();/依次全部显示牌面的点数 void DisplayPip(int);/除了第一张牌,依次显示全部牌面点数(针对计算机牌的显示) void TurnPlay();/出一张牌。 void Win();/赢了计算赌注 void Lose();/输了 void Draw();/平局 int SetGamble(int);/设置赌本,赌本不够返回-1 int GetMoney();/返回钱数 void Dis

6、playInfo();/打印必要的信息 int GetCurrentCard();/返回当前的牌点4.4 系统程序流程图及层次模块图(1)程序的N-S流程图如下图所示:初始化随机种子显示游戏规则While(chChoice)判断chChoice,(必须是Y/N)Y/y N/yDoWhile(blLogic)您的选择是明智的,赌博有碍家庭和睦!欢迎再次使用此程序!(2)do的模块N-S流程图输出“您现在有的赌本:$100”输出下注的赌本执行Player.SetGamble(nMoney)判断If(blLogic)Y/y N/y您的赌本不够,请重新下注!PlayTurn(cpu,player)4.

7、5系统测试(1)运行Microsoft Visual C+ 6.0,新建一个工程文件,立即保存在自己建的一个文件夹中,再建一个为21point.cpp。(2)单击“save”按钮,出现21point.cpp的文件编辑窗口,输入附录的程序代码;再单击“save all”按钮保存文件。(3)执行Microsoft Visual C+快捷菜单中的编译、连接。(4)21point.cpp文件编译成功,如下图所示:输入y,回车开始游戏。如下图所示:输入赌本10回车。如下图所示:输入y,回车。如下图所示:输入y,回车后继续游戏。如下图所示:当你输入错误的信息的时候如:1000。出现如下图:5.总结本次课程

8、设计,使我对C+面向对象程序设计有了进一步的认识和掌握。我设计的这个简单的师生管理系统主要用到了继承和派生、虚继承、switch语句在设计过程中,我遵循一个指导思想:先把总的框架设计出来,再在对其中加上再的内容。千万不要企图在一开始时就解决所有的细节。边编程,边调试,边扩充。6参考文献1谭浩强.C+面向对象程序设计.北京:清华大学出版社,2006.2谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.7.源代码:#include#include#includeusing namespace std;class CCardprivate: int m_Pip5;/一共五张牌 int m

9、_Number;/发了多少张牌 int m_Dollar;/赌本 int m_Gamble;/赌注 int m_Win;/赢局数 int m_Lose;/输局数 int m_Draw;/平局数public: CCard();/构造函数。 void FirstPlayTwo();/最初的两张牌 int GetNumber();/返回牌张 int GetPip();/返回点数 void DisplayPip();/依次全部显示牌面的点数 void DisplayPip(int);/除了第一张牌,依次显示全部牌面点数(针对计算机牌的显示) void TurnPlay();/出一张牌。 void Wi

10、n();/赢了计算赌注 void Lose();/输了 void Draw();/平局 int SetGamble(int);/设置赌本,赌本不够返回-1 int GetMoney();/返回钱数 void DisplayInfo();/打印必要的信息 int GetCurrentCard();/返回当前的牌点;CCard:GetNumber() return m_Number;CCard:CCard()/构造函数,初始化 m_Number = 0; m_Dollar = 100;/初始赌注为100美元 for(int i=0;i5;i+) m_Pipi = 0; m_Gamble = 0;

11、m_Win = m_Lose = m_Draw = 0;int CCard:GetMoney() return m_Dollar;void CCard:DisplayInfo()/打印必要的信息 coutnnnttt您一共玩了m_Win+m_Lose+m_Draw局 赢了m_Win局 输了m_Lose局 平局m_Draw次。endl; coutntttt您的赌本共计有$m_Draw。nendl;int CCard:SetGamble(int gamble) if(gamble0) coutn输入金额有误endl; return -1; if(m_Dollar-gamble0) coutn金额不

12、足endl; return -1; else m_Gamble = gamble; m_Dollar -= gamble; return 0;void CCard:FirstPlayTwo()/最初两张牌 m_Pip0 = rand()%13+1; m_Pip1 = rand()%13+1; m_Number = 2;int CCard:GetPip() int SumPip = 0; for(int i=0;im_Number;i+) SumPip += m_Pipi; return SumPip;void CCard:DisplayPip() int i; for(i=0;im_Numbe

13、r;i+) coutm_Pipit; coutendl;void CCard:TurnPlay() m_Number+; m_Pipm_Number-1 = rand()%13+1;void CCard:Win() cout赢家牌面:; DisplayPip(); coutn牌面点数:GetPip()endl; m_Dollar = m_Dollar + 2 * m_Gamble; m_Win+; coutn赌本:$m_Dollar 赢了m_Win次 输了m_Lose次 平局m_Draw次endl; coutendl; coutendl;void CCard:Lose() m_Lose+; c

14、out21) couttttttttt暴了!endl; else cout牌面点数:GetPip()endl; coutn赌本:$m_Dollar 赢了m_Win次 输了m_Lose次 平局m_Draw次endl; coutendlendl;void CCard:Draw() m_Draw+; m_Dollar += m_Gamble; cout21) coutn暴了!endl; else cout牌面点数:GetPip()endl; cout赌本:$m_Dollar 赢了m_Win次 输了m_Lose次 平局m_Draw次endl; coutendlendl;void DisplayRule

15、(void) coutendlendl; coutt欢迎进入21点游戏世界!nn; couttt 游戏规则:n; coutendl; couttt 1.玩家最多可以要5张牌;n; coutendl; couttt 2.如果牌点数的总数超过21点则暴点,自动判数;n; coutendl; couttt 3.赢家可得双倍的赌注;n; coutendl; couttt 4.计算机方在大于等于16点时不再要牌。n; coutendl; coutt 祝您好运! n; coutendlendl;void Judge(CCard &cpu,CCard &player) cout21&player.GetPi

16、p()21)|cpu.GetPip()=player.GetPip() coutnntttttttt平局!n; cout计算机数据:t; cpu.DisplayPip(); cout牌面点数:cpu.GetPip()endl; coutn您的数据:t; player.Draw(); cout21)|(player.GetPip()cpu.GetPip()&player.GetPip()=21) coutnnntttttttt恭喜您赢了!nn; cout计算机数据:t; cpu.DisplayPip(); cout牌面点数:cpu.GetPip()endl; coutn您的数据:t; playe

17、r.Win(); coutendl; else coutnntttttttt很遗憾您输了!n; cout计算机数据:t; cpu.DisplayPip(); cout牌面点数:cpu.GetPip()endl; coutn您的数据:t; player.Lose(); coutendl; void CCard:DisplayPip(int n) int i; cout*t; for(i=1;im_Number;i+) coutm_Pipit; coutendl;void PlayTurn(CCard &cpu,CCard & player)/玩一局 char chChoice; int blCp

18、u = 1;/判断是否要牌 int blPlayer = 1; cpu.FirstPlayTwo();/计算机和玩家各要两张牌 player.FirstPlayTwo(); do coutn您的牌点为:t; player.DisplayPip(); coutn; cout您的牌面点数是:player.GetPip()endl; coutn计算机的牌点为:t; cpu.DisplayPip(1); if(blPlayer) coutchChoice; if(chChoice = Y|chChoice = y) if(player.GetNumber()5) player.TurnPlay();

19、coutn您要的这张牌是:player.GetPip()21) blPlayer = 0; else cout对不起,您已经要了5张牌,不能再要牌了!; blPlayer = 0; if(chChoice=n|chChoice=N) blPlayer = 0; if(cpu.GetPip()16&cpu.GetNumber()5) cpu.TurnPlay(); coutn计算机要牌,牌点是:cpu.GetPip()endl; else blCpu = 0; if(blCpu&player.GetNumber()5&player.GetPip()21) blPlayer = 1; while(

20、blCpu|blPlayer); Judge(cpu,player); return ;int main() srand(unsigned)time(NULL);/初始化随机数种子 CCard cpu,player; int blLogic; int nMoney;/ DisplayRule();/ char chChoice; coutchChoice; while(chChoice=Y|chChoice=y) do coutendl; coutttt您现在有的赌本:$player.GetMoney(); coutnMoney; blLogic = player.SetGamble(nMoney); if(blLogic) cout您的赌本不够,请重新下注!n; while(blLogic); PlayTurn(cpu,player);/ coutchChoice; player.DisplayInfo(); coutttt您的选择是明智的,赌博有碍家庭和睦!n; coutnntttt欢迎再次使用此程序!endlendlendl; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1