通讯录信息系统的管理
知识方面需要熟练掌握链表相关的算法知识即可完成相关系统
了解更多数据结构实验报告方面的内容
点击链接有惊喜在等你哦
#include#include #include #include typedef struct { //通讯录结点类型 char num[5]; //编号 char name[9]; //姓名 char sex[3]; //性别 char phone[13]; //电话 char addr[31]; //地址 } DataType; typedef struct node { //结点类型定义 DataType data; //结点数据域(注意存放的是上面结构体的数据类型) struct node *next; //结点指针域 } ListNode,*LinkList; LinkList head;//头指针 ListNode *p;//用作更新新的节点使用 //函数说明 int menu_select(); LinkList CreateList();//通讯录链表的建立 void InsertNode(LinkList head,ListNode *p);//插入 ListNode *ListFind(LinkList head);//查询联系人 void DelNode(LinkList head);//删除节点 void PrintList(LinkList head);//输出所有联系人 int main() { printf("******************************n"); printf("** 欢迎使用通讯录 **n"); printf("**--------------------------**n"); printf("** **n"); printf("** 0. 创建通讯录 **n"); printf("** 1. 添加联系人信息 **n"); printf("** 2. 查询联系人信息 **n"); printf("** 3. 删除联系人信息 **n"); printf("** 4. 输出联系人信息 **n"); printf("** 5. 退出 **n"); printf("** **n"); printf("******************************n"); int m=menu_select(); head=(LinkList)malloc(sizeof(ListNode)); while(m!=5) { if(m==0){ head=CreateList(); printf("创建成功n"); } if(m==1){ InsertNode(head, p); } if(m==2){ LinkList s=(LinkList)malloc(sizeof(ListNode)); printf("请输入联系人姓名:"); s=ListFind(head); if(s){ printf("联系人的基本信息:%s %s %s %s %sn",s->data.num,s->data.name,s->data.sex,s->data.phone,s->data.addr); } else{ printf("Not Foundn"); } } if(m==3){ DelNode(head); } if(m==4){ PrintList(head); } m=menu_select(); } printf("退出管理系统n"); return 0; } int menu_select() { int n; scanf("%d",&n); return n; } LinkList CreateList() { LinkList L=(LinkList)malloc(sizeof(ListNode)); L->next=NULL; return L; } void InsertNode(LinkList head,ListNode *p) { p=(LinkList)malloc(sizeof(ListNode)); while(head->next!=NULL) { head=head->next; } printf("请输入联系人的基本信息:"); scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr); p->next=head->next; head->next=p; } ListNode *ListFind(LinkList head) { char Name[10]; scanf("%s",Name); while(head->next) { head=head->next; if(strcmp(head->data.name,Name)==0) return head; } return NULL; } void DelNode(LinkList head) { char Name[10]; printf("请输入要删除的联系人姓名:"); scanf("%s",Name); while(head->next) { if(strcmp(head->next->data.name,Name)==0){ head->next=head->next->next; break; } head=head->next; } } void PrintList(LinkList head) { while(head->next){ head=head->next; printf("联系人的基本信息:%s %s %s %s %sn",head->data.num,head->data.name,head->data.sex,head->data.phone,head->data.addr); }



