c/c++语言开发共享c语言 链表 写通讯录

/* 实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系

     /*   实现一个通讯录;  通讯录可以用来存储1000个人的信息,每个人的信息包括:  姓名、性别、年龄、电话、住址     提供方法:  1.  添加联系人信息  2.  删除指定联系人信息  3.  查找指定联系人信息  4.  修改指定联系人信息  5.  显示所有联系人信息  6.  清空所有联系人  */  #include<stdio.h>  #include"phone_book.h"  #include<string.h>  #include<assert.h>     typedef struct phone_book  {      char name[10];      char sex[5];      char addr[20];      int year;      int phone_num;      struct phone_book *pnext;  }book,*pbook;     pbook add_linkman(pbook head)  {      int i = 0;      char name[10];      char sex[5];      char addr[20];      int year;      long phone_num;      pbook pbase = head;             assert(head);         flag:      printf("你要添加多少个联系人:");      scanf("%d",&i);      if (i <= 0)      {          printf("输入数量错误!n");          goto flag;      }      if (head->pnext == null)      {          while (i--)          {              pbook pnew = (pbook)malloc(sizeof(book));              assert(pnew);              printf("请输入联系人信息:(姓名、性别、地址、年龄、电话号码)n");              scanf("%s", name);              scanf("%s", sex);              scanf("%s", addr);              strcpy(pnew->name, name);              strcpy(pnew->sex, sex);              strcpy(pnew->addr, addr);              scanf("%d", &pnew->year);              scanf("%d", &pnew->phone_num);              pbase->pnext = pnew;              pnew->pnext = null;              pbase = pnew;          }      }      else      {          while (pbase->pnext != null)          {              pbase = pbase->pnext;          }          while (i--)          {              pbook pnew = (pbook)malloc(sizeof(book));              assert(pnew);              printf("请输入联系人信息:(姓名、性别、地址、年龄、电话号码)n");              scanf("%s", name);              scanf("%s", sex);              scanf("%s", addr);              strcpy(pnew->name, name);              strcpy(pnew->sex, sex);              strcpy(pnew->addr, addr);              scanf("%d", &pnew->year);              scanf("%d", &pnew->phone_num);              pbase->pnext = pnew;              pnew->pnext = null;          }         }      return head;  }     pbook remove_linkman(pbook head)  {      pbook link_man = head;      char name[10];      if (!head)      {          printf("没有联系人,不能删除!n");          return null;      }      printf("请问你要删除哪位联系人?  ");      scanf("%s",name);      while (link_man->pnext!=null)      {          if (strcmp(link_man->pnext->name, name) == 0)          {                             if (link_man->pnext->pnext == null)              {                  free(link_man->pnext);                  link_man->pnext = null;                  printf("删除完成!n");                                 }              else              {                  pbook ptmp = null;                  ptmp = link_man->pnext;                  link_man->pnext = link_man->pnext->pnext;                  free(ptmp);                  printf("删除完成!n");                                 }              return head;          }          else          {              link_man = link_man->pnext;          }      }      printf("没有找到该联系人!n");      return head;  }     void traver_linkman(pbook head)  {      pbook link_man = head;      if (head->pnext == null)      {          printf("电话簿为空!n");      }      while (link_man->pnext!=null)      {          printf("%sn", link_man->pnext->name);          printf("%sn", link_man->pnext->sex);          printf("%sn", link_man->pnext->addr);          printf("%dn", link_man->pnext->year);          printf("%ldn", link_man->pnext->phone_num);          printf("***********************************n");          link_man = link_man->pnext;      }  }     void empty_linkman(pbook head)  {      pbook ptmp = null;      pbook link_man = head;      if (head->pnext == null)      {          printf("电话簿为空!不用清空哦!(ˇ0ˇ) n");      }      while (link_man->pnext != null)      {          if (link_man->pnext->pnext == null)          {              free(link_man->pnext);              link_man->pnext = null;          }          else          {              ptmp = link_man->pnext;              link_man->pnext = link_man->pnext->pnext;              free(ptmp);                         }      }      printf("清空完成!n");  }     pbook amend_linkman(pbook head)  {       char name[10];      char sex[5];      char addr[20];      pbook link_man = head;         if (!head)      {          printf("没有联系人,不能修改!n");          return null;      }      printf("请问你要修改哪位联系人?  ");      scanf("%s", name);      while (link_man->pnext != null)      {          if (strcmp(link_man->pnext->name, name) == 0)          {              printf("请输入联系人信息:(姓名、性别、地址、年龄、电话号码)n");              scanf("%s", name);              scanf("%s", sex);              scanf("%s", addr);              strcpy(link_man->pnext->name, name);              strcpy(link_man->pnext->sex, sex);              strcpy(link_man->pnext->addr, addr);              scanf("%d", &link_man->pnext->year);              scanf("%d", &link_man->pnext->phone_num);              return head;          }          else              link_man = link_man->pnext;         }      return head;  }     void search_linkman(pbook head)  {      char name[10];      pbook link_man = head;             if (!head)      {          printf("没有联系人,查找失败!n");          return null;      }      printf("请问你要查找哪位联系人?  ");      scanf("%s", name);      while (link_man->pnext != null)      {          if (strcmp(link_man->pnext->name, name) == 0)          {              printf("%sn", link_man->pnext->name);              printf("%sn", link_man->pnext->sex);              printf("%sn", link_man->pnext->addr);              printf("%dn", link_man->pnext->year);              printf("%ldn", link_man->pnext->phone_num);              printf("***********************************n");              return 0;          }          else              link_man = link_man->pnext;         }      printf("没有找到!n");  }  void start(pbook *phead)  {      int i = -1;      assert(phead);      while (1)      {          printf("欢迎使用电话薄系统!选择您的操作:nn");          printf("*********************************************n"                 "*1.添加联系人信息     2.删除指定联系人信息  *n"                 "*3.查找指定联系人信息 4.修改指定联系人信息  *n"                 "*5.显示所有联系人信息 6.清空所有联系人      *n"                 "*0.结束系统! ————中情局专用————    *n"                 "*********************************************n");          scanf("%d",&i);          switch (i)          {          case 0:              printf("*****感谢使用本系统!*****n");              exit(0);          case 1:              *phead=add_linkman( phead);              break;          case 2:              *phead = remove_linkman(phead);              break;          case 3:               search_linkman(phead);              break;          case 4:              *phead = amend_linkman(phead);              break;          case 5:              traver_linkman(phead);              break;          case 6:              empty_linkman( phead);              break;          default:              printf("选择有误!请重新选择n");              break;          }            }  }  #include<stdio.h>  #include"phone_book.h"     int main()  {       pbook phead = null;      start(&phead);      return 0;  }  

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/606647.html

(0)
上一篇 2021年5月14日
下一篇 2021年5月14日

精彩推荐