通讯录终极版

    xiaoxiao2021-12-14  18

    #include <stdio.h> #include <stdlib.h> #include <string.h> #define len_linklist 0 #define maxsize 11 #define yes 1 typedef struct node { char name[maxsize]; char tel_number[maxsize]; struct node *next; }lnode,*linklist; int Init_linklist(linklist l)//初始化单链表; { l = (linklist)malloc(sizeof(lnode)); if(!l) { return 0; } l->next = NULL; return 1; } int Empty_linklist(linklist l)//检查是否创建成功 { if(l) { return 1; } return 0; } int Clear_linklist(linklist l)//销毁链表 { linklist p; linklist q; p = l->next; while(p != NULL) { q = p->next; free(p); p = q; } l->next = NULL; return 1; } void Assignment_linklist(linklist *l)//给单链表赋值 ; { int i; char n[maxsize]; char m[maxsize]; int year; linklist p; linklist r; *l = (linklist)malloc(sizeof(lnode)); r = *l; for(i = 0; i < len_linklist; i++) { p = (linklist)malloc(sizeof(lnode)); strcpy(p->name,gets(m)); strcpy(p->tel_number,gets(n)); r->next = p; r = p; } r->next = NULL; } int Travle_linklist(linklist l)//遍历输出链表数据 { linklist p = l->next; while(p!=NULL) { printf("姓名:%s 号码:%s\n",p->name,p->tel_number); p = p->next; } printf("\n"); return 1; } void Insert_linklist(linklist l,char *insert_name,char *insert_tel)//插入数据 { linklist p; linklist s; p = l; s = (linklist)malloc(sizeof(lnode)); strcpy(s->name,insert_name); strcpy(s->tel_number,insert_tel); s->next=NULL; while(p->next!=NULL) { p=p->next; } p->next= s; } int Delete_linklist(linklist l,char *delete_name)//指定位置删除 { linklist p; linklist s; p = l; while(p!=NULL) { if(strcmp(p->next->name,delete_name)==0) { s =p->next; p->next = s->next; return 0; } p = p->next; } free(s); return 1; } int Find_tel(linklist l,char *find_name) { linklist p; p = l->next; while(p != NULL) { if(strcmp(p->name,find_name) == 0) { printf("%s",p->tel_number); return 0; } else { p = p->next; } } return 1; } int Update_tel(linklist l,char *update_name,char *update_tel) { int number; linklist p; p = l->next; while(p != NULL) { if(strcmp(p->name,update_name) == 0) { printf("是否将%s改为%s?\n",p->tel_number,update_tel); scanf("%d",&number); if(number!=0) { printf("已将%s改为%s\n",p->tel_number,update_tel); strcpy(p->tel_number,update_tel); } return 0; } else { p = p->next; } } return 1; } void My_insert_linkman(linklist l) { char *insert_name; char *insert_tel; char n[maxsize]; char m[maxsize]; printf("输入姓名:"); scanf("%s",m); printf("输入号码:"); scanf("%s",n); insert_name=m; insert_tel=n; Insert_linklist(l,insert_name,insert_tel);//添加联系人; //Travle_linklist(l); } void My_delete_linkman(linklist l) { char *delete_name; char *delete_n[maxsize]; scanf("%s",delete_n); delete_name=delete_n; Delete_linklist(l,delete_name);//删除联系人; //Travle_linklist(l); } void My_find_linkman(linklist l) { char *find_name; char *find_n[maxsize]; scanf("%s",find_n); find_name=find_n; printf("查找的号码:"); Find_tel(l,find_name);//删除联系人; printf("\n"); } void My_update_linkman(linklist l) { char *update_name; char *update_n[maxsize]; char *update_tel; char *update_t[maxsize]; scanf("%s",update_n); scanf("%s",update_t); update_name=update_n; update_tel=update_t; printf("更改号码:"); Update_tel(l,update_name,update_tel);//更改联系人方式; } print () { printf("**********菜单:0--4**********\n"); printf("***********0: 退出***********\n"); printf("********1:添加联系人********\n"); printf("********2:删除联系人********\n"); printf("********3:查找联系人********\n"); printf("********4:修改联系人********\n"); printf("********5:显示联系人********\n"); } int main() { linklist l; Init_linklist(l); Assignment_linklist(&l); int bottom; int y_n=1; // printf("开始的通讯录\n"); print(); while(y_n) { printf("选择功能:\n"); scanf("%d",&bottom); switch(bottom) { case 1: printf("**添加联系人**:\n"); My_insert_linkman(l); printf("\n"); break; case 2: printf("**删除联系人**:\n"); printf("删除 "); My_delete_linkman(l); printf("\n"); break; case 3: printf("**查找联系人**:"); My_find_linkman(l); printf("\n"); break; case 4: printf("修改联系人方式\n"); My_update_linkman(l); printf("\n"); break; case 5: printf("*************通讯录************\n"); Travle_linklist(l); printf("\n"); break; case 0: y_n = 0; break; } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-972004.html

    最新回复(0)