スタックについて質問があります... 3 スタックでプログラムを書きたいのですが、これらのスタックのそれぞれにこの操作を追加したいです (配列を使用する必要があります)。
1.スタックを作成する 2.番号をプッシュする 3.番号をポップする 4.各スタックのトップを表示する
プログラムを作成しましたが、次のエラーが発生しました。
エラー 4 エラー LNK2019: 未解決の外部シンボル "public: int __thiscall stack::IsFull2(void)" (?IsFull2@stack@@QAEHXZ) 関数で参照されている "public: void __thiscall stack::Push2(void)" (?Push2@ stack@@QAEXXZ) C:\Users\Princess\Documents\Visual Studio 2012\Projects\Project9\Project9\Source.obj
エラー 5 エラー LNK1120: 1 未解決の外部 C:\Users\Princess\Documents\Visual Studio 2012\Projects\Project9\Debug\Project9.exe 1
これらのエラーを解決するにはどうすればよいですか?
#include <iostream>
using namespace std;
#define Max 100
class stack
{
private:
int a[Max],b[Max],c[Max];
int sp1,sp2,sp3;
public:
void create1();
void create2();
void create3();
int IsEmpty1();
int IsEmpty2();
int IsEmpty3();
int IsFull1();
int IsFull2();
int IsFull3();
void Push1();
void Push2();
void Push3();
int Pop1();
int Pop2();
int Pop3();
void Top();
void Show();
int menu();
};
//***************************************
void stack::create1()
{
sp1=-1;
};
//***************************************
void stack::create2()
{
sp2=-1;
}
//***************************************
void stack::create3()
{
sp3=-1;
}
//***************************************
int stack::IsEmpty1(){
return sp1==-1;
}
//***************************************
int stack::IsEmpty2(){
return sp2==-1;
}
//***************************************
int stack::IsEmpty3(){
return sp3==-1;
}
//***************************************
int stack::IsFull1()
{
return sp1==Max-1;
}
//***************************************
void stack::Push1()
{
if(IsFull1())
printf("stack is full");
else
{
int x;
cout<<"Enter your number"<<endl;
cin>>x;
sp1++;
a[sp1]=x;
}
}
//***************************************
int stack::Pop1()
{
if(IsEmpty1())
cout<<"stack is empty"<<endl;
else
{
int x=a[sp1];
sp1--;
return x;
}
}
//***************************************
int stack::IsFull3()
{
return sp3==Max-1;
}
//***************************************
void stack::Push2()
{
if(IsFull2())
printf("stack is full");
else
{
int x;
cout<<"Enter your number"<<endl;
cin>>x;
sp2++;
b[sp2]=x;
}
}
//***************************************
int stack::Pop2()
{
if(IsEmpty2())
cout<<"stack is empty"<<endl;
else
{
int x=b[sp2];
sp2--;
return x;
}
}
//***************************************
void stack::Push3()
{
if(IsFull3())
printf("stack is full");
else
{
int x;
cout<<"Enter your number"<<endl;
cin>>x;
sp3++;
c[sp3]=x;
}
}
//***************************************
int stack::Pop3()
{
if(IsEmpty3())
cout<<"stack is empty"<<endl;
else
{
int x=c[sp3];
sp3--;
return x;
}
}
//***************************************
void stack::Top()
{
cout<<"the top of first stack"<<a[sp1]<<endl;
cout<<"the top of second stack"<<b[sp2]<<endl;
cout<<"the top of third stack"<<c[sp3]<<endl;
}
//***************************************
void stack::Show()
{
for(int i=0;i<=sp1;i++)
cout<<"the members of the first stack:"<<a[i]<<endl;
for(int j=0;j<=sp2;j++)
cout<<"the members of the second stack:"<<b[j]<<endl;
for(int k=0;k<=sp3;k++)
cout<<"the members of the third stack:"<<c[k]<<endl;
}
//***************************************
int stack::menu(){
int x;
cout<<"1.Add Item"<<endl;
cout<<"2.Delete Item"<<endl;
cout<<"3.Get Count"<<endl;
cout<<"4.Show stack"<<endl;
cout<<"5.Exit"<<endl;
cout<<"Enter your choose:"<<endl;
cin>>x;
return x;
}
////***************************************
int main()
{
stack st;
st.create1();
st.create2();
st.create3();
while(1)
{
switch(st.menu())
{
case 1:
cout<<"first stack:"<<endl;
st.Push1();
cout<<"second stack:"<<endl;
st.Push2();
cout<<"third stack:"<<endl;
st.Push3();
break;
case 2:
cout<<"first stack:"<<endl;
st.Pop1();
cout<<"second stack:"<<endl;
st.Pop2();
cout<<"third stack:"<<endl;
st.Pop3();
break;
case 3:
st.Top();
break;
case 4:
st.Show();
break;
case 5:
return 0;
default:
cout<<"incorrect"<<endl;
}
}
return 0;
}