この割り当てには、ヘッダーファイル、実装ファイル、およびメインファイルが必要です。私は正常に1つのcppファイルを使用してプログラムを正常に作成し、別のファイルに分割しようとすると問題が発生します。ヘッダーファイルと実装ファイルの作成に関する問題
#include <iostream>
#include <string>
#include <cstdlib>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
using namespace std;
struct card
{
int cardvalue;
card *next;
};
card *start=NULL,*ptr,*temp;
void shuffle(int number);
void displayDeck();
void drawCard();
void deconDeck();
int main()
{
shuffle(1);
displayDeck();
drawCard();
displayDeck();
shuffle(2);
displayDeck();
drawCard();
displayDeck();
return 0;
}
void shuffle(int number)
{
deconDeck();
srand(time(NULL));
int num1=0,t,x,numcards;
numcards=(number*52)+1;
int prevdrawnnum[numcards];
for(x=0; x<numcards; x++)
{
prevdrawnnum[x]=0;
}
for(t=0; t<numcards; t++)
{
num1=rand()%numcards;
if(prevdrawnnum[num1]==1){
while(prevdrawnnum[num1]==1){
num1=rand()%numcards;
}
}
prevdrawnnum[num1]=1;
ptr = new card;
ptr->cardvalue=num1;
ptr->next=NULL;
if(start==NULL)
start=ptr;
else
{
temp=start;
while(temp->next!=NULL)
temp=temp->next;
temp->next=ptr;
}
}
return;
}
void displayDeck()
{
char suits[4]={'C','D','H','S'};
char ranks[13]={'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
int label=1, num2,suit=0,face=0;
temp=start;
while(temp->next!=NULL)
{
num2=temp->cardvalue;
if(temp->cardvalue > 52)
{
suit=num2%4;
face=(num2/4)-13;
cout<<label<<". "<<ranks[face]<<"-"<<suits[suit]<<" ";
label++;
temp=temp->next;
}
else
{
suit=num2%4;
face=num2/4;
cout<<label<<". "<<ranks[face]<<"-"<<suits[suit]<<" ";
label++;
temp=temp->next;
}
if(label%4==0)
cout<<endl;
}
cout<<endl<<"Total Number of Cards: "<<label-1<<endl;
return;
}
void drawCard()
{
char suits[4]={'C','D','H','S'};
char ranks[13]={'2','3','4','5','6','7','8','9','T','J','Q','K','A'};
int num2,suit=0,face=0;
temp=start;
num2=temp->cardvalue;
if(temp->cardvalue>52)
{
suit=num2%4;
face=(num2/4)-13;
cout<<endl<<"Card Drawn: "<<ranks[face]<<"-"<<suits[suit]<<endl;
temp=start;
start=start->next;
free(temp);
}
else{
suit=num2%4;
face=num2/4;
cout<<endl<<"Card Drawn: "<<ranks[face]<<"-"<<suits[suit]<<endl;
temp=start;
start=start->next;
free(temp);
}
return;
}
void deconDeck()
{
while(start!=NULL)
{
temp=start;
start=start->next;
free(temp);
}
}
上記のコードは1つのファイルにありますが、どのようにヘッダー/実装に分割するのか教えていただけますか?
あなたのヘッダヘッダファイルには、構造体が含まれている必要があります拡張子が.hの関数宣言実装ファイルの拡張子は.cppの関数定義でなければなりません。 – Sniper
C++を学ぶために使っている本はどれですか? –
@Sniper:コメントはお答えできません –