77范文网 - 专业文章范例文档资料分享平台

C++简单通讯录管理 程序

来源:网络收集 时间:2019-01-03 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

#include #include #include #include #include #include

class AddrList;

class Node { char ID[20]; char Name[20]; char OfficePhone[20]; char HomePhone[20]; char MobilePhone[20]; char Email[20]; Node *Next; public:

Node(char* id=0,char *name=0,char* op=0,char* hp=0,char *mp=0,char *email=0,Node *next=NULL) { strcpy(ID,id); strcpy(Name,name); strcpy(OfficePhone,op); strcpy(HomePhone,hp); strcpy(MobilePhone,mp); strcpy(Email,email); Next=next; } void Show() { cout<

friend class AddrList; friend void add(AddrList &addrlist); friend void query(AddrList &addrlist); friend void modify(AddrList &addrlist); };

class AddrList { Node *HeadPtr; int Tag; public: AddrList(Node *headptr=NULL,Node *tailptr=NULL,int tag=0) { 构造函数,创建空链表,将Tag的值置为1 HeadPtr=headptr; Tag=tag;

//

} //将p指向的结点加入到链表尾部 void AddSort(char* id,char *name,char* op,char* hp,char *mp,char *email); //将p指向的结点按Tag指定的顺序插入到链表中 Node *LookUp(char *name); //按姓名查找结点,返回该结点指针 void Delete(char *name); //删除指定姓名的结点 int Sort(int); //按tag指定的关键字重新排序 int ShowAll() ; //显示全部结点,每10个显示一 //取Tag的值 //统计链表中结点个数 //取首指针 ~AddrList(); //释放链表空间

void CreateList(char *filename);

//从二进制文件中读入数据,构造链表 void WriteToFile(char *filename); //将链表中数据写入指定的二制文件 void WriteToTxtFile(char *filename); //将链表写到文本文件中 void CreateFromTxt(char *filename); friend void sort(AddrList &addrlist); // 按姓名或办公室电话排序 };

void AddrList::AddSort(char* id,char *name,char* op,char* hp,char *mp,char //将p指向的结点按Tag指定的顺序插入到链表中 { Node *p; p=new Node(id,name,op,hp,mp,email); Node* x1=HeadPtr; Node* x2=x1; if( id) { if(HeadPtr) { while(x1=x1->Next) {x2=x1;} x2->Next=p; p->Next=NULL; } else HeadPtr=p,p->Next=NULL; } }

Node * AddrList::LookUp(char *name) //按姓名查找结点,返回该结点指针 { Node* x=HeadPtr; while(x!=NULL && strcmp(x->Name,name)!=0) {x=x->Next;}

*email) }

if(x) {return x;} else return 0;

void AddrList::Delete(char *name) //删除指定姓名的结点 { Node* x1=HeadPtr; Node *x2=x1; while(strcmp(x2->Name,name)!=0 && x2!=NULL) {x1=x2;x2=x2->Next;} if(x1!=x2) {if(x2) { x1->Next=x2->Next; delete x2; cout<<\已删除\ } else {cout<<\未找到,请确认后再输入\ } else {HeadPtr=x1->Next;delete x2;} }

int AddrList::Sort(int T_T) //按tag指定的关键字重新排序 { switch(T_T) {case 1: { Node* x=HeadPtr,*t; if(!HeadPtr) return 0; int m=0,n=0; Node *p[100]={0}; while(x) {p[m]=x;m++;x=x->Next;} n=m; int i, j, k; for (i=0; iName,p[k]->Name)<=0) { k=j;

} } {t=p[k]; p[k]=p[i]; p[i]=t;} } HeadPtr=p[0]; i=0; while(iNext=p[i+1]; i++; } p[i]->Next=NULL; Tag=1; break; }

case 2: { Node* x=HeadPtr,*t; if(!HeadPtr) return 0; int m=0,n=0; Node *p[100]={0}; while(x) {p[m]=x;m++;x=x->Next;} n=m; int i, j, k; for (i=0; iID,p[k]->ID)<=0) { k=j; } } {t=p[k]; p[k]=p[i]; p[i]=t;} } HeadPtr=p[0]; i=0; while(iNext=p[i+1];

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++简单通讯录管理 程序在线全文阅读。

C++简单通讯录管理 程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/402444.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: