我的教授将这个作业分配给我们,但是我不知道如何做第一步。 我不是要求任何人做作业,只是请某人帮我解决第一个问题
这个问题是基于两个文件(他提供的)
“card.h”
//*********************************************************
// CLASS DECLARATION
//*********************************************************
class Card
{
//*****************************************************
// Public Members
//*****************************************************
public:
// Exception classes
class NotInitalized {};
// Enumeration for Suit
enum Suit { Clubs, Diamonds, Hearts, Spades,
UNKNOWN };
// Enumeration for Card Name
enum CardName { Ace, Two, Three, Four, Five, Six,
Seven, Eight, Nine, Ten, Jack,
Queen, King, UNKNOWN };
// constructors
//*****************************************************
// Card
//
// Create uninitialized card. Must be initialized with
// 'setCard()' before use.
//*****************************************************
Card(); // card is not initialized
//*****************************************************
// Card
//
// Create a card based its ordinal position.
// cards are ordered by suit first in the order
// Clubs, Diamonds, Hearts and Spades, and within
// the suit they are ordered Act thru King.
//******************************************************
Card(int); // number between 1-52
//******************************************************
// Card
//
// Create a card with the given name and suit.
//*******************************************************
Card(Suit, CardName);
// methods
//*******************************************************
// setCard
//
// Set the Suit and Name of the card
//*******************************************************
void setCard(Suit, CardName);
//*******************************************************
// getSuit
//
// returns the element of the Suit enumeration
// representing the suit of the card
//*******************************************************
int getSuit();
//*******************************************************
// getCardName
//
// returns the element of the CardName enumeration
// representing the card
//*******************************************************
int getCardName();
//*******************************************************
// getCardValue
//
// returns face value of card. For Ace -1 is the value.
//*******************************************************
int getCardValue();
//*****************************************************
// toString
//
// return the string representation of the card.
// e.g.,"Ace of Spades"
//*****************************************************
string toString();
//************************************************
// Private Members
//************************************************
private:
// the Card’s suit (uses Suit enum)
Suit suit = Suit::UNKNOWN;
// the Card’s name (uses CardName enum)
CardName name = CardName::UNKNOWN;
};
第二堂课是甲板课。这个类代表标准扑克牌中的52张牌。在内部,卡片中的卡片应保存在一组Card对象中。还应该有一个并行的Card指针数组,其中可以存储每次shuffle之后的卡的顺序。
当创建Deck对象时,它会创建52张牌并将其随机播放。如果牌组在重新洗牌之前用尽牌,则dealCard()方法应该抛出DeckEmpty异常。
因为这个类创建了卡对象,所以它应该有一个析构函数,可以在删除Deck时删除所有相关的卡对象。
下面是Deck类的类声明。
//*********************************************************
// CLASS DECLARATION
//*********************************************************
#include “Card.h”
class Deck
{
//*****************************************************
// Public Members
//*****************************************************
public:
// Exception classes
class DeckEmpty {};
// Constructors/Destructors
Deck(); // creates the cards and sorts them
~Deck(); // frees all the cards
// Methods
//****************************************************
// dealCard
//
// return the next available card in the shuffled deck
//****************************************************
Card dealCard();
//****************************************************
// shuffle
//
// shuffle the cards
//****************************************************
Void shuffle(); // shuffle the deck
//****************************************************
// getCardCount
//
// return the number of unused cards in the shuffled
// deck
//****************************************************
int getCardCount(); // how many cards left
//****************************************************
// toString
//
// return a newline (\n) delimited list of the shuffled
// cards
//*****************************************************
string toString();
//*****************************************************
// Private Members
//*****************************************************
private:
// array to hold unshuffled cards
Card cards[DECK_SIZE];
// array to hold shuffled cards
Card* shuffledCards[DECK_SIZE];
// index of next card to deal from shuffled cards
int nextCardIndex;
};
答案 0 :(得分:2)
我的教授将这个作业分配给我们,但是我不知道如何做第一步。我不是要求任何人做作业,只是请某人帮我解决第一个问题
- 动态创建套牌
醇>
这就是答案:
Deck* obj = new Deck();
上面你可以看到的是新表达。 http://en.cppreference.com/w/cpp/language/new 使用此表达式可以动态创建新对象。
答案 1 :(得分:1)
这对我来说也没有意义。特别是关于混洗卡的并行阵列的位不清楚。并且它需要析构函数的声明,因为它创建了Card对象,这是不正确的。也许他的意思是它动态创建了Card对象,但首先不是他所说的,其次我没有看到需要。我想你应该和你的教授谈谈。
然而,第一步非常简单。
“1。动态创建一个Deck'
Deck *my_deck = new Deck;
解决。
为什么你必须动态创建一个套牌是另一个问题,但这就是他要求你做的事情。
我不确定你的教授知道他在说什么。