Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ program. I need to implement Deck.cpp and Card.cpp with the following Card.h

ID: 3695622 • Letter: C

Question

C++ program. I need to implement Deck.cpp and Card.cpp with the following Card.h and Deck.h files. DO NOT ALTER .h files.

I also have to create a main.cpp file to test the deckOfCards and Cards files.

// Card.h

#ifndef CARD_H_
#define CARD_H_

#include <iostream>
#include <string>

/* String constants for the suits */
static const std::string suitNames[] =
       { "Spades", "Hearts", "Diamonds", "Clubs" };

/* String constants for the rank */
static const std::string rankNames[] = { "Joker", "Two", "Three", "Four",
       "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King",
       "Ace" };

/* Card class to represent a single playing card */
class Card {
public:
   /* Suit enumerations */
   enum Suit
{
       Spades = 0, Hearts, Diamonds, Clubs
   };

   /* Rank enumerations ordered by value for game of war */
   enum Rank {
       Joker = 0,
       Two,
       Three,
       Four,
       Five,
       Six,
       Seven,
       Eight,
       Nine,
       Ten,
       Jack,
       Queen,
       King,
       Ace
   };

   /**
   * Constructor
   * @param s
   * @param r
   */
   Card(Suit s, Rank r);

   /* Constructor. This empty constructor will create a joker card. */
   /* The joker card is a special card given to the player going first. */
   Card();

   /* Destructor */
   virtual ~Card() {}

   /* Return true if this card is a joker */
   bool isJoker() const
{
       return (cardRank == Joker);
   }

   /* Output the card to an output stream as "rank of suit" */
   friend std::ostream& operator <<(std::ostream&, const Card&);

   /* Compare operators. For the game of war we only care about the rank */
   friend bool operator ==(const Card &lhs, const Card &rhs);
   friend bool operator <(const Card &lhs, const Card &rhs);

private:
   Suit cardSuit;
   Rank cardRank;
};

#endif /* CARD_H_ */

/* Deck.h */

#ifndef DECK_H_
#define DECK_H_

#include <vector>

#include "Card.h"

#define MaxCards 52

class Deck {
public:
   /* Constructor and destructor */
   Deck();
   virtual ~Deck();

   /* Shuffle the deck and reset the next available card to the beginning of the deck */
   void shuffle();

   /* Return true if the deck is empty (next available card is past the end of the deck) */
   bool isEmpty() const;

   /* Draw a card from the deck. If someone attempts to draw a card when the deck is */
   /* empty then throw an exception. */
   const Card draw();

private:
   unsigned nextCard;
   std::vector<Card> cardDeck;
};

#endif /* DECK_H_ */

// Card.cpp

#include <sstream>
#include "Card.h"
#include <iostream>
#include <stdio.h>
#include <stdexcept>
#include <exception>
using namespace std;

// Constructor with parameters
Card::Card(Suit s, Rank r)
{
cardSuit = s;
cardRank = r;
}

// Constructor defaults to a Joker
Card::Card()
{
cardSuit = Spades;
cardRank = Joker;
}

// Output card to an output stream as "Rank of Suit"
ostream& operator<<(ostream& out, const Card& aCard)
{
string s, r;
// Suit
if (aCard.Spades)
s = "Spades";
else if (aCard.Hearts)
s = "Hearts";
else if (aCard.Diamonds)
s = "Diamonds";
else if (aCard.Clubs)
s = "Clubs";

// Rank
if (aCard.Joker)
r = "Joker";
else if (aCard.Two)
r = "Two";
else if (aCard.Three)
r = "Three";
else if (aCard.Four)
r = "Four";
else if (aCard.Five)
r = "Five";
else if (aCard.Six)
r = "Six";
else if (aCard.Seven)
r = "Seven";
else if (aCard.Eight)
r = "Eight";
else if (aCard.Nine)
r = "Nine";
else if (aCard.Ten)
r = "Ten";
else if (aCard.Jack)
r = "Jack";
else if (aCard.Queen)
r = "Queen";
else if (aCard.King)
r = "King";
else if (aCard.Ace)
r = "Ace";
return out << s << " of " << r;
}

// Rank compare operators
bool operator<(const Card &lhs, const Card &rhs)
{ return lhs < rhs; }

bool operator==(const Card &lhs, const Card &rhs)
{ return lhs < rhs; }

#include "Deck.h"
#include "Card.h"
#include <algorithm>

Deck::Deck()
// Construct a deck
{

}

void Deck::shuffle()
{
}

bool Deck::isEmpty() const
{
}

Card Deck::draw()
{

}

What I need Answered: Deck.cpp Card.cpp Main.cpp

Explanation / Answer

deck.cpp

card.cpp

main.cpp

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote