📄 datamanagercontrol.cpp
字号:
// DataManagerControl.cpp: implementation of the DataManagerControl class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DataManagerLast.h"
#include "DataManagerControl.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DataManagerControl::DataManagerControl()
{
head = (DuLinkList)malloc(sizeof(DuLNode));
head->data = (Person)malloc(sizeof(personentity));
strcpy(head->data->address, "NULL");
strcpy(head->data->name, "NULL");
strcpy(head->data->phone, "NULL");
strcpy(head->data->postcode, "NULL");
L = head;
head->prior = head;
head->next = head;
}
DataManagerControl::~DataManagerControl()
{
}
DuLinkList DataManagerControl::GetElemP_DuL(DuLinkList &L, int i)
{
DuLinkList p;
p = (DuLinkList)malloc(sizeof(DuLNode));
p = L->next;
int j = 1;
while(p && j<i)
{
p = p->next;
++j;
}
return p;
}
Status DataManagerControl::ListInsert_DuL(int i, Person &e)
{
DuLinkList p, s;
p = NULL;
if(!(p = GetElemP_DuL(L, i)))
{
return ERROR;
}
if(!(s = (DuLinkList)malloc(sizeof(DuLNode))))
return ERROR;
s->data = (Person)malloc(sizeof(personentity));
strcpy(s->data->name, e->name);
strcpy(s->data->phone, e->phone);
strcpy(s->data->address, e->address);
strcpy(s->data->postcode, e->postcode);
s->prior = p->prior;
p->prior->next = s;
s->next = p;
p->prior = s;
return OK;
}
Status DataManagerControl::ListDelete_DuL(int i)
{
DuLinkList p;
p = NULL;
if(!( p = GetElemP_DuL(L, i)))
return ERROR;
p->prior->next = p->next;
p->next->prior = p->prior;
free(p->data);
free(p);
return OK;
}
Status DataManagerControl::ListModify_Dul(int i, Person &e)
{
DuLinkList p;
p = NULL;
if(!( p = GetElemP_DuL(L, i)))
return ERROR;
strcpy(p->data->name, e->name);
strcpy(p->data->phone, e->phone);
strcpy(p->data->address, e->address);
strcpy(p->data->postcode, e->postcode);
return OK;
}
DuLinkList DataManagerControl::ListPrior_Dul(int i)
{
DuLinkList p, q;
p = NULL;
q = NULL;
if(!( p = GetElemP_DuL(L, i)))
return ERROR;
q = p->prior;
return q;
}
DuLinkList DataManagerControl::ListNext_Dul(int i)
{
DuLinkList p, q;
p = NULL;
q = NULL;
if(!( p = GetElemP_DuL(L, i)))
return ERROR;
q = p->next;
return q;
}
DuLinkList DataManagerControl::Get_DuL()
{
return L;
}
DuLinkList DataManagerControl::Get_DuLFirst()
{
DuLinkList p;
p = L->next;
return p;
}
DuLinkList DataManagerControl::Get_DuLLast()
{
DuLinkList p;
p = L->next;
while(strcmp(p->data->name, "NULL") == 1)
{
p = p->next;
}
return p;
}
DuLinkList DataManagerControl::ListFind_Dul(char *FindName)
{
DuLinkList p;
p = L->next;
while(strcmp(p->data->name, "NULL") == 1)
{
if(strcmp(p->data->name,FindName)==0)
{
return p;
}
p = p->next;
}
return 0;
}
int DataManagerControl::ListLength_Dul()
{
UINT count = 1;
DuLinkList p;
p=L->next;
while(strcmp(p->data->name, "NULL") == 1)
{
p = p->next;
count++;
}
return count;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -