资源描述:
《通讯簿管理(C++顺序表的应用)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、3通讯簿管理(顺序表的应用)【问题描述】通讯簿是一个线性表,可以存储一定数量的联系人记录,提供查找、插入、删除和修改等操作。通讯簿的特点是以查找为主要操作,要求快速查找到指定对象的位置,故宜采用具有随机访问功能的顺序表。【数据结构】使用顺序表SeqList建立通讯簿。作为表项的联系人记录,至少应包括以下属性:{序号,姓名,与本人关系,电话号码}其中序号具有唯一性。序号和姓名可作为查找的主要关键字。与本人关系可枚举为“亲人”、“朋友”和“同事”,主要作用是为联系人分组,并作为次要关键字。将上述联系人记录定义为一个结构(struct
2、),在主程序中建立模板类顺序表SeqList的对象时用该结构实例化表结点的类型。【主要功能】程序应为用户提供操作选择界面,必要的操作包括:查找某人电话号码,添加新记录,修改记录,删除记录,打印亲人清单、朋友清单或同事清单以及退出等。另外,为初始化方便,原始数据可存储在磁盘文件中。【主要代码】#include#include#includestaticn=1;enumRelation{Friends,Familiers,Colleague};template3、sT>structPerson{charNum[10];//编号charPhoNum[12];//电话号码charName[20];//姓名intm;//关系Person(int&ite){m=ite;}Person(int&p1,charName[],charP[],charitem[]){for(inti=0;i<20;i++){Name[i]=Name[i];}for(intj=0;j<11;j++){PhoNum[j]=P[j];}for(intk=0;k<10;k++){Num[k]=item[k];}m=p1;}};
4、templateclassSeqList{protected:Person*data;public:SeqList(T&x){data=newPerson(x);}boolInput();voidOutput();voidInsert();voidSearch();voidShow_All();voidDelete();voidCorrect();voidShow_Select();voidShow_Friends();voidShow_Familiers();voidShow_Colleagu
5、e();};5templateboolSeqList::Input(){staticl;cout<<"请输入您要添加的人的编号:";cin>>data[l].Num;cout<<"请输入您要添加的人的姓名:";cin>>data[l].Name;cout<<"请输入您要添加的人的电话:";cin>>data[l].PhoNum;cout<<"请输入您要添加人与您的关系亲人(1)朋友(2)同事(3)";cin>>data[l].m;l++;n++;returntrue;}templatevoi
6、dSeqList::Insert(){this->Input();cout<<"信息已保存好!"<voidSeqList::Search(){charpr[20];cout<<"请输入您要查找的序号或姓名:";cin>>pr;boolflag=1;for(intli=0;li7、
8、IfEqual(pr,data[li].Num)){cout<<"序号:"<9、<<"姓名:"<