IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> C语言实现通讯录小程序 -> 正文阅读

[移动开发]C语言实现通讯录小程序

1.结构体定义

通讯录能保存MAX个联系人,联系人用结构体定义,通讯录也定义成结构体。通讯录中有一个联系人数组,以及当前通讯录中存储的联系人数量。
联系人的信息有名字,地址,电话号码,性别。

通讯录能实现联系人的增删查改,搜索。

#define MAX_NAME 20
#define MAX_ADRESS 20
#define MAX_NUMS 11
#define MAX_SEX 8

typedef struct People
{
	char name[MAX_NAME];
	char adress[MAX_ADRESS];
	char nums[MAX_NUMS];
	char sex[MAX_SEX];
}Peo;

typedef struct Contant
{
	Peo data[MAX];
	int sz;
}Contant;

先打印菜单,通过用户输入的数字来进行操作

void menu()
{
	printf("****************************\n");
	printf("***  1.Add    2.Del  *******\n");
	printf("***  3.Search 4.Modified  **\n");
	printf("***  5.Show   0.exit  ******\n");
	printf("****************************\n");
}

2.通讯录初始化

创建一个结构体变量con,对con里的sz初始化为0,data数组也全初始化为1

void InitCon(Contant* pc)//对通讯录的初始化
{
	assert(pc);
	pc->sz = 0;
	memset(pc->data, 0, sizeof(pc->data));
}

3.联系人信息的添加

将输入联系人信息的过程封装成一个函数

void ModInfo(Contant* pc,int i)
{
	printf("输入姓名:>\n");
	scanf("%s", pc->data[i].name);
	printf("输入地址:>\n");
	scanf("%s", pc->data[i].adress);
	printf("输入电话:>\n");
	scanf("%s", pc->data[i].tele);
	printf("输入性别:>\n");
	scanf("%s", pc->data[i].sex);
}
void AddConPeoInfo(Contant* pc)
{
	if (pc->sz == MAX)
	{
		printf("通讯录满了无法添加\n");
		return;
	}
	ModInfo(pc, pc->sz);
	pc->sz++;
	printf("添加联系人成功\n");
}

4.查找联系人

通过输入联系人的姓名,遍历数组查找,找到返回其在data数组中的下标,找不到返回-1

int FindConPeoInfo(Contant* pc)
{
	if (pc->sz == 0)
	{
		printf("联系人数量为0,不能搜索\n");
		return -1;
	}

	printf("输入联系人姓名\n");
	char name[MAX_NAME] = { 0 };
	scanf("%s", name);
	int i = 0;
	for (i = 0; i < pc->sz; i++)
	{
		if (strcmp(name, pc->data[i].name) == 0)
			return  i;
	}
	return -1;
}

5.删除联系人

输入联系人姓名,找到联系人姓名之后将后面的数据向前覆盖,最后把sz-1

void DeleConPeoInfo(Contant* pc)
{
	if (pc->sz == 0)
	{
		printf("无法删除,联系人数量为0\n");
		return;
	}
	int ret = FindConPeoInfo(pc);
	if (ret != -1)
	{
		int j = ret;
		for (j = ret; j < pc->sz - 1; j++)
		{
			pc->data[j] = pc->data[j + 1];
		}
		pc->sz--;
		printf("删除联系人成功\n");
	}
	else
	{
		printf("删除联系人不存在\n");
		return;
	}
}

6.展示信息

void ShowConProInfo(Contant* pc)
{
	printf("%-10s\t%-15s\t%-13s\t%-5s\n",
		"姓名", "地址", "电话", "性别");
	int i = 0;
	for (i = 0; i < pc->sz; i++)
	{
		printf("%-10s\t%-15s\t%-13s\t%-5s\n",
			pc->data[i].name, pc->data[i].adress, pc->data[i].tele, pc->data[i].sex);
	}
}

7.修改信息

void ModConPeoInfo(Contant* pc)
{
	int ret = FindConPeoInfo(pc);
	if (ret != -1)
	{
		ModInfo(pc, ret);
		printf("修改信息成功\n");
	}
	else
	{
		printf("要修改的联系人不存在\n");
		return;
	}
}
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-04 11:08:59  更:2022-02-04 11:10:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:02:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码