Write a declaration for the class Card including its data members and function members based on the following UML and save it in a file called card.h.
Card
-suit:int
-rank:int
+Card()
+genRandom():void
+getRand():string
+getSuit():string
+printCard():void
+sameCard(Card):bool
+sameSuit(Card):bool
+sameRand(Card):bool
b)Implement the member functions based on the following descriptions, and save them in a file called card.cpp.
Card(): is the constructor.
genRandom(): this function will simulate the dealing of a card. It will randomly generate a rank (1 to 13) and a suit (1 to 4) and store these values in the appropriate member attributes. See end of this handout for explanation of how to generate random numbers.
getRank(): will return the text version of the rank
1 is Ace, 2 is Deuce, 3 to 10 is the number spelled out (Three, Four, ....., Ten), 11 is Jack, 12 is Queen and 13 is King
getSuit(): will return the name of the suit, Spades, Clubs, Diamonds, Hearts
printCard(): will show on the screen the rank and suit of the card. It will need to call the member functions getRank() and getSuit();
sameCard(Card): will return a Boolean value indicating if the two cards being compared have the same rank and the same suit in other words are identical.
sameSuit(Card) and sameRank(Card): will return a Boolean value indicating if the two cards being compared have the same rank or the same suit.
c) Write a program that uses the class Card . It should deal x pairs of cards, (where x is between 1 and 15 inclusive), print them out, and count the number of pairs that had identical cards, cards only of the same rank, cards only of the same suit, and pairs of different cards. You are to ask the user how many pairs to deal. Print out a summary at the end, indicating the number of identical cards, different cards and number of pairs with same rank or same suit. <<
Here is a general algorithm.
- Declare two objects of type Card called card1, card2.
- Print out a welcome message which includes your name(s)
- Ask the user the number of pairs to deal out. Set a maximum such that your output will fit in
one output screen. Be sure to check that the number of pairs the user has requested is valid. As long
as number of pairs requested is not valid, prompt the user for a valid number of pairs.
Card
- suit: int
- rank: int
+ Card()
+ genRandom(): void
+ getRank(): string
+ getSuit(): string
+ printCard(): void
+ sameCard(Card): bool
+ sameSuit(Card): bool
+ sameRank(Card): bool
COMP218/Winter 2014 - Assignment 4 Page 3 of 4
- Deal two cards at a time, print them out
- Check if they are identical, have just the same rank or just same suit or are completely
different. Print out a message indicating the result of your comparison.
- Count the number of pairs in each category (identical, same suit, same rank or different).
- Once finish dealing all cards, print out a summary of your findings.
NOTE 1: Be sure to save the class declaration in a header file, the class implementation if a .cpp file.
Don't forget to include these files in the project. Following is a sample output screens. Note these
are samples, meaning you can change the messages and the format but not the content