21点扑克牌游戏实验报告
更新时间:2024-02-02 23:59:01 阅读量: 教育文库 文档下载
- 扑克牌估算工作量实验报告推荐度:
- 相关推荐
C++课程设计实验报告
姓名 李執平 学号 1006840123 班级 10068401 任课教师 严悍 时间 2011-9-15 题目 21点的扑克牌游戏 评定难易级别 B 实验报告成绩
1.实验内容:
1.1 程序功能介绍
21点扑克牌游戏,玩家一共可以要5张牌,如果牌的点数超过21,则为输,自动出局;在不超过21点的情况下,玩家与庄家比牌的点数大小,大者为胜。
1.2 程序设计要求
(1)所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。 (2)程序中共有13张扑克牌可以随机抽选,大于10的点数为10,现要将大于10的点数全部变为半点。
(3)要求高级玩家永远不会输掉,高级玩家可以查看下一张牌,若大于21点则拒绝,当然在游戏规则上不能泄露这一点
(4)超级玩家可以查看下一张牌,即输入指定的字符或字符串,然后按要求输入密码,密码正确则可以查看自己和计算机的牌,并指定下一张牌的大小。 (5)每次要牌后可以设定赔率,即可以加注。
(6)将界面改为中文界面,界面解释设置详细友好。
2. 源程序结构流程框图与说明(含新增子函数的结构框图)
开始界面,输出规则 进入下注界面。下注 玩家电脑各发两张牌 询问是否继续下注,是否继续要牌 高级玩家:查看下一张牌 普通玩家:得到一张牌 超级玩家:选择下一张牌的点数 是否大于21点 是否继续要牌 大于21点,输出:你输了 与电脑比点数大小 你赢了 平局 你输了 询问是否继续
3. 基本数据结构
Public:CCard private:
double money;//有多少钱 double bet;//赌注 int win; int lose; int draw; char a[7]; public:
int playerturns,cputurns;//计算机实际发了多少牌 double player,cpu;//计算机和玩家的点数 ccard();//构造函数,初始化
void firstplaytwo();//最初两张牌 void results();
void BET();//接受玩家下注 double getmoney();//返回钱数 void modifypassword();//修改密码 int password();//设置密码 void rules();//游戏规则
void replay(char&);//是否再来一局 void print();//输出最后结果 void Hit(double&);//要一张牌
void gaojiplayer();//设置高级玩家 void superplayer();//设置超级玩家
(1)密码设置函数
int ccard::password()//密码设置 {
char str[7]; char ch; int i=0;
cout<<\请输入六位数密码:\ cout.flush();//清输出缓冲区 ch=getch();
while(ch!='\\r')//当输入x字符时循环结束 {
str[i++]=ch; cout<<'*'; cout.flush(); ch=getch();
}
str[i]=0;//输入的密码在str数组中 system(\
if (strcmp(a,str)!=0) {
cout<<\密码输入错误!\\n\\t\\t\\t退出输入请按(Q&q),继续输入按(C&c)!\
cin>>ch;
system(\
if(ch=='q'||ch=='Q')return 0; else password(); }
return 1; }
(2)超级玩家设置函数
void ccard::superplayer()//设置超级玩家 {
playerturns++; //玩家手中的牌书3增加一张
if(playerturns>5) //判断玩家手中的牌数是否超过5张 {
cout<<\对不起!您要的牌数不能超过五张\超过,不能继续要牌
}
double n;
cout<<\您的牌面总数是:\ cout<<\计算机牌面总数是:\ //playerturns++;
cout<<\请输入您要的下一张牌的点数:\ cin>>n;
if(n<=10&&n>0){
player=player+n;
cout<<\您要的点数是:\
cout<<\您现在的牌面总点数是:\
else{cout<<\输入的牌面点数必须在0到10之间请重新输入:\ superplayer();} }
4. 程序运行结果界面
图一:开始界面
图二:开始游戏,下赌金
图三:超、高级玩家修改密码服务
图四:超、高级玩家服务
5. 课程设计遇到的技术问题与解决思路
问题1:如何使程序更为简化
解决办法:将所有函数与相应数据封装到类中:设计一个类,将出牌,下注等的操作包含进去,玩家和计算机均为这个类的对象。这样在玩牌及判断输赢时,函数只需要用这两个对象的引用做参数即可,大大简化了函数。
问题2:如何设置密码及输入密码
解决办法:将密码存入专门指定的文件中,每次接收完用户输入的密码后,去这个文件中读取原密码进行比较,如果一致则可以修改原密码
图四:超、高级玩家服务
5. 课程设计遇到的技术问题与解决思路
问题1:如何使程序更为简化
解决办法:将所有函数与相应数据封装到类中:设计一个类,将出牌,下注等的操作包含进去,玩家和计算机均为这个类的对象。这样在玩牌及判断输赢时,函数只需要用这两个对象的引用做参数即可,大大简化了函数。
问题2:如何设置密码及输入密码
解决办法:将密码存入专门指定的文件中,每次接收完用户输入的密码后,去这个文件中读取原密码进行比较,如果一致则可以修改原密码
正在阅读:
21点扑克牌游戏实验报告02-02
(通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件08-08
县医疗保障局最新半年工作总结及工作计划04-04
禁毒竞赛试题及答案08-01
17版发布稿-长庆气田产能建设地面工程标准化、数字化设计技术规定09-07
浅谈激励机制在教学管理中的运用10-27
物流公司总经理年会发言稿范文05-08
2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)08-08
拌合站验收(王)04-25
上海、青岛、深圳:手表定价各有高招06-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 扑克牌
- 实验
- 报告
- 游戏
- 个人理财论文
- 关于新华主要功能块以及一些心得说明
- 水厂扩建监理实施细则
- 建筑施工中、小型施工机具登记表8.4.1
- 2014年驾校最新科目一考试试题,第四章要点
- 奥鹏 南开大学 13秋学期《行政法与行政诉讼法》在线作业
- 最新鼎捷易助ERP常见问题故障及解决方案方法FAQ - 图文
- 代 表 队 名 单
- 2016年中央财政支持会计电算化专业建设总结报告考资料
- 孙斌-工程数学教案
- 西南大学《园林工程概预算》网上作业题及答案汇总
- 2016年专升本华工网络教育 - 高级语言程序设计C++ - 随堂练习参考答案 - 完整版
- 计算机二级公共基础知识(全)
- 在县人大分组讨论会议上的发言提纲
- 环保、水土保持措施
- 故宫对联大全 - 图文
- 针灸科中风病诊疗常规
- 园林树木学111304123 周云霄 - 图文
- 乳品工艺学试题+答案
- 名词性从句的翻译