C++容器vector实现通讯录功能
之前学习C语言的时候,用链表实现过通讯录的基本功能。最近写了一个C++版本的通讯录,参考代码如下所示。
main.cpp
/***************************************************** Copyright(C):2017-2018 Filename:main.cpp Author:Zhengqijun Date:2017年02月12日星期日16时47分52秒 Description:主函数 FuncionList:main() *****************************************************/ #include"../../include/head.h" personMessagepep; vectorperson; vector ::iteratorit; intmain() { //personMessagepep; //vector person; charch=0; //system("clear"); while(ch!='q') { if((ch!='a')&&(ch!='c')&&(ch!='d')&&(ch!='f')) { system("clear"); ch=book_ui(); } switch(ch) { case'a': { ch=add_person(); break; } case'c': { ch=change_person(); break; } case'd': { ch=delete_person(); break; } case'e': { ch=display_person(); break; } case'f': { ch=find_person(); break; } case'q': { cout<<"Byebye!"< head.h
/***************************************************** Copyright(C):2017-2018 Filename:head.h Author:Zhengqijun Date:2017年02月12日星期日17时11分29秒 Description: FuncionList: *****************************************************/ #ifndef__HEAD_H__ #define__HEAD_H__ #include#include #include #include #include #include usingnamespacestd; classpersonMessage { public: personMessage(); personMessage(strings); ~personMessage(); personMessage&operator=(strings); personMessage&operator=(personMessage&other); /*sort排序算法需要重载'<',注意加const!*/ booloperator<(constpersonMessage&p)const; booloperator>(constpersonMessage&p)const; booloperator<=(constpersonMessage&p)const; booloperator>=(constpersonMessage&p)const; booloperator==(strings); friendistream&operator>>(istream&in,personMessage&p); friendostream&operator<<(ostream&out,personMessage&p); intselectFlag;//用来选择哪一个私有成员! private: stringname_; stringaddr_; stringphone_; }; externpersonMessagepep; externvector person; externvector ::iteratorit; externcharbook_ui(); externcharadd_person(); externcharchange_person(); externchardelete_person(); externchardisplay_person(); externcharfind_person(); #endif book.cpp
/***************************************************** Copyright(C):2017-2018 Filename:book.cpp Author:Zhengqijun Date:2017年02月12日星期日18时53分19秒 Description: FuncionList: *****************************************************/ #include"../../include/head.h" personMessage::personMessage():selectFlag(0) { cout<<"defaultcoonstructor!"<(constpersonMessage&p)const { returnname_>p.name_; } boolpersonMessage::operator>=(constpersonMessage&p)const { returnname_>=p.name_; } boolpersonMessage::operator<(constpersonMessage&p)const { returnname_ >(istream&in,personMessage&p) { stringname; stringaddr; stringphone; cout<<"请输入新的成员名字:"< >name; p.name_=name; cout<<"请输入新的成员地址:"< >addr; p.addr_=addr; cout<<"请输入新的成员电话:"< >phone; p.phone_=phone; returnin; } ostream&operator<<(ostream&out,personMessage&p) { out<<"名字:"< book_ui.cpp
/***************************************************** Copyright(C):2017-2018 Filename:book_ui.cpp Author:Zhengqijun Date:2017年02月12日星期日16时49分50秒 Description: FuncionList: *****************************************************/ #include"../../include/head.h" charbook_ui() { charch=0; cout<<"____________________________________"<>ch; returnch; } add_person.cpp
/***************************************************** Copyright(C):2017-2018 Filename:add_person.cpp Author:Zhengqijun Date:2017年02月12日星期日17时22分56秒 Description: FuncionList: *****************************************************/ #include"../../include/head.h" charadd_person() { cout<<"Thisisaddperson!"<>pep; cout< >ch; if(ch=='y') { return0; } elseif(ch=='n') { return'a'; } else { cout<<"输入错误!"< delete_person.cpp
/***************************************************** Copyright(C):2017-2018 Filename:delete_person.cpp Author:Zhengqijun Date:2017年02月12日星期日18时29分33秒 Description: FuncionList: *****************************************************/ #include"../../include/head.h" chardelete_person() { cout<<"Thisisdeleteperson!"<>d_key; switch(d_key) { case1: { cout<<"请输入你想要删除成员的名字:"< >pep_info; break; } case2: { cout<<"请输入你想要删除成员的地址:"< >pep_info; break; } case3: { cout<<"请输入你想要删除成员的电话:"< >pep_info; break; } default: { cout<<"输入有误!"< selectFlag=d_key; if(*it==pep_info) { person.erase(person.begin()+d_flag,person.begin()+d_flag+1); cout<<"删除成员信息成功!"< >ch; if(ch=='y') { return0; } elseif(ch=='n') { return'd'; } else { cout<<"输入错误!"< change_person.cpp
/***************************************************** Copyright(C):2017-2018 Filename:change_person.cpp Author:Zhengqijun Date:2017年02月12日星期日18时20分15秒 Description: FuncionList: *****************************************************/ #include"../../include/head.h" charchange_person() { cout<<"Thisischangeperson!"<>c_key; switch(c_key) { case1: { cout<<"请输入你想要修改成员的名字:"< >pep_info; break; } case2: { cout<<"请输入你想要修改成员的地址:"< >pep_info; break; } case3: { cout<<"请输入你想要修改成员的电话:"< >pep_info; break; } default: { cout<<"输入有误!"< selectFlag=c_key; if(*it==pep_info) { ch_flag=1; cin>>*it; cout<<"修改成员信息成功!"< >ch; if(ch=='y') { return0; } elseif(ch=='n') { return'c'; } else { cout<<"输入错误!"< find_person.cpp
/***************************************************** Copyright(C):2017-2018 Filename:find_person.cpp Author:Zhengqijun Date:2017年02月12日星期日18时21分59秒 Description: FuncionList: *****************************************************/ #include"../../include/head.h" charfind_person() { cout<<"Thisisfindperson!"<>f_key; switch(f_key) { case1: { cout<<"请输入你想要查找成员的名字:"< >f_info; break; } case2: { cout<<"请输入你想要查找成员的地址:"< >f_info; break; } case3: { cout<<"请输入你想要查找成员的名字:"< >f_info; break; } default: { cout<<"输入有误!"< selectFlag=f_key; if(*it==f_info) { f_flag=1; cout<<"找到该成员!"< >ch; if(ch=='y') { return0; } elseif(ch=='n') { return'f'; } else { cout<<"输入错误!"< display_person.cpp
/***************************************************** Copyright(C):2017-2018 Filename:display_person.cpp Author:Zhengqijun Date:2017年02月12日星期日18时23分04秒 Description: FuncionList: *****************************************************/ #include"../../include/head.h" chardisplay_person() { cout<<"Thisisdisplayperson!"<>ch; return0; } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。