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

📄 datamanagercontrol.cpp

📁 纯C++语言编写的小型的学生管理系统 用二叉树实现学生相关属性包括姓名,年龄,房间号的保存,使显示按学号降序排列,并能够保存成文件.
💻 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 + -