首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

发一路C++面试题给大家做做

2012-09-08 
发一道C++面试题给大家做做现考虑编写一个扑克游戏:只用一付无大小王的扑克,扑克的花色(suit)分为Spade、He

发一道C++面试题给大家做做
现考虑编写一个扑克游戏:只用一付无大小王的扑克,扑克的花色(suit)分为
  Spade、Heart、Diamond和Club,每门花色的牌共13张,面值(rank)分别为
  2、3、4、5、6、7、8、9、10、Jack、Queen、King和Ace,每张扑克牌应包含
  如下信息:唯一的ID号(1-52)、花色、面值、背面图案的编号等。每张扑克牌
  的操作有:判断两张扑克牌是相同花色吗? 判断两张扑克牌是相同面值吗?
  判断是给指定的花色吗?判断是给指定的面值吗?
  请写出扑克牌类Card类的声明和实现代码,要求选取适当形式的数据成员
  描述每张扑克牌的信息,同时以成员函数的形式实现指定的操作。


[解决办法]
main函数略 

//enum前加上const就可将下面所有的都放入.h中。 
const enum SUIT {SPADE=0,HEART,DIAMOND,CLUB}; 
const enum RANK {TWO=0,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING,ACE}; 
class Card 

public: 
Card(int id):mID(id),mSuit((id-1)/13),mRank((id-1)%13){} 
bool IsSameSuit(const Card& rhs) 
{ return ((this==&rhs)?false:mSuit==rhs.mSuit);} 
bool IsSameRank(const Card& rhs) 
{ return ((this==&rhs)?false:mRank==rhs.mRank); } 
bool IsSuit(int suit) 
{return mSuit==suit;} 
bool IsRank(int rank) 
{return mRank==rank;} 
private: 
static int nBackImg; //背面图案 
const int mID; 
const int mSuit; 
const int mRank; 
}; 

热点排行