📄 capp.cpp
字号:
// App.cpp
//测试类的实现
#include <iostream>
using namespace std;
#include "CApp.h"
#include "CNode.h"
#include "CLinkStack.h"
CApp::CApp()
{
p=NULL;
}
char CApp::menu(void)
{
char c;
cout<<"1.进栈"<<endl;
cout<<"2.出栈"<<endl;
cout<<"3.清空"<<endl;
cout<<"4.判断是否为空"<<endl;
cout<<"5.新建栈 (由原来的栈复制构造)"<<endl;
cout<<"6.复值 (把原来的栈赋值给新建的栈)"<<endl;
cout<<"7.比较 (比较两年栈是否相同)"<<endl;
cout<<"0.退出"<<endl;
cout<<'>';
cin>>c;
return c;
}
void CApp::run(void)
{
char choice;
while(1)
{
choice=menu();
switch(choice)
{
case '1':
{
push();
print();
break;
}
case '2':
{
pop();
print();
break;
}
case '3':
{
del();
print();
break;
}
case '4':
{
empty();
print();
break;
}
case '5':
{
create();
print();
break;
}
case '6':
{
set();
print();
break;
}
case '7':
{
comp();
print();
break;
}
case '0':
{
break;
}
default:
{
cout<<"请选择菜单中的选项!"<<endl;
break;
}
}
if(choice=='0')
{
break;
}
}
}
void CApp::push(void)
{
char input;
CNode c;
cout<<"输入一个字符:";
cin>>input;
c.setData(input);
if(!s.push(c))
{
cout<<"内存分配错误!"<<endl;
}
}
void CApp::pop(void)
{
CNode c;
if(!s.pop(c))
{
cout<<"栈为空,出栈失败!"<<endl;
}
else
{
cout<<"被出栈的元素为: "<<c.getData()<<endl;
}
}
void CApp::del(void)
{
s.makeEmpty();
}
void CApp::empty(void)
{
if(s.isEmpty())
{
cout<<"栈为空!"<<endl;
return;
}
cout<<"栈不空!"<<endl;
}
void CApp::print(void)
{
cout<<"你现在有的栈为:"<<endl;
if(p!=NULL)
{
cout<<"栈1: ";
s.print();
cout<<"栈2: ";
p->print();
}
else
{
cout<<"栈1: ";
s.print();
}
cout<<endl;
}
void CApp::create(void)
{
if(p!=NULL)
{
p->makeEmpty();
delete p;
}
p=new CLinkStack(s);
if(p==NULL)
{
cout<<"内存分配错误!"<<endl;
return;
}
}
void CApp::set(void)
{
if(p==NULL)
{
cout<<"不能赋值,新栈没建立!"<<endl;
return ;
}
*p=s;
}
void CApp::comp(void)
{
if(p==NULL)
{
cout<<"不能赋值,新栈没建立!"<<endl;
return ;
}
if(*p==s)
{
cout<<"两个栈相等!"<<endl;
}
else
{
cout<<"两个栈不相等!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -