广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现简易通讯录实例
  • 560
分享到

C语言实现简易通讯录实例

2024-04-02 19:04:59 560人浏览 八月长安
摘要

目录一、问题描述二、功能介绍二、实现流程1.创建通讯录2.创建源文件test.c3.创建源文件contact.c4.删除通讯录联系人信息 (DelContact函数实现)5

一、问题描述

C语言来写一个简易的通讯录

二、功能介绍

通讯录
1.通讯录中能够存放1000个人的信息
每个人的信息:
名字,年龄,性别,电话,地址
2.增加人的信息
3.删除人的信息
4.修改指定人的信息
5.查找指定人的信息
6.排序

二、实现流程

1.创建通讯录

1.创建头文件contact.h

头文件contact.h用来实现类型的定义和函数的声明。

2.定义结构体类型(struct peoInfo)

一个人的信息包含名字,年龄,性别,电话,地址,所以我们要定义一个结构体类型才能完整的表述。

写一个结构体类型struct peoInfo存放一个人的信息

代码如下:

/类型的定义
typedef struct peoInfo
{
	char name[MAX_NAME];//名字
	char sex[MAX_SEX];//性别
	int age;//年龄
	char tele[MAX_TELE];//电话
	char addr[MAX_ADDR];//地址
}peoInfo;

typedef(类型重命名),struct peoInfo重命名为peoInfo。

3.定义通讯录结构体类型(struct contact)

因为要存放1000个这样的人的信息,所以我们创建一个结构体类型的数组data。再创建一个变量sz来表示这个数组的下标,data数组中存第一个人信息的时候,我们放在下标为sz的位置,这个时候让我们的sz等于0,存第二个人的信息的时候,让我们的sz等于1,这样后续就方便我们通过下标的方式找到存入的每一个人的信息。

代码如下:

peoInfo data[MAX];//存放添加进来的人的信息
	int sz;//记录的是通讯录中有效信息的个数

上述代码加起来就构成了我们的通讯录,很明显这也是一个结构体。

代码如下:

//通讯录
typedef struct contact
{
	peoInfo data[MAX];//存放添加进来的人的信息
	int sz;//记录的是通讯录中有效信息的个数
}contact;

4.#define定义标识符常量

为了后续我们方便随时调整通讯录的大小所以我们把数组的数字挨个用#define定义标识符常量

代码如下:

#define MAX_NAME 20
#define MAX_SEX 10
#define MAX_TELE 12
#define MAX_ADDR 30
#define MAX 1000

5.功能实现函数的声明

/初始化通讯录
void Initcontact(contact* cp);
 
//增加联系人信息
void AddContact(contact* cp);
 
//打印联系人信息
void PintContact(const contact* cp);
 
//删除联系人信息
void DelContact(contact* cp);
 
//查找联系人信息
void SearchContact(contact* cp);
 
//修改联系人信息
void ModifyContact(contact* cp);

2.创建源文件test.c

源文件test.c测试通讯录的模块

通讯录有了之后,我们要写出通讯录的基本操作逻辑,选择增加联系人,选择删除联系人,选择修改联系人......选择错误,重新选择,选择重新开始等等。

1.打印菜单

代码如下:

 
void menu()
{
	printf("******************************\n");
	printf("*****1.add     2.del *********\n");
	printf("*****3.search  4.modify*******\n");
	printf("*****5.sort    6.print *******\n");
	printf("*****0.exit    ***************\n");
	printf("******************************\n");
}

2.枚举方法定义编号

代码如下:

enum Option
{
	EXIT,
	ADD,
	DEL,
	SEARCH,
	MODIFY,
	SORT,
	PRINT
};

3.主文件的实现

代码如下

int main()
{
	int input = 0;
	//创建通讯录
	contact con;//通讯录
	//初始化通讯录
	Initcontact(&con);
	do
	{
		menu();
		printf("请选择:>");
		scanf("%d", &input);
		switch (input)
		{
		case ADD:
			//增加人的信息
			AddContact(&con);
			break;
		case DEL:
			//删除人的信息
			DelContact(&con);
			break;
		case SEARCH:
			//查找联系人的信息
			SearchContact(&con);
			break;
		case MODIFY:
			//修改联系人信息
			ModifyContact(&con);
			break;
		case SORT:
			break;
		case PRINT:
			//打印人的信息
			PintContact(&con);
			break;
		case EXIT:
			printf("退出登录\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
 
	} while (input);
	return 0;
}

写出一个菜单来供用户们选择自己想要的功能,采用枚举的方式让程序员看代码的时候能一目了然,一眼就也可以看出来这里要实现的是什么功能。

3.创建源文件contact.c

源文件contact.c来实现我们想要的功能(函数的实现)

1.初始化通讯录为0(Initcontact函数实现)

//初始化通讯录为0
void Initcontact(contact* cp)
{
	cp->sz = 0;//通讯录中人的数量先初始化为0
	memset(cp->data, 0, sizeof(cp->data));//数组内存中每个字节初始化为0

 2.增加通讯录联系人信息(AddContact函数实现)

先判断通讯录人数是不是满了,满了就无法添加,没满就添加联系人信息。

代码如下:

//增加联系人的信息
void AddContact(contact* cp)
{
	if (cp->sz == MAX)
	{
		printf("通讯录已满,无法添加\n");
		return;
	}
	//增加一个人的信息
	printf("请输入名字:>");
	scanf("%s", cp->data[cp->sz].name);
	printf("请输入年龄:>");
	scanf("%d", &(cp->data[cp->sz].age));
	printf("请输入性别:>");
	scanf("%s", cp->data[cp->sz].sex);
	printf("请输入电话:>");
	scanf("%s", cp->data[cp->sz].tele);
	printf("请输入地址:>");
	scanf("%s", cp->data[cp->sz].addr);
	cp->sz++;
	printf("增加成功\n");
 
}

3.打印通讯录联系人信息( PintContact函数实现)

代码如下:

//打印联系人的信息
void PintContact(const contact* cp)
{
	//打印标题
	int i = 0;
	printf("%-5s\t %-5s\t %-5s\t %-12s\t %-20s\n", "名字", "年龄", "性别", "电话", "地址");
	for (i = 0; i < cp->sz; i++)
	{
		printf("%-5s\t %-5d\t %-5s\t %-12s\t %-20s\n", 
			cp ->data[i].name,
			cp -> data[i].age,
			cp -> data[i].sex,
			cp -> data[i].tele,
			cp -> data[i].addr);
	}
}

增加完联系人信息之后我们可以打印出来看一看。

4.删除通讯录联系人信息 (DelContact函数实现)

首先判断通讯录里有没有联系人,没有就无需删除,有的话就根据查找函数查找通讯录成员名字来删除所对应的信息。

代码如下:

static int  FindByName(contact* cp, char name[])
{
	int i = 0;
	for (i = 0; i < cp->sz; i++)
	{
		if (strcmp(cp->data[i].name, name) == 0)
		{
			return i;
		}
	}
	return -1;
}
 
//删除联系人信息
void DelContact(contact* cp)
{
	char name[MAX_NAME] = { 0 };
	if (cp->sz == 0)
	{
		printf("通讯录为空,无需删除\n");
		return;
	}
	//1.查找要删除的人
	//有没有
	printf("请输入要删除人的名字\n");
	scanf("%s", name);
	
	int pos = FindByName(cp, name);
	
		if (pos == -1)
		{
			printf("要删除的人不存在\n");
			return;
		}
		//2.删除
		int i = 0;
		for (i = pos; i < cp -> sz - 1; i++)
		{
			cp->data[i] = cp->data[i + 1];
		}
		cp->sz--;
		printf("删除成功\n");
		
}

5.查找通讯录联系人信息( SearchContact函数实现)

根据查找函数查找通讯录成员名字来删除所对应的信息。

代码如下

/查找联系人信息
void SearchContact(contact* cp)
{
	char name[MAX_NAME] = { 0 };
	printf("请输入要查找人的名字\n");
	scanf("%s", name);
	int pos = FindByName(cp, name);
 
	if (pos == -1)
	{
		printf("要查找的人不存在\n");
		return;
	}
	else 
	{
		printf("%-5s\t %-5s\t %-5s\t %-12s\t %-20s\n", "名字", "年龄", "性别", "电话", "地址");
		printf("%-5s\t %-5d\t %-5s\t %-12s\t %-20s\n",
			cp->data[pos].name,
			cp->data[pos].age,
			cp->data[pos].sex,
			cp->data[pos].tele,
			cp->data[pos].addr);
 
	}
}

6.修改联系人信息(ModifyContact函数实现)

根据查找函数查找通讯录成员名字来修改所对应的信息。

代码如下:

//修改联系人的信息
void ModifyContact(contact* cp)
{
	char name[MAX_NAME] = { 0 };
	printf("请输入要修改人的名字\n");
	scanf("%s", name);
	int pos = FindByName(cp, name);
 
	if (pos == -1)
	{
		printf("要修改的人不存在\n");
		return;
	}
	else 
	{
		printf("请输入名字:>");
		scanf("%s", cp->data[pos].name);
		printf("请输入年龄:>");
		scanf("%d", &(cp->data[pos].age));
		printf("请输入性别:>");
		scanf("%s", cp->data[pos].sex);
		printf("请输入电话:>");
		scanf("%s", cp->data[pos].tele);
		printf("请输入地址:>");
		scanf("%s", cp->data[pos].addr);
		printf("修改成功\n");
		
	}
}

部分功能结果图:

 总结:

上述简单实现了通讯录的增删改查功能,写出了一个简易通讯录

到此这篇关于C语言实现简易通讯录实例的文章就介绍到这了,更多相关C语言通讯录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言实现简易通讯录实例

本文链接: https://www.lsjlt.com/news/139330.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现简易通讯录实例
    目录一、问题描述二、功能介绍二、实现流程1.创建通讯录2.创建源文件test.c3.创建源文件contact.c4.删除通讯录联系人信息 (DelContact函数实现)5...
    99+
    2022-11-13
  • C语言链表实现简易通讯录
    本文实例为大家分享了C语言链表实现简易通讯录的具体代码,供大家参考,具体内容如下 链表实现通讯录功能: 1.添加–(输入 姓名,电话) 2.删除-- (输入人名,删除该人) 3.查询...
    99+
    2022-11-12
  • C语言实现简易通讯录完整流程
    目标:通讯录可以存放1000个人信息,人的信息:性别名字年龄电话住址 菜单打印 1.增加联系人 2.删除联系人 3.查找联系人(修改) 4.名字排序联系人 5.展示 6.清空 分析:...
    99+
    2022-11-13
  • 怎么用C语言脚本实现简易通讯录
    这篇文章主要介绍“怎么用C语言脚本实现简易通讯录”,在日常操作中,相信很多人在怎么用C语言脚本实现简易通讯录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用C语言脚本实现简易通讯录”的疑惑有所帮助!接下来...
    99+
    2023-06-29
  • C++实现简易通讯录功能
    目录实现功能一、定义通讯录和通讯录人员结构体二、实现通讯录输入菜单1.定义菜单函数:2.主函数循环体中循环展示菜单信息三、实现增删改查和清空通讯录功能四、运行截图展示本文实例为大家分...
    99+
    2022-11-13
  • C语言实现简单通讯录系统
    本文实例为大家分享了C语言通讯录系统(增删改查),供大家参考,具体内容如下 全部代码如下所示: #include <iostream> #include <s...
    99+
    2022-11-12
  • C语言实现简单通讯录功能
    本文实例为大家分享了C语言实现简单通讯录功能的具体代码,供大家参考,具体内容如下 1.存放联系人信息 2.信息:名字+年龄+性别+电话+住址 3.增加联系人 4.删除联系人 5.查找...
    99+
    2022-11-12
  • C语言实现简易通讯录(静态版本)的代码分享
    目录一、通讯录1.演示效果2.完整代码二、代码解析1.宏定义及结构体声明2.主菜单函数3.主函数4.查找函数5.初始化联系人信息6.添加联系人信息7.显示所有联系人信息8.删除指定联...
    99+
    2022-11-13
    C语言静态通讯录 C语言 通讯录
  • C++实现简易通讯录管理系统
    目录前言结构体联系人结构体通讯录结构体函数模块菜单添加联系人显示联系人判断联系人删除联系人查找联系人清空所有联系人main函数源代码运行结果本文实例为大家分享了C++实现简易通讯录管...
    99+
    2022-11-13
  • C++如何实现简易通讯录功能
    这篇文章主要讲解了“C++如何实现简易通讯录功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++如何实现简易通讯录功能”吧!实现功能提示:这里可以添加本文要记录的大概内容:通过c++语法...
    99+
    2023-07-02
  • 用C语言实现通讯录
    相信大家都见识过通讯录,通讯录里面一般有的内容为姓名,联系方式,年龄等信息。通讯录的主要功能有:增加、删除、查找、排序、修改、展示等操作。 那么具体应该用C语言怎么实现这个呢?接下来...
    99+
    2022-11-13
  • C语言实现简单通讯录管理系统
    C语言实现的通讯录管理系统,供大家参考,具体内容如下 设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:学号、姓名、电话号码、所在班级、寝室地址等),通信录数据类型定义为...
    99+
    2022-11-12
  • C语言实现通讯录的示例代码
    目录一、Contact.h文件二、Contact.c文件三、test.c文件一、Contact.h文件 包含函数的声明 #pragma once #define _CRT_SECUR...
    99+
    2022-11-13
    C语言实现通讯录 C语言 通讯录
  • C++实现简易的通讯录管理系统
    本文实例为大家分享了C++实现简易通讯录管理系统的具体代码,供大家参考,具体内容如下 1. 效果图 2. 需要的知识 C++基础知识(包括变量,运算符,顺序,分支,循环)数组函数指...
    99+
    2022-11-13
  • C语言实现通讯录程序
    本文实例为大家分享了C语言实现通讯录程序的具体代码,供大家参考,具体内容如下 设计要求: 可以存放1000个人的信息,每个人的信息包括姓名、年龄、性别、电话、住址 通讯录功能包括: ...
    99+
    2022-11-12
  • C语言实现简单的通讯录管理系统
    本文实例为大家分享了C语言实现通讯录管理系统的具体代码,供大家参考,具体内容如下 要实现一个通讯录管理系统,需要用到结构体、指针、文件操作、动态管理等内容。 效果展示: 实现思路 ...
    99+
    2022-11-13
  • C++简易通讯录系统实现流程详解
    目录实现功能定义通讯录和通讯录人员结构体实现通讯录输入菜单1.定义菜单函数:2.主函数循环体中循环展示菜单信息实现增删改查和清空通讯录功能运行截图展示实现功能 提示:这里可以添加本文...
    99+
    2022-11-13
  • C++如何实现简易通讯录管理系统
    这篇文章主要介绍“C++如何实现简易通讯录管理系统”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++如何实现简易通讯录管理系统”文章能帮助大家解决问题。前言建议收藏,亲手写一遍代码,感受指针神奇的...
    99+
    2023-07-02
  • Java实现简易界面通讯录
    前言 这个也是Java实验课程的一个作业,和Java实现简单的图形界面计算器一起做的,因为以前没有做过GUI编程,所以做的非常简陋,还有很多BUG,但是感觉当个作业也够了。 程序功能...
    99+
    2022-11-13
  • 详解C语言之实现通讯录
    目录基本思路和代码实现其他探讨总结基本思路和代码实现 为了代码清晰易读,我们创建一个Main.c源文件用来实现代码的基本逻辑。创建一个Contact.h源文件用于封装实现功能的函数,...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作