链表实现通讯录

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

struct txl

{

char n[10];

char name[10];

char sex [10];

char tele[12];

char address[100];

struct txl *next;

};

typedef struct txl TXL;

typedef struct txl * link;

enum result {exit_ok};

void menu_select()//主菜单

{

printf(" 欢迎进入通讯录管理系统\n");

printf("********************************\n");

printf(" 1.联系人添加\n");

printf(" 2.联系人删除\n");

printf(" 3.联系人修改\n");

printf(" 4.联系人查找\n");

printf(" 5.联系人总览\n");

printf(" 0.退出通讯录管理系统\n");

printf("********************************\n"); }

void is_malloc_ok(link *new_node)

{

if((*new_node) == NULL)

{

printf("Malloc error!");

exit(-1);

}

}

void create_link(link *head)

{

(*head) = (link)malloc(sizeof(TXL));

is_malloc_ok(head);

(*head)->next = NULL;

}

void create_new_node(link *new_node)

{

int i;

*new_node = (link)malloc(sizeof(TXL));

is_malloc_ok(new_node);

printf("请输入编号:\n");

scanf("%s",&(*new_node)->n);

printf("请输入姓名:\n");

scanf("%s",&(*new_node)->name);

printf("请输入性别:\n");

scanf("%s",&(*new_node)->sex);

printf("请输入联系电话:\n");

scanf("%s",&(*new_node)->tele);

printf("请输入家庭地址:\n");

scanf("%s",&(*new_node)->address);

printf("联系人添加成功!\n");

}

insert_new_node(link *new_node,link *head) {

(*new_node)->next = (*head)->next;

(*head)->next = (*new_node);

}

void add_new_node(link *head)

{

link new_node;

create_new_node(&new_node);

insert_new_node(&new_node,head);

}

void display(link *head)

{

int i = 1;

link p = NULL;

if((*head)->next == NULL)

{

printf("通讯录为空!\n");

return;

}

else

{

p = (*head)->next;

while(p != NULL)

{

printf("第%d个联系人的信息如下:\n",i);

printf("序号:%s\n",p->n);

printf("姓名:%s\n",p->name);

printf("性别:%s\n",p->sex);

printf("联系电话:%s\n",p->tele);

printf("家庭地址:%s\n\n\n",p->address);

p = p->next;

i++;

}

}

}

void find(link *head)

{

char n1[10],name1[10],tele1[12],address1[100];

int i;

link xz = (*head)->next;

printf("1.按编号查询\n");

printf("2.按姓名查询\n");

printf("3.按联系电话查询\n");

printf("请输入您想选择的查询方式:\n");

scanf("%d",&i);

if(i == 1)

{

printf("请输入您想查询的编号:\n");

scanf("%s",n1);

if(xz == NULL)

{

printf("通讯录为空!\n");

return;

}

while(xz !=NULL)

{

if(strcmp(xz->n,n1) == 0)

{

printf("您想查询的联系人的信息如下:\n");

printf("编号:%s\n",xz->n);

相关文档
最新文档