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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

通讯录C++代码.docx

1、通讯录C+代码 黔南民族师范学院 C+课程设计 名称: 通讯录管理系统 指导老师: 学 号: 姓 名: 系 别:计算机科学系 班 级:B12 计 科1、问题描述定义通讯录类,属性有:编号、姓名、性别、通讯地址、邮箱地址、电话等信息和相关的对属性做操作的行为。主要完成对通讯录的简单管理。2、功能要求(1)添加功能:程序能够添加通讯录信息,要求编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。(2)查询功能:可根据姓名、电话、邮箱地址等信息对已添加的信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有通讯信息,每条记

2、录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。(5)删除功能:主要实现对已添加的通讯记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作。(6)保存功能:可将当前系统中通讯录记录存入文件中,存入方式任意。(7)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5

3、)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试;(8)完成系统总结报告。实体间与属性联系:Class PersonClass manageNoNamemepostaddreTelSex友元类SaveLookdeleteFind NoName功能描述添加功能:能够向链表之中输入相关的信息,在编号重复时取消本次输入,并且一次只能输入一条信息。删除功能:根据唯一标识一个对象的属性,删除与之对应的信息。修改功能:根据唯一标识一个对象的属性,选选择要修改的数据项进行修改。阅览功能:是对所有的数据进行访问,不能改变其中任何数据。查询功能:按照当前给定的信息,查询详细详细。保持功

4、能:时对所有数据进行存档,方便以后的操作,如果一个程序没有保持功能,每一次使用时会更繁琐,保存其实是程序不可缺少的功能之一。读取功能:将已存在的数据从文档中读取出来;本程序是通过在建立对象时,系统自己调用 构造函数实现的,如果将其单独作为一功能也是可以的,但是那样似乎比较繁琐。建立类:Person:数据成员string No; /编号 string post; /邮箱地址 string addre; /联系地址 char Name20; /姓名 char Sex10; /性别string Tel; /联系方式成员函数Person(string ID,char *Name,char *Sex,s

5、tring post,string Tel,string addre) 构造函数friend class Manage; manage作为有元函数,可以访问person类manage: 数据成员Person *person 建立了一个基类指针成员函数Manage() 构造函数 Manage() /析构函数 void FindName();/按姓名查找 oid FindID();/按编号查找 void Add(); /添加加信息 void Delete(); /删除信息 void Modify(); /修改信息 void Save(); /保存数据 void Load(); /读入数据 void

6、 Look();/预览程序首页添加功能阅览功能查找功能删除功能修改功能 代码源程序:#include#include#includeusing namespace std;string ID;/编号唯一性class Personprotected: string No; /编号 string post; /邮箱地址 string addre; /联系地址 char Name20; /姓名 char Sex10; /性别 string Tel; /联系方式 Person *next; /建立联系人的指针nextpublic: Person(string ID,char *Name,char *S

7、ex,string post,string Tel,string addre) /有参构造函数 strcpy(this-Name,Name); strcpy(this-Sex,Sex); this-Tel=Tel; /this指针是指当前对象指针 this-No=ID; this-post=post; this-addre=addre; friend class Manage; /把manage作为有元函数,可以访问person类;class Manageprotected: Person *person;public: Manage() person=0; Load(); /建立对象的同时,

8、调用了读取这个函数 Manage() /析构函数 void FindName();/按姓名查找 void FindID();/按编号查找 void Add(); /添加加信息 void Delete(); /删除信息 void Modify(); /修改信息 void Save(); /保存数据 void Load(); /读入数据 void Look();/预览 ;void Manage:Add() Person *p,*p2; /新结点指针 string No,post,Tel,addre; char Name20,Sex10; char c; coutn* 新增联系人通讯录 *n; co

9、utNo; coutNo=No) break; else p1=p1-next; if(p1!=NULL) cout该编号已存在,取消改该联系人的信息添加endlendl; return; cout输入:姓名 性别 邮箱地址 联系方式 联系地址,(并用逗号隔开)NameSexpostTeladdre; p=new Person(No,Name,Sex,post,Tel,addre); p-next=0; /联系人结点加入链表 if(person) /若已经存在结点 p2=person; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; /连接 else

10、/若不存在结点(表空) person=p; /连接 return ;void Manage:Delete() /删除联系人 char c; string No; coutn* 删除信息 *n; coutNo; coutNo=No) break; else p2=p1; p1=p1-next; /删除结点 if(p1!=NULL)/若找到结点,则删除 if(p1=person) /若要删除的结点是第一个结点 person=p1-next; delete p1; else /若要删除的结点是后续结点 p2-next=p1-next; delete p1; couttt*删除成功*n; return

11、 ; else /未找到结点 cout未找到该联系人!n; void Manage:Modify() coutID; coutNo=ID) cout所要修改的联系人的信息如下:nendl; cout编号: Not姓名:Namet性别:Sext年龄:postt电话:Telt联系地址:addreendl; coutendlnext; if(p1!=NULL)/若找到结点 do cout1. 修改姓名 2. 修改性别 3. 修改邮箱地址 4. 修改联系方式 5.修改联系地址 0. 退出 nendl; cout请选择(1-5)要修改的信息nc; if(c!=0) coutp1-Name; break;

12、 case 2: cinp1-Sex; break; case 3: cinp1-post; break; case 4: cinp1-Tel; break; case 5: cinp1-addre; break; default: break; while(c!=0); coutt *修改成功*nendlendl; return ; else cout未找到该学生!n; /fPersonNo Name Sex post Telendl;void Manage:Save() /数据写入到文件 ofstream fPerson(Person.txt,ios:out); if(!fPerson)

13、cerropen error!endl;abort(); char c; coutc; if(toupper(c)!=Y) return; Person *p=person; while(p) fPersonNo Name Sex post Tel addrenext; fPerson.close(); coutn保存成功.n; void Manage:Load() /数据读入 ifstream fPerson; Person *p=person; string No,Tel,post,addre; char Name20,Sex10; fPerson.open(person.txt,ios:

14、in); if(!fPerson) cerropen errorNoNameSexpostTeladdre; while(fPerson.good() p=new Person(No,Name,Sex,post,Tel,addre); p-next=0; /联系人结点加入链表 if(person) /若已经存在结点 Person *p2; p2=person; while(p2-next) /查找尾结点 p2=p2-next; p2-next=p; /连接 else /若不存在结点(表空) person=p; /连接 fPersonNoNameSexpostTeladdre; fPerson.

15、close(); void Manage:FindID() coutID; coutNo=ID) cout编号: Not姓名:Namet性别:Sext年龄:postt电话:Telt联系地址:addreendlnext; if(p1!=NULL) else cout未找到该联系人endl;void Manage:FindName() char Name20; coutName; coutName,Name)=0) count+; cout编号: Not姓名:Namet性别:Sext年龄:postt电话:Telt联系地址:addreendlnext; if(count) coutt查询成功!end

16、lendl; else coutntt未找到该联系人!nendl;void Manage:Look() Person *p1; int count=0; char c; p1=person; while(p1) cout编号: Not姓名:Namet性别:Sext年龄:postt电话:Telt联系地址:addrenext; if(count!=0) coutendl; return ; int main(void) Manage m; int c; do coutendlendl; cout * *. 欢迎来到通讯录菜单 . * *endl; cout * *endl; cout * 1.新增

17、通讯录 5.删除通讯录 *endl; cout * 2.修改通讯录 6.编号查询详细信息 *endl; cout * 3.预览信息 7.姓名查询详细信息 *endl; cout * 4.保存数据 0.退出 *endl; cout * * * * * * * * * * * * * * * * * * * * *endl; coutc; switch(c) case 1: m.Add(); break; case 2:m.Modify();break; case 3: m.Look(); break; case 4: m.Save(); break; case 5: m.Delete();break; case 6: m.FindID(); break; case 7: m.FindName(); break; case 0:break; default: break; while(c!=0); int s; cout是否要保存您的所有操作(1.保存 0.不保存):s; if(s=1) m.Save(); return 0;THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考

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

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