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

  

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

        # include   # include   # include      typedef struct {   char num [5];   char[9]名称;   char性[9];   char电话[13];   char addr [31];   }数据类型;   typedef结构节点{   数据类型数据;   结构节点*下;   * LinkList} ListNode;      LinkList头;   ListNode * p;      int menu_select ();   LinkList CreateList(无效);   空白InsertNode (LinkList头,ListNode * p);   ListNode * ListFind (LinkList头);   空白DelNode (LinkList头);   空白printList (LinkList头);   空白ChangeNode (LinkList头);      int主要(空白){   (;){   开关(menu_select ()) {   案例1:   printf (" * * * * * * * * * * * * * * * * * * * * * * \ n”);   printf(" *通讯录链表建立* \ n”);   printf (" * * * * * * * * * * * * * * * * * * * * * * * \ n”);   头=CreateList ();   打破;   案例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(头,p);   打破;   案例3:   printf (" * * * * * * * * * * * * * * * * * * * * * * * \ n”);   printf("通讯录的查询* \ n”);   p=ListFind(头);   如果(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);   其他}   printf("没查到要查询的通讯者! \ n”);   打破;   案例4:   printf (" * * * * * * * * * * * * * * * * * * * * * * * \ n”);   printf(" *通讯者信息的修改* \ n”);   printf (" * * * * * * * * * * * * * * * * * * * * * * \ n”);   ChangeNode(头);   打破;   例5:   printf (" * * * * * * * * * * * * * * * * * * * * * * * * \ n”);   printf("通讯录的信息删除* \ n”);   printf (" * * * * * * * * * * * * * * * * * * * * * * * * * \ n”);   DelNode(头);   打破;   例6:   printf (" * * * * * * * * * * * * * * * * * * * * * * * * \ n”);   printf("通讯录链表的输出* \ n”);   printf (" * * * * * * * * * * * * * * * * * * * * * * * * * \ n”);   printList(头);   打破;   例0:   printf (" \ t再见! \ n”);   返回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:”);   (;){   scanf (“% d”,和sn);   如果(sn<0 | | sn> 6)   printf (" \ n \ t输入错误,重选- 6:”);   其他的   打破;   }   返回锡;         }   LinkList CreateList (void) {   LinkList头=(ListNode *) malloc (sizeof (ListNode));   ListNode * p *后方;   char国旗=' y ';   后=头;   而(标志==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);   后→下=p;   后=p;   printf("继续输入吗? (y/n):”);   获取字符();   scanf (“% c”和标志);   }      后→下=零;   返回头;      }   空白InsertNode (LinkList头,ListNode * p) {   ListNode * p1, p2;   p1=头;   p2=p1→下;   而(p2 !=零,,比较字符串(p2→data.num p→data.num) & lt; 0)   {   p1, p2;   p2=p2→下;      }      p1→下=p;   未来=p2 p→;      }   ListNode * ListFind (LinkList头){   ListNode * p;   char num [5];   char[9]名称;   int xz=0;   printf ("===========\ n ");   printf (" 1。按编号查询\ n”);   printf (" 2。按姓名查询\ n”);   printf ("===========\ n ");   printf("请选择:”);   p=头→下;   scanf (“% d”, xz);   如果(xz==1) {   printf(“请输入要查询者的编号:”);   scanf (“% s”, num);   而(p和,比较字符串(p→data.num num) & lt; 0)   p=p→下;   如果(p==NULL | | strcmp (p→data.num, num)在0)   p=零;      }   其他的   如果(xz==2) {   printf(“请输入要查询者的姓名:”);   scanf(“% s”的名字);   而(p和,比较字符串(p→data.name,名字)!=0)   p=p→下;   }      返回p;   }   空白DelNode (LinkList头){   char jx;   ListNode * p *问;   p=ListFind(头);   如果(p==NULL) {   printf("没有查到要删除的通讯者! \ n”);   返回;      }   printf("真的要删除该节点吗& # 63;(y/n):”);   获取字符();   scanf (“% c”, jx);   如果(jx==' y ' | | jx==y) {   q=头;   而(问!=零,,问:未来!=p),   q=q→下;   问→下=p→下;   自由(p);   printf("通讯录已经删除! \ n”);   }   }   空白printList (LinkList头){   ListNode * p;   p=头→下;   printf("编号姓名性别电话地址\ n”);   printf (" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n”);   而(p !=NULL)   {   printf (" % s % s % s % s % s \ n, p→data.num, p→data.name, p→data.sex, p→data.phone, p→data.addr);   printf (" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n”);   p=p→下;   }   }   空白ChangeNode (LinkList头){   ListNode * p;   p=ListFind(头);   如果(p !=NULL) {   printf("编号姓名性别电话地址\ n”);   printf (" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ n”);   scanf (“% s % s % s % s % s \ n”, 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);      }   其他的   printf("没查到要查询的通讯录者! \ n”);   }   

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