欢迎来到人人文库网! | 帮助中心 人人文档renrendoc.com美如初恋!
人人文库网
全部分类
  • 图纸下载>
  • 教育资料>
  • 专业文献>
  • 应用文书>
  • 行业资料>
  • 生活休闲>
  • 办公材料>
  • 毕业设计>
  • ImageVerifierCode 换一换
    首页 人人文库网 > 资源分类 > DOC文档下载  

    21点扑克游戏 软件报告-面向对象程序设计课程设计 优选内容

    • 资源ID:83371378       资源大小:143KB        全文页数:17页
    • 资源格式: DOC        下载积分:20积分
    扫码快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
    二维码
    微信扫一扫登录

    手机扫码下载

    请使用微信 或支付宝 扫码支付

    • 扫码支付后即可登录下载文档,同时代表您同意《人人文库网用户协议》

    • 扫码过程中请勿刷新、关闭本页面,否则会导致文档资源下载失败

    • 支付成功后,可再次使用当前微信或支付宝扫码免费下载本资源,无需再次付费

    账号:
    密码:
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源(1积分=1元)下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    21点扑克游戏 软件报告-面向对象程序设计课程设计 优选内容

    福建农林大学计算机与信息学院计算机类课程设计报告课程名称:面向对象程序设计课程设计课程设计题目:21点扑克牌游戏姓 名:谢飞乐系:计算机科学与信息专 业:计算机科学与技术年 级:2007级学 号:071152032指导教师:李丽珊职 称:讲师2009年 1月 10日福建农林大学计算机与信息学院计算机类课程设计结果评定评语:评分项目分值得分 课程设计报告符合规范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源代码9仅供借鉴#21点扑克牌游戏1.课程设计目的面向对象程序设计课程设计是计算机科学与技术专业和软件工程专业集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。其目的在于加深对面向对象程序设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生能够熟练运用C+进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。2.课程设计要求1、掌握使用一种面向对象程序设计语言如Borland C+或Visual C+等。 2、培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。 3、通过课程设计,要求学生在指导教师的指导下,独立完成实习课题的全部内容,包括: 通过调查研究和上机实习,收集和调查有关技术资料。 掌握设计课题的基本步骤和方法。 根据课题的要求进行上机实验调试。4、课程设计完成后,提交课程设计报告3运行环境联想计算机,WindowsXP操作系统,Microsoft Visual C+ 6.04.设计内容4.1程序说明该程序是模拟21点扑克牌游戏,玩家最多可以要5张牌,但如果牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数的大小,大者为赢家。4.2设计内容及功能(1)将大于10点的点数改为半点(修改点数的类型)。(2)高级玩家(经理级)可以查看下一张牌,即按键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌。(3)超级玩家(总经理级)可以查看庄家(计算机)的所有牌面,并任意输入自己想要的牌,有赢无输,为保密起见,输入自己想要的牌后应立刻屏。(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:CCard();/构造函数。void FirstPlayTwo();/最初的两张牌int GetNumber();/返回牌张int GetPip();/返回点数void DisplayPip();/依次全部显示牌面的点数void DisplayPip(int);/除了第一张牌,依次显示全部牌面点数(针对计算机牌的显示)void TurnPlay();/出一张牌。void Win();/赢了计算赌注void Lose();/输了void Draw();/平局int SetGamble(int);/设置赌本,赌本不够返回-1int GetMoney();/返回钱数void DisplayInfo();/打印必要的信息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.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.总结本次课程设计,使我对C+面向对象程序设计有了进一步的认识和掌握。我设计的这个简单的师生管理系统主要用到了继承和派生、虚继承、switch语句在设计过程中,我遵循一个指导思想:先把总的框架设计出来,再在对其中加上再的内容。千万不要企图在一开始时就解决所有的细节。边编程,边调试,边扩充。6参考文献1谭浩强.C+面向对象程序设计.北京:清华大学出版社,2006.2谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.7.源代码:#include<cstdlib>#include<iostream>#include<ctime>using namespace std;class CCardprivate:int m_Pip5;/一共五张牌int m_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 Win();/赢了计算赌注void Lose();/输了void Draw();/平局int SetGamble(int);/设置赌本,赌本不够返回-1int GetMoney();/返回钱数void DisplayInfo();/打印必要的信息int GetCurrentCard();/返回当前的牌点;CCard:GetNumber()return m_Number;CCard:CCard()/构造函数,初始化m_Number = 0;m_Dollar = 100;/初始赌注为100美元for(int i=0;i<5;i+)m_Pipi = 0;m_Gamble = 0;m_Win = m_Lose = m_Draw = 0;int CCard:GetMoney()return m_Dollar;void CCard:DisplayInfo()/打印必要的信息cout<<"nnnttt您一共玩了"<<m_Win+m_Lose+m_Draw<<"局 "<<"赢了"<<m_Win<<"局 "<<"输了"<<m_Lose<<"局 "<<"平局"<<m_Draw<<"次。"<<endl;cout<<"ntttt您的赌本共计有$"<<m_Draw<<"。n"<<endl;int CCard:SetGamble(int gamble)if(gamble<0)cout<<"n输入金额有误"<<endl;return -1;if(m_Dollar-gamble<0)cout<<"n金额不足"<<endl;return -1; elsem_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;i<m_Number;i+)SumPip += m_Pipi;return SumPip;void CCard:DisplayPip()int i;for(i=0;i<m_Number;i+)cout<<m_Pipi<<t;cout<<endl;void CCard:TurnPlay()m_Number+;m_Pipm_Number-1 = rand()%13+1;void CCard:Win()cout<<"赢家牌面:"DisplayPip();cout<<"n牌面点数:"<<GetPip()<<endl;m_Dollar = m_Dollar + 2 * m_Gamble;m_Win+;cout<<"n赌本:$"<<m_Dollar<<" 赢了"<<m_Win<<"次 "<<"输了"<<m_Lose<<"次 "<<"平局"<<m_Draw<<"次"<<endl;cout<<endl;cout<<endl;void CCard:Lose()m_Lose+;cout<<"n输家的牌面:"DisplayPip();if(GetPip()>21)cout<<"tttttttt暴了!"<<endl;elsecout<<"牌面点数:"<<GetPip()<<endl;cout<<"n赌本:$"<<m_Dollar<<" 赢了"<<m_Win<<"次 "<<"输了"<<m_Lose<<"次 "<<"平局"<<m_Draw<<"次"<<endl;cout<<endl<<endl;void CCard:Draw()m_Draw+;m_Dollar += m_Gamble;cout<<"n平局牌面:"DisplayPip();if(GetPip()>21)cout<<"n暴了!"<<endl;elsecout<<"牌面点数:"<<GetPip()<<endl;cout<<"赌本:$"<<m_Dollar<<" 赢了"<<m_Win<<"次 "<<"输了"<<m_Lose<<"次 "<<"平局"<<m_Draw<<"次"<<endl;cout<<endl<<endl;void DisplayRule(void) cout<<endl<<endl;cout<<"t欢迎进入21点游戏世界!nn"cout<<"tt 游戏规则:n" cout<<endl;cout<<"tt 1.玩家最多可以要5张牌;n"cout<<endl;cout<<"tt 2.如果牌点数的总数超过21点则暴点,自动判数;n"cout<<endl;cout<<"tt 3.赢家可得双倍的赌注;n"cout<<endl;cout<<"tt 4.计算机方在大于等于16点时不再要牌。n"cout<<endl;cout<<"t 祝您好运! n"cout<<endl<<endl;void Judge(CCard &cpu,CCard &player)cout<<endl;if(cpu.GetPip()>21&&player.GetPip()>21)|cpu.GetPip()=player.GetPip()cout<<"nntttttttt平局!n"cout<<"计算机数据:t"cpu.DisplayPip();cout<<"牌面点数:"<<cpu.GetPip()<<endl;cout<<"n您的数据:t"player.Draw();cout<<endl;else if(cpu.GetPip()>21)|(player.GetPip()>cpu.GetPip()&&player.GetPip()<=21)cout<<"nnntttttttt恭喜您赢了!nn"cout<<"计算机数据:t"cpu.DisplayPip();cout<<"牌面点数:"<<cpu.GetPip()<<endl;cout<<"n您的数据:t"player.Win();cout<<endl;elsecout<<"nntttttttt很遗憾您输了!n"cout<<"计算机数据:t"cpu.DisplayPip();cout<<"牌面点数:"<<cpu.GetPip()<<endl;cout<<"n您的数据:t"player.Lose();cout<<endl;void CCard:DisplayPip(int n)int i;cout<<"*"<<t;for(i=1;i<m_Number;i+)cout<<m_Pipi<<t;cout<<endl;void PlayTurn(CCard &cpu,CCard & player)/玩一局char chChoice;int blCpu = 1;/判断是否要牌int blPlayer = 1;cpu.FirstPlayTwo();/计算机和玩家各要两张牌player.FirstPlayTwo();docout<<"n您的牌点为:t"player.DisplayPip();cout<<"n"cout<<"您的牌面点数是:"<<player.GetPip()<<endl;cout<<"n计算机的牌点为:t"cpu.DisplayPip(1);if(blPlayer)cout<<"nnt您是否继续要牌(Y/N)?ttt"cin>>chChoice;if(chChoice = Y|chChoice = y)if(player.GetNumber()<5)player.TurnPlay();cout<<"n您要的这张牌是:"<<player.GetPip()<<endl;if(player.GetPip()>21)blPlayer = 0;elsecout<<"对不起,您已经要了5张牌,不能再要牌了!"blPlayer = 0;if(chChoice=n|chChoice=N)blPlayer = 0;if(cpu.GetPip()<16&&cpu.GetNumber()<5)cpu.TurnPlay();cout<<"n计算机要牌,牌点是:"<<cpu.GetPip()<<endl;elseblCpu = 0;if(blCpu&&player.GetNumber()<5&&player.GetPip()<21)blPlayer = 1;while(blCpu|blPlayer);Judge(cpu,player);return ;int main()srand(unsigned)time(NULL);/初始化随机数种子CCard cpu,player;int blLogic;int nMoney;/DisplayRule();/char chChoice;cout<<"是否现在开始游戏(Y/N)?tt"cin>>chChoice;while(chChoice=Y|chChoice=y)do cout<<endl;cout<<"ttt您现在有的赌本:$"<<player.GetMoney();cout<<"nn请下注(赌注不能超过赌本);"cin>>nMoney;blLogic = player.SetGamble(nMoney);if(blLogic)cout<<"您的赌本不够,请重新下注!n"while(blLogic);PlayTurn(cpu,player);/cout<<"是否继续21点游戏(Y/N)?ttt"cin>>chChoice;player.DisplayInfo();cout<<"ttt您的选择是明智的,赌博有碍家庭和睦!n"cout<<"nntttt欢迎再次使用此程序!"<<endl<<endl<<endl;return 0;

    注意事项

    本文(21点扑克游戏 软件报告-面向对象程序设计课程设计 优选内容)为本站会员(8**)主动上传,人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知人人文库网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    网站客服QQ:2881952447     

    copyright@ 2020-2024  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

    备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!