📄 userlist.cpp
字号:
// UserList.cpp: implementation of the CUserList class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ClassSystem.h"
#include "UserList.h"
#include<fstream.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CUserList::CUserList()
{
row = new CUserNode* [10000];//最多可以存储一万条数据
total = 0;
fence=head=tail = new CUserNode;
ifstream InUserFile;
InUserFile.open("user.dat");
UINT key = 0;//链表关键字,不能重复,用来计算数据数目,快速查找
char account[20];//学号,不能重复
char name[50];
char password[100];
char city[20];//籍贯
char college[50];
char major[60];
char dormitory[50];
char phone[20];
char mobilephone[20];
char email[100];
char homeAddress[200];
char postNumber[10];
char CET4[5];
char CET6[5];
char description[100];
while(InUserFile >> key >> account >> name >> password >> city >> college >> major >> dormitory >> phone
>> mobilephone >> email >> homeAddress >> postNumber >> CET4 >> CET6 >> description )
{
if(total<10000)
{
Append(key,account,name,major,password,city,college,dormitory,
phone,mobilephone,email,homeAddress,postNumber,CET4,
CET6,description);
row[key]= tail;
}
}
}
CUserList::~CUserList()
{
ofstream OutUserFile;
OutUserFile.open("user.dat",ios::out);
fence = head;
while(head->next != NULL)
{
CUserNode user;
remove(user);
OutUserFile <<user.m_key <<"\t"<< user.m_account <<"\t" <<user.m_name <<"\t"<< user.m_password <<"\t" <<user.m_city
<<"\t"<< user.m_college <<"\t"<< user.m_major <<"\t"<< user.m_dormitory <<"\t"<< user.m_phone
<<"\t"<< user.m_mobilephone <<"\t"<< user.m_email <<"\t"<< user.m_homeAddress <<"\t"
<<user.m_postNumber <<"\t"<< user.m_CET4 <<"\t"<< user.m_CET6 <<"\t"<< user.m_description<<endl;
}
}
bool CUserList::Append(UINT key,char account[], char name[],char major[],
char password[],char city[] ,char college[] ,
char dormitory[],char phone[],char mobilephone[] ,char email[],
char homeAddress[],char postNumber[],char cet4[],char cet6[] ,
char description[])
{
tail = tail->next = new CUserNode(key,account,name,major,password, city , college ,
dormitory,phone,mobilephone , email,
homeAddress, postNumber, cet4, cet6 ,
description);
total++;
return true;
}
bool CUserList::Append(UINT key,CString account, CString name,CString major,
CString password,CString city ,CString college ,
CString dormitory,CString phone,CString mobilephone ,CString email,
CString homeAddress,CString postNumber,CString cet4,CString cet6 ,
CString description)
{
tail = tail->next = new CUserNode(key,account,name,major,password, city , college ,
dormitory,phone,mobilephone , email,
homeAddress, postNumber, cet4, cet6 ,
description);
total++;
return true;
}
bool CUserList::find(CString account,CUserNode &curUser)
{
fence = head;
while(fence->next != NULL)
{
if(fence->next->m_account == account)
{
curUser.m_key = fence->next->m_key;
curUser.m_account= fence->next->m_account;
curUser.m_CET4 = fence->next->m_CET4;
curUser.m_CET6 = fence->next->m_CET6;
curUser.m_city = fence->next->m_city;
curUser.m_college = fence->next->m_college;
curUser.m_description = fence->next->m_description;
curUser.m_dormitory = fence->next->m_dormitory;
curUser.m_email = fence->next->m_email;
curUser.m_homeAddress = fence->next->m_homeAddress;
curUser.m_major = fence->next->m_major;
curUser.m_mobilephone = fence->next->m_mobilephone;
curUser.m_name = fence->next->m_name;
curUser.m_password = fence->next->m_password;
curUser.m_phone = fence->next->m_phone;
curUser.m_postNumber = fence->next->m_postNumber;
return true;
}
fence = fence->next;
}
return false;
}
bool CUserList::modifyPs(UINT key,CUserNode &curUser)
{
row[key]->m_password = curUser.m_password;
return true;
}
bool CUserList::editInfo(UINT key,CUserNode &curUser)
{
row[key]->m_CET4 = curUser.m_CET4;
row[key]->m_CET6 = curUser.m_CET6;
row[key]->m_city = curUser.m_city;
row[key]->m_college = curUser.m_college;
row[key]->m_dormitory = curUser.m_dormitory;
row[key]->m_email = curUser.m_email;
row[key]->m_homeAddress = curUser.m_homeAddress;
row[key]->m_major = curUser.m_major;
row[key]->m_mobilephone = curUser.m_mobilephone;
row[key]->m_name = curUser.m_name;
row[key]->m_phone = curUser.m_phone;
row[key]->m_postNumber = curUser.m_postNumber;
return true;
}
bool CUserList::remove(CUserNode &user)
{
if(fence->next==NULL)//The right partition is empty
{
return false;
}
user.m_key = fence->next->m_key;
user.m_account = fence->next->m_account;
user.m_CET4 = fence->next->m_CET4;
user.m_CET6 = fence->next->m_CET6;
user.m_city = fence->next->m_city;
user.m_college = fence->next->m_college;
user.m_description = fence->next->m_description;
user.m_dormitory = fence->next->m_dormitory;
user.m_email = fence->next->m_email;
user.m_homeAddress = fence->next->m_homeAddress;
user.m_major = fence->next->m_major;
user.m_mobilephone = fence->next->m_mobilephone;
user.m_name = fence->next->m_name;
user.m_phone = fence->next->m_phone;
user.m_password = fence->next->m_password;
user.m_postNumber = fence->next->m_postNumber;
CUserNode* ltemp=fence->next;
fence->next=ltemp->next;
if(tail==ltemp)
{
tail=fence;
}
delete ltemp;
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -