回复 2楼 wp231957
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include<process.h>
#include<conio.h>
struct person{
char name[10];
char phone[12];
char address[30];
char post[20];
int birth;
char type[10];
struct person *next;
};
//创建函数//
struct person *create()
{
struct person *head,*p,*p2;
FILE *fp;
int birth;
char name[10],address[30],post[20],type[10],phone[12];
head=NULL;
p2=NULL;
if((fp=fopen("address.txt","r+"))==NULL){
printf("打开失败...");
exit(0);
}
while(fscanf(fp,"%s%s%d%s%s%s",name,phone,&birth,type,post,address)>0){
p=(struct person*)malloc(sizeof(struct person));
strcpy(p->name,name);
strcpy(p->phone,phone);
strcpy(p->address,address);
strcpy(p->post,post);
p->birth=birth;
strcpy(p->type,type);
p->next=NULL;
if(head==NULL){
head=p;
p2=head;
}
else{
p2->next=p;
p2=p;
}
}
fclose(fp);
return head;
}
//名字查询//
struct person *nameinquiry(struct person *head,char *name)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k;
char phone[12],address[30],post[20],type[10];
p=head;
while(p!=NULL){
if(strstr(p->name,name)-(p->name)>=0){
printf("\n\n");
for(i=0;i<10;i++) printf(" ");
printf("该联系人的信息为:\n\n");
for(i=0;i<4;i++) printf(" ");
printf("姓名:%s\n",p->name);
for(i=0;i<4;i++) printf(" ");
printf("地址:%s\n",p->address);
for(i=0;i<4;i++) printf(" ");
printf("邮箱:%s\n",p->post);
for(i=0;i<4;i++) printf(" ");
printf("类别:%s\n",p->type);
for(i=0;i<4;i++) printf(" ");
printf("电话号码:%s\n",p->phone);
for(i=0;i<4;i++) printf(" ");
printf("出生日期:%d\n\n",p->birth);
if(p->next!=NULL) p=p->next;
else break;
}
else{
if(p->next==NULL) break;
p=p->next;
}
}
if(p==NULL) return NULL;
return head;
}
//手机号码查询//
struct person *phoneinquiry(struct person *head,char *phone)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k;
char name[10],address[30],post[20],type[10];
p=head;
for(i=0;i<4;i++) printf(" ");
for(j=0;j<4;j++) printf("----------");
printf("\n");
for(i=0;i<4;i++) printf(" ");
printf("该类别联系人的信息为:\n");
while(p!=NULL){
if(strstr(p->phone,phone)-(p->phone)>=0){
printf("\n");
for(i=0;i<5;i++) printf(" ");
printf("姓名:%s\n",p->name);
for(i=0;i<5;i++) printf(" ");
printf("类别:%s\n",p->type);
for(i=0;i<13;i++) printf(" ");
printf("出生日期:%d\n",p->birth);
for(i=0;i<13;i++) printf(" ");
printf("电话号码:%s\n",p->phone);
for(i=0;i<5;i++) printf(" ");
printf("邮箱:%s\n",p->post);
for(i=0;i<5;i++) printf(" ");
printf("地址:%s\n",p->address);
if(p->next!=NULL) p=p->next;
else break;
}
else{
if(p->next==NULL) break;
p=p->next;
}
}
if(p==NULL) return NULL;
return head;
}
//类别查询//
struct person *typeinquiry(struct person *head,char *type)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k=0;
char phone[12],address[30],post[20],name[10];
p=head;
for(i=0;i<13;i++) printf(" ");
for(j=0;j<5;j++) printf("------");
printf("\n");
for(i=0;i<5;i++) printf(" ");
printf("该类别联系人的信息为:\n");
while(p!=NULL){
if(strcmp(p->type,type)==0){
printf("\n");
for(i=0;i<19;i++) printf(" ");
printf("姓名:%s\n",p->name);
for(i=0;i<19;i++) printf(" ");
printf("类别:%s\n",p->type);
for(i=0;i<19;i++) printf(" ");
printf("地址:%s\n",p->address);
for(i=0;i<19;i++) printf(" ");
printf("邮箱:%s\n",p->post);
for(i=0;i<17;i++) printf(" ");
printf("出生日期:%d\n",p->birth);
for(i=0;i<17;i++) printf(" ");
printf("电话号码:%s\n",p->phone);
if(p->next!=NULL) p=p->next;
else break;
k++;
}
else p=p->next;
}
if(p==NULL&&k==0) return NULL;
return head;
}
//查询功能//
struct person *inquiry(struct person *head)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j,k;
char phone[12],address[30],post[20],type[10],name[10];
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录管理功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<13;i++) printf(" ");
printf("请输入您所需要执行的查询功能:\n\n");
for(i=0;i<15;i++) printf(" ");
printf("%d是根据姓名查询;\n\n",1);
for(i=0;i<15;i++) printf(" ");
printf("%d是根据分类查询;\n\n",2);
for(i=0;i<15;i++) printf(" ");
printf("%d是根据手机号码查询;\n\n",3);
for(i=0;i<15;i++) printf(" ");
printf("%d为列出全部联系人.\n\n",0);
for(i=0;i<8;i++) printf(" ");
printf("#请输入您所要执行的查询功能编号(按Enter键结束):");
scanf("%d",&k);
system("cls");
if(k<0||k>3){
printf("输入错误...");
return 0;
}
switch(k)
{
case 0: printf("\n\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录查询功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<15;i++) printf(" ");
for(j=0;j<10;j++) printf("-");
printf("以下是您通讯录的全部联系人信息");
for(j=0;j<10;j++) printf("-");
printf("\n\n\n");
for(i=0;i<5;i++) printf(" ");
p=head;
printf(" 姓名 手机号码 生日 类别 邮箱 地址\n\n");
for(i=0;i<5;i++) printf(" ");
while(p!=NULL){
printf("%5s %11s %d %5s %20s %s\n",p->name,p->phone,p->birth,p->type,p->post,p->address);
for(i=0;i<5;i++) printf(" ");
p=p->next;
}
break;
case 1: printf("\n");
for(i=0;i<5;i++) printf(" ");
for(j=0;j<5;j++) printf("******");
printf("\n");
for(j=0;j<5;j++) printf(" ");
printf("欢迎使用都巷通讯录名字查询系统");
printf("\n");
for(j=0;j<5;j++) printf(" ");
for(j=0;j<5;j++) printf("******");
printf("\n\n\n");
for(i=0;i<3;i++) printf(" ");
printf("请输入您需要查询人的姓名:");
scanf("%s",name);
head=nameinquiry(head,name);
if(head==NULL){
printf("\n");
for(i=0;i<28;i++) printf(" ");
printf("★该联系人信息不存在★\n");
}
break;
case 2: printf("\n");
for(i=0;i<5;i++) printf(" ");
for(j=0;j<5;j++) printf("******");
printf("\n");
for(j=0;j<5;j++) printf(" ");
printf("欢迎使用都巷通讯录分类查询系统");
printf("\n");
for(j=0;j<5;j++) printf(" ");
for(j=0;j<5;j++) printf("******");
printf("\n\n");
for(i=0;i<13;i++) printf(" ");
printf("请输入您需要查询人的类别:");
scanf("%s",type);
head=typeinquiry(head,type);
if(head==NULL){
printf("\n");
for(i=0;i<28;i++) printf(" ");
printf("★该联系人信息不存在★\n");
}
break;
case 3: printf("\n");
for(i=0;i<23;i++) printf(" ");
for(j=0;j<17;j++) printf("**");
printf("\n");
for(j=0;j<23;j++) printf(" ");
printf("欢迎使用都巷通讯录手机号码查询系统");
printf("\n");
for(j=0;j<23;j++) printf(" ");
for(j=0;j<17;j++) printf("**");
printf("\n\n");
for(i=0;i<4;i++) printf(" ");
printf("请输入您需要查询人的手机号码:");
scanf("%s",phone);
head=phoneinquiry(head,phone);
if(head==NULL){
printf("\n");
for(i=0;i<28;i++) printf(" ");
printf("★该联系人信息不存在★\n");
}
break;
}
return head;
}
//增加函数//
struct person *increase(struct person *head,struct person *p)
{
struct person *p1,*p2;
p1=head;
p2=p;
if(head==NULL){
head=p2;
head->next=NULL;
}
else {
while(p1->next!=NULL){
p1=p1->next;
}
p1->next=p2;
p2->next=NULL;
}
return head;
}
//删除函数//
struct person *de(struct person *head,char *name)
{
struct person *p1,*p2,*p;
FILE *fp;
int birth;
int i,j;
char phone[12],address[30],post[20],type[10];
if((fp=fopen("address.txt","w"))==NULL){
printf("打开失败");
exit(0);
}
if(head==NULL) return NULL;
if(head!=NULL&&strcmp(head->name,name)==0){
p2=head;
head=head->next;
}
else{
p1=head;p2=head->next;
while(p2!=NULL){
if(strcmp(name,p2->name)==0){
for(i=0;i<10;i++) printf(" ");
printf("姓名:%s\n",p2->name);
for(i=0;i<10;i++) printf(" ");
printf("手机号码:%s\n",p2->phone);
for(i=0;i<10;i++) printf(" ");
printf("出生日期:%d\n",p2->birth);
for(i=0;i<10;i++) printf(" ");
printf("类别:%s\n",p2->type);
for(i=0;i<10;i++) printf(" ");
printf("邮箱:%s\n",p2->post);
for(i=0;i<10;i++) printf(" ");
printf("地址:%s\n\n",p2->address);
p1->next=p2->next;
break;
}
else{
p1=p2;
p2=p1->next;
}
}
}
p=head;
while(p!=NULL){
fprintf(fp,"%s %s %d %s %s %s\n",p->name,p->phone,p->birth,p->type,p->post,p->address);
p=p->next;
}
for(i=0;i<22;i++) printf(" ");
printf("电话号码:%s\n",p2->phone);
for(i=0;i<22;i++) printf(" ");
printf("出生日期:%d\n",p2->birth);
for(i=0;i<22;i++) printf(" ");
printf("类别:%s\n",p2->type);
for(i=0;i<22;i++) printf(" ");
printf("邮箱:%s\n",p2->post);
for(i=0;i<22;i++) printf(" ");
printf("地址:%s\n\n",p2->address);
free(p2);
fclose(fp);
return head;
}
//修改函数//
struct person *change(struct person *head,char *name)
{
struct person *p1,*p2,*p,*q,*s;
FILE *fp;
int birth;
int i,j,c;
char phone[12],address[30],post[20],type[10];
if((fp=fopen("address.txt","w"))==NULL){
printf("打开失败");
exit(0);
}
s=head;
while(strcmp(s->name,name)!=0){
s=s->next;
}
for(i=0;i<10;i++) printf(" ");
printf("姓名:%s\n",s->name);
for(i=0;i<10;i++) printf(" ");
printf("手机号码:%s\n",s->phone);
for(i=0;i<10;i++) printf(" ");
printf("出生日期:%d\n",s->birth);
for(i=0;i<10;i++) printf(" ");
printf("类别:%s\n",s->type);
for(i=0;i<10;i++) printf(" ");
printf("邮箱:%s\n",s->post);
for(i=0;i<10;i++) printf(" ");
printf("地址:%s\n\n",s->address);
for(i=0;i<25;i++) printf(" ");
printf("如果继续修改,请按%d;",1);
printf("返回主菜单,请按%d.\n",0);
for(i=0;i<10;i++) printf(" ");
printf("请输入您的选择:");
scanf("%d",&c);
if(c==0) return 0;
if(c==1) system("cls");
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录修改功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
if(head==NULL) return NULL;
if(head!=NULL&&strcmp(head->name,name)==0){
for(i=0;i<21;i++) printf(" ");
printf("◎请输入您所要修改的联系人的全部信息:\n\n");
for(i=0;i<25;i++) printf(" ");
printf("姓名:");
scanf("%s",name);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("电话号码:");
scanf("%s",phone);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("出生日期:");
scanf("%d",&birth);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("类别:");
scanf("%s",type);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("邮箱:");
scanf("%s",post);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("地址:");
scanf("%s",address);
system("cls");
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录修改功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
for(i=0;i<24;i++) printf(" ");
printf("您所要修改人的所有信息为:\n");
printf("\n\n");
for(i=0;i<22;i++) printf(" ");
printf("姓名:%s\n",name);
for(i=0;i<22;i++)
printf(" ");
printf("电话号码:%s\n",phone);
for(i=0;i<22;i++) printf(" ");
printf("生日:%d\n",birth);
for(i=0;i<22;i++) printf(" ");
printf("类别:%s\n",type);
for(i=0;i<22;i++) printf(" ");
printf("邮箱:%s\n",post);
for(i=0;i<22;i++) printf(" ");
printf("地址:%s\n",address);
p=(struct person*)malloc(sizeof(struct person));
p=head;
strcpy(p->name,name);
strcpy(p->phone,phone);
strcpy(p->address,address);
strcpy(p->post,post);
p->birth=birth;
strcpy(p->type,type);
}
else{
for(i=0;i<15;i++) printf(" ");
printf("◎请输入您所要修改的联系人的全部信息:\n\n");
for(i=0;i<25;i++) printf(" ");
printf("姓名:");
scanf("%s",name);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("电话号码:");
scanf("%s",phone);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("出生日期:");
scanf("%d",&birth);
printf("\n");
for(i=0;i<25;i++) printf(" ");
printf("类别:");
scanf("%s",type);
printf("\n");
for(i=0;i<21;i++) printf(" ");
printf("邮箱:");
scanf("%s",post);
printf("\n");
for(i=0;i<21;i++) printf(" ");
printf("地址:");
scanf("%s",address);
system("cls");
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录修改功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
for(i=0;i<20;i++) printf(" ");
printf("您所要修改人的所有信息为:\n");
printf("\n\n");
for(i=0;i<22;i++) printf(" ");
printf("姓名:%s\n",name);
for(i=0;i<22;i++) printf(" ");
printf("电话号码:%s\n",phone);
for(i=0;i<22;i++) printf(" ");
printf("出生日期:%d\n",birth);
for(i=0;i<22;i++) printf(" ");
printf("类别:%s\n",type);
for(i=0;i<22;i++) printf(" ");
printf("邮箱:%s\n",post);
for(i=0;i<22;i++) printf(" ");
printf("地址:%s\n",address);
p1=head;p2=head->next;
while(strcmp(p2->name,name)!=0){
p1=p2;
p2=p1->next;
}
strcpy(p2->name,name);
strcpy(p2->phone,phone);
strcpy(p2->address,address);
strcpy(p2->post,post);
p2->birth=birth;
strcpy(p2->type,type);
}
q=head;
while(q!=NULL){
fprintf(fp,"%s %s %d %s %s %s\n",q->name,q->phone,q->birth,q->type,q->post,q->address);
q=q->next;
}
return head;
}
//管理系统//
struct person *manage(struct person *head)
{
int CH,i,j,c;
int birth;
char name[10],address[30],post[20],type[10],phone[12];
struct person *p;
FILE *fp;
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录管理功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
for(i=0;i<26;i++) printf(" ");
printf("请输入您所需要执行的管理功能:\n\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是增加联系人;\n\n",1);
for(i=0;i<30;i++) printf(" ");
printf("%d是删除联系人;\n\n",2);
for(i=0;i<30;i++) printf(" ");
printf("%d是修改联系人.\n\n",3);
for(i=0;i<22;i++) printf(" ");
printf("#请输入您的选择(按Enter键结束):");
scanf("%d",&CH);
system("cls");
if(CH<1||CH>3){
printf("输入错误....");
return 0;
}
switch(CH)
{
case 1:printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录增加功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<10;i++) printf(" ");
printf("请输入您所要增加的全部信息(出生日期为%d位数字按Enter键结束):\n\n",8);
for(i=0;i<22;i++) printf(" ");
printf("姓名:");
scanf("%s",name);
printf("\n");
for(i=0;i<22;i++) printf(" ");
printf("电话号码:");
scanf("%s",phone);
printf("\n");
for(i=0;i<22;i++) printf(" ");
printf("出生日期:");
scanf("%d",&birth);
printf("\n");
for(i=0;i<22;i++) printf(" ");
printf("类别:");
scanf("%s",type);
printf("\n");
for(i=0;i<22;i++) printf(" ");
printf("邮箱:");
scanf("%s",post);
printf("\n");
for(i=0;i<22;i++) printf(" ");
printf("地址:");
scanf("%s",address);
p=(struct person*)malloc(sizeof(struct person));
strcpy(p->name,name);
strcpy(p->phone,phone);
strcpy(p->address,address);
strcpy(p->post,post);
p->birth=birth;
strcpy(p->type,type);
if((fp=fopen("address.txt","a"))==NULL){
printf("打开失败");
exit(0);
}
fprintf(fp,"%s %s %d %s %s %s\n",name,phone,birth,type,post,address);
head=increase(head,p);
fclose(fp);
break;
case 2:printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录删除功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<20;i++) printf(" ");
printf("请输入您所要删除人的名字(按Enter键结束):");
scanf("%s",name);
system("cls");
printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录删除功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n\n");
for(i=0;i<5;i++) printf(" ");
printf("------删除成功------\n\n");
for(i=0;i<20;i++)
printf(" ");
printf("您所要删除人的所有信息为:");
printf("\n\n");
for(i=0;i<22;i++)
printf(" ");
printf("姓名:%s\n",name);
head=de(head,name);
for(i=0;i<15;i++) printf(" ");
printf("功能执行成功,请按任意键返回主菜单:");
getch();
break;
case 3:printf("\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n");
for(i=0;i<27;i++) printf(" ");
printf("欢迎使用都巷通讯录修改功能\n");
for(i=0;i<27;i++) printf(" ");
for(j=0;j<26;j++) printf("*");
printf("\n\n");
for(i=0;i<18;i++) printf(" ");
printf("请输入您所要修改人的名字(按Enter键结束):");
scanf("%s",name);
printf("\n\n\n");
for(i=0;i<24;i++) printf(" ");
printf("******以下是你将要修改人的全部信息******\n\n");
head=change(head,name);
break;
}
return head;
}
//统计功能//
struct person *compute(struct person *head)
{
struct person *p1,*p2,*p,*q;
FILE *fp;
int birth;
int i,j,x,y,z=1,count=0,n=0,k;
char *t[10];
char phone[12],address[30],post[20],type[10],name[10];
printf("\n");
for(i=0;i<9;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<9;i++) printf(" ");
printf("欢迎使用都巷通讯录统计功能\n");
for(i=0;i<9;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<15;i++) printf(" ");
printf("##请输入一个起始日期和一个结束日期##\n ◇统计该日期范围内的生日人数\n\n");
for(j=0;j<10;j++) printf(" ");
printf("☆请输入起始日期:");
scanf("%d",&x);
if(x/10000<1900||x/10000>2015||x%100<1||x%100>31||x/100%100<1||x/100%100>12){
printf("\n 输入错误,");
return NULL;
}
printf("\n");
for(j=0;j<10;j++) printf(" ");
printf("★请输入结束日期:");
scanf("%d",&y);
if(y/10000<1900||y/10000>2015||y%100<1||y%100>31||y/100%100<1||y/100%100>12){
printf("\n 输入错误,");
return NULL;
}
system("cls");
printf("\n");
for(i=0;i<9;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n");
for(i=0;i<9;i++) printf(" ");
printf("欢迎使用都巷通讯录统计功能\n");
for(i=0;i<9;i++) printf(" ");
for(j=0;j<13;j++) printf("**");
printf("\n\n");
for(i=0;i<9;i++) printf(" ");
printf("★★★下面是统计结果★★★");
printf("\n\n");
for(i=0;i<15;i++) printf(" ");
p=head;
while(p!=NULL){
if(p->birth>=x&&p->birth<=y) count++;
p=p->next;
}
printf("%d.该日期范围内共有%d人过生日;\n",1,count);
for(i=0;i<15;i++) printf(" ");
printf("%d.以下为各类别联系人过生日情况:\n",2);
strcpy(t[0],head->type);
t[0]=(char*)malloc(sizeof(char)*(strlen(head->type)+1));
p1=head;p2=head->next;
while(p2!=NULL){
for(i=0;i<z;i++){
if(strcmp(t[z],p2->type)==0) break;
}
if(i==z){
t[z]=(char*)malloc(sizeof(char)*(strlen(p2->type)+1));
strcpy(t[z],p2->type);
z++;
}
p2=p2->next;
}
for(k=0;k<z;k++){
q=head;n=0;
while(q!=NULL){
if(q->birth<=y&&q->birth>=x&&strcmp(q->type,t[k])==0) n++;
q=q->next;
}
for(j=0;j<20;j++) printf(" ");
printf("%s类中过生日的有%d人;\n",t[k],n);
}
return head;
}
//主程序//
main()
{
int ch,a;
int birth;
int i,j;
struct person *p,*head;
char name[10],address[30],post[20],type[10],phone[12];
while(1){
head=create();
printf("\n");
for(i=0;i<29;i++)
printf(" ");
for(j=0;j<22;j++)
printf("*");
printf("\n");
for(i=0;i<29;i++)
printf(" ");
printf("欢迎使用都巷通讯录系统\n");
for(i=0;i<29;i++)
printf(" ");
for(j=0;j<22;j++)
printf("*");
printf("\n\n");
for(i=0;i<4;i++) printf(" ");
printf("-----请输入您所需要执行的功能(按Enter键结束)-----\n");
printf("\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是通讯录管理功能;\n",1);
printf("\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是通讯录查询功能;\n",2);
printf("\n");
for(i=0;i<30;i++) printf(" ");
printf("%d是通讯录统计功能.\n",3);
printf("\n\n");
for(i=0;i<20;i++) printf(" ");
printf("#请输入您的选择:");
scanf("%d",&ch);
system("cls");
if(ch<1||ch>3){
printf("输入有误...");
return 0;
}
switch(ch)
{
case 1:head=manage(head);
if(head==NULL){
system("cls");
break;
}
printf("\n\n");
for(i=0;i<7;i++) printf(" ");
printf("∽∽∽");
printf("功能执行成功∽∽∽\n\n");
for(i=0;i<5;i++) printf(" ");
printf("★请输入任意键返回主菜单:");
getch();
system("cls");
break;
case 2:head=inquiry(head);
printf("\n\n");
for(i=0;i<7;i++) printf(" ");
printf("∽∽∽");
printf("功能执行成功∽∽∽\n\n");
for(i=0;i<5;i++) printf(" ");
printf("★请输入任意键返回主菜单:");
getch();
system("cls");
break;
case 3:head=compute(head);
if(head==NULL){
printf("请输入任意键返回主菜单:");
getch();
system("cls");
break;
}
printf("\n\n");
for(i=0;i<20;i++) printf(" ");
printf("∽∽∽");
printf("功能执行成功∽∽∽\n\n");
for(i=0;i<10;i++) printf(" ");
printf("※请输入任意键返回主菜单:");
getch();
system("cls");
break;
}
}
return 0;
}