欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    C语言通讯录管理系统源代码.docx

    • 资源ID:3155347       资源大小:42.14KB        全文页数:46页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言通讯录管理系统源代码.docx

    C语言通讯录管理系统源代码/*通讯录管理系统源代码*/#include&ltstdio.h&gt#include&ltstdlib.h&gt#include&ltstring.h&gtstruct tongxunlu /*结构定义*/char name10;char address30;char birthday10;char phonenumber15;char mail20;char relation8;void add(struct tongxunlu recode); /*函数声明*/void demand(struct tongxunlu recode);void show(struct tongxunlu recode);void revamp(struct tongxunlu recode);void omit(struct tongxunlu recode); void shanjia(struct tongxunlu recode);/*mian函数,进行主界面设计,调用各函数*/int main(void)int choice,i;struct tongxunlu recode200;FILE *fp;printf(" *通讯录管理系统* n");printf("*: 如果您是第一次使用此系统,请按0让系统在F盘为您建立一个保存联系人的新TXT文件! n");printf("*: 如果不是第一次使用此系统,请按1开始使用系统,按0会清除您以前保存的所有联系人!n");printf(" 请输入您的选择:");scanf("%d",&i);if(i=0)if(fp=fopen("f:project.txt","w+")=NULL)printf("File open error!");exit(0);if(fclose(fp)printf("can not cloce the file!");exit(0);else if(i=1);system("pause");system("cls");doprintf(" 通讯录管理系统 n");printf(" |-|n");printf(" | 选择1:添加通讯记录 |n");printf(" | 选择2:修改通讯记录 |n");printf(" | 选择3:删除通讯记录 |n");printf(" | 选择4:查询通讯记录 |n");printf(" | 选择5:显示通讯记录 |n");printf(" | 选择0:退出 |n");printf(" |-|n");printf("n");printf(" 请输入您的选择: "); scanf("%d",&choice);switch(choice) case 1:add(recode);break;case 2:revamp(recode);break;case 3:omit(recode);break;case 4:demand(recode);break;case 5:show(recode);break;case 0:break;default:printf("n");printf(" 您的选择有误!n");printf("n");break;while(choice!=0&&choice&lt6);printf("n");printf(" 谢谢使用!n");printf("n");return 0;/*添加通讯录函数*/void add(struct tongxunlu recode) int n,count=0,t,i,m; /*变量n作为是否保存判断,t判断是否继续添加,i循环判断,m记还可添加数目*/FILE *fp;struct tongxunlu s,p; /*定义新结构s保存新输入信息,新结构p保存原来已经保存在文件的信息*/if(fp=fopen("f:project.txt","a+")=NULL)printf("File open error!");exit(0);while(!feof(fp) /*计算文件中已有记录数count*/fscanf(fp,"%s%s%s%s%s%sn",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);/*将数据保存在新结构变量中*/count+;printf(" |*开始添加*|n");printf(" |*注意:地址不要超过十个字*| n");for(i=0;i&lt200;i+)printf(" 姓名:");scanf("%s",&s.name);printf(" 电话号码:");scanf("%s",&s.phonenumber);printf(" 住址:");scanf("%s",&s.address);printf(" 生日:");scanf("%s",&s.birthday);printf(" 邮箱:");scanf("%s",&s.mail);printf(" 关系:");scanf("%s",&s.relation); printf(" 保存记录请按1,否则按其他数字!n");printf(" 输入您的选择:");scanf("%d",&n);if(n=1)fprintf(fp,"%-7s%-12s%-22s%-10s%-20s%-3sn",s.name,s.phonenumber,s.address,s.birthday,s.mail,s.relation);printf(" 保存成功!n");count+;system("pause");system("cls");else if(n!=1)system("cls");break;if(count&lt=200)system("cls"); /*一次记录保存后清屏*/m=200-count;printf(" 您已经输入了%d个记录,还可以输入%d个!n",count,m);elseprintf(" 您的通讯录已满!n");system("cls");printf(" 按0退出添加,按其他数字继续添加!n");scanf("%d",&t);if(t=0)system("cls");break;if(fclose(fp)printf("can not cloce the file!");exit(0);/*查询通讯录函数*/void demand(struct tongxunlu recode)struct tongxunlu s,p; /*定义两个新结构变量,s用来保存要查询的某个项目,p用来保存查询到需输出结构各项目*/int flag,a,l; /*flag作为判断查询开始,a为判断查询方式,l为判断是否退出查询*/FILE *fp;if(fp=fopen("f:project.txt","r+")=NULL)printf("File open error!");exit(0);printf(" 按0选择姓名查询,按1选择号码查询!n");printf(" 输入您的选择:");scanf("%d",&a);if(a=0) /*用姓名查询*/printf(" 输入要查询的姓名:");scanf("%s",&s.name);while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);/*将数据保存在新结构变量中*/if(strcmp(s.name,p.name)=0)flag=1;break;if(flag=1)printf("|-|n");printf("| 姓名 号码 地址 生日 邮箱 关系 |n");printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);/*输出新结构中项目*/printf("|-|n");printf(" 按0退出查询!n");scanf("%d",&l);if(l=0)system("cls");elseprintf(" 您的通讯录中没有此记录!n");printf(" 按0退出查询!n");scanf("%d",&l);if(l=0)system("cls");else if(a=1) /*用号码查询*/printf(" 输入要查询的号码:");scanf("%s",&s.phonenumber);while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);/*将数据保存在新结构变量中*/if(strcmp(s.phonenumber,p.phonenumber)=0)flag=1;break;if(flag=1)printf("|-|n");printf("| 姓名 号码 地址 生日 邮箱 关系 |n");printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);/*输出新结构中项目*/printf("|-|n");printf(" 按0退出查询!n");scanf("%d",&l);if(l=0)system("cls");elseprintf(" 您的通讯录中没有此记录!n");printf(" 按0退出查询!n");scanf("%d",&l);if(l=0)system("cls");if(fclose(fp)printf("can not cloce the file!");exit(0);/*显示通讯录函数*/void show(struct tongxunlu recode)struct tongxunlu p; /*定义新结构变量保存要显示的信息*/int l,i,j,n=0,m;FILE *fp;if(fp=fopen("f:project.txt","r+")=NULL)printf("File open error!");exit(0);for(j=0;j&lt200;j+)if(feof(fp)break;fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation); /*将数据保存在新结构变量中*/n+;if(n=1)printf(" #n");printf(" # 您还没有添加任何联系人! #n");printf(" #n");elsem=ftell(fp); /*用while)直接循环会是最后一条信息显示两次,此处解决此问题*/fseek(fp,-m,1); /*将文件指针移向开头*/printf(" #n");printf(" # 您总共有以下%d个联系人! #n",n-1);printf(" #n");printf("|-|n");printf("| *通讯录* |n");printf("|-|n");printf("| 姓名 号码 地址 生日 邮箱 关系 |n");printf("|-|n");for(j=0;j&ltn-1;j+)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);/*输出新结构中项目*/printf("|-|n");printf(" 按0退出查看!n");scanf("%d",&l);if(l=0)system("cls");if(fclose(fp)printf("can not cloce the file!");exit(0);/*修改通讯录函数*/void revamp(struct tongxunlu recode)FILE *fp,*fpz;struct tongxunlu s,p,m,z; /*定义两个新结构变量,s用来保存要查询的某个项目,p用来保存查询到需输出结构各项目*/int flag,a,l,choice,n,d=0,i,x=0; /*flag作为判断查询开始,a为判断查询方式,l为判断是否退出查询,choice作为判断删除项目,d记录原有文件数,i循环判断*/ if(fp=fopen("f:project.txt","a+")=NULL)printf("File open error!");exit(0);if(fpz=fopen("f:recode.txt","w+")=NULL)printf("File open error!");exit(0);printf(" 按0选择姓名查询修改,按1选择号码查询修改!n");printf(" 输入您的选择:");scanf("%d",&a);if(a=0) /*用姓名查询修改*/printf(" 输入要修改记录的姓名:");scanf("%s",&s.name);while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);/*将数据保存在新结构变量中*/x+;fseek(fp,0L,0); /*将文件指针定向开头*/for(i=0;i&ltx-1;i+)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);/*将数据保存在新结构变量中*/n=ftell(fp);if(strcmp(s.name,p.name)!=0)fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);if(strcmp(s.name,p.name)=0)flag=1;break;if(flag=1)printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);/*输出新结构中项目*/printf("|-|n");m=p;fseek(fp,n,0);while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);d+; fseek(fp,n,0); /*用while)直接循环会是最后一条信息保存两次,此处解决此问题*/for(i=0;i&ltd-1;i+)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);printf(" 是否要修改这条记录?n");printf(" 确认请按1,退出请按0!n");printf(" 输入您的选择:");scanf("%d",&l);system("cls");if(l=1)printf("|-|n");printf("| 修改项目 |n");printf("|-|n");printf("| choice1:修改姓名 |n");printf("| choice2:修改号码 |n");printf("| choice3:修改地址 |n");printf("| choice4:修改生日 |n");printf("| choice5:修改邮箱 |n");printf("| choice6:修改关系 |n");printf("|-|n");printf("输入您的选择:");scanf("%d",&choice);switch(choice)case 1:printf("%s ",m.name);printf("改成:");scanf("%s",&m.name);printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf("|-|n");fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf(" 修改成功!n");system("pause");system("cls");break;case 2:printf("%s ",m.phonenumber);printf("改成:");scanf("%s",&m.phonenumber);printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf("|-|n");fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf(" 修改成功!n");system("pause");system("cls");break;case 3:printf("%s ",m.address);printf("改成:");scanf("%s",&m.address);printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf("|-|n");fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf(" 修改成功!n");system("pause");system("cls");break;case 4:printf("%s ",m.birthday);printf("改成:");scanf("%s",&m.birthday);printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf("|-|n");fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf(" 修改成功!n");system("pause");system("cls");break;case 5:printf("%s ",m.mail);printf("改成:");scanf("%s",&m.mail);printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf("|-|n");fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf(" 修改成功!n");system("pause");system("cls");break;case 6:printf("%s ",m.relation);printf("改成:");scanf("%s",&m.relation);printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf("|-|n");fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",m.name,m.phonenumber,m.address,m.birthday,m.mail,m.relation);printf(" 修改成功!n");system("pause");system("cls");break;default:break;else if(l=0)system("cls");elseprintf(" 您的通讯录中没有此记录!n");printf(" 按0退出修改!n");scanf("%d",&l);if(l=0)system("cls");else if(a=1) /*用号码查询修改*/printf(" 输入要修改记录的号码:");scanf("%s",&s.phonenumber);while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);/*将数据保存在新结构变量中*/x+;fseek(fp,0L,0);for(i=0;i&ltx-1;i+)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);/*将数据保存在新结构变量中*/n=ftell(fp);if(strcmp(s.phonenumber,p.phonenumber)!=0)fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);if(strcmp(s.phonenumber,p.phonenumber)=0)flag=1;break;if(flag=1)printf("|-|n");printf("| %-7s%-12s%-22s%-10s%-20s%-3s |n",p.name,p.phonenumber,p.address,p.birthday,p.mail,p.relation);/*输出新结构中项目*/printf("|-|n");m=p;fseek(fp,n,0);while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);d+; fseek(fp,n,0); /*用while)直接循环会是最后一条信息保存两次,此处解决此问题*/for(i=0;i&ltd-1;i+)fscanf(fp,"%s%s%s%s%s%s",&p.name,&p.phonenumber,&p.address,&p.birthday,&p.mail,&p.relation);fprintf(fpz,"%-7s%-12s%-22s%-10s%-20s%-3sn",p.name,p.phonenumber,p.address,p.birthday

    注意事项

    本文(C语言通讯录管理系统源代码.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开