预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

题目:用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。(一)功能要求(1)查看功能:选择此功能时,列出下列三类选择。A办公类B个人类C商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码)(2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A办公类B个人类C商务类)、电子邮件)。例如杨春13589664454商务类Chuny@126.C++om当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(3)拔号功能:能显示通信录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示此人电话号码中的各个数字,并伴随相应的拔号声音。(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。(二)其它要求:(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)建议使用结构和链表等数据结构(4)学生可自动增加新功能模块(视情况可另外加分)以下是源代码,相应的文档为《通讯录管理系统-数据结构课程设计报告》,搜索即可#include<iostream>#include<stdlib.h>#include<string>#include<fstream>#include<windows.h>#include<Mmsystem.h>#pragmacomment(lib,"winmm.lib")usingnamespacestd;#defineMAXSIZE15//联系人信息typedefstruct{stringname;//姓名stringteleNum;//电话号码intclasses;//分类stringemail;//电子邮件}contacts;//链表存储结构typedefstructLNode{contactsdata;//数据域structLNode*next;//指针域}LNode,*LinkList;//初始化链表intInitList(LinkList&L){L=newLNode;L->next=NULL;return0;}//前插法创建链表voidCreateList_H(LinkList&L,intn){LinkListp;for(inti=0;i<n;i++)//根据联系人个数创建链表{p=newLNode;cout<<"请输入联系人的姓名:";cin>>p->data.name;cout<<"请输入联系人的电话号码:";cin>>p->data.teleNum;cout<<"请输入联系人的分类(分类如下,输入相应序号即可)"<<endl;cout<<"1办公类2个人类3商务类"<<endl;cin>>p->data.classes;cout<<"请输入联系人的电子邮件:";cin>>p->data.email;p->next=L->next;L->next=p;}}//根据类别查看联系人信息voidCheckAll(LinkListL,intc)//c是联系人类别{LinkListp;p=L->next;cout<<"姓名\t\t"<<"电话号码"<<endl;//表头while(p)//当链表没到尾部时{if(p->data.classes==c)//若符合类别则输出联系人姓名和电话号码{cout<<p->data.name<<"\t\t"<<p->data.teleNum<<endl;}p=p->next;}}//重载函数,查看所有联系人voidCheckAll(LinkListL){LinkListp;p=L->next;while(p){cout<<p->data.name<<endl;p=p->next;}}//根据姓名查找联系人LinkListSearch(LinkListL,stringname){LinkListp;p=L->next;while(p&&p->data.name!=name)//当链表没到尾部且没找到联系人时{p=p->next;}returnp;}//判断链表中是否存在联系人ccharIfExist(LinkListL,contactsc){LinkListp;p=L->next;while(p&&p->data.name!=c.name)//根据姓名查找是否存在该联系人{p=p->next;}if(!p)//若到达链表尾部,则不存在return'n';if(p->data.teleNum==c.teleNum)//若找到联系人姓名if(p->dat