首页 > 学院 > 开发设计 > 正文

linuxC通讯录

2019-11-08 03:16:24
字体:
来源:转载
供稿:网友
/*****************************************************copyright (C), Nanjing University of TecnologyFile name:list.cAuthor: Zhangchao  Version:0.1    Date: 2016-12-13 16:28Description:Funcion List: *****************************************************/#include <stdio.h>#include <stdlib.h>#include <string.h>struct list{    char name[30];    char sex[30];    char birth[30];    char phone[30];    char job[30];    char email[30];    struct list *next;};typedef struct list List;typedef struct list *Link;void creat_new_node(Link *new_node);void creat_link(Link *head)                         //创建链表{    creat_new_node(head);    (*head)->next = NULL;}void creat_new_node(Link *new_node)           //创建结点{    *new_node = (Link)malloc(sizeof(List));            //分配空间    if(*new_node == NULL)    {        PRintf("malloc error/n");        exit(-1);    }    }void creat_new_node(Link *new_node);void add_new_node(Link *head)                       //添加联系人功能{    Link new_node;                                 //创建新结点插入    creat_new_node(head);    printf("请输入姓名:");    scanf("%s",(new_node)->name);    printf("请输入性别:");    scanf("%s",(new_node)->sex);    printf("请输入生日:");    scanf("%s",(new_node)->birth);    printf("请输入电话:");    scanf("%s",(new_node)->phone);    printf("请输入职业:");    scanf("%s",(new_node)->job);    printf("请输入邮箱:");    scanf("%s",(new_node)->email);    printf("添加完成/n");    insert_node(head,new_node);    }insert_node(Link head,Link new_node)     //前插{   (new_node)->next = head->next;   head->next = new_node;}void menu_select()                                 //菜单显示{    printf("**************欢迎使用通讯录**************/n");    printf("************请选择要使用的功能************/n");    printf("            1.添加联系人                      /n");    printf("            2.查找联系人                      /n");    printf("            3.删除联系人                      /n");    printf("            4.显示通讯录                      /n");    printf("            5.清空通讯录                      /n");    printf("            6.退出通讯录                      /n");    printf("******************************************/n");    printf("******************************************/n");}void switch_func(Link *head)                  //功能选择{    int num;    scanf("%d",&num);    switch(num)    {       case 1:add_new_node(head);break;       case 2:find_node(head);break;       case 3:delete_node(head);break;    //   case 4:display_link(head);break;   //    case 5:release_link(head);break;   //    case 6:exit_link();break;       default:printf("功能不存在,请重新输入对应编号!");break;    }}find_node(Link head)                     //查找联系人功能{    char name[30];    Link p = head->next;    printf("请输入您要查找的联系人姓名:");    scanf("%s",name);    if(p->next == NULL)    {        printf("通讯录是空的");        return;    }    else    {        while(strcmp(p->name,name) != 0 && p->next != NULL)        {            p=p->next;        }        if(p->next == NULL)        {            if(strcmp(p->name,name) !=0)            {                printf("查无此人");            }            else            {               printf("%s/n",p->name);               printf("%s/n",p->sex);               printf("%s/n",p->birth);               printf("%s/n",p->phone);               printf("%s/n",p->job);               printf("%s/n",p->email);            }        }        else        {                           printf("%s/n",p->name);               printf("%s/n",p->sex);               printf("%s/n",p->birth);               printf("%s/n",p->phone);               printf("%s/n",p->job);               printf("%s/n",p->email);                     }    }}delete_node(Link head)                               //删除联系人{    char name[30];    Link p1,p2;    p1 = head->next;    p2 = head;    printf("请输入要删除的联系人姓名:");    scanf("%s",name);    if(head->next == NULL)    {        printf("通讯录为空");        return;    }    while(strcmp(p1->name,name) != 0 && p1->next !=NULL)    {       p2 = p1;       p1 = p1->next;    }    p2->next = p1->next;    free(p1);}int main(int argc, char **argv)                //主函数{    Link head = NULL;    Link new_node = NULL;    creat_link(&head);    while(1)    {        menu_select();        switch_func(&head);    }    return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表