#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 1000
typedef struct Person
{
char name[10];
char sex[2];
int age;
char number[20];
char address[20];
}Person;
typedef struct PhoneBook
{
Person con[MAX];
int count;
}PhoneBook;
enum Choose
{
EXIT,
ADD,
DEL,
SEARCH,
MODIFY,
SHOW,
EMPTY,
SORT,
};
void InitPhoneBook(PhoneBook *p)
{
p->count=0;
}
void AddPhoneBook(PhoneBook *p)
{
if(p->count>=MAX)
{
printf("No place!\n");
return;
}
printf("input name->:\n");
scanf("%s",p->con[p->count].name);
printf("input sex->:\n");
scanf("%s",p->con[p->count].sex);
printf("input age->:\n");
scanf("%d",&p->con[p->count].age);
printf("input number->:\n");
scanf("%s",p->con[p->count].number);
printf("input address->:\n");
scanf("%s",p->con[p->count].address);
p->count++;
printf("Successful\n");
}
static int find(PhoneBook *p,const char *find_name)
{
int i=0;
for(i=0;i<p->count;i++)
{
if(strcmp(p->con[i].name,find_name)==0)
{
return i;
}
}
return -1;
}
void DelPhoneBook(PhoneBook *p)
{
char name[20];
int ret,i;
printf("input deleted name->:");
scanf("%s",name);
ret=find(p,name);
if(ret==-1)
{
printf("No exit!\n");
return ;
}
else
{
for(i=ret;i<p->count-1;i++)
{
p->con[i]=p->con[i+1];
}
p->count--;
printf("Successful!\n");
}
}
void SearchPhoneBook(PhoneBook *p)
{
char name[20];
int ret;
printf("input searched name->:");
scanf("%s",name);
ret=find(p,name);
if(ret==-1)
{
printf("No exit!\n");
return ;
}
else
{
printf("%10s %4s %4d %10s %10s\n",
p->con[ret].name,
p->con[ret].sex,
p->con[ret].age,
p->con[ret].number,
p->con[ret].address);
printf("Successful!\n");
}
}
void ModifyPhoneBook(PhoneBook *p)
{
char name[20];
int ret;
printf("input modified name->:");
scanf("%s",name);
ret=find(p,name);
if(ret==-1)
{
printf("No exit!\n");
return ;
}
else
{
printf("input name->:\n");
scanf("%s",p->con[ret].name);
printf("input sex->:\n");
scanf("%s",p->con[ret].sex);
printf("input age->:\n");
scanf("%d",&p->con[ret].age);
printf("input number->:\n");
scanf("%s",p->con[ret].number);
printf("input address->:\n");
scanf("%s",p->con[ret].address);
}
printf("Successful!\n");
}
void ShowPhoneBook(PhoneBook *p)
{
int i;
printf("\t%10s %4s %4s %10s %10s\n",
"name","sex","age","number","address");
for(i=0;i<p->count;i++)
{
printf("\t%10s %4s %4d %10s %10s\n",
p->con[i].name,
p->con[i].sex,
p->con[i].age,
p->con[i].number,
p->con[i].address);
}
}
void EmptyPhoneBook(PhoneBook *p)
{
p->count=0;
}
void SortPhoneBook(PhoneBook *p)
{
Person tmp;
int i,j;
for(i=0;i<p->count;i++)
{
for(j=0;j<p->count-i;j++)
{
if(strcmp(p->con[j].name,p->con[j+1].name)>0)
{
tmp=p->con[j];
p->con[j]=p->con[j+1];
p->con[j+1]=tmp;
}
}
}
}
void MeunChoose()
{
printf("\t**************************\n");
printf("\t*******1.添加联系人*******\n");
printf("\t*****2.删除指定联系人*****\n");
printf("\t*****3.查找指定联系人*****\n");
printf("\t*****4.修改指定联系人*****\n");
printf("\t*****5.显示所有联系人*****\n");
printf("\t*****6.清空所有联系人*****\n");
printf("\t**7.以名字排序所有联系人**\n");
printf("\t*******0.退出程序*********\n");
printf("\t**************************\n");
}
int main()
{
int a=1;
PhoneBook phone;
InitPhoneBook(&phone);
while(a)
{
MeunChoose();
printf("Choose Number->:");
scanf("%d",&a);
switch(a)
{
case ADD:
AddPhoneBook(&phone);
break;
case DEL:
DelPhoneBook(&phone);
break;
case SEARCH:
SearchPhoneBook(&phone);
break;
case MODIFY:
ModifyPhoneBook(&phone);
break;
case SHOW:
ShowPhoneBook(&phone);
break;
case EMPTY:
EmptyPhoneBook(&phone);
break;
case SORT:
SortPhoneBook(&phone);
break;
case EXIT:
exit(-1);
break;
}
}
return 0;
}
简单电话通讯录(动态顺序表)
最新推荐文章于 2024-04-13 11:41:54 发布