📄 manager.cpp
字号:
//manager.cpp
//By yangguang96@student.bjpeu.edu.cn
//2006.6.28
//class dlistManager define
#include "manager.h"
#include "dlist.h"
#include<iostream>
#include<string>
using std::string;
using std::cout;
using std::endl;
using std::cin;
manager::manager()
{
ptr1=new(dlist);
ptr2=new(dlist);
}
manager::~manager()
{
if(ptr1->getHead()!=NULL)
{
cout<<"List1 destructor:"<<endl;
delete ptr1;
}
if(ptr2->getHead()!=NULL)
{
cout<<"List2 destructor:"<<endl;
delete ptr2;
}
}
void manager::menu(dlist * ptr) const
{
dlist * t=ptr;
int i=0;
do
{
i=0;
cout<<endl
<<"********************************* LIST MENU *********************************"<<endl<<endl
<<" 1.Creat a double-direction list "<<endl
<<" 2.Print all members of the list "<<endl
<<" 3.Insert a new member "<<endl
<<" 4.Sort the members (from large to small) "<<endl
<<" 5.Delete an exist member "<<endl
<<" 6.Search for ...... "<<endl
<<" 7.Quit to the main menu "<<endl<<endl
<<"*******************************************************************************"<<endl
<<" Total Member Amount:"
<<t->getAmount()<<endl
<<"CHOOSE: ";
cin>>i;
switch(i)
{
case 1:
t->creat();
break;
case 2:
t->printAll();
break;
case 3:
t->insert();
break;
case 4:
t->sort();
break;
case 5:
t->nodeDel();
break;
case 6:
t->search();
break;
case 7:
break;
default:
cout<<"ERROR!"<<endl;
};
}while(i!=7);
return;
}
void manager::run(void)
{
void picture(void);
short t=0;
do
{
t=0;
cout<<endl<<endl
<<" MAIN MENU "<<endl
<<" 〓〓〓〓〓〓〓〓〓〓〓〓〓〓-------------------〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓"<<endl
<<"******** In this system,you can manage two lists at the same time ********"<<endl
<<"******** Now,choose the list you want to operate or combine the two ********"<<endl
<<"******** ********"<<endl
<<"******** 1.Operate list 1 ********"<<endl
<<"******** 2.Operate list 2 ********"<<endl
<<"******** 3.Connect list2 to list 1 ********"<<endl
<<"******** 4.Exit programme ********"<<endl
<<"******** ********"<<endl
<<"〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓-〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓"<<endl
<<endl
<<"CHOOSE: ";
cin>>t;
switch(t)
{
case 1:
menu(ptr1);
break;
case 2:
menu(ptr2);
break;
case 3:
combine();
break;
case 4:
picture(); //draw
break;
}
}while(t!=4);
}
void manager::combine(void)
{
if(ptr1->getAmount()==0||ptr2->getAmount()==0)
{
cout<<"At least one list has not been created,you cannot do this operation!"<<endl;
return;
}
char a='0';
while(a!='n'&&a!='y')
{
cout<<"After the connection,List2 will be deleted,continue? (y/n)";
cin>>a;
if(a=='n') return;
else if(a=='y') break;
else cout<<"ERROR!"<<endl;
}
ptr1->getTail()->setNext(ptr2->getHead());
ptr2->getHead()->setPre(ptr1->getTail());
ptr1->setTail(ptr2->getTail());
ptr1->addAmount(ptr2->getAmount());
ptr2->initialize();
}
void picture(void)
{
char a=1;
cout<<"\n**************************** THANKS FOR USING *******************************"
<<endl<<endl;
for(int j=0;j<12;j++)
{
for(int t1=0;t1<22+j+5;t1++)
{
cout<<" ";
}
for(int t2=0;t2<22-2*j;t2++)
{
cout<<a;
}
cout<<endl;
}
cout<<endl<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -