⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manager.cpp

📁 这是我们实习时编的
💻 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 + -