欢迎来到入门教程网!

C语言

当前位置:主页 > 软件编程 > C语言 >

C语言实现简单的通讯录

来源:本站原创|时间:2020-01-10|栏目:C语言|点击:

用C语言写了一个简单的通讯录,说简单一是功能简单,二是也没有加读写文件操作,只是作为链表操作的一个练习,希望能给这方面的新手一此引导和帮助。

代码:

/* 转贴请注明出处                  */ 
/* 作者:小浦原(ID:blueboy82006)           */ 
/* http://blog.csdn.net/blueboy82006         */ 
#include <stdio.h> 
#include <stdlib.h> 
#include<string.h> 
#include<ctype.h> 
typedef struct node{ 
  char name[12]; 
  char phone[13]; 
  struct node *next; 
}LNode; 
LNode *h;               //头结点 
static int flag=1;          //通讯录创建标记 
int CreateNode(void)         //创建单循环链表 
{  
  if(flag) 
  { 
    LNode *p; 
    h=(LNode *)malloc(sizeof(LNode)); 
    h->next=NULL; 
    p=h; 
    flag--; 
    return 1; 
  } 
  else 
    return 0; 
} 
int InsertNode(void)        //插入函数 
{ 
  if(!flag) 
  { 
    LNode *t; 
    char name1[12]; 
    char phone1[13]; 
    printf("/n输入姓名:"); 
    scanf("%s",name1); 
    printf("/n输入联系电话:"); 
    scanf("%s",phone1); 
    t=(LNode *)malloc(sizeof(LNode)); 
    strcpy(t->name,name1); 
    strcpy(t->phone,phone1); 
    t->next=h->next; 
    h->next=t; 
    return 1; 
  } 
  else 
    return 0; 
} 
int SearchNode(void)        //查询函数 
{ 
  if(!flag) 
  { 
    LNode *p; 
    int x=0; 
    char name1[12]; 
    printf("/n输入查询姓名:"); 
    scanf("%s",name1); 
    p=h; 
    printf("/n查询结果:"); 
    while(p->next) 
    { 
      p=p->next; 
      if(strcmp(p->name,name1)==0) 
      { 
        printf("/n姓名:%s/n联系电话:%s/n",p->name,p->phone); 
        x++; 
      } 
    } 
    if(!x) 
      printf("/n没有找到相关信息!"); 
    return 1; 
  }else 
    return 0; 
} 
int DeletNode(void)        //删除函数 
{ 
  if(!flag) 
  { 
    LNode *pre,*p; 
    char name1[12]; 
    p=h; 
    printf("/n输入要删除联系人的姓名:"); 
    scanf("%s",name1); 
    while(p->next) 
    { 
      pre=p; 
      p=p->next; 
      if(strcmp(p->name,name1)==0) 
      { 
        pre->next=p->next; 
        free(p); 
        printf("删除成功!/n"); 
        break; 
      } 
    } 
    if(!p->next) 
      printf("/n没有找到要删除的信息!"); 
    return 1; 
  } 
  else  
    return 0; 
} 
int PrintNode(void)        //输出函数 
{ 
  if(!flag) 
  { 
    LNode *p; 
    p=h; 
    while(p->next) 
    { 
      p=p->next; 
      printf("/n姓名:%s /t联系电话:%s",p->name,p->phone); 
    } 
    return 1; 
  } 
  else 
    return 0; 
} 
int main()             //主函数 
{ 
  char n; 
  printf("/n/n"); 
  printf("/t/t     通讯录/t/n"); 
  printf("/t/t|————————————————|/n"); 
  printf("/t/t|                |/n"); 
  printf("/t/t| [1] 建立通讯录         |/n"); 
  printf("/t/t| [2] 插入联系人的姓名      |/n"); 
  printf("/t/t| [3] 查找联系人的姓名      |/n"); 
  printf("/t/t| [4] 删除联系人的姓名      |/n"); 
  printf("/t/t| [5] 输出所有联系人信息     |/n"); 
  printf("/t/t| [0] 退出            |/n"); 
  printf("/t/t|                |/n"); 
  printf("/t/t| 如未建立新表,请先建立!    |/n"); 
  printf("/t/t|                |/n"); 
  printf("/t/t|————————————————|/n"); 
  printf("/n"); 
  printf("请输入你的选项(0-5):"); 
  while(1) 
  { 
    scanf("%s",&n); 
    while(!(n=='0'||n=='1'||n=='2'||n=='3'||n=='4'||n=='5')) 
    { 
      printf("请输入你的选项(0-5):"); 
      scanf("%s",&n); 
    }  
    system("CLS"); 
    switch(n) 
    { 
    case '0':{ 
      printf("/n/t/t感谢您的使用!/n"); 
      return 0; 
         } 
    case '1':{ 
      if(CreateNode()) 
        printf("通讯录建立成功!/n"); 
      else 
        printf("通讯录已建立,无需重复建立!/n"); 
      break; 
         } 
    case '2':{ 
      if(InsertNode()) 
        printf("添加成功!/n"); 
      else 
        printf("添加失败,请先创建通讯录!/n"); 
      break; 
         } 
    case '3':{ 
      if(SearchNode()) 
        printf("/n"); 
      else 
        printf("查找失败,请先创建通讯录!/n"); 
      break; 
         } 
    case '4':{ 
      if(DeletNode()) 
        printf("/n"); 
      else 
        printf("删除失败,请先创建通讯录!/n"); 
      break; 
         } 
    case '5':{ 
      if(PrintNode()) 
        printf("/n以上是全部联系人信息./n"); 
      else 
        printf("ERROR,请先创建通讯录!/n"); 
       
      break; 
         } 
    default:{printf("输入不符合要求!");} 
    } 
    printf("/n/n"); 
    printf("/t/t     通讯录/t/n"); 
    printf("/t/t|————————————————|/n"); 
    printf("/t/t|                |/n"); 
    printf("/t/t| [1] 建立通讯录         |/n"); 
    printf("/t/t| [2] 插入联系人的姓名      |/n"); 
    printf("/t/t| [3] 查找联系人的姓名      |/n"); 
    printf("/t/t| [4] 删除联系人的姓名      |/n"); 
    printf("/t/t| [5] 输出所有联系人信息     |/n"); 
    printf("/t/t| [0] 退出            |/n"); 
    printf("/t/t|                |/n"); 
    printf("/t/t| 如未建立新表,请先建立!    |/n"); 
    printf("/t/t|                |/n"); 
    printf("/t/t|————————————————|/n"); 
    printf("/n"); 
  } 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

上一篇:C++之try catch 异常处理入门实例

栏    目:C语言

下一篇:用C语言实现简易通讯录

本文标题:C语言实现简单的通讯录

本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/897.html

网页制作CMS教程网络编程软件编程脚本语言数据库服务器

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:835971066 | 邮箱:835971066#qq.com(#换成@)

Copyright © 2002-2020 脚本教程网 版权所有