ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:17.91KB ,
资源ID:13473189      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13473189.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++简单通讯录管理 程序.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

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

1、C+简单通讯录管理 程序#include#include#include#include#include#includeclass AddrList;class Node char ID20; char Name20; char OfficePhone20; char HomePhone20; char MobilePhone20; char Email20; 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(

2、ID,id); strcpy(Name,name); strcpy(OfficePhone,op); strcpy(HomePhone,hp); strcpy(MobilePhone,mp); strcpy(Email,email); Next=next; void Show() coutsetw(12)IDsetw(6) Name setw(12) OfficePhone setw(12) HomePhonesetw(12)MobilePhonesetw(20)EmailNext) x2=x1; x2-Next=p; p-Next=NULL; else HeadPtr=p,p-Next=NU

3、LL; 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;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) i

4、f(x2) x1-Next=x2-Next; delete x2; cout已删除endl; else cout未找到,请确认后再输入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 *p100=0; while(x) pm=x;m+;x=x-Next; n=m; int i, j, k; for (i=0; in-1; i+) k=i; for (j=i+1; jNa

5、me,pk-Name)=0) k=j; t=pk; pk=pi; pi=t; HeadPtr=p0; i=0; while(iNext=pi+1; i+; pi-Next=NULL; Tag=1; break; case 2: Node* x=HeadPtr,*t; if(!HeadPtr) return 0; int m=0,n=0; Node *p100=0; while(x) pm=x;m+;x=x-Next; n=m; int i, j, k; for (i=0; in-1; i+) k=i; for (j=i+1; jID,pk-ID)=0) k=j; t=pk; pk=pi; pi

6、=t; HeadPtr=p0; i=0; while(iNext=pi+1; i+; pi-Next=NULL; Tag=2; break; int AddrList:ShowAll() /显示全部结点,每10个显示一屏 Node* x=HeadPtr; if(x); else return 0; int i=1; while(1) cout setw(12)学号setw(6) 姓名 setw(12) 办公电话 setw(12) 家庭电话setw(12) 移动电话setw(20)电子邮件endl; while(iShow(); i+; if(x=x-Next); else break; sys

7、tem(pause); i=1; if(x); else break; AddrList:AddrList() /释放链表空间 Node *x1=HeadPtr; Node *x2=x1; while(x2=x2-Next) delete x1; x1=x2; delete x2; void AddrList:CreateList(char *filename) /从二进制文件中读入数据,构造链表 char a30=0,b30=0,c30=0,d30=0,e30=0,f30=0; ifstream in(filename,ios:binary); while(ina) inbcdef; Add

8、Sort(a,b,c,d,e,f); in.close();void AddrList:CreateFromTxt(char *filename) /从 文本文件中读入数据,构造链表 char a30,b30,c30,d30,e30,f30; ifstream in(filename); while(ina) inbcdef; AddSort(a,b,c,d,e,f); void AddrList:WriteToFile(char *filename) /将链表中数据写入指定的二进制文件 Node *p=HeadPtr; ofstream out(filename,ios:binary); o

9、utID ; outName ; outOfficePhone ; outHomePhone ; outMobilePhone ; outEmailNext) outID ; outName ; outOfficePhone ; outHomePhone ; outMobilePhone ; outEmail ; out.close();void AddrList:WriteToTxtFile(char *filename) /将链表写到文本文件中 Node *x=HeadPtr; ofstream out(filename); out setw(12)学号setw(6) 姓名 setw(12

10、) 办公电话 setw(12) 家庭电话setw(12) 移动电话setw(20)E-mailendl; outsetw(12)IDsetw(6) Name setw(12) OfficePhone setw(12) HomePhonesetw(12)MobilePhonesetw(20)EmailNext) outsetw(12)IDsetw(12) Name setw(12) OfficePhone setw(12) HomePhonesetw(12)MobilePhonesetw(12)Emailendl; out.close();void DisplayMenu() /显示菜单 int

11、 i; char *menu= , , , , *小巧通讯录管理系统* , , 1. 新增一个联系人 , 2. 删除一个联系人, 3. 显示所有联系人, 4. 查找联系人, 5. 更改联系人记录, 6. 从TXT文档中增加记录, 7. 导出联系人到Txt文档, 8. 排序, 9. 退出, , * , _ 欢迎使用 _ , NULL ; system(cls); for(i=0;menui;i+) cout menuiendl; cout 请选择(1-9) :;void add(AddrList &addrlist) /按当前Tag标志插入结点,插入结点后,链表仍然保持升序 system(cls

12、); char a30,b30,c30,d30,e30,f30; cout 添加记录endl *endl 请输入一个联系人数据endl; cout 学号setw(6) 姓名 setw(12) 办公电话 setw(12) 家庭电话setw(12) 移动电话setw(20)电子邮件abcdef; addrlist.AddSort(a,b,c,d,e,f); cout添加完成endl; system(pause);void del(AddrList &addrlist) /删除一个结点 system(cls); char p30; cout 删除记录endl *endl 请输入一个联系人的姓名 p;

13、 addrlist.Delete(p); cout删除完成endl; system(pause);void showall(AddrList &addrlist) /显示所有结点 system(cls); cout 显示所有联系人 endl *endl; if(addrlist.ShowAll() ; else cout空记录!endl; system(pause);void query(AddrList &addrlist) /按姓名查找一个结点 system(cls); char name30; Node *p; cout 查找联系人 endl *endl 请输入一个联系人的姓名 name

14、; if(p=addrlist.LookUp(name) cout setw(12)学号setw(6) 姓名 setw(12) 办公电话 setw(12) 家庭电话setw(12) 移动电话setw(20)电子邮件endlsetw(12)IDsetw(6) Name setw(12) OfficePhone setw(12) HomePhonesetw(12)MobilePhonesetw(12)Emailendl; else cout未找到endl; system(pause); void modify(AddrList &addrlist) /修改一个结点 system(cls); cha

15、r name30; Node *p; cout 修改联系人 endl *endl 请输入一个联系人的姓名 name; if(p=addrlist.LookUp(name) cout请输入修改后的联系人endl; cout 学号setw(6) 姓名 setw(12) 办公电话 setw(12) 家庭电话setw(12) 移动电话setw(20)电子邮件p-IDp-Namep-OfficePhonep-HomePhonep-MobilePhonep-Email; cout修改完成endl; else cout未找到endl; system(pause);void addfromtxtfile(Ad

16、drList &addrlist) /从正文文件增加记录 system(cls); char filename30; cout 从TXT文档中增加记录 endl *endl 请输入要加入的文件名 filename; addrlist.CreateFromTxt(filename); cout载入完成endl; system(pause);void writetotxtfile(AddrList &addrlist) /将链表写到正文文件中 system(cls); char filename30; cout 导出联系人到Txt文档 endl *endl 请输入要导出的文件名 filename;

17、 addrlist.WriteToTxtFile(filename); cout导出完成endl; system(pause);void sort(AddrList &addrlist) / 按姓名或办公室电话排序 system(cls); int T_T; int choice=0; switch(addrlist.Tag) case 0: cout此文档未排序endl;break; case 1: cout此文档已按姓名排序,将按另一种方式排序endl;break; case 2: cout此文档已按学号排序,将按另一种方式排序endl;break; cout请输入排序方式:1.姓名2.学

18、号T_T; if(addrlist.Sort(T_T) cout已排序endl; else coutch; if (ch 9) continue; choice=ch-0; switch (choice) case 1: add(addrlist); break; case 2: del(addrlist); break; case 3: showall(addrlist); break; case 4: query(addrlist); break; case 5: modify(addrlist); break; case 6: addfromtxtfile(addrlist); break; case 7: writetotxtfile(addrlist); break; case 8: sort(addrlist); break; case

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2