www.pudn.com > classSystem(c++).rar > ManagerList.cpp


// ManagerList.cpp: implementation of the CManagerList class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "ClassSystem.h" 
#include "ManagerList.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CManagerList::CManagerList() 
{ 
	fence=tail=head=new CManagerNode; 
	  
	ifstream InManagerFile; 
	InManagerFile.open("manager.dat",ios::in ); 
 
	char ManagerName[30]; 
	char Pwd[70]; 
 
	while(InManagerFile  >> ManagerName >> Pwd ) 
	{ 
		Append(ManagerName,Pwd); 
	} 
} 
 
CManagerList::~CManagerList() 
{ 
	ofstream OutManagerFile; 
	OutManagerFile.open("manager.dat",ios::out); 
 
	fence = head; 
	 
	while(head->next != NULL) 
	{ 
		CManagerNode manager; 
		remove(manager); 
		OutManagerFile << manager.m_ManagerName<<"\t"<next = new CManagerNode(ManagerName,Pwd); 
	return true; 
} 
bool CManagerList::find(CString ManagerName,CManagerNode &Manager ) 
{ 
	fence = head; 
	while(fence->next != NULL) 
	{ 
		if(fence->next->m_ManagerName == ManagerName) 
		{ 
			Manager.m_password = fence->next->m_password; 
			Manager.m_ManagerName= fence ->next->m_ManagerName; 
		 
			return true; 
		} 
		fence = fence->next; 
	} 
	return false; 
} 
 
bool CManagerList::remove(CManagerNode &manager) 
{ 
	if(fence->next==NULL)//The right partition is empty 
	{ 
		return false; 
	} 
	manager.m_ManagerName = fence->next->m_ManagerName; 
	manager.m_password = fence->next->m_password; 
	CManagerNode* ltemp=fence->next; 
	fence->next=ltemp->next; 
	if(tail==ltemp) 
	{ 
		tail=fence; 
	} 
	delete ltemp; 
 
	return true; 
} 
bool CManagerList::Append(CString account,CString password) 
{ 
	tail = tail->next = new CManagerNode(account,password); 
	return true; 
} 
 
 
bool CManagerList::GetData(CManagerNode &manager) 
{ 
	if(fence->next != NULL && fence != NULL) 
	{ 
		manager.m_ManagerName = fence->next->m_ManagerName; 
		manager.m_password = fence->next->m_password; 
		return true; 
	} 
	return false; 
} 
 
bool CManagerList::setData(CManagerNode &manager) 
{ 
	fence->next->m_password = manager.m_password; 
	return true; 
}