C语言通讯录管理系统源代码.docx
《C语言通讯录管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C语言通讯录管理系统源代码.docx(46页珍藏版)》请在三一办公上搜索。
1、C语言通讯录管理系统源代码/*通讯录管理系统源代码*/#include<stdio.h>#include<stdlib.h>#include<string.h>struct 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(stru
2、ct 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);print
3、f(*: 如果不是第一次使用此系统,请按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:添加通讯记
4、录 |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(rec
5、ode);break;case 5:show(recode);break;case 0:break;default:printf(n);printf( 您的选择有误!n);printf(n);break;while(choice!=0&choice<6);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 ton
6、gxunlu 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( |*注意:地址不
7、要超过十个字*| n);for(i=0;i<200;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=
8、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<=200)system(cls); /*一次记录保存后清屏*/m=200-count;printf( 您已经输入了%d个记录,还可以输入%d个!n,count,m);elseprintf( 您的通讯录已满!n)
9、;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
10、*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);/*将数据保存在新结
11、构变量中*/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
12、( 您的通讯录中没有此记录!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=
13、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);sca
14、nf(%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<200;j+)if(feof(fp)break;fscan
15、f(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);
16、printf(|-|n);printf(| *通讯录* |n);printf(|-|n);printf(| 姓名 号码 地址 生日 邮箱 关系 |n);printf(|-|n);for(j=0;j<n-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);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 通讯录 管理 系统 源代码

链接地址:https://www.31ppt.com/p-3155347.html