数据结构实验一------构建简单的手机通讯录(C语言)

1) 通讯录的基本信息:姓名、年龄和联系电话;

2) 具有新建、删除和查询功能等。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct friends_list{
    char name[50];
    char age[10];
    char phone[50];
};

struct friends_list friends[50];

typedef struct{
    struct friends_list friends[50];
    int length;
}SqList;

SqList L;

int create(SqList *L)
{
    (*L).length=0;
    printf("创建成功!\n\n");
    return 1;
}

int add(SqList *L)
{
    int i=1,a;
    while(i>0&&i<=50)
    {
        printf("姓名:");
        scanf("%s",(*L).friends[i-1].name);
        printf("\n年龄:");
        scanf("%s",(*L).friends[i-1].age);
        printf("\n电话:");
        scanf("%s",(*L).friends[i-1].phone);
        (*L).length++;
        printf("\n输入1继续添加\n输入其他退出\n");
        scanf("%d",&a);
        switch(a)
        {
            case 1:
                break;
            default:
                return 0;
        }
        i++;
    }
}

int insert(SqList *L)
{
    int i,j;
    printf("请输入要插入的位置:");
    scanf("%d",&i);
    if((i<1)||(i>(*L).length))
        return 0;
    for(j=(*L).length-1;j>=i-1;j--)
    {
        strcpy((*L).friends[j+1].name,(*L).friends[j].name);
        strcpy((*L).friends[j+1].age,(*L).friends[j].age);
        strcpy((*L).friends[j+1].phone,(*L).friends[j].phone);
    }
    printf("\n姓名:");
    scanf("%s",(*L).friends[i-1].name);
    printf("\n年龄:");
    scanf("%s",(*L).friends[i-1].age);
    printf("\n电话:");
    scanf("%s",(*L).friends[i-1].phone);
    ++(*L).length;
    return 1;
}

void search(SqList L)
{
    int i,flag=0;
    char a[50];
    printf("请输入要查找的联系人:");
    scanf("%s",a);
    for(i=0;i<=L.length-1;i++)
        if(strcmp(L.friends[i].name,a)==0)
        {
            flag=1;
            printf("\n姓名\t年龄\t电话\n");
            printf("%s\t%s\t%s\n\n",L.friends[i].name,L.friends[i].age,L.friends[i].phone);
        }
    if(flag==0)
        printf("没有找到该书!\n\n");
}

int Delete(SqList *L)
{
    int i,j;
    printf("请输入要删除的位置:");
    scanf("%d",&i);
    if((i<1)||(i>(*L).length))
        return 0;
    for(j=i;j<=(*L).length-1;j++)
        (*L).friends[j-1]=(*L).friends[j];
    --(*L).length;
    return 1;
}

void printf(SqList L)
{
    int i;
    printf("姓名\t年龄\t电话\n");
    for(i=0;i<=L.length-1;i++)
        printf("%s\t%s\t%s\n",L.friends[i].name,L.friends[i].age,L.friends[i].phone);
}

int main()
{
    int i;
    while(1)
    {
        printf("通讯录功能选项\n1.初始化\n2.添加联系人\n3.插入联系人\n4.查找联系人\n5.删除联系人\n6.输出联系人\n其他退出\n");
        scanf("%d",&i);
        switch(i)
        {
            case 1:
                create(&L);
                break;
            case 2:
                add(&L);
                break;
            case 3:
                insert(&L);
                break;
            case 4:
                search(L);
                break;
            case 5:
                Delete(&L);
                break;
            case 6:
                printf(L);
                break;
            default:
                exit(0);
         }
    }
    return 0;
}


发布了11 篇原创文章 · 获赞 26 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_37915248/article/details/72856567
今日推荐