您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > c++课程设计(通讯录管理系统)
通讯录管理系统要求:1.创建文本文件,记录联系人的信息。2.以菜单方式工作3.联系人的信息包括:姓名,籍贯,电话号码,QQ号等信息4.管理系统的功能包括:a)增加:添加新的联系人b)删除:删除一个联系人(输入电话号码,删除该联系人)c)修改:修改某个联系人的信息i.修改姓名ii.修改电话号码iii.修改籍贯iv.修改QQ号d)查询i.根据名字查询联系人信息(查询结果不唯一)ii.根据电话号码查询联系人信息iii.根据QQ号查询联系人信息实现过程分析:建立一个文本文件,记录联系人的基本信息建立以下几个类:1.联系人类:表示一个联系人数据成员包括:姓名籍贯电话号码QQ号成员函数包括一组set函数为数据成员赋值一组modify函数,修改数据成员的值Display函数:显示联系人的信息2.通讯簿类(这是一个数据库类):用于记录所有联系人的信息数据成员包括:联系人的数量联系人对象数组成员函数包括构造函数:读取文本文件中的数据,并根据文件内容创建联系人对象数组析构函数:将对象数组中的内容写入到文本文件中。增加函数:增加一个联系人删除操作:删除一个联系人Display:显示所有联系人的信息修改某一联系人的信息:查询并显示某一联系人的信息:3.用户类(这是一个操作类,完成通讯簿的操作):用户拥有一个通讯簿,并且可以对通讯录进行管理数据成员包括:通讯簿对象成员函数包括(成员函数体现用户的行为):添加联系人:调用通讯簿对象的增加函数完成联系人的添加删除联系人:调用通讯簿对象的删除操作删除一个联系人Display:显示所有联系人的信息修改某一联系人的信息:调用通讯簿对象的函数完成操作查询并显示某一联系人的信息:调用通讯簿对象的函数完成操作4.界面菜单类:用来给出操作提示数据成员:可以不定义数据成员成员函数:Display函数:显示操作菜单的提示。说明:可以根据需要定义多个函数,显示不同的菜单(操作提示)。#includeiostream#includestring.h#includefstream.h#includewindows.hclassperson{inttel;intQQ;charname[20];charnplace[40];public:intset_tel(){returntel;}intset_QQ(){returnQQ;}char*set_name(){char*p=newchar[strlen(name)+1];strcpy(p,name);returnp;}char*set_nplace(){char*p=newchar[strlen(nplace)+1];strcpy(p,nplace);returnp;}friendistream&operator(istream&in,person&b);friendostream&operator(ostream&out,person&b);voiddisp(){cout联系人姓名:this-nameendl;cout联系人电话:this-telendl;cout联系人籍贯:this-nplaceendl;cout联系人QQ:this-QQendl;}voidluru(){cout请输入姓名、籍贯、电话、QQendl;cinthis-name;cinthis-nplace;cinthis-tel;cinthis-QQ;}friendclassaddbook;};istream&operator(istream&in,person&p){inp.name;inp.tel;inp.nplace;inp.QQ;returnin;}ostream&operator(ostream&out,person&p){out姓名:p.nameendl;out籍贯:p.nplaceendl;out电话:p.telendl;outQQ:p.QQendl;returnout;}classaddbook{person*book;intn;public:addbook();~addbook();voidadd();voiddisplay();voiddel();voidmodify();voidsearchbyname();voidsearchbytel();voidsearchbyQQ();voidLuru(){for(intj=0;jn;j++)book[j].luru();}};addbook::addbook(){book=newperson[1000];fstreamfin(person.dat,ios::in|ios::binary);inti=0;n=i;if(!fin){cout文件打开失败!!!endl;return;}fin.read((char*)&book[i],sizeof(person));while(!fin.eof()){i++;fin.read((char*)&book[i],sizeof(person));}n=i;fin.close();return;}addbook::~addbook(){fstreamfout(person.dat,ios::out|ios::binary);if(!fout){cout文件打开失败!!!endl;return;}for(inti=0;in;i++)fout.write((char*)&book[i],sizeof(person));fout.close();}voidaddbook::add(){n++;book[n-1].luru();}voidaddbook::display(){for(intj=0;jn;j++){coutj;book[j].disp();}}voidaddbook::modify(){inta;intb;intc;intt;intTel;intqq;charName[20];charNplace[30];display();cout请输入要修改的联系人的序号:endl;cina;cout1.修改姓名2.修改籍贯3.修改电话4.修改QQendl;cinb;do{switch(b){case1:cout输入新姓名:endl;cinName;strcpy(book[a].name,Name);break;case2:cout输入新籍贯:endl;cinNplace;strcpy(book[a].nplace,Nplace);break;case3:cout输入新电话:endl;cinTel;book[a].tel=Tel;break;case4:cout输入新QQ:endl;cinqq;book[a].QQ=qq;break;}cout是否确认所修改的信息:1.是2重新修改endl;cinc;}while(c==2);cout浏览修改后的所有通讯录信息endl;display();cout继续修改请按1,不再修改请按2endl;cint;switch(t){case1:modify();break;case2:break;default:break;}getchar();}voidaddbook::del(){charNAme[20];intk;display();cout请输入要删除联系人的姓名:endl;cinNAme;for(intm=0;mn;m++){if(strcmp(book[m].name,NAme)==0){k=m;}}for(;km-1;k++){book[k]=book[k+1];}n=n-1;}voidaddbook::searchbyname(){charNAMe[20];inti,t;cout请输入要查找的联系人姓名endl;cinNAMe;for(i=0;in;i++)if(strcmp(book[i].name,NAMe)==0){cout该联系人信息如下endl;coutbook[i]endl;break;}if(i==n)cout查无此人endl;cout1.退出2.继续查询endl;cint;switch(t){case1:break;case2:system(cls);searchbyname();break;default:break;}}voidaddbook::searchbytel(){intTEL;inti,t;cout请输入要查找的联系人电话endl;cinTEL;for(i=0;in;i++)if(book[i].tel==TEL){cout该联系人信息如下endl;coutbook[i]endl;break;}if(i==n)cout查无此人endl;cout1.退出2.继续查询endl;cint;switch(t){case1:break;case2:system(cls);searchbytel();break;default:break;}}voidaddbook::searchbyQQ(){intqq;inti,t;cout请输入要查找的联系人电话endl;cinqq;for(i=0;in;i++)if(book[i].QQ==qq){cout该联系人信息如下endl;coutbook[i]endl;break;}if(i==n)cout查无此人endl;cout1.退出2.继续查询endl;cint;switch(t){case1:break;case2:system(cls);searchbytel();break;default:break;}}classmanage{addbooka;public:voidAdd(){a.add();}voidDel(){a.del();}voidModify(){a.modify();}voidSearch(){inti;cout请输入查询方式endl;cout1.按姓名查询2.按电话号码查询3.按QQ查询endl;cini;switch(i){case1:a.searchbyname();break;case2:a.searchbytel();break;case3:a.searchbyQQ();break;default:break;}}voidDisplay(){a.display();}};classcaidan:publicmanage{public:voidmenu(){cout===================通讯录管理系统================endl;cout||endl;cout|1.浏览通讯录2.查询联系人信息|endl;cout||endl;cout|3.增加联系人信息4.删除联系人信息|endl;cout||endl;cout|5.修改联系人信息6.exit|endl;cout=================================================endl;intn,flag;charask;cout\nendl;do{cout☆☆☆请选择需要操作的步骤(1--6)☆☆☆endl;cinn;if(n=1&&n=6){flag=1;break;}else{flag=0;coutendl;cout输入错误,重新选择1-6!!!endl;coutendl;}}while(flag==0);while(flag==1){switch(n)
本文标题:c++课程设计(通讯录管理系统)
链接地址:https://www.777doc.com/doc-4220326 .html