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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++课程设计报告简单通讯录管理.docx

1、C+课程设计报告简单通讯录管理 南京航空航天大学C+语言程序设计课程设计实验报告 题目: 通讯录管理系统 班级: 学号: 姓名: 成绩: 指导教师: 日期: xxxx年 xx月xx日 一、课题名称:简单通讯录管理二、程序功能:一个简单的通讯录管理程序 ,具有插入、删除、显示、修改和查询联系人通讯方式等功能。三、课题分析;本课程设计的数据有每个人的学号、姓名、办公室号码、住宅号码、手机号码和Email地址,可以进行排序,同时为了减少执行“添加”、“删除”等过于复杂和繁琐的操作,采用单向链表来进行数据的存储和操作。同时需要一个文本文件来存储联系人信息,数据可从该文本文件中导出。同时也可以从程序中导

2、出数据,从而保存!为了方便,进行了汉化。四、设计中的问题与解决方法:1.需要整体构思,先期的准备工作很重要。2.写程序时尽量考虑充分,否则调试时会很难受的。3.关于指针数组和二维数组的区别,额,还得看看。4.函数还是自己怎么顺手怎么写,不要硬套格式。五、对设计的感想和心得:第一次写程序让我苦不堪言,前前后后折腾了两个星期。尤其是调试,天!不说啥了。写程序是一回事,调试是另一码事,有时候就是个小问题导致程序各种崩溃。唉,确实找错需要灵感。但最终在细心检查下,发现啦。最终写完后,感觉如释重负。写一个“正常”的程序,不容易啊。六、原程序代码 #include#include#include#incl

3、ude#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(ID,id); strcpy(Name,name); strcpy(OfficeP

4、hone,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=NULL; Node * AddrList:LookUp(char *name) /按

5、姓名查找结点,返回该结点指针 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) if(x2) x1-Next=x2-Next; delete x2; cout已删除

6、endl; else cout未找到,请确认后再输入Next;delete x2;int AddrList:Sort(int T_T) /按用户指定的关键字重新排序 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; jName,pk-Name)=0) k=j; t=pk; pk=pi; pi=t; Hea

7、dPtr=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=t; HeadPtr=p0; i=0; while(iNext=pi+1; i+;

8、 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; system(pause); i=1; if(x); else break; AddrLi

9、st: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; AddSort(a,b,c,d,e,f); in.close();void AddrLis

10、t: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); outID ; outName ; outOfficePhone ; outHomeP

11、hone ; outMobilePhone ; outEmailNext) outID ; outName ; outOfficePhone ; outHomePhone ; outMobilePhone ; outEmail ; out.close();void AddrList:WriteToTxtFile(char *filename) /将链表写到文本文件中 Node *x=HeadPtr; ofstream out(filename,ios:binary); out setw(12)学号setw(6) 姓名 setw(12) 办公电话 setw(12) 家庭电话setw(12) 移动

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 i; char *menu= , , , , *小巧通讯录管

13、理系统* , , 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); char a30,b30,c30,d30,e30,f30

14、; 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; addrlist.Delete(p); cout删除完成en

15、dl; 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; if(p=addrlist.LookUp(name) co

16、ut setw(12)学号setw(6) 姓名 setw(12) 办公电话 setw(12) 家庭电话setw(12) 移动电话setw(20)电子邮件endlsetw(12)IDsetw(12) Name setw(12) OfficePhone setw(12) HomePhonesetw(12)MobilePhonesetw(12)Emailendl; else cout未找到endl; system(pause); void modify(AddrList &addrlist) /修改一个结点 system(cls); char name30; Node *p; cout 修改联系人

17、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(AddrList &addrlist) /从正文文件增加记录 s

18、ystem(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; addrlist.WriteToTxtFile(filen

19、ame); 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.学号T_T; if(addrlist.Sort(T_T) cout已排序endl; else coutch; if (ch

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1