//此部分为该通讯录头部(head.h)
#ifndef _CONTACT__
#define _CONTACT__#define NAME_MAX 20
#define SEX_MAX 5
#define TEL_MAX 11
#define ADDR_MAX 20
#define PERSON_MAX 1000#include <stdio.h>
#include <string.h>typedef struct person
{char name[NAME_MAX];char sex[SEX_MAX];int age;char tel[TEL_MAX];char addr[ADDR_MAX];
}*pPerson;typedef struct contact
{struct person TelBook[PERSON_MAX];int count;
}*pCon;void add_peo(pCon pcon);
void del_peo(pCon pcon);
void search_peo(pCon pcon);
void modil_peo(pCon pcon);
void show_peo(pCon pcon);
void clear_peo(pCon pcon);#endif

//此部分为通讯录最重要部分,即功能函数(contact.c)

#include "head.h"int find(pCon pcon,char *name)
{int i=0;for(i=0;i<pcon->count;i++){if(strcmp((pcon->TelBook[i]).name,name)==0)return i;}return -1;
}
void add_peo(pCon pcon)
{if((pcon->count)==PERSON_MAX)printf("通讯录已满,请删除后再添加。\n");printf("姓名:");scanf("%s",(pcon->TelBook[pcon->count]).name);printf("性别:");scanf("%s",(pcon->TelBook[pcon->count]).sex);printf("年龄:");scanf("%d",&(pcon->TelBook[pcon->count]).age);printf("电话:");scanf("%s",(pcon->TelBook[pcon->count]).tel);printf("家庭住址:");scanf("%s",(pcon->TelBook[pcon->count]).addr);pcon->count++;
}
void del_peo(pCon pcon)
{int ret=0;char peoplename[NAME_MAX];printf("请输入您要删除的联系人:");scanf("%s",peoplename); ret=find(pcon,peoplename);if(ret==-1){printf("联系人不存在。\n");}else{int j;for(j=ret;j<pcon->count-1;j++){pcon->TelBook[j]=pcon->TelBook[j+1];}printf("删除联系人成功。\n");}pcon->count--;
}
void search_peo(pCon pcon)
{int ret=0;char peoplename[NAME_MAX];printf("请输入您要查找的联系人:");scanf("%s",peoplename); ret=find(pcon,peoplename);if(ret==-1){printf("联系人不存在。\n");}else{printf(" %s\t",(pcon->TelBook[ret]).name);printf(" %s\t",(pcon->TelBook[ret]).sex);printf(" %d\t",(pcon->TelBook[ret]).age);printf(" %s\t",(pcon->TelBook[ret]).tel);printf(" %s\n",(pcon->TelBook[ret]).addr);}
}
void modil_peo(pCon pcon)
{int ret=0;char peoplename[NAME_MAX];printf("请输入您要修改的联系人:");scanf("%s",peoplename); ret=find(pcon,peoplename);if(ret==-1){printf("联系人不存在。");}else{printf("姓名:");scanf("%s",(pcon->TelBook[ret]).name);printf("性别:");scanf("%s",(pcon->TelBook[ret]).sex);printf("年龄:");scanf("%d",&(pcon->TelBook[ret]).age);printf("电话:");scanf("%s",(pcon->TelBook[ret]).tel);printf("家庭住址:");scanf("%s",(pcon->TelBook[ret]).addr);}
}
void show_peo(pCon pcon)
{int i;for(i=0;i<pcon->count;i++){printf(" %d.%s\t",i+1,(pcon->TelBook[i]).name);printf(" %s\t",(pcon->TelBook[i]).sex);printf(" %d\t",(pcon->TelBook[i]).age);printf(" %s\t",(pcon->TelBook[i]).tel);printf(" %s\n",(pcon->TelBook[i]).addr);}
}
void clear_peo(pCon pcon)
{pcon->count=0;printf("通讯录已清空。\n");
}

//此部分为通讯录测试部分,即main函数部分(test.c)

#include "head.h"void print()
{printf("    ************************************************************************\n");printf("    ||                                                                    ||\n");printf("    ||        1. 添加联系人        2. 删除联系人        3.查找联系人      ||\n");printf("    ||        4. 修改联系人        5. 显示联系人        6.清空联系人      ||\n");printf("    ||                                                                    ||\n");printf("    ************************************************************************\n");
}int main ()
{struct contact my_contact;int input;my_contact.count=0;while(1){print();printf("请选择操作:");scanf("%d",&input);switch(input){case 1:add_peo(&my_contact);break;case 2:del_peo(&my_contact);break; case 3:search_peo(&my_contact);break;case 4:modil_peo(&my_contact);break;case 5:show_peo(&my_contact);break;case 6:clear_peo(&my_contact);break;default:printf("操作错误\n");break;}}return 0;
}

添加联系人

删除联系人

查找联系人

修改联系人

显示联系人

清空联系人

【C语言】通讯录制作相关推荐

  1. LinuxC语言——通讯录

    LinuxC语言--通讯录 制作通讯录的一些基础知识 功能 代码 链表节点创建 节点插入 增加节点到链表头 节点插入 增加节点到链表尾部 节点查找(姓名.号码) 节点删除 显示节点 主函数逻辑 运行效 ...

  2. 用c语言,制作一个心形彩色告白图案(附源码)

    今天我们来一个好玩的,用c语言,制作一个心形彩色告白图案. 送给c语言初学者 代码: #include<stdio.h> #include<math.h> #include&l ...

  3. R语言快速制作学术论文三线表

    PartR语言快速制作学术论文三线表 三线表以其形式简洁.功能分明.阅读方便而在科技论文中被推荐使用. 本文主要使用table1包制作三线表,生成的三线表为html格式,可以直接复制到word中,本文 ...

  4. 用R语言,制作动态烟花

    用R语言,制作动态烟花

  5. linux下的c语言实现象棋,用c语言+API制作象棋界面

    现在已经把所有的棋子放到上面了,运行即可看到象棋的开局画面,而且已经实现走子了.新手注意:注意不能直接复制代码,那样有行号,鼠标移动到代码上方就有复制按钮了. //本程序的目的是用c语言+API制作象 ...

  6. html网页制作技巧,HTML语言网页制作技巧与方法.doc

    HTML语言网页制作技巧与方法 HTML语言网页制作技巧与方法 摘要:随着社会的进步,时代的发展,科学技术水平的不断提高,计算机技术已经深入到人们的生产生活,网络在人们的日常交流中起着非常重要的作用. ...

  7. ❤️C语言通讯录管理系统(简易版)❤️

    ❤️C语言通讯录管理系统(简易版)❤️

  8. c语言 数据结构 课程设计 通讯录制作

    c语言  数据结构  课程设计  源码 infoBook.c #include "dataStruct.h" #include <stdio.h> #include & ...

  9. C语言通讯录的制作【数据结构】【课程设计】

    视频展示(2倍速): 视频模糊(疑惑)   清晰视频点这里看:

  10. 【C语言】制作一个通讯录管理系统

    大家好呀!

最新文章

  1. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)
  2. vim E492: Not an editor command: ^M
  3. ansible的安装和ansible的模板
  4. python paramiko invoke_shell_Python,paramiko,invoke_shell和丑陋的字符
  5. 更快的Maven来了,我的天,速度提升了8倍!
  6. php ajax loading图片居中显示,php-通过ajax框架加载漂亮照片
  7. 国内物联网平台初探 ——移动云OneNET
  8. Java安全 – JCE (Blowfish算法报错)
  9. 2017 ICPC西安区域赛 A - XOR (线段树并线性基)
  10. 安装Win10,ERROR_0x8007025D问题解决
  11. ShopEx 中规格属性添加时,自己主动计算其相应的销售价格,同一时候注意模板中的变量间的计算...
  12. Ubuntu删除不干净导致的一系列后果
  13. 两个辅助指针变量挖字符串
  14. CTF misc图片类总结(入门级)
  15. 课堂作业:评估手机输入法——讯飞
  16. 微信挪车功能成功上线,祝贺一下自己
  17. html验证座机号码_手机号码 座机号码验证
  18. 关于微信数据库文件夹与资源文件夹名称的问题
  19. 【科普】关于装机CPU参数介绍及选取原则
  20. 第一章 android以及智能手机行业相关简介

热门文章

  1. IntelliJ IDEA导入Spring源码
  2. 黑苹果安装教程,配EFI引导文件+软件!
  3. 生产质量分析报告常用模板汇总,质量人必备!
  4. 《Redis开发与运维》学习第五章
  5. 桌面云之深信服VDC安装部署和虚拟机模板创建
  6. OpenDDS系列(1) —— OpenDDS 简介
  7. MOSSE相关滤波跟踪算法
  8. 交换机tagged与untagged的关系深入探讨
  9. cad转dwf格式怎么转换?
  10. matlab m 调用mdl,[分享]MATLAB m语言中调用simulink的程序