《通讯录管理系统源程序.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统源程序.docx(21页珍藏版)》请在三一办公上搜索。
1、通讯录管理系统源程序#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#define N 100int nsize=-1,choice;struct birthint year;int mon;int day;struct Peoplechar name50;char sex30;struct birth bir;char tel30;char city30;char eip30;PeoN;struct tm* tblock;void Add;/ 在通讯录的末尾,写入新的信息
2、,并返回选单void NameFind;/查找记录void Alter;/修改记录如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。void Delete;/删除某人的信息,如果未找到要删的人,提示通讯录中没有此人的信息,并返回选单。void List;/的功能是:显示通讯录中的所有记录。void SelectMenu;/查询选择菜单void SexFind;void BirthFind;void TelFind;void CityFind;void EpiFind;void Save;void Read;void Menu;int mainint i,day,mon;char
3、yes_no;time_t timer;timer=time(NULL);tblock=localtime(&timer);mon=tblock->tm_mon+1;day=tblock->tm_mday;dosystem(cls);printf(当前时间是:%sn,asctime(tblock);for(i=0;i<nsize;i+)if(mon=Peoi.bir.mon&day=Peoi.bir.day )printf(n今天是%s的生日!n,Peoi.name );printf(*n);Menu;printf(是否继续 Y or N? n);doscanf(%c,&yes_n
4、o);while(yes_no!=Y&yes_no!=y&yes_no!=N&yes_no!=n);while(yes_no=Y|yes_no=y);void Menuprintf(*欢迎使用通讯录系统*);printf(n);printf(n);printf( 1.插入信息n);printf( 2.查询记录n);printf( 3.修改记录n);printf( 4.删除记录!n);printf( 5.显示所有记录n);printf( 6.保存记录n);printf( 7.读取记录n);printf( 0.退出通讯录n);printf( 请输入07 n);printf(请选择0-7的数字n);
5、scanf(%d,&choice);printf(n);switch(choice)case 1:Add;break;case 2:SelectMenu;break;case 3:Alter;break;case 4:Delete;break;case 5:List;break;case 6:Save;break;case 7:Read;break;case 0:printf(*感谢您的使用*n);exit(0);break;default:printf(输入有误!请重新输入n);break;/添加通讯录信息void Addif(nsize=-1) nsize=0;printf(请输入要添加的
6、信息!n);printf(姓名:n); /添加信息scanf(%s,&Peonsize.name);printf(性别:n);scanf(%s,&Peonsize.sex);printf(生日:n);scanf(%d%d%d,&Peonsize.bir.year,&Peonsize.bir.mon,&Peonsize.bir.day);printf(电话:n);scanf(%s,&Peonsize.tel);printf(城市:n);scanf(%s,&Peonsize.city);printf(邮编:n);scanf(%s,&Peonsize.eip);nsize+;return;void
7、SelectMenu int choice=0;if(nsize=-1)printf(此通讯录为空!n);return;system(cls);printf(*请输入你要查询的类型*);printf(n);printf(n);printf( 1.按 姓名 查询n);printf( 2.按 性别 查询n);printf( 3.按 生日 查询n);printf( 4.按 电话 查询n);printf( 5.按 城市 查询n);printf( 6.按 邮编 查询n);printf( 0.退出n);printf( 请输入06 n);scanf(%d,&choice);printf(n);switch(
8、choice)case 1:NameFind;break;case 2:SexFind;break;case 3:BirthFind;break;case 4:TelFind;break;case 5:CityFind;break;case 6:EpiFind;break;case 0:exit(0);break;default:printf(输入有误!请重新输入n);break;/查找通讯录信息void NameFindchar name50;int i;printf(请输入要查找的姓名:n);scanf(%s,&name);for(i=0;i<nsize;i+)if(strcmp(Pe
9、oi.name,name)=0)printf(姓名t性别t生日t城市t邮编t电话n);printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);else printf(无此信息!n);void SexFindint i;char sex30;printf(请输入要查找的性别:n);scanf(%s,&sex);for(i=0;i<nsize;i+)if(strcmp(Peoi.sex,sex)=0)printf(姓
10、名t性别t生日t城市t邮编t电话n);printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);else printf(无此信息!n);void BirthFindint year,mon,day;int i;printf(请输入要查找的生日:n);scanf(%4d%2d%2d,&year,&mon,&day);for(i=0;i<nsize;i+)if(Peoi.bir.year=year&Peoi.bir.m
11、on=mon|Peoi.bir.day=day)printf(姓名t性别t生日t城市t邮编t电话n);printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);else printf(无此信息!n);void TelFindchar tel30;int i;printf(请输入要查找的电话:n);scanf(%s,&tel);for(i=0;i<nsize;i+)if(strcmp(Peoi.tel,tel)=0)
12、printf(姓名t性别t生日t城市t邮编t电话n);printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);else printf(无此信息!n);void CityFindchar city30;int i;printf(请输入要查找的城市:n);scanf(%s,&city);for(i=0;i<nsize;i+)if(strcmp(Peoi.city,city)=0)printf(姓名t性别t生日t城市t
13、邮编t电话n);printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);else printf(无此信息!n);void EpiFindchar eip30;int i;printf(请输入要查找的邮编:n);scanf(%s,&eip);for(i=0;i<nsize;i+)if(strcmp(Peoi.eip,eip)=0)printf(姓名t性别t生日t城市t邮编t电话n);printf(%st%st%d%
14、d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);elseprintf(无此信息!n);/修改通讯录信息void Alter int i,k=0;char name50; /先查找 后删除if (nsize=-1)printf(此通讯录为空!n);return;printf(请输入要修改的姓名:n);scanf(%s,name);for(i=0;i<nsize;i+)if(strcmp(Peoi.name,name)=0)printf(已
15、经查找到,以下进行修改!);k=1;break;if(k=0) printf(无此信息!n);return;printf(姓名:n); /添加信息scanf(%s,Peoi.name);printf(性别:n);scanf(%s,Peoi.sex);printf(生日:n);scanf(%4d%2d%2d,&Peonsize.bir.year,&Peonsize.bir.mon,&Peonsize.bir.day);printf(电话:n);scanf(%s,Peoi.tel);printf(城市:n);scanf(%s,Peoi.city);printf(邮编:n);scanf(%s,Peo
16、i.eip);printf(此信息已修改!修改如下:n);/显示修改的信息printf(姓名t性别t生日t城市t邮编t电话n);printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);/删除通讯录信息void Deletechar name50; /先查找 后删除int i;if (nsize=-1)printf(此通讯录为空!n);return;printf(请输入要删除的姓名:n);scanf( %s,&name
17、);for(i=0;i<nsize;i+)if (strcmp(name, Peoi.name)=0) /输出删除信息if (nsize=0) nsize=-1;printf(记录已经删除,目前此通讯录为空!n);return;for(;i<nsize-1;i+)strcpy(Peoi.name ,Peoi+1.name);Peoi.bir.year =Peoi+1.bir.year;Peoi.bir.mon=Peoi+1.bir.mon ;Peoi.bir.day =Peoi+1.bir.day ;strcpy(Peoi.city ,Peoi+1.city );strcpy(Peoi
18、.eip ,Peoi+1.eip);strcpy(Peoi.sex ,Peoi+1.sex);strcpy(Peoi.tel ,Peoi+1.tel);nsize-;break;printf(此信息已删除!);printf(姓名t性别t生日t城市t邮编t电话n);for(i=0;i<nsize;i+)printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel);/显示所有记录void Listint i;if(nsiz
19、e=-1)printf(此通讯录中无记录!n);return;printf(姓名t性别t生日t城市t邮编t电话n);for(i=0;i<nsize;i+)printf(%st%st%d%d%dt%st%st%sn,Peoi.name,Peoi.sex,Peoi.bir.year,Peoi.bir.mon,Peoi.bir.day,Peoi.city,Peoi.eip,Peoi.tel); void Saveint i;FILE *fp;fp=fopen(tongxunlu.txt,a+);for(i=0;i<nsize;i+)fwrite(&Peoi,sizeof(struct People),1,fp);fclose(fp);printf(事件保存成功!n);void Readint i=0;FILE *fp;fp=fopen(tongxunlu.txt,a+);while(!feof(fp)fread(&Peoi+,sizeof(struct People),1,fp);nsize=i-1;fclose(fp);printf(事件读取成功!n);