自制的简易通讯录

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define OK            0
#define ERROR        -1
#define MALLOC_ERROR -2


typedef struct node
{
 long ID;                       //ID号
 char Name[20];                 //姓名
 char person_phone[13];         //个人电话号码
 char Address[20];              //地址
 char company_phone[13];        //公司电话
 struct node *next;             //结点指针
}Node;
typedef Node *PNode;     // 重命名结点指针类型

void jiemian()
{
 system("clear");
    printf("*************************************************\n"); 
 printf("******************欢迎进入通讯录系统*************\n");
 printf("*************************************************\n");
 printf("*                   1. 添加好友                 *\n");
 printf("*                   2. 显示好友                 *\n");
 printf("*                   3. 查询好友                 *\n");
 printf("*                   4. 删除好友                 *\n");
 printf("*                   0. 退出程序                 *\n");
 printf("*************************************************\n");
 printf("*********************************制作人:李东****\n");
 printf("*************************************************\n");
}

// 尾插法创建链表(添加好友)
int Create_List_Tail(PNode h, long ID, char *Name, char *person_phone, char *Address, char *company_phone)
{
 PNode node = (PNode)malloc(sizeof(Node)/sizeof(char));
 if (node == NULL)
 {
  return MALLOC_ERROR;
 }
 
 if (h == NULL)   // 空表
 {
  return ERROR;
 }
 system("clear");
 
    printf("创建用户\n");
 printf ("请输入ID:       ");
 scanf ("%ld", &node->ID);
 printf ("请输入姓名:     ");
 scanf ("%s", node->Name);
 printf ("请输入手机号码: ");
 scanf ("%s", node->person_phone);
 printf ("请输入家庭地址: ");
 scanf ("%s", node->Address);
 printf ("请输入公司电话: ");
 scanf ("%s", node->company_phone);
 
 node->next = NULL;
 

    PNode temp;
 temp = h;
  
 // 找最后一个结点
 while (temp->next)
 {
  temp = temp->next;
 }
 temp->next = node;
 
 
 return OK;
}

//显示好友
void print(PNode h)
{
 if (h == NULL)
 {
  return;
 }
 PNode temp = h->next;
 while (temp)
 {
  printf ("ID: %ld 姓名: %s 手机号码: %s 家庭地址: %s 公司电话: %s\n",temp->ID, temp->Name, temp->person_phone, temp->Address, temp->company_phone);
  temp = temp->next;
 }
 
 printf ("\n");
}

//查找好友
void Search(PNode h, char *Name)
{
 if(h == NULL)
 {
  return ;
 }
 
 PNode p;
 int flag = 1;
 for (p = h->next; p != NULL; p = p->next)
 {
  if(strcmp(p->Name,Name) == 0)
  {
   flag = 0;
   printf ("好友信息:  ID: %ld 姓名: %s 手机号码: %s 家庭地址: %s 公司电话: %s\n", p->ID, p->Name, p->person_phone, p->Address, p->company_phone);
  }
 }
 if (flag)
 {
  printf ("您的通讯录没有该好友!\n");
 }
 printf("\n");
 
 return ;
}

//删除好友
void Delete(PNode head, char *Name)
{
 PNode p = head;
 PNode q = NULL;

 while (p != NULL && (p->next) != NULL)
 {
     q = p->next;
  if (q != NULL && strcmp(q->Name,Name) == 0)
  {
      p->next = q->next;
   free(q);
   printf ("该好友已成功删除\n");
  }
  else if (q->next == NULL && strcmp(q->Name,Name) != 0)
  {
      printf ("您的通讯录没有该好友!\n");
  }
  p = p->next;
 }
}

int main()
{
 int back;
 int Function;
 long ID;                       //ID号
 char Name[20];                 //姓名
 char person_phone[13];         //个人电话号码
 char Address[20];              //地址
 char company_phone[13];        //公司电话
 
 PNode head_node = (PNode)malloc(sizeof(Node)/sizeof(char));
 if(head_node == NULL)
 {
  return MALLOC_ERROR;
 }
 head_node->next = NULL;
 
 while(1)
 {
  jiemian();
  scanf("%d",&Function);
  
  switch (Function)
  {
   case 1:
   {
    Function = 0;
    Create_List_Tail(head_node, ID, Name, person_phone, Address, company_phone);
    printf("添加成功!\n");
    printf ("返回请输入任意键:");
    scanf ("%d",&back);
    break;
   }
   
   case 2:
   {
    printf("*****************当前好友信息**********************\n");
    print(head_node);
    Function = 0;
    printf ("返回请输入任意键:");
    scanf ("%d",&back);
    break;
   }
   case 3:
   {
    printf("请输入你要查找好友的姓名:");
    scanf("%s",Name);
    printf("\n");
    Search(head_node,Name);
    printf ("返回请输入任意键:");
    scanf ("%d",&back);
    break; 
   }
   case 4:
   {
    printf("请输入你要删除好友的姓名:");
    scanf("%s",Name);
    printf("\n");
    Delete(head_node,Name);
    printf ("返回请输入任意键:");
    scanf ("%d",&back);
    break;
   }
   case 0:
   {
    Function = 0;
    system ("clear");
    exit(0);
   }
   default:
   {
    Function = 0;
    printf("对不起!您的输入有误!请重新输入:");
    scanf("%d",&Function);
    break;
   }
  }
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python简易通讯录是一个基于Python语言开发的简单联系人管理系统,它可以帮助用户存储和管理联系人的信息。以下是一个简单的Python通讯录的实现示例: ```python class Contact: def __init__(self, name, phone_number): self.name = name self.phone_number = phone_number class AddressBook: def __init__(self): self.contacts = [] def add_contact(self, contact): self.contacts.append(contact) def search_contact(self, name): for contact in self.contacts: if contact.name == name: return contact return None def delete_contact(self, name): contact = self.search_contact(name) if contact: self.contacts.remove(contact) print(f"成功删除联系人:{name}") else: print(f"未找到联系人:{name}") def display_contacts(self): if len(self.contacts) == 0: print("通讯录为空") else: print("通讯录中的联系人:") for contact in self.contacts: print(f"姓名:{contact.name},电话:{contact.phone_number}") # 创建通讯录对象 address_book = AddressBook() # 添加联系人 contact1 = Contact("张三", "123456789") address_book.add_contact(contact1) contact2 = Contact("李四", "987654321") address_book.add_contact(contact2) # 显示所有联系人 address_book.display_contacts() # 搜索联系人 search_name = "张三" result = address_book.search_contact(search_name) if result: print(f"找到联系人:{result.name},电话:{result.phone_number}") else: print(f"未找到联系人:{search_name}") # 删除联系人 delete_name = "李四" address_book.delete_contact(delete_name) # 再次显示所有联系人 address_book.display_contacts() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值