C++扑克牌类的设计
C++扑克牌
1、设计扑克类Card:主要属性有花色和点数;主要方法有初始化、输出、比较大小等
2、设计一副扑克牌类Cards:主要属性包括扑克对象数组;主要方法有初始化、洗牌、输出等。
3、编写测试程序。
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
#include <algorithm>
#include <map>
using namespace std;
class Card
{public:string color;string point;Card(string color, string point);Card(string point);void display();void battle(Card card1);};
class Cards
{public:vector<Card> card;Cards();void display_all();void shufflePoker();
};Card::Card(string color, string point)
{this->color = color;this->point = point;
}Card::Card(string point)
{this->color = "";this->point = point;
}void Card::display()
{string s = this->color + this->point;cout<<s<<endl;
}void Card::battle(Card card1)
{map<string, int> p;map<string, int> c;p["A"] = 1;p["2"] = 2;p["3"] = 3;p["4"] = 4;p["5"] = 5;p["6"] = 6;p["7"] = 7;p["8"] = 8;p["9"] = 9;p["10"] = 10;p["J"] = 11;p["Q"] = 12;p["K"] = 13;p["小王"] = 14;p["大王"] = 15;c["黑心"] = 4;c["红心"] = 3;c["草花"] = 2;c["方块"] = 1;c[""] = 0;if(p[card1.point] > p[this->point])cout<<card1.color + card1.point + " 大于 " + this->color + this->point<<endl;else if(p[card1.point] < p[this->point])cout<<card1.color + card1.point + " 小于 " + this->color + this->point<<endl;else if(p[card1.point] == p[this->point]){if(c[card1.color] > c[this->color])cout<<card1.color + card1.point + " 大于 " + this->color + this->point<<endl;else if(c[card1.color] < c[this->color])cout<<card1.color + card1.point + " 小于 " + this->color + this->point<<endl;elsecout<<card1.color + card1.point + " 等于 " + this->color + this->point<<endl;}
}Cards::Cards()
{string colors[]={"黑心", "红心", "草花", "方块"};string numbers[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};for(int i=0;i<4;i++){for(int j=0;j<13;j++){this->card.push_back(Card(colors[i], numbers[j]));}}this->card.push_back(Card("", "大王"));this->card.push_back(Card("", "小王"));}void Cards::shufflePoker()
{srand((unsigned int)time(0));random_shuffle(this->card.begin(), this->card.end());}void Cards::display_all()
{for(int i=0;i<card.size();i++){cout<<this->card[i].color;cout<<this->card[i].point + "\t";}cout<<endl;
}int main()
{cout<<"初始化扑克牌:"<<endl;Card card("黑心", "2");card.display();Card card2("大王");card2.display();cout<<"比较大小:"<<endl;card2.battle(card);cout<<"初始化扑克牌:"<<endl;Card card1("红心","1");card1.display();Card card3("黑心", "2");card3.display();cout<<"比较大小:"<<endl;card3.battle(card);cout<<"比较大小:"<<endl;card.battle(card1);cout<<"初始化扑克牌序列:"<<endl;Cards cards;cards.display_all();cout<<"开始洗牌:"<<endl;cards.shufflePoker();cards.display_all();cout<<"洗牌结束"<<endl;cout<<"开始洗牌:"<<endl;cards.shufflePoker();cards.display_all();cout<<"洗牌结束"<<endl;return 0;
}
运行结果
C++扑克牌类的设计相关推荐
- python中扑克牌类设计_Python类的基础设计、使用
类是事物功能和属性的抽象,对象是类的实例化.就像人人都知道小汽车可以干什么什么的,但光想小汽车如何好是没有用的,得开车或坐才能感受到小汽车的好.人脑里的小汽车是抽象的,即类,而坐上的某辆车是小汽车的实 ...
- 转:软件设计漫谈之三:30分钟掌握面向对象类的设计原则
转自:http://blog.csdn.net/yunhua_lee/article/details/5105524 30分钟掌握面向对象类的设计原则 看过设计模式的人不少,但看过Martin的面向对 ...
- VS 2010 通过 Architecture创建UML类图设计
[赛迪网报道]类是对应用领域或应用解决方案中概念的描述.类图以类为中心进行组织,类图中的其他元素或属于某个类,或与类相关联.类也是对象的集合,展示了对象的结构及与系统交互的行为,其目的是显示建模系统的 ...
- 一文讲透非标品的商品类目设计
www.pmcaff.com 本文为作者 百转 于社区发布 只要做电商,商品类目设计就是绕不开的一环.好的类目设计能让供需双方更快.更好定义或找到所关心的商品,是整个电商体系的地基,是构建并链接各个模 ...
- java 重启线程_java 可重启线程及线程池类的设计(详解)
了解JAVA多线程编程的人都知道,要产生一个线程有两种方法,一是类直接继承Thread类并实现其run()方法:二是类实现Runnable接口并实现其run()方法,然后新建一个以该类为构造方法参数的 ...
- Java黑皮书课后题第10章:*10.10(Queue类)10.6节给出一个Stock类。设计一个名为Queue的类用于存储整数。像栈一样,队列保存元素。在栈中,元素后进先出。队列中元素先进先出
10.10(Queue类)10.6节给出一个Stock类,设计一个名为Queue的类用于存储整数 题目 程序 破题 代码 Test10.java Test10_Queue.java UML 题目 程序 ...
- Java黑皮书课后题第10章:10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点
10.4(MyPoint类)设计一个名为MyPoint的类,代表一个以x坐标和y坐标表示的点 题目 程序 代码 Test4.java Test4_MyPoint.java 运行实例 UML 题目 程序 ...
- Java黑皮书课后题第10章:10.3(MyInteger类)设计一个名为MyInteger的类
10.3(MyInteger类)设计一个名为MyInteger的类 题目 程序说明 代码 Test3.java Test3_MyInteger.java 运行实例 UML 题目 程序说明 测试程序:T ...
- Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置。
Java黑皮书课后题第9章:**9.13(Location类)设计一个名为Location的类,定位二维数组中的最大值及其位置 题目 破题 代码 Test13 Test13_Location 运行结果 ...
- Java黑皮书课后题第9章:9.8(Fan类)设计一个名为Fan的类来代表风扇
9.8(Fan类)设计一个名为Fan的类来代表风扇 题目 破题 代码 Test8 Test8_Fan 执行结果 UML 题目 破题 Test8:测试程序 Test8_Fan:实现题目要求 代码 Tes ...
最新文章
- 企业管理软件的需求描述方法
- 15.1 自定义分词器
- 从头写一个Cucumber测试(二) Cucumber Test
- 将CSS CLIP属性应用在:扩展覆盖效果
- 基于tensorflow深度学习的中文的命名实体识别
- netty LEAK: ByteBuf.release() was not called before it's garbage-collected
- paip.百度空间 JAVA程序发文总结
- 我的世界起床战争java 版服务器_我的世界中国版起床战争下载-我的世界中国版起床战争服务器_5577安卓网...
- QT调用巴斯勒相机的使用
- 【渝粤教育】 国家开放大学2020年春季 1332中文学科论文写作 参考试题
- 在 SQL 中计算总行数的百分比
- 如何快速查询京东快递物流正在派送中的单号
- 集美大学计算机毕业论文,集美大学毕业论文要求.doc
- 张柏芝、谢霆锋、陈冠希近半年行踪关系图,这个图很厉害,可以作为思维导图的工具...
- 解决数据一致性方案(库存问题)
- R语言 Rstudio对本地文件数据文件的读写和查看设置当前工作路径
- Basic4IOS (B4I) New Version Crack
- jquery实现二级导航下拉菜单效果实例
- Windows c# 生成验证码图片
- 关于智慧团建忘记密码的解决方法