填空题 [函数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 RANK{TWO=0 THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING,ACE}; class Card。 { public: {{U}} (1) {{/U}}(int id):mID (id),mSuit((id 1)/13),mRank((id-1)%13) {} bool IsSameSuit (const Card& rhs) {retum ((this ==&rhs)?{{U}} (2) {{/U}}));} bool IsSankRank (const Card& rhs) {return ((this==&rhs)?false: mRank==rhs. mRank);} bool IsSuit (int suit) {return {{U}}(3) {{/U}};} 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*({{U}} (4) {{/U}}) { double c; {{U}} (5) {{/U}}; 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; //输出点乘结果 }
  • 1、
【正确答案】 1、(1)Card (2)false:mSuit==rhs. mSuit    
【答案解析】(3)mSuit=suit (4)vector &x (5)c=a*x. a+ b*x.