通讯录管理系统设计思路:

上传人:痛*** 文档编号:251926800 上传时间:2024-11-11 格式:PPT 页数:19 大小:392.97KB
返回 下载 相关 举报
通讯录管理系统设计思路:_第1页
第1页 / 共19页
通讯录管理系统设计思路:_第2页
第2页 / 共19页
通讯录管理系统设计思路:_第3页
第3页 / 共19页
点击查看更多>>
资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,通讯录管理系统设计思路:,首先对于通讯录中的各成员包含的信息序号、姓名、,TEL,、住址定义一个结构体。,对与通讯录重要实现的各种操作可以使用一张菜单清单进行任务选择使用,switch,语句执行,实验中定义一个结构体数组来储存成员,进行成员的插入,信息修改,删除操作,实验的数据输入包括选择功能数字,成员的联系信息,查找的成员姓名;输出成员的信息。,实验采用文件对学生数据的保存,提高操作效率,结构体模型,姓名,char name【】,结构体,Data Type,电话号码,char phone【】,住址,char,addr,【】,0-,选择进行建立一个通讯录,1-,列出成员的信息,2-,查找成员的信息,功能清单,3-,删除一个成员,4-,增加新的成员,5-,通讯录排序,6-,实现通讯录中的文件复制,7-,退出系统,实验主要用到的函数:,1,:,通讯建立函数,Enter(),2,:成员信息列出函数,List(),3:,成员删除函数,Delete(),4,:成员新增函数,Add(),5,:成员信息排序函数,Sort(),6,:文件复制函数,Copy(),7:,退出系统函数,Quit(),Main,函数的设置,void main(),int,m;,do,printf,(*MENU*n);,printf,(0-Enter recordn);,printf,(1-List the filen);,printf,(2-Search record on namen);,printf,(3-Delete a recordn);,printf,(4-Add recordn);,printf,(5-Sort to make new filen);,printf,(6-copy the file to new filen);,printf,(7-Quitn);,printf,(*n);,printf(nEnter,your choice(07):n);,scanf(%d,&m,);,switch(m,),case 0:enter();break;,case 1:list();break;,case 2:search();break;,case 3:Delete();break;,case 4:add();break;,case 5:sort();break;,case 6:copy();break;,case 7:exit(0);,default:printf(input,error.,n);break,;,while(m,!=7);,void,enter(void,)/,进入工作,初始化通讯录信息,FILE*,fp,;,int,i,j,;,for(i,=0;i,SIZE;i,+)/,输入成员信息,printf(nInput,score of student%d:n,i+1);,printf(NO,.:);,scanf(%s,stui.num,);,printf(name,:);,scanf(%s,stui.name,);,printf(phone,:);,scanf(%s,stui.phone,);,printf(%s,stui.addr,);,if(fp,=,fopen(“stu.dat”,“wb,”)=NULL)/,新建一个,stu.dat,文件储存信息,printf(Can,not open the file.n);,exit(0);,for(i,=0;i,SIZE;i,+)/,将信息写入文件中,if(fwrite(&stui,LEN,1,fp)!=1),printf(file,write errorn);,fclose(fp,);,void,list(void,)/,输出学生信息,FILE*,fp,;,int,i,n,;,if(fp,=,fopen(“stu.dat”,“rb,”)=NULL)/,打开建立好的文件,stu.dat,printf(Can,not open the file.n);,exit(0);,for(i,=0;fread(/,统计能读取的数据的个数,i,n=i;/,将读取的数据个数赋予,n,for(i,=0;i,n;i,+)/,学生信息块都读取到结构体中,fread(,fclose(fp,);,printf,(*n);,printf(No.tnametphonen,);,printf,(*n);,for(i,=0;i,n;i,+),printf(%st%st%st%sn,stui.num,stui.name,stui.phone,stui.addr,);,printf,(*n);,void,search(void,)/,查找学生信息,int,b;,do,printf,(*MENU*n);,printf,(8-search by number.n);,printf,(9-search by name.n);,printf,(10-exit.n);,printf,(*n);,printf(“nEnter,your choice(810):n”);/,查找的方法选择,scanf(“%d”,&b,);/,按名字或学号,switch(b,),case 8:sea_num();break;,case 9:sea_name();break;,case 10:break;,default:printf(input,error.,n);break,;,while(b,!=10);,printf(exit.n,);,void,sea_num(void,)/,以序号进行查找,FILE*,fp,;,int,i,flag,n,;,char num10;,if(fp,=,fopen(stu.dat,rb,)=NULL)/,以二进制读的一个方式打开一个文件,printf(Can,not open the file.n);,exit(0);,for(i,=0;fread(/,统计文件中可读的数据个数,i,n=i;,for(i,=0;i,n;i,+),fread(/,查找前首先将数据全部提取出来,放到结构体中,fclose(fp,);,printf(nInput,num:);,scanf(%s,num,);,for(flag,=0,i=0;i,n;i,+),if(strcmp(num,stui.num,)=0)/,判断是否查找到信息,printf,(*n);,printf(The,record you search isn:);,printf(No.tnametphonen,);,printf,(%,st%st%st%sn,stui.num,stui.name,stui.phone,stui.addr,);,flag=1;,printf,(*n);,if(flag,!=1)printf(Not found the recordn);,void,sea_name(void,)/,按名字查找成员信息,FILE*,fp,;,int,i,j,flag,n,;,char name10;,if(fp,=,fopen(“stu.dat”,“rb,”)=NULL)/,打开文件,stu.dat,printf(Can,not open the file.n);,exit(0);,for(i,=0;fread(,n=i;,for(i,=0;i,n;i,+),fread(,fclose(fp,);,printf(nInput,name:);,scanf(%s,name,);,for(flag,=0,i=0;i,n;i,+),if(strcmp(name,stui.name,)=0),printf,(*n);,printf(The,record you search isn:);,printf(No.tnametphonen,);,printf,(%,st%st%st%sn,stui.num,stui.name,stui.phone,stui.addr,);,flag=1;,printf,(*n);,if(flag,!=1)printf(Not found the recordn);,void,sort(void,)/,通讯录排序,FILE*,fp,;,int,i,j,n,;,struct,student temp;,if(fp,=,fopen(stu.dat,rb,)=NULL)/,二进制方式打开一文件,printf(Can,not open the file.n);,exit(0);,for(i,=0;fread(/,统计能读取的学生信息个数,i,n=i;,for(i,=0;i,n;i,+),fread(/,学生信息读取到结构体中,fclose(fp,);,for(i,=0;i,n;i,+),for(j,=i+1;j0),temp=,stui,;,stui,=,stuj,;,stuj,=temp;,printf,(*n);,printf(No.tnametphonen,);,for(i,=0;i,n;i,+),printf(%st%st%stn,stui.num,stui.name,stui.phone,stui.addr,);,fp,=,fopen(stu.dat,wb,);/,新创一个文件将排好序的文件写入新建的文件中,for(i,=0;i,n;i,+),fwrite(,printf,(*n);,fclose(fp,);,void,add(void,)/,追加新的学生信息,int,i,j,n,;,FILE*,fp,;,struct,student s;,printf(NO,.:);,scanf(%s,s.num,);,printf(name,:);,scanf(%s,s.name,);,printf(phone,:);,scanf(%s,s.phone,);,printf(address,:);,scanf(%s,s.addr,);,if(fp,=,fopen(stu.dat,rb,)=NULL),printf(nCan,not open the file.n);,exit(0);,for(i,=0;fread(,n=i;,for(i,=0;i,n;i,+),fread(&stui,sizeof(struct,student),1,fp);,fclose(fp,);,strcpy(stun.name,s.name,);/,将新增人的信息复制到结构体数组中,strcpy(stun.num,s.num,);,strcpy(stun.phone,s.phone,);,strcpy(stun.addr,s.addr,);,n=n+1;/n,记录成员的个数,新增时时,n,加一,printf(nNow,the new list is:n);,printf,(*n);,printf(No.tnametphonen,);,printf,(*n);,fp,=,fopen(stu.dat,wb,);,for(i,=0;i,n;i,+),fwrite(&stui,sizeof(struct,student),1,fp);/,将追加后的学生信息全部写入文件,printf(%st%st%st%sn,stui.num,stui.name,stui.phone,stui.addr,);,fclose(fp,);,void,Delete(void,)/,删除某人的信息,FILE*,fp,;,int,i,j,n,flag,;,char name10;,if(fp,=,fopen(“stu.dat”,“rb,”)=NULL)/,打开储存文件,stu.dat,printf(nCan,not open the file.n);,exit(0);,for(i,=0;fread(,n=i;,printf(“nInput,name deleted:”);/,输入待删除人的名字,scanf(%s,name,);,fo
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!