本文实例为大家分享了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语言实现通讯管理系统设计