您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 通讯录管理程序-c++大作业
同济大学二○一一~二○一二学年第二学期交通运输工程学院课程设计报告书课程名称:C/C++语言课程设计班级:4班学号:1151220姓名:王琎晨指导教师:孙丽君二○一二年六月一.需求分析程序名称:通讯录管理程序。程序功能概括:1)添加:即增加一个人的记录到通信录中2)显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。3)查询:可根据姓名查找某人的相关信息,若找到显示其姓名、地址、电话号码和邮政编码。4)修改:可修改一个人的除姓名外其它信息。5)分类并显示:可将人员进行分组,例如分为家人,朋友,同事等,选择分组后,只显示该分组内的信息6)装入:即将文件中的信息读入程序。7)存储:即将通讯录信息保存在一个文件中。8)删除:删除通讯录中的联系人。程序意义:通讯录管理系统针对手机中对联系人的添加,删除等操作,方便用户使用通讯录,起到便利作用。二.概要设计系统核心功能:添加联系人显示所有联系人信息查询联系人并显示删除联系人分组并显示修改联系人信息功能框图:功能描述:插入联系人:通过键盘输入联系人的姓名,电话号码,地址,邮政编码等信息,存入通讯录中。显示联系人:在屏幕上分行显示所有联系人的信息。删除联系人:通过输入需要删除的联系人的姓名删除该联系人。查询联系人:通过输入需要查询的联系人的姓名查询该联系人。载入数据:从文件读出数据。保存数据:将数据保存入文件。分组并显示:1.创建新组:创建新的分类。2.组内添加联系人:将联系人添加入该组。3:。分组显示:在屏幕上分组显示联系人。三.详细设计本程序用了如下课本中没有的函数,使界面简洁明了。getch()//键盘任意输入system(“CLS”)//清屏通讯录管理插入联系人显示联系人删除联系人查询联系人分组并显示载入数据创建新组保存数据组内添加联系人分组显示如下为完整程序:#includeiostream.h#includestring.h#includeiomanip#includestdlib.h#includestdio.h#includeconio.h#includeiomanip.hstructben//定义结构{charname[20];charaddress[80];charnum[20];charyou[10];charfen[10];structben*next;};structben*head=NULL;//定义全局变量char*lei[20];inti(0);voidcsh(){for(inti=0;i20;i++)lei[i]=NULL;}voidmenu();voidduru()//读入数据{system(CLS);FILE*fp;if((fp=fopen(txl.txt,r+))==NULL){coutcan'topenfile;exit(1);}head=newben;structben*newben;structben*tail;tail=head;while(!feof(fp)){newben=newben;fread(newben,sizeof(ben),1,fp);tail-next=newben;tail=newben;}tail-next=NULL;cout读取文件成功endl;fclose(fp);cout返回主菜单请安任意键endl;getch();menu();}voidbaocun()//保存数据{system(CLS);FILE*fp;if((fp=fopen(txl.txt,r+))==NULL){coutcan'topenfile;exit(1);}if(head==NULL)cout内容空,无需保存endl;else{structben*p=head-next;while(p!=NULL){fwrite(p,sizeof(ben),1,fp);p=p-next;}cout保存成功endl;}cout返回主菜单请安任意键endl;getch();menu();}voidtianjia()//添加联系人{charn;do{system(CLS);structben*newben;newben=newben;strcpy(newben-fen,wu);cout请输入姓名endl;cinnewben-name;cout请输入地址endl;cinnewben-address;cout请输入电话号码endl;cinnewben-num;cout请输入邮政编码endl;cinnewben-you;if(head==NULL){head=newben;head-next=newben;newben-next=NULL;}else{newben-next=head-next;head-next=newben;}cout添加完成,若想继续添加请按1,返回主菜单请按任意键endl;n='0';cinn;}while(n=='1');system(CLS);menu();}voidprint()//输出通讯录列表{system(CLS);structben*p=head;if(head==NULL){cout联系人为空,回到主页请按任意键endl;getch();menu();}else{p=p-next;cout姓名setw(10)地址setw(10)电话号码setw(10)邮政编码endl;while(p!=NULL){coutp-namesetw(10)p-addresssetw(10)p-numsetw(10)p-youendl;p=p-next;}cout输出完毕,返回主菜单请按任意键endl;getch();menu();}}voidchange()//修改联系人信息{system(CLS);if(head==NULL){cout联系人为空,回到主页请按任意键endl;getch();menu();}else{structben*p=head-next;cout请输入修改人的姓名endl;charname1[20];cinname1;while(p!=NULL&&strcmp(name1,p-name))p=p-next;if(p!=NULL){cout进行修改endl;cout请输入地址endl;cinp-address;cout请输入电话号码endl;cinp-num;cout请输入政编码endl;cinp-you;cout修改成功endl;cout返回主菜单请按任意键endl;getch();menu();}else{cout不存在此人,返回主菜单请按任意键endl;getch();menu();}}}voidcz()//创建类{system(CLS);charj;if(head==NULL){cout联系人为空,回到主页请按任意键endl;getch();menu();}else{cout请输入您要创建的新组endl;chars[10];cins;lei[i]=newchar[10];strcpy(lei[i],s);i++;do{system(CLS);cout请选择要您要添加入该类的人(输入人名)endl;structben*p=head-next;cout姓名setw(10)地址setw(10)电话号码setw(10)邮政编码setw(10)分类endl;while(p!=NULL){coutp-namesetw(10)p-addresssetw(10)p-numsetw(10)p-yousetw(10)p-fenendl;p=p-next;}p=head-next;charname2[20];cinname2;while(p!=NULL&&strcmp(name2,p-name)!=0)p=p-next;if(p!=NULL){strcpy(p-fen,s);cout已成功将p-name添加入s中endl;}elsecout不存在这个人endl;cout继续添加请按1.后退请按2.返回主菜单请按其它键.endl;cinj;}while(j=='1');if(j=='2')cz();else{menu();}}}voidzt()//在类中添加联系人{system(CLS);intx(0);for(x=0;x20;x++){if(lei[x]==NULL)break;}if(x==0){cout木有类,返回添加类请按任意键endl;getch();cz();}chard;do{system(CLS);d=0;for(intj=0;jx;j++)coutj+1:lei[j];cout请选择添加的组endl;intk;cink;cout您要添加的组为lei[k-1]endl;cout情输入您要添加的人endl;structben*p=head-next;cout姓名setw(10)地址setw(10)电话号码setw(10)邮政编码setw(10)分类endl;while(p!=NULL){coutp-namesetw(10)p-addresssetw(10)p-numsetw(10)p-yousetw(10)p-fenendl;p=p-next;}p=head-next;charname2[20];cinname2;while(p!=NULL&&strcmp(name2,p-name)!=0)p=p-next;if(p!=NULL){strcpy(p-fen,lei[k-1]);cout已成功将p-name添加入lei[k-1]中endl;}elsecout不存在这个人endl;cout继续添加请按1.返回主菜单请按其他它键.endl;cind;}while(d=='1');menu();}voidlx()//分类显示{system(CLS);if(head==NULL){cout通讯录为空,返回主菜单请按任意键endl;getch();menu();}intx(0);for(x=0;x20;x++){if(lei[x]==NULL)break;}if(x==0){cout木有类,返回主菜单请按任意键endl;getch();menu();}else{for(intm=0;mx;m++){structben*p=head-next;coutlei[m]endl;cout姓名setw(10)地址setw(10)电话号码setw(10)邮政编码endl;while(p!=NULL){if(strcmp(p-fen,lei[m])==0){coutp-namesetw(10)p-addresssetw(10)p-numsetw(10)p-youendl;}p=p-next;}coutendl;}cout返回主菜单请任意键endl;getch();menu();}}voidfenlei()//分类显示总表{system(CLS);cout1.创建新组endl;cout2.分组添加endl;cout3.分类显示endl;cout4.返回主菜单en
本文标题:通讯录管理程序-c++大作业
链接地址:https://www.777doc.com/doc-5028640 .html