求助一个c++的洗牌程序

来源:百度知道 编辑:UC知道 时间:2024/09/25 18:48:59
这是一个洗牌程序的头文件card.h

#ifndef CARD_H
#define CARD_H
#include<cstdlib>
#include<cstring>
#include<iostream>
using std::cout; using std::endl; using std::ostream ;
const char* deck[] = {"H","D","S","C"};
const char* suit[] = {"A","2","3","4","5","6","7","8","9","T","J","Q","K"};
class Card{
char *cardVal;
public:
Card(char * cad){
cardVal = new char[5];
strcpy(cardVal,cad);
}
Card(const Card & card){
cardVal = new char[5];
strcpy(cardVal,card.getCardVal());
}
~Card(){
delete[] cardVal;
}
char* getCardVal() const{
return cardVal;
}
void print(){
cout<<"["<<cardVal<<"]";
}
friend ostream& opera

//main.cpp
#include "CardCase.h"

void main()
{
CardCase cardCase;
cardCase.riffle(5);
cardCase.print();
}

//cardcase.h
#ifndef CARDCASE_H
#define CARDCASE_H

#include "card.h"
#include <stdlib.h>
#include <time.h>

class CardCase
{
private:
Card *cards;
public:
CardCase()
{
cards=new Card[52];

for(int i=0;i<4;i++)
{
for(int j=0;j<13;j++)
{
cards[i*13+j]=Card(suit[j],Card::H+i);
}
}
}

virtual ~CardCase()
{
delete [] cards;
}

void print()
{
for(int i=0;i<52;i++)
{
if(i && i%13 ==0)
cout<<endl;
cout<<cards[i]<<" ";
}
cout<<endl;
}

void riffle(int times)
{
Card temp;