C语言实现通讯管理系统设计分享!

本文实例为大家分享了C语言实现通讯管理系统的具体代码,供大家参考,具体内容如下

  #include<stdio.h>  #include<string.h>  #include<stdlib.h>    typedef struct{   char num[5];   char name[9];   char sex[9];   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);  void InsertNode(LinkList head,ListNode *p);  ListNode *ListFind(LinkList head);  void DelNode(LinkList head);  void printList(LinkList head);  void ChangeNode(LinkList head);    int main(void){   for(; ;){    switch(menu_select()){     case 1:      printf("**********************n");      printf("* 通 讯 录 链 表 建 立 *n");      printf("***********************n");      head=CreateList();      break;     case 2:      printf("*********************n");      printf("通 讯 录 信 息 的 插 入 *n");      printf("*********************n");      printf("请输入编号,姓名,性别,电话和地址 n");      printf("**********************************n");      p=(ListNode*)malloc(sizeof(ListNode));      scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);      InsertNode(head,p);      break;     case 3:      printf("***********************n");      printf("通 讯 录 的 查 询 *n");      p=ListFind(head);      if(p!=NULL){       printf("编号 姓名 性别 电话 地址 n");       printf("-------------------------- n");       printf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);  }    else       printf("没查到要查询的通讯者!n");       break;     case 4:      printf("***********************n");      printf("* 通 讯 者 信 息 的 修 改 *n");      printf("**********************n");      ChangeNode(head);      break;     case 5:      printf("************************n");      printf("通 讯 录 的 信 息 删 除 *n");      printf("*************************n");      DelNode(head);      break;     case 6:      printf("************************n");      printf("通 讯 录 链 表 的 输 出 *n");      printf("*************************n");      printList(head);      break;     case 0:      printf("t 再 见!n");      return 0;   }   }    }  int menu_select(){   int sn;   printf(" 通讯录管理系统n");   printf("========================n");   printf(" 1. 通讯录链表的建立n");   printf(" 2. 通讯录信息的插入n");   printf(" 3. 通讯录信息的查询n");   printf(" 4. 通讯录信息的修改n");   printf(" 5. 通讯录信息的删除n");   printf(" 6. 通讯录信息的输出n");   printf(" 0. 退出管理系统n");   printf(" 请 选 择 0—6:");   for(; ;){    scanf("%d",&sn);    if(sn<0 || sn>6)     printf("nt输入错误,重选0-6:");    else     break;  }   return sn;      }  LinkList CreateList(void){   LinkList head=(ListNode *)malloc(sizeof(ListNode));   ListNode *p,*rear;   char flag='y';   rear=head;   while(flag=='y'){    p=(ListNode *)malloc(sizeof(ListNode));    printf("请顺序输入编号,姓名,性别,电话和地址n");    printf("--------------------------------------n");    scanf("%s%s%s%s%s",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);    rear->next=p;    rear=p;    printf("继续输入吗? (y/n):");    getchar();    scanf("%c",&flag);  }     rear->next=NULL;   return head;    }   void InsertNode(LinkList head,ListNode *p){   ListNode *p1,*p2;   p1=head;   p2=p1->next;   while(p2!=NULL && strcmp(p2->data.num,p->data.num)<0)   {    p1=p2;    p2=p2->next;     }     p1->next=p;   p->next=p2;    }   ListNode *ListFind(LinkList head){   ListNode *p;    char num[5];   char name[9];    int xz=0;   printf("===========n");   printf("1. 按编号查询 n");   printf("2. 按姓名查询 n");   printf("===========n");   printf(" 请选择:");   p=head->next;   scanf("%d",&xz);   if(xz==1){    printf("请输入要查询者的编号:");    scanf("%s",num);    while(p && strcmp(p->data.num,num)<0)     p=p->next;    if(p==NULL||strcmp(p->data.num,num)>0)     p=NULL;    }   else    if(xz==2) {     printf("请输入要查询者的姓名:");     scanf("%s",name);     while(p && strcmp(p->data.name,name)!=0)      p=p->next;       }     return p;  }  void DelNode(LinkList head){   char jx;   ListNode *p,*q;   p=ListFind(head);   if(p==NULL){    printf("没有查到要删除的通讯者!n");    return;     }   printf("真的要删除该节点吗?(y/n):");   getchar();   scanf("%c",&jx);   if(jx=='y'||jx=='Y'){    q=head;    while(q!=NULL && q->next!=p)     q=q->next;    q->next=p->next;    free(p);    printf("通讯录已经删除!n");   }  }  void printList(LinkList head){   ListNode *p;   p=head->next;   printf("编号 姓名 性别 电话 地址n");   printf("--------------------------------------n");   while(p!=NULL)   {    printf("%s%s%s%s%sn",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);    printf("--------------------------------n");    p=p->next;   }  }   void ChangeNode(LinkList head){   ListNode *p;   p=ListFind(head);   if(p!=NULL){    printf("编号 姓名 性别 电话 地址n");    printf("--------------------------------------n");    scanf("%s%s%s%s%sn",p->data.num,p->data.name,p->data.sex,p->data.phone,p->data.addr);    printf("--------------------------------------n");    printf("输入该通讯录者正确的联系电话 通讯地址:n中间用空格号分隔n");    scanf("%s%s",p->data.phone,p->data.addr);    }   else    printf("没查到要查询的通讯录者!n");  }  

更多学习资料请关注专题《管理系统开发》。

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

ctvol管理联系方式QQ:251552304

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

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐