Question
Your solution should for this assignment should consist of five (5)files: Card.h (class specification file) Card.cpp (class implementation file) DeckOfCards.h (class specification file) DeckOfCards.cpp (class
Your solution should for this assignment should consist of five (5)files:
Card.h (class specification file)
Card.cpp (class implementation file)
DeckOfCards.h (class specification file)
DeckOfCards.cpp (class implementation file)
200_assign7.cpp (application program)
For your seventh programming assignment you will be writing a program to shuffle and deal a deck of cards. The program should consist of class Card, class DeckOfCards and an application program.
Class Card should provide:
a. Data members face and suit of type int. These are index numbersfor the faces and suits arrays described in step c below.
b. A constructor that receives two ints representing the face and suit and uses them to initialize the data members.
c. Two static arrays of strings representing the faces and suits. The faces array stores the strings Ace, Deuce, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, and King. The suits array stores the strings Hearts, Diamonds, Clubs, and Spades.
d. A toString function that returns the Card as a string in the form face of suit. For example, Ace of Hearts. You can use the + operator to concatenate strings.
Class DeckOfCards should contain:
a. A vector of Cards named deck (of type Card the Card class) to store the Cards. There are 52 cards in a deck, which is the number of faces (13) times the number of suits (4).*
b. An integer currentCard representing the next card to deal. This is used as an index number for the deck vector from step a.
c. A default constructor that initializes the Cards in the deck. You can initialize the faces and suits in the order shown above in step c of the Card class.**
d. A shuffle function that shuffles the Cards in the deck. The shuffle algorithm should iterate through the array of Cards. For each Card, randomly select another Card in the deck and swap the two Cards.
e. A dealCard function that returns the next Card object from the deck vector.
f. A moreCards function that returns a bool value indicating whether there are more Cards to deal. This function will return false if all 52 cards have been dealt, otherwise it returns true.
*Note that this is composition: a deck of cards has cards, so the DeckOfCards class has a vector of type Card as one of its private member variables
This means each index in the deck vector stores an entire Card object, and each Card object in turn consists of a face (type string) and a suit (type string). For example:
deck[0] = Card(Ace, Hearts)
deck[1] = Card(Deuce, Diamond)
.
deck[51] = Card(Queen, Spades)
** The faces array stores the strings Ace, Deuce, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, and King. The suits array stores the strings Hearts, Diamonds, Clubs, and Spades. You can initialize the arrays following this order.
The application program should create a DeckOfCards object, shuffle the cards, then deal the 52 cards. Each time you run the program you should see all 52 cards, but they should be displayed in a different order each time the program is run (as shown below).
Sample run 1: Jack of Spades Seven of Spades Five of Hearts King of Spades ueen of Diamonds Queen of Hearts Three of Hearts Deuce of Spades Three of Diamonds Four of Clubs Ten of Diamonds Ace of Hearts Six of Clubs euce of Clubs Seven of Clubs ueen of Spades Eight of Hearts Eight of Diamonds Jack of Clubs Jack of Hearts Nine of Diamonds Seven of Hearts ce of Diamonds Ten of Ten of Clubs Jack of Diamonds King of Clubs Five of Spades Four of Hearts Nine of Clubs Eight of Clubs Nine of Spades Five of Diamonds Six of Spades King of Diamonds Eight of Spades Queen of Clubs Five of Clubs Three of Clubs Four of DiamondsTen of Spades Deuce of Hearts Ace of Clubs Deuce of Diamonds hree of Sp King of Hearts Six of Hearts Seven of Diamonds Nine of Hearts Ace of Spades Four of Spades Six of Diamonds ades Sample run 2: Queen of Diamonds Seven of Diamonds Ten of Hearts King of Hearts Ten of Diamonds Five of Spades Nine of Diamonds Ace of Hearts ack of Hearts Eight of Spades ack of Diamonds Five of Hearts Four of Clubs ack of Spades Four of Spades Eight of Clubs Seven of Clubs Ten of Spades Six of Clubs Press any key to continue . . . Six of Hearts Deuce of Spades Five of Clubs Ace of Diamonds Nine of Spades Eight of Diamonds Eight of Hearts Four of Hearts Three of Clubs Nine of Clubs Four of Diamonds Queen of Spades Jack of Clubs Seven of Spades Six of Spades Nine of Hearts Three of Diamonds Deuce of Clubs Six of Diamonds Three of Spades Deuce of Diamonds King of Diamonds Seven of Hearts Queen of Hearts King of Clubs Deuce of Hearts King of Spades Three of Hearts Ace of Clubs Ace of Spades Ten ofClubs Five of Diamonds Queen of Clubs
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started