1、HomePhoneMobilePhonesetw(20)EmailNext) x2=x1; x2-Next=p; p-Next=NULL; else HeadPtr=p,p-Node * AddrList:LookUp(char *name) /按姓名查找结点,返回该结点指针 Node* x=HeadPtr; while(x!=NULL & strcmp(x-Name,name)!=0) x=x-Next; if(x) return x; else return 0;Delete(char *name) /删除指定姓名的结点 Node *x2=x1; while(strcmp(x2-=0 &
2、x2!=NULL) x1=x2;x2=x2- if(x1!=x2) if(x2) x1-Next=x2- delete x2; cout已删除 else coutdelete 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 *p100=0; while(x) pm=x;m+;x=x- n=m; int i, j, k; for (i=0; in-1; i+) k=i; for (j=i+1;
3、 jName,pk-Name)=0) k=j; t=pk; pk=pi; pi=t; HeadPtr=p0; i=0; while(iNext=pi+1; i+; pi- Tag=1; break; case 2:ID,pk-ID) Tag=2; ShowAll() /显示全部结点,每10个显示一屏 if(x); int i=1; while(1) cout setw(12)Show(); if(x=x-Next); else break; system(pause); i=1; if(x); else break;AddrList:AddrList() /释放链表空间 Node *x1=He
4、adPtr; while(x2=x2-Next) delete x1; x1=x2; delete x2;CreateList(char *filename) /从二进制文件中读入数据,构造链表 char a30=0,b30=0,c30=0,d30=0,e30=0,f30=0; ifstream in(filename,ios:binary); while(ina) inbcdef; AddSort(a,b,c,d,e,f); in.close();CreateFromTxt(char *filename) /从 文本文件中读入数据,构造链表 char a30,b30,c30,d30,e30,
5、f30; ifstream in(filename);WriteToFile(char *filename) /将链表中数据写入指定的二进制文件 Node *p=HeadPtr; ofstream out(filename,ios: out; while(p=p- out out.close();WriteToTxtFile(char *filename) /将链表写到文本文件中 Node *x=HeadPtr; ofstream out(filename); out while(x=x-setw(12) void DisplayMenu() /显示菜单 int i; char *menu=
6、, *小巧通讯录管理系统* 1. 新增一个联系人 2. 删除一个联系人 3. 显示所有联系人 4. 查找联系人 5. 更改联系人记录 6. 从TXT文档中增加记录 7. 导出联系人到Txt文档 8. 排序 9. 退出 * _ 欢迎使用 _ , NULL ; system(cls for(i=0;menui;i+) cout menui cout请选择(1-9) :void add(AddrList &addrlist) /按当前Tag标志插入结点,插入结点后,链表仍然保持升序 添加记录endla addrlist.AddSort(a,b,c,d,e,f);添加完成void del(AddrLi
7、st &addrlist) /删除一个结点 char p30; 删除记录 请输入一个联系人的姓名 p; addrlist.Delete(p);删除完成void showall(AddrList &addrlist) /显示所有结点 显示所有联系人 if(addrlist.ShowAll() ; else coutIDNameOfficePhoneHomePhoneMobilePhoneEmail;修改完成void addfromtxtfile(AddrList &addrlist) /从正文文件增加记录 char filename30; 从TXT文档中增加记录 请输入要加入的文件名 filen
8、ame; addrlist.CreateFromTxt(filename);载入完成void writetotxtfile(AddrList &addrlist) /将链表写到正文文件中 导出联系人到Txt文档 请输入要导出的文件名 addrlist.WriteToTxtFile(filename);导出完成void sort(AddrList &addrlist) / 按姓名或办公室电话排序 int T_T; int choice=0; switch(addrlist.Tag) case 0: cout此文档未排序break; case 1:此文档已按排序,将按另一种方式排序请输入排序方式:
9、1.姓名2.学号T_T; if(addrlist.Sort(T_T)已排序void quit(AddrList &addrlist) /退出前将链表写入二进制文件中 addrlist.WriteToFile(通讯录数据文件.binvoid main()color 0A int choice=0,state; char ch; AddrList addrlist; addrlist.CreateList( /从二进制文件中读入数据,构建链表 while (choice!=9) DisplayMenu(); /显示主菜单ch; if (ch 9) continue; choice=ch-0 switch (choice) add(addrlist); break; case 2: del(addrlist); case 3: showall(addrlist); case 4: query(addrlist); case 5: modify(addrlist); case 6: addfromtxtfile(addrlist); case 7: writetotxtfile(addrlist); case 8: sort(addrlist); case
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1