Need a little help with my homework. Deck of Cards Lab 1) Program a Card class w
ID: 3755843 • Letter: N
Question
Need a little help with my homework.
Deck of Cards Lab
1) Program a Card class with these member variables:
• number – an integer between 1 and 13
• suit – an enumerated data type with values { Spade, Heart, Diamond, Club }
• description – a string with card name – for example “Spade Ace” or “Heart 5”
A card object with number 1 is an Ace. Number 11 represents a Jack, 12 represents a Queen, and 13
represents a King.
Your class should have set and get member functions to update and return the value of each
member variable.
2) Write a main program which creates and displays a deck of 52 cards. The display should look
something like this:
Spade Ace Heart Ace Diamond Ace Club Ace
Spade 2 Heart 2 Diamond 2 Club 2
Spade 3 Heart 3 Diamond 3 Club 3
Spade 4 Heart 4 Diamond 4 Club 4
Spade 5 Heart 5 Diamond 5 Club 5
Spade 6 Heart 6 Diamond 6 Club 6
Spade 7 Heart 7 Diamond 7 Club 7
Spade 8 Heart 8 Diamond 8 Club 8
Spade 9 Heart 9 Diamond 9 Club 9
Spade 10 Heart 10 Diamond 10 Club 10
Spade Jack Heart Jack Diamond Jack Club Jack
Spade Queen Heart Queen Diamond Queen Club Queen
Spade King Heart King Diamond King Club King
3) Separate your class definition and main program from part 2 into two files. Ensure you can build and
run your program.
my code so far:
Explanation / Answer
As per your question, I have corrected your code, divided definition of Card class in one file (card.h) and main method in another file (main.cpp). If you want to sub divide method prototypes and method implementations separately (i.e Card.h and Card.cpp), please let me know. Comments are included, go through it, learn how things work and let me know if you have any doubts. If you are satisfied with the solution, please upvote the answer. Thanks
//Code
//Card.h
#ifndef Card_h
#define Card_h
#include <iostream>
#include <cstring>
#include <iomanip>
#include <sstream>
using namespace std;
enum Suit { Spade, Heart, Diamond, Club };
class Card
{
private:
int number;
Suit suit;
string description;
public:
int getNumber()
{
return number;
}
Suit getSuit()
{
return suit;
}
//method to return the suit name as a String
string getSuitName(){
if(suit==Spade){
return "Spade";
}else if(suit==Heart){
return "Heart";
}else if(suit==Diamond){
return "Diamond";
}else{
return "Club";
}
}
//method to return the rank as a string
string getNumberString(){
//if the rank (number) is 1,11,12 or 13, proper alias values are returned
if(number==1){
return "Ace";
}else if(number==11){
return "Jack";
}else if(number==12){
return "Queen";
}else if(number==13){
return "King";
}else{
//any other values (between 2 and 10), converted to integer and returned
ostringstream ss; //used to convert int to string
ss<<number;
return ss.str();
}
}
Suit setSuit(Suit s)
{
suit=s;
}
int setNumber(int num)
{
number = num;
}
};
#endif
//main.cpp
#include "Card.h"
int main(){
Card cards[13][4];
//initializing deck of cards
for(int i=0;i<13;i++){
for(int j=0;j<4;j++){
//creating the suit
Suit s=(Suit) j;
//setting number and suit to current card
cards[i][j].setNumber(i+1);
cards[i][j].setSuit(s);
}
}
//now displaying all cards on deck
for(int i=0;i<13;i++){
for(int j=0;j<4;j++){
cout<<cards[i][j].getSuitName()<<" "<<cards[i][j].getNumberString()<<" ";
}
cout<<endl;
}
}
/*OUTPUT*/
Spade Ace Heart Ace Diamond Ace Club Ace
Spade 2 Heart 2 Diamond 2 Club 2
Spade 3 Heart 3 Diamond 3 Club 3
Spade 4 Heart 4 Diamond 4 Club 4
Spade 5 Heart 5 Diamond 5 Club 5
Spade 6 Heart 6 Diamond 6 Club 6
Spade 7 Heart 7 Diamond 7 Club 7
Spade 8 Heart 8 Diamond 8 Club 8
Spade 9 Heart 9 Diamond 9 Club 9
Spade 10 Heart 10 Diamond 10 Club 10
Spade Jack Heart Jack Diamond Jack Club Jack
Spade Queen Heart Queen Diamond Queen Club Queen
Spade King Heart King Diamond King Club King
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.