#include <stdio.h>
#include<getch.h>
#include<string.h>
#include<stdlib.h>
char name[50][20]={};
char sex[50][10]={};
char tel[50][13]={};
void add(void);
void del(void);
void change(void);
void find(void);
void display(void);
int sum=0;
int main(int argc,const char* argv[])
{
for(;;)
{
puts("-----欢迎使用thy的通讯录-----");
puts("按1添加");
puts("按2删除");
puts("按3修改");
puts("按4查找");
puts("按5显示所有联系人");
puts("-----------------------------");
printf("请输入指令: \n");
switch(getch())
{
case'1':add();break;
case'2':del();break;
case'3':change();break;
case'4':find();break;
case'5':display();break;
case'6':return 0;
}
}
}
void add(void)
{
sum++;int i=0;
if(sum<=50)
{
while(name[i][0]!='\0')
{
i++;
}
printf("已有%d组号码\n",i);
printf("请输入名字\n");
scanf("%s",name[i]);
printf("请输入性别\n");
scanf(" %s",sex[i]);
printf("请输入号码\n");
scanf(" %s",tel[i]);
printf("添加成功\n");
}
else printf("记录已达上限\n");
}
void del(void)
{
char delname[20];
printf("请输入您想删除的联系人名字\n");
scanf("%s",delname);
for(int i=0;i<50;i++)
{
printf("*%d*",strcmp(name[i],delname));
if(strcmp(name[i],delname)==0)
{
name[i][0]='\0';
}
}
}
void change(void)
{
char changename[20];
printf("请输入您想更改的联系人的名字\n");
scanf("%s",changename);
for(int i=0;i<50;i++)
{
if(0==strcmp(name[i],changename))
{
printf("请输入新的名字\n");
scanf("%s",name[i]);
printf("请输入新的号码\n");
scanf("%s",tel[i]);
}
}
}
void find(void)
{
char findname[20];
printf("请输入您想查找的联系人信息");
scanf("%s",findname);
for(int i=0;i<sum;i++)
{
if(0==strcmp(name[i],findname))
{
printf("%s %s %s\n",name[i],sex[i],tel[i]);
}
}
}
void display(void)
{
system("clear");
int i=0;
for(i=0;i<50;i++)
{
if(name[i][0]!='\0')
{
printf("%s %s %s\n",name[i],sex[i],tel[i]);
}
}
while(getch()==10) return;
}
还有许多问题有待优化和改进