您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 通讯录(C++编写)
通讯录系统(C++)头文件addressbook.h#ifndefADDRESSBOOK_H_INCLUDED#defineADDRESSBOOK_H_INCLUDED#includeiostream#includestring#includeiomanip#includefstream#includecstdlibusingnamespacestd;classAddressBook{public:AddressBook();//默认构造函数charinter_face();//首页voidadd_person();//添加联系人voiddel_person();//删除联系人voidshow_all();//显示所有联系人voidClear();//清空数据voidalter();//修改信息voidselect();//查询联系人voidsave_new();//保存新增加的联系人intSearch(AddressBook*AB,stringn);//查找姓名或电话号码为n通讯录stringname;//姓名stringnumber;//电话号码stringsort;//类别stringemail;//电子邮件intnum;//通讯录人数};#endif//ADDRESSBOOK_H_INCLUDED主函数main.cpp#includeaddressbook.husingnamespacestd;enumpower{Clear='0',ADD='1',DEL='2',SHOW='3',Alter='4',Select='5',END='6'};intmain(){charchoose;AddressBookabj;while(choose=abj.inter_face()){switch(choose){caseClear:abj.Clear();////清空通讯录数据break;caseADD:abj.add_person();////添加联系人break;caseDEL:abj.del_person();////删除联系人break;caseSHOW:abj.show_all();////显示所有联系人break;caseAlter:abj.alter();////修改信息break;caseSelect:abj.select();////查询联系人break;caseEND:coutendl谢谢使用!!!!!endlendl;exit(0);break;default:break;}}return0;}函数Addressbook.cpp#includeaddressbook.hAddressBook::AddressBook(){name=\0;number=\0;sort=\0;email=\0;}//清空数据voidAddressBook::Clear()//清空数据{del_person();coutendl成功清空通讯录数据!endlendl;}//首页charAddressBook::inter_face(){system(cls);coutendl;cout\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★endl\t\t※※endl\t\t※通迅录※endl\t\t※※endl\t\t※0.清空数据※endl\t\t※※endl\t\t※1.添加新联系人.4.修改信息.※endl\t\t※※endl\t\t※2.删除联系人.5.查询联系人.※endl\t\t※※endl\t\t※3.显示所有联系人.6.关闭通迅录.※endl\t\t※※endl\t\t★★★★★★★★★★★★★★★★★★★★★★★★★★endlendl\t\t\t选择:;charchoose;cinchoose;fflush(stdin);returnchoose;}//添加联系人voidAddressBook::add_person(){constintMAXNUM=100;//通讯录人数允许的最大值AddressBook*AB;boolflag=true;//数据是否被修改过的标志ifstreaminData(pbook.txt,ios::in);AddressBookabj;cout----姓名或电话号码为字符串,输入“\0”终止录入----endl;while(1){if(num==(MAXNUM-1)){cout通讯录人数已达到最大值!endl;return;}coutendl根据下面提示输入新联系人信息endlendl姓名:;if(!(cinabj.name))//输入的不是字符串,重新提示输入{cout姓名应为字符串!endl;cin.clear();//清除状态标志cin.sync();//清空输入缓冲区continue;}if(Search(AB,abj.name)0)//查找此姓名是否已存在{cout此姓名已存在!endl;continue;}if(abj.name==\0)//输入\0结束输入{cout录入结束。endl;return;}cin.sync();//清空输入缓冲区cout电话:;if(!(cinabj.number))//输入的不是字符串,重新提示输入{cout姓名应为字符串!endl;cin.clear();//清除状态标志cin.sync();//清空输入缓冲区continue;}if(Search(AB,abj.number)0)//查找此姓名是否已存在{cout此姓名已存在!endl;continue;}cin.sync();//清空输入缓冲区cout类别:;getline(cin,abj.sort);//读取一行if(abj.sort==)//如读取的为空串,则设sort为nullabj.sort=null;cin.sync();//清空输入缓冲区cout电子邮件:;getline(cin,abj.email);//读取一行if(abj.email==)//如读取的为空串,则设email为nullabj.email=null;++num;//通讯录人数增1AB[num]=abj;//将新录入的通讯录加入数组中flag=true;//数据已改动}save_new();coutendlendl新联系人信息已经保存好!!!!!endlendl;system(pause);}//删除联系人voidAddressBook::del_person(){ofstreamoutData(temp.txt,ios::out);ifstreaminData(pbook.txt,ios::in);//if(!outData||!inData){coutendl对不起!!!!找不到文件!!!!endl;system(pause);return;}stringsign;coutendl你要删除输入姓名或电话号:;cinsign;stringstr1;boolflag=true;stringstr;while(inDatanamenumber){getline(inData,str);if((sign==name)||(sign==number)){coutendl你想删除的联系人:endlendl;coutstr1endl;coutsetiosflags(ios::left)setw(17)namenumberstrendl;flag=false;break;}outDatasetiosflags(ios::left)setw(17)namenumberstrendl;}if(flag){coutendl对不起!!!联系人中没你找的人!!!!endlendl;}else{while(getline(inData,str)){outDatastrendl;}outData.close();inData.close();ofstreamout(pbook.txt,ios::out);ifstreamin(temp.txt,ios::in);if(!out||!in){coutendl对不起不能打开文件!!!endlendl;system(pause);return;}while(getline(in,str)){outstrendl;}out.close();//in.close();coutendl这个人的信息已经从你的通迅录中删除!!!endlendl;}system(pause);}//查找姓名为n的通讯录intSearch(AddressBook*AB,stringn){for(inti=1;i=num;i++)if(AB[i].name==n)returni;//返回找到的通讯录的索引号return;//没找到,返回0}//查找电话号码为n的通讯录//intSearch(AddressBook*AB,stringn)//{//for(inti=1;i=num;i++)//if(AB[i].number==n)//returni;//返回找到的通讯录的索引号//return;//没找到,返回0//}//显示所有联系人voidAddressBook::show_all(){ifstreaminData(pbook.txt,ios::in);if(!inData){coutendl对不起!!!!没有找到文件!!!!!endl;system(pause);return;}boolflag=true;stringrecord;while(getline(inData,record)){if(flag){coutendl所有联系人信息如下:endl;}coutrecordendl;flag=false;}if(flag){coutendl你的通迅录中没有联系人!!!!!endlendl;}else{coutendl所有联系人已经全部显示出来!!!!!endlendl;}system(pause);}//修改信息voidAddressBook::alter(){ofstreamoutData(temp.txt,ios::out);ifstreaminData(pbook.txt,ios::in);//if(!outData||!inData){coutendl对不起!!!!找不到文件!!!!endl;system(pause);return;}stringsign;coutendl你要修改输入姓名或电话号:;cinsign;stringstr1;boolflag=true;stringstr;while(inDatanamenumber){getline(inData,str);if((sign==name)||(sign==number)){coutendl你想修改的联系人:endlendl;coutstr1endl;coutsetiosflags(ios::left)setw(17)namenumberstrendl;coutendl请根据下面提示修改信息:endl;cout姓名:;cinname;fflush(stdin);cout电话号:;cinnumber;fflush(stdin);cout类别:;cinsort;fflush(stdin)
本文标题:通讯录(C++编写)
链接地址:https://www.777doc.com/doc-4911648 .html