通讯录管理系统

怎样用C写通讯录管理系统

努力进阶的小码农

  • 代码如下
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #define MAXSIZE 10
    typedef struct  link
    {
	    char name[10];//用来存名字
	    char number[11];//用来存号码
	    struct link*prior;//前驱
	    struct link*next;//后继
    }LINK,*PLINK;
    void  insertNode(PLINK head,char name[MAXSIZE],char number[12])//输入信息
    {
	    PLINK temp = (PLINK)malloc(sizeof(LINK));
	    strcpy(temp->name,name);
	    strcpy(temp->number,number);//申请的结点存储数据
	    /*尾插法*/
	    PLINK p = head->prior;
	    temp->prior = p;//双循环的连接方法
	    temp->next = head;
	    p->next = temp;
	    head->prior = temp;
    }
    void DisPlay(PLINK head)//展示
    {
	    PLINK p = head->next;
	    printf(">姓名\t电话号码\n");
	    while (p != head)
	    {
		    printf("%s\t",p->name);
		    puts(p->number);
		    p = p->next;
	   }
    }
    void search(PLINK head, char name[])//查找
    {
    	char str1[10];//用来遍历所有人名字时存放的地方
    	char str2[10];//用来存放输入搜索人的字符数组

    	PLINK p = head;
	    p = p->next;
        strcpy(str2, name);
	    int flag;
	    while (p != head)
	    {
	    	flag = 0;
	    	strcpy(str1,p->name);
	    	if (strcmp(str1, str2) == 0)//找到后显示信息
	    	{
	    		flag = 1;
	    		printf(">你搜寻的人的号码为:\n");
	    		puts(p->number);
	    		break;
	    	}
		    p = p->next;
	    }
	    if (flag == 0)
	    {
	    	printf(">对不起,你换没有存此联系人的号码。\n");
	    }
    }
    void delet(PLINK head, char name[])//删除信息
    {
    	PLINK p = head->next;
    	while (p != head)
    	{
		    if (strcmp(p->name, name) == 0)
		    {
			    p->prior->next = p->next;
			    p->next->prior = p->prior;
			    printf("你要删除的号码已删除\n");
		    }
		    p = p->next;
	    }
    }
    int main()
    {
	    PLINK head = (PLINK)malloc(sizeof(LINK));
	    head->prior = head;
	    head->next = head;//构成循环链表

	    for (int i = 0; i < 3; i++)
	    {
		    char str1[10];
		    char number[12];//字符串的结尾有\0,所以要12位
		    printf("请输入客户的姓名和电话\n");
		    gets(str1);
		    gets(number);
            insertNode(head,str1,number);
	    }
	    printf(">该设备上登记的联系人信息如下:\n");
	    DisPlay(head);

	    char str2[10];
	    printf(">请输入要查询的人的名字:");
	    gets(str2);
        search(head, str2);

	    char str4[4];
	    char str5[4] = "yes";
	    printf(">请问你是否有需要删除的对象:");
	    gets(str4);
	    if (strcmp(str5, str4) == 0)
	    {
            char str3[10];
		    printf(">请输入你要删除的对象:");
		    gets(str3);
		    delet(head, str3);
	    }
	    return 0;
     }

运行结果如下

在这里插入图片描述

每天多一点努力,未来才可期.加油持续更新。

猜你喜欢

转载自blog.csdn.net/qq_43079376/article/details/83421964