实现一个通讯录;

通讯录可以用来存储1000个人的信息,每个人的信息包括:

姓名、性别、年龄、电话、住址

提供方法:

1.添加联系人信息

2.删除指定联系人信息

3.查找指定联系人信息

4.修改指定联系人信息

5.显示所有联系人信息

6.清空所有联系人

定义头文件

#ifndef __CONTACT_H__

#define __CONTACT_H__

#define NAME_MAX 20

#define SEX_MAX 5

#define TELE_MAX 11

#define ADDR_MAX 20

#define PEO_MAX 1000

#include

#include

#include

typedef struct people

{

char name[NAME_MAX];

char sex[SEX_MAX];

int age;

char tele[TELE_MAX];

char addr[ADDR_MAX];

}*pPeople;

typedef struct contact

{

int count;

struct people DHB[PEO_MAX];

}*pContact;

void add_peo(pContact pcon);

void del_peo(pContact pcon);

void search_peo(pContact pcon);

void modify_peo(pContact pcon);

void show_peo(pContact pcon);

void clear_peo(pContact pcon);

#endif

函数实现部分

#include "contact.h"

int find(pContact pcon,char* name)

{

int i = 0;

while(icount)

{

if(strcmp(name,pcon->DHB[i].name) == 0)

return i;

i++;

}

return -1;

}

void add_peo(pContact pcon) //添加联系人

{

if(pcon->count == PEO_MAX)

{

printf("电话本容量已达上限\n");

return;

}

printf("name:>");

scanf("%s",(pcon->DHB[pcon->count]).name);

printf("sex:>");

scanf("%s",(pcon->DHB[pcon->count]).sex);

printf("age:>");

scanf("%d",&((pcon->DHB[pcon->count]).age));

printf("tele:>");

scanf("%s",(pcon->DHB[pcon->count]).tele);

printf("addr:>");

scanf("%s",(pcon->DHB[pcon->count]).addr);

pcon->count++;

}

void del_peo(pContact pcon) //删除联系人

{

char tmpName[NAME_MAX];

int ret=0;

printf("输入需删除的联系人姓名:>");

scanf("%s",tmpName);

if(-1 != (ret=find(pcon,tmpName)))

{

int j=ret;

for(;jcount;j++)

{

pcon->DHB[j] = pcon->DHB[j+1];

}

pcon->count -= 1;

}

else

printf("该联系人不存在\n");

}

void search_peo(pContact pcon) //查找联系人

{

char tmpName[NAME_MAX];

int ret = 0;

printf("请输入要查找的联系人");

scanf("%s",tmpName);

ret = find(pcon,tmpName);

if(ret != -1)

{

printf("%s\t%s\t%d\t%s\t%s\n",

pcon->DHB[ret].name,

pcon->DHB[ret].sex,

pcon->DHB[ret].age,

pcon->DHB[ret].tele,

pcon->DHB[ret].addr);

}

}

void modify_peo(pContact pcon) //修改联系人

{

char tmpName[NAME_MAX];

int ret = 0;

printf("请输入要修改的联系人");

scanf("%s",tmpName);

ret = find(pcon,tmpName);

if(-1 != ret)

{

printf("name:>");

scanf("%s",(pcon->DHB[ret]).name);

printf("sex:>");

scanf("%s",(pcon->DHB[ret]).sex);

printf("age:>");

scanf("%d",&((pcon->DHB[ret]).age));

printf("tele:>");

scanf("%s",(pcon->DHB[ret]).tele);

printf("addr:>");

scanf("%s",(pcon->DHB[ret]).addr);

}

}

void show_peo(pContact pcon) //显示全部联系人

{

int i = 0;

for(i=0;icount;i++)

{

printf("%s\t%s\t%d\t%s\t%s\n",

pcon->DHB[i].name,

pcon->DHB[i].sex,

pcon->DHB[i].age,

pcon->DHB[i].tele,

pcon->DHB[i].addr);

}

}

void clear_peo(pContact pcon) //清空全部联系人

{

pcon->count = 0;

}

测试函数

#include "contact.h"

void show_menu()

{

printf("************************\n");

printf("* 1>add 2>del *\n");

printf("* 3>search 4>modify *\n");

printf("* 5>show 6>clear *\n");

printf("************************\n");

}

int main()

{

struct contact my_contact;

my_contact.count = 0;

int input = 1;

while(input)

{

show_menu();

printf("please input:>");

scanf("%d",&input);

switch(input)

{

case 1:

add_peo(&my_contact);

system("cls"); //清屏

break;

case 2:

del_peo(&my_contact);

system("cls");

break;

case 3:

search_peo(&my_contact);

break;

case 4:

modify_peo(&my_contact);

system("cls");

break;

case 5:

show_peo(&my_contact);

break;

case 6:

clear_peo(&my_contact);

system("cls");

break;

default:

break;

}

}

return 0;

}

通讯录 C语言分类,C语言 通讯录相关推荐

  1. 语言分类强弱类型语言

    语言分类 静态语言:变量定义时有类型声明的语言(变量类型在编译的时候确定,变量类型在编译的时候不能修改) 动态类型语言:变量在定义时,无类型声明的语言(变量类型在运行时确定,变量类型在运行时可以修改) ...

  2. 自学编程是从python语言还是c语言开始-非计算机专业大学生想自学编程应该学C语言还是学Python?...

    之前总结的文章,分享过来,希望对你有帮助.windliang:到底学哪一门编程语言​zhuanlan.zhihu.com 发展进程 学哪一门编程语言,我们不妨先梳理一下语言的发展过程. 机器语言 计算 ...

  3. 【C语言进阶】C语言程序设计:动态通讯录(顺序表实现)

    目录 动态通讯录的实现 一.实验的目的和意义 二.实验内容描述 三.功能描述 四.数据结构 1.三大模块 2.结构设计 3.动态开辟 4.文件操作 5.主要函数 五.流程图及模块算法 1.Contac ...

  4. C语言课程设计:通讯录系统

    C语言课程设计:通讯录系统 [题目4]通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能.由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码.电话号码 ...

  5. 用C语言编写简单的通讯录(大一课程作业)

    用C语言编写简单的通讯录(大一课程作业) 该系统概述: 因本人只学习了C语言的基础部分,所以编写该系统时只使用了一个C文件.存储通讯录信息以txt文件方式保存. 系统设计: 显示主菜单主函数:int ...

  6. 通讯录的实现(C语言)

    目录 前言 一.C语言知识点回顾 1.枚举 1.1枚举类型的定义 1.2 枚举的优点 为什么使用枚举? 1.3 通讯录中枚举的使用 2. return 与 return 0 3. qsort 参数 用 ...

  7. 你是真的“C”——详解C语言实现文件版通讯录

    详解C语言实现文件版通讯录

  8. 通讯录管理系统C语言课程设计大作业,c语言课程设计报告---通讯录管理系统.doc...

    c语言课程设计报告---通讯录管理系统.doc Yangtze University College of Arts and Science 学生实习手册 (课程设计报告) 学 部 理 工 学 部 专 ...

  9. 学生通讯录管理系统【用 结构数组 实现 通讯录管理】【C语言】

    目录 说明 1.实训目的 2.实训内容 3.系统需求分析 4.系统设计与实现 完整程序代码(纯C语言?代码) 5.系统测试与运行结果分析 6.心得体会 原创性声明 说明 大一下学期(2019年 上半年 ...

  10. 简易通讯录的实现(c语言,后附完整代码)

    今天我要介绍的是通讯录的实现(c语言) 首先先简单说一下思路吧. 一共需要三个文件分别为test.c(测试通讯录),contact.h(所需函数及头文件),contact.c(通讯录功能实现).因为通 ...

最新文章

  1. pycharm中报错:Error: failed to send plot to http://127.0.0.1:63342
  2. 编写单元测试代码遵守BCDE原则,以保证被测试模块的交付质量,那么下列说法正确的是
  3. outlook 突然发信不正常
  4. python string模块template_Template Strings
  5. C++字符输入getchar()和字符输出putchar()
  6. Tomcat 上添加虚拟相对路径
  7. 递归函数两种方式的区别
  8. 用PHP的CURL写的一个采集Discuz的例子
  9. springboot忽略证书_SpringBoot中通过java代码实现忽略SSL证书
  10. Android_自定义控件样式
  11. [论文阅读] Unifying Global-Local Representations in Salient Object Detection with Transformer
  12. sqoop导出到mysql中文乱码问题总结、utf8、gbk
  13. Base64压缩UUID长度替换Hibernate原有UUID生成器
  14. 【板栗糖GIS】arcmap—如何通过影像融合提高遥感数据的分辨率
  15. 鱼之死,越狱章鱼和雾霾黑客
  16. 中国象棋ai人工智能(网页版)
  17. spellman斯派曼电源维修XRB100N100K4405
  18. c++学习记录之多态
  19. 离散-关系矩阵乘法运算
  20. 六级考研单词之路-二十二

热门文章

  1. 电信4区服务器未响应进网通六区,7月16日电信六区,网通经典区合服公告
  2. iBase4J项目笔记
  3. IBM SPSS Statistics教程—文件的拆分和合并
  4. Android之ViewStub
  5. mysql同步 触发器_MySQL触发器运用于迁移和同步数据的实例教程
  6. android屏幕截图代码,android中实现整个屏幕截图的代码
  7. 《商务与经济统计》练习:案例2-1:Pelican商店促销活动效果评估
  8. tomcat优化问题
  9. 系统架构设计师-软件开发模型(螺旋模型)
  10. sql和mysql 语法区别吗_sql和mysql语法有什么不同