【简答题】
[函数8.1说明]
现考虑编写一个扑克游戏:只用一副无大小王的扑克,扑克的花色(suit)分为Spade、Heart、Diamond和Club,每门花色的牌共13张,面值(rank)分别为2、3、4、5、6、7、8、9、10、Jack、Queen、King和Ace,每张扑克牌应包含如下信息:惟一的ID号(1~52)、花色、面值、背面图案的编号等。每张扑克牌的操作有:判断两张扑克牌是相同花色吗相同面值吗,判断一张扑克牌是给定的花色吗是给定的面值吗请补充扑克牌类Card类的声明和实现代码,要求选取适当形式的数据成员描述每张扑克牌的信息,同时以成员函数的形式实现指定的操作。
[C++程序]
const enum SUIT SPADE=0,HEART,DIAMOND,CLUB;
const enum RANKTWO=0 THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING,ACE;
class Card。
public:
(1) (int id):mID (id),mSuit((id 1)/13),mRank((id-1)%13)
bool IsSameSuit (const Card& rhs)
retum ((this ==&rhs) (2) ));
bool IsSankRank (const Card& rhs)
return ((this==&rhs)false: mRank==rhs. mRank);
bool IsSuit (int suit)
return (3) ;
bool IsRank(int rank)
return mRank==rank;
private:
static int nBackImg;//背面图案
const int mID;
const int mSuit;
const int mRank;
;
[函数8.2说明]
输入一字符串,将其中所有的小写字母转换为大写字母,大写字母转换为小写字母,然后显示输出转换后的字符串。
[C++程序]
#include<iostream. h>
class vector int a;
int b;
public:
vector (int x=0,int y=0):a(x),b(y)
double operator*( (4) )
double c;
(5) ;
return c;
void input (int x, int y)
a=x;
b=y;
void output ()
cout<<’(’<<a<<’,’ <<b<<") "<<end1;
;
void main() vector x(10,20),y; //定义x, y, z三个矢量类对象,并将x置初值(10,20)
doubled;//定义实数d以存放点乘结果
y. input (2,3); //给y赋值为(2,5)
d=x*y;//两矢量点乘
x. output (); //输出矢量x
y. output (); //输出矢量y
cout<<d<<end1; //输出点乘结果
手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏
举报
参考答案:
参考解析: