#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#define N 100
int nsize=-1,choice;
struct birth
{
int year;
int mon;
int day;
};
struct People
{
char name[50];
char sex[30];
struct birth bir;
char tel[30];
char city[30];
char eip[30];
}Peo[N];
struct tm* tblock;
void Add();// 在通讯录的末尾,写入新的信息,并返回选单
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 main()
{
int  i,day,mon;
char  yes_no;
time_t timer;
timer=time(NULL);
tblock=localtime(&timer);
mon=tblock->tm_mon+1;
day=tblock->tm_mday;
do
{
system("cls");
printf("当前时间是:%s\n",asctime(tblock));
for(i=0;i<nsize;i++)
if(mon==Peo[i].&&day==Peo[i].bir.day )
{
printf("\n今天是%s的生日!!\n",Peo[i].name );
printf("*************************\n");
}
Menu();
printf("是否继续  Y  or  N?  \n");
do
{
scanf("%c",&yes_no);
}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='Y'||yes_no=='y');
}
void Menu()
{
printf("**************欢迎使用通讯录系统**************");
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("      请输入0~7    \n");
printf("请选择0-7的数字\n");
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 Add()
{
if(nsize==-1) nsize=0;
printf("请输入要添加的信息!\n");
printf("姓名:\n");                            //添加信息
scanf("%s",&Peo[nsize].name);
printf("性别:\n"
);
scanf("%s",&Peo[nsize].sex);
printf("生日:\n");
scanf("%d%d%d",&Peo[nsize].ar,&Peo[nsize].,&Peo[nsize].bir.day);
printf("电话:\n");
scanf("%s",&Peo[nsize].tel);
printf("城市:\n");
scanf("%s",&Peo[nsize].city);
printf("邮编:\n");
scanf("%s",&Peo[nsize].eip);
nsize++;
return;
}
void 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");
404页面网站源码
printf("    0.退出\n");
printf("      请输入0~6    \n");
scanf("%d",&choice);
printf("\n");
switch(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 NameFind()
{ char name[50];
int i;
printf("请输入要查的姓名:\n");
scanf("%s",&name);
for(i=0;i<nsize;i++)
{
if(strcmp(Peo[i].name,name)==0)
{
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
else
printf("无此信息!\n");
}
}
void SexFind()
{
int i;
char sex[30];
printf("请输入要查的性别:\n");
scanf("%s",&sex);
for(i=0;i<nsize;i++)
{
if(strcmp(Peo[i].sex,sex)==0)
{
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
else 
printf("无此信息!\n");
}
}
void BirthFind()
{
int year,mon,day;
int i;
printf("请输入要查的生日:\n");
scanf("%4d%2d%2d",&year,&mon,&day);
for(i=0;i<nsize;i++)
{
if(Peo[i].ar==year&&Peo[i].==mon||Peo[i].bir.day==day)
{
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo
[i].tel);
}
else
printf("无此信息!\n");
}
}
void TelFind()
{
char tel[30];
int i;
printf("请输入要查的电话:\n");
scanf("%s",&tel);
for(i=0;i<nsize;i++)
{
if(strcmp(Peo[i].tel,tel)==0)
{
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
else
printf("无此信息!\n");
}
}
void CityFind()
{
char city[30];
int i;
printf("请输入要查的城市:\n");
scanf("%s",&city);
for(i=0;i<nsize;i++)
{
if(strcmp(Peo[i].city,city)==0)
{
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
else
printf("无此信息!\n");
}
}
void EpiFind()
{
char eip[30];
int i;
printf("请输入要查的邮编:\n");
scanf("%s",&eip);
for(i=0;i<nsize;i++)
{
if(strcmp(Peo[i].eip,eip)==0)
{
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
else
printf("无此信息!\n");
}
}
//修改通讯录信息
void Alter()
{  int i,k=0;
char name[50];                                    //先查 后删除
if (nsize==-1)
{
printf("此通讯录为空!\n");
return;
}
printf("请输入要修改的姓名:\n");
scanf("%s",name);
for(i=0;i<nsize;i++)
{
if(strcmp(Peo[i].name,name)==0)
{
printf("已经查到,以下进行修改!");
k=1;
break;
}
if(k==0) 
{
printf("无此信息!\n");
return;
}
}
printf("姓名:\n");                            //添加信息
scanf("%s",Peo[i].name);
printf("性别:\n");
scanf("%s",Peo[i].sex);
printf("生日:\n");
scanf("%4d%2d%2d",&Peo[nsize].ar,&Peo[nsize].,&Peo[nsize].bir.day);
printf("电话:\n");
scanf("%s",Peo[i].tel);
printf("城市:\n");
scanf("%s",Peo[i].city);
printf("邮编:\n");
scanf("%s",Peo[i].eip);
printf("此信息已修改!修改如下:\n");
//显示修改的信息
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
//删除通讯录信息
void Delete()
{
char  name[50];                                    //
先查 后删除
int i;
if (nsize==-1)
{
printf("此通讯录为空!\n");
return;
}
printf("请输入要删除的姓名:\n");
scanf(" %s",&name);
for(i=0;i<nsize;i++)
{
if (strcmp(name, Peo[i].name)==0)                    //输出删除信息
{
if (nsize==0)
{
nsize=-1;
printf("记录已经删除,目前此通讯录为空!\n");
return;
}
for(;i<nsize-1;i++)
{
strcpy(Peo[i].name ,Peo[i+1].name);
Peo[i].ar =Peo[i+1].ar;
Peo[i].=Peo[i+1]. ;
Peo[i].bir.day =Peo[i+1].bir.day ;
strcpy(Peo[i].city ,Peo[i+1].city );
strcpy(Peo[i].eip ,Peo[i+1].eip);
strcpy(Peo[i].sex ,Peo[i+1].sex);
strcpy(Peo[i].tel ,Peo[i+1].tel);
}
nsize--;
break;
}
}
printf("此信息已删除!");
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
for(i=0;i<nsize;i++)
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
//显示所有记录
void List()
{
int i;
if(nsize==-1)
{
printf("此通讯录中无记录!\n");
return;
}
printf("姓名\t性别\t生日\t城市\t邮编\t电话\n");
for(i=0;i<nsize;i++)
printf("%s\t%s\t%d%d%d\t%s\t%s\t%s\n",Peo[i].name,Peo[i].sex,Peo[i].ar,Peo[i].,Peo[i].bir.day,Peo[i].city,Peo[i].eip,Peo[i].tel);
}
void Save()
{
int i;
FILE *fp;
fp=fopen("","a+");
for(i=0;i<nsize;i++)
{
fwrite(&Peo[i],sizeof(struct People),1,fp);
}
fclose(fp);
printf("事件保存成功!\n");
}
void Read()
{
int i=0;
FILE *fp;
fp=fopen("","a+");
while(!feof(fp))
{
fread(&Peo[i++],sizeof(struct People),1,fp);
}
nsize=i-1;
fclose(fp);
printf("事件读取成功!\n");
}