简单电话通讯录(动态顺序表)

来源:互联网 发布:c语言中的sleep函数 编辑:程序博客网 时间:2024/05/17 04:45
#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX 1000typedef 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;}
0 0
原创粉丝点击