通讯簿管理(顺序表的应用)_C++程序.docx
《通讯簿管理(顺序表的应用)_C++程序.docx》由会员分享,可在线阅读,更多相关《通讯簿管理(顺序表的应用)_C++程序.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第8页 共8页3 通讯簿管理(顺序表的应用)【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查找、插入、删除和修改等操作。通讯簿的特点是以查找为主要操作,要求快速查找到指定对象的位置,故宜采用具有随机访问功能的顺序表。【数据结构】使用顺序表SeqList建立通讯簿。作为表项的联系人记录,至少应包括以下属性: 序号,姓名,与本人关系,电话号码其中序号具有唯一性。序号和姓名可作为查找的主要关键字。与本人关系可枚举为“亲人”、“朋友”和“同事”,主要作用是为联系人分组,并作为次要关键字。将上述联系人记录定义为一个结构
2、(struct),在主程序中建立模板类顺序表SeqList的对象时用该结构实例化表结点的类型。【主要功能】程序应为用户提供操作选择界面,必要的操作包括:查找某人电话号码,添加新记录,修改记录,删除记录,打印亲人清单、朋友清单或同事清单以及退出等。另外,为初始化方便,原始数据可存储在磁盘文件中。【主要代码】#include#includestatic n=1;enum RelationFriend,Relative,colleague;templatestruct People char Number10;/编号 char PNumber12;/电话号码 char name20;/姓名 int
3、m;/关系 People( int &ite) m=ite; People(int &p1,char Name,char P, char item) for(int i=0;i20;i+) namei=Namei; for(int j=0;j11;j+) PNumberj=Pj; for(int k=0;k10;k+) Numberk=itemk; m=p1; ;templateclass SeqListprotected: People *data; int maxSize; int last; void reSize(int newSize);public: SeqList()data=n
4、ew People; SeqList(T& x)data=new People(x); People *getdata()return data; bool input(); void output(); void tianjia(); void chaxun(); void showall(); void remove(); void xiugai(); void showfriend(); void showrelative(); void showcolleague();template bool SeqList:input() static l;coutdatal.Number; co
5、utdatal.name;coutdatal.PNumber;coutdatal.m;l+;n+;return true;bool deng(char p1,char p2)bool flag=1;for(int i=0;p1i!=0|p2i!=0;i+)if(p1i!=p2i)return flag=0;return flag;template void SeqList:tianjia()this-input();cout信息已保存好!endl;template void SeqList:chaxun()char pr20;cout请输入您要查找的姓名或电话号码:pr;bool flag=1
6、;for(int li=0;lin-1;li+)if(deng(pr,datali.name)|deng(pr,datali.PNumber)cout#datali.Numbert姓名:datali.namet电话号码:;for(int k=0;datali.PNumberk!=0;k+)coutdatali.PNumberk;coutt;switch(datali.m)case 0:cout朋友tendl;break;case 1:cout亲人tendl;break;case 2:cout同事tendl;break;default: cout关系设置错误!;break; flag=0;if(
7、flag) cout查找失败!endl;void inface() cout endl; couttt endl tt * endl tt 通 迅 录 endl tt * endl tt 1. 添加新联系人. 6. 显示同事信息. endl tt endl tt 2. 删除联系人. 7. 修改信息. endl tt endl tt 3. 显示所有联系人. 8.查询联系人. endl tt endl tt 4.显示亲人信息. endltt 按其他退出 endltt 5.显示朋友信息. endltt endl tt endl endl;template void SeqList:showall()
8、cout所有人的信息如下:endl;for(int lm=0;lmn-1;lm+)cout#datalm.Numbert姓名:datalm.namet电话号码:;for(int k=0;datalm.PNumberk!=0;k+)coutdatalm.PNumberk;coutt;switch(datalm.m)case 0:cout朋友tendl;break;case 1:cout亲人tendl;break;case 2:cout同事tendl;break;default: cout关系设置错误!;break;template void SeqList:showfriend()cout朋友的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯 管理 顺序 应用 _C 程序
限制150内