- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
题目:用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。
(一)功能要求
(1)查看功能:选择此功能时,列出下列三类选择。
A办公类B个人类C商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码)
(2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A办公类B个人类C商务类)、电子邮件)。例如
杨春商务类Chuny@126.C++om
当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(3)拔号功能:能显示通信录中所有人姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示此人电话号码中的各个数字,并伴随相应的拔号声音。
(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改
(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)建议使用结构和链表等数据结构
(4)学生可自动增加新功能模块(视情况可另外加分)
以下是源代码,相应的文档为《通讯录管理系统-数据结构课程设计报告》,搜索即可
#includeiostream
#includestdlib.h
#includestring
#includefstream
#includewindows.h
#includeMmsystem.h
#pragmacomment(lib,winmm.lib)
usingnamespacestd;
#defineMAXSIZE15
//联系人信息
typedefstruct
{
stringname;//姓名
stringteleNum;//电话号码
intclasses;//分类
stringemail;//电子邮件
}contacts;
//链表存储结构
typedefstructLNode
{
contactsdata;//数据域
structLNode*next;//指针域
}LNode,*LinkList;
//初始化链表
intInitList(LinkListL)
{
L=newLNode;
L-next=NULL;
return0;
}
//前插法创建链表
voidCreateList_H(LinkListL,intn)
{
LinkListp;
for(inti=0;in;i++)//根据联系人个数创建链表
{
p=newLNode;
cout请输入联系人的姓名:;
cinp-;
cout请输入联系人的电话号码:;
cinp-data.teleNum;
cout请输入联系人的分类(分类如下,输入相应序号即可)endl;
cout1办公类2个人类3商务类endl;
cinp-data.classes;
cout请输入联系人的电子邮件:;
cinp-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)//若符合类别则输出联系人姓名和电话号码
{
coutp-\t\tp-data.teleNumendl;
}
p=p-next;
}
}
//重载函数,查看所有联系人
voidCheckAll(LinkListL)
{
LinkListp;
p=L-next;
while(p)
{
coutp-endl;
p=p-next;
}
}
//根据姓名查找联系人
LinkListS
文档评论(0)