c语言实现通讯录(详解)

在初始c语言的一段时间后我们经常会遇到例如学生管理系统一类的大题,每次拿到的时候思路都是一团糟,这里我将和你一起学习如何用c语言实现通讯录,实现的功能包含增,删,改,查,展示。

1:构建菜单

首先我们需要创建三个文件,一个用于存放我们所需的函数一个用于测试,一个用于实现我们自己所写函数的功能。假如我们通讯录包含一个人的信息有名字,年龄,性别,电话,住址,要实现这样一个功能肯定是要用到我们的结构体的。

 如果我们只是有了一个通讯录,如果里面有5个人员信息的时候我们却不知道,那么后面的人员信息就不知道往什么地方存,那么我们就可以在定义一个变量用来记录我们当前通讯录里面有多少个人,那么就可以在定义一个结构体用来存我们的通讯录和通讯录里面有多少人。

 

通讯录的信息有了,接下来我们就需要的告诉用户使用我们通讯录的时候是怎样操作的,我们这里给上一个menu的菜单莱提示用户怎样进行操作,然后就是根据菜单的提升输入内容,然后我们就可以根据用户输入的内容来实现我们对应的功能。在此之间我们需要先初始化一下我们的通讯录,不然里面存的一些数字是一些随机数,影响我们后续的使用。

2:(函数ADD)增加人员信息的实现

在需要对结构体内部值修改的时候我们需要用到址调用,当我们把这样一个结构体类型传过来的我们就用一个结构体的指针来接收他。

 当我们拿到这个结构体的时候得确保一下如果这个通讯录满了的话我们就可以给用户提示一下当前通讯录满了

如果没满我就可以把人员信息往里面开始存了。存的方式也很简单,我们只需要那这这个指针变量去指向date的这个结构体里面的size就可以了

 3:(函数DEL)删除联系人的实现

删除联系人也很简单有两种方法一种是我们从数组里面找到这个数然后把后面的数一个一个往前面拿,另一个是把最后一个元素放在我们需要删除的那个元素位置在进行排序就完成了。那么这里我们采用第一种方法

 接下来我们要确定通过什么方式来找到结构体中对应的这个元素,假如我们就用名字的方法来删除所对应的元素,我们可以定义一个name变量,然后通过遍历这个结构体来找,如果找到了我们就把后面的数依次往前拿,如果遍历完都没有找到这个名字,那么就说明这个联系人不存在我们的通讯录

 4:(函数MODIFY)改的实现

改的实现我们也采用通过名字来遍历结构体,如果找到了我们就可以把他经行修改,如果找不到那就说明这个名字不存在。到了这里我们发现好像很多次我们都是需要通过名字来实现我们某个功能,那么我们这里是不是可以把查找某个人也封装成一个函数,每一次需要使用的时候就可以直接去调用它。我们假设如果这个函数返回一个-1就说明没有找到我们需要经行操作的那个人,如果是找到了,我们就返回找到了的那个下标。清楚了思路我们就可以实现这个函数了。

 有了这个函数之后,如果我们找到了这个名字那么就把他的下标返回来,然后直接通过下标对这个值经行修改。

 5:查的实现

对于查的实现同样,我们通过名字去寻找,当找到之后返回该值的下标,直接对下标所对应的值进行打印。

//头文件
#pragma once
#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
#define NUM 100	//通讯录大小
#define MAX 20	// 姓名
#define AGE 20
#define SEX 5		//性别
#define ADDR 30 // 电话
#define TELE 12 //住址
struct peoInfo
{
	char name[MAX];	//方便后续修改通讯录的大小
	char age[AGE];
	char sex[SEX];
	char tele[TELE];
	char addr[ADDR];
};
struct peoInfo date[NUM];
//通讯录类型
struct Contact
{
	struct peoInfo date[NUM];
	int size; //记录当前已经有的元素个数
};
enum option
{
	EXIT,		//用枚举莱替代case的1方便阅读
	ADD,
	DEL,
	SEARCT,
	MODIFY,
	SHOW,
	SORT
};
//初始化通讯录
void InitContact(struct Contact* ps);

//增加联系人
void AddContact(struct Contact* ps);

//删除联系人
void DelContact(struct Contact* ps);

//查找联系人
void SEARCTContact(const struct Contact* ps);

//展示联系人列表
void ShowContact(const struct Contact* ps);

//修改联系人
void MODIFYContact(struct Contact* ps);


//测试阶段
#include"contact.h"
void menu()
{
	printf("************************************\n");
	printf("**********1.add      2.del**********\n");
	printf("**********3.search   4.modify*******\n");
	printf("**********5.show     6.sort*********\n");
	printf("**********0.exit     ***************\n");
	printf("************************************\n");
}
int main()
{
	int input = 0;
	struct Contact con[NUM];//通讯录 包含300个元素和300个size
	InitContact(&con);	//把结构体赋初值
	do 
	{
		menu();
		printf("请选择>\n");
		scanf("%d", &input);
	switch (input)
		{
		case ADD:	//利用枚举的一次自增来代替1—6方便用户阅读
			AddContact(&con);	//增加联系人
			break;
		case DEL:
			DelContact(&con);
			break; 
		case SEARCT:
			SEARCTContact(&con);
			break;
		case MODIFY:
			MODIFYContact(&con);
			break;
		case SHOW:
			ShowContact(&con);
			break;
		case SORT:
			break;
		case EXIT:
			break;
		default:
			printf("选择错误,请重新输入》\n");
			break;
		}
	} while (input);
	return 0;
}

//功能的实现
#include"contact.h"
void InitContact(struct Contact* ps)//ps是con存放con的地址的指针
{
	memset(ps->date, 0,sizeof(ps->date));//把通讯录进行初始化
	ps->size = 0;//设置通讯录最开始的人
}
static int FindByName(const struct Contact* ps,char name[MAX])	//把每次需要查找的联系人封装一个函数
{
	int i = 0;
	for (i = 0; i < ps->size; i++)
	{
		if (0 == strcmp(ps->date[i].name, name))
		{
			return i;	//如果找到了 返回该联系人的下标
		}
	}
	return -1;		//找不到返回-1
}
void AddContact(struct Contact* ps)	
{
	if (ps->size == NUM)
	{
		printf("通讯录已满,无法继续增加\n");
	}
	else {
		printf("请输入需要增加联系人的名字\n");
		scanf("%s", ps->date[ps->size].name);//把增加的联系人放在ps指向的date结构里面的size下标

		printf("请输入需要增加联系人的年龄\n");
		scanf("%s", ps->date[ps->size].age);

		printf("请输入需要增加联系人的性别\n");
		scanf("%s", ps->date[ps->size].sex);

		printf("请输入需要增加联系人的电话\n");
		scanf("%s", ps->date[ps->size].tele);

		printf("请输入需要增加联系人的地址\n");
		scanf("%s", ps->date[ps->size].addr);
		ps->size++;
		printf("增加成功\n");
	}
}
void DelContact(struct Contact* ps)
{
	printf("请输入您要删除的联系人姓名\n");
	char name[MAX];//创建用来装删除人名字的数组
	scanf("%s", name);

	//找到返回名字所在元素下标 找不到返回-1
	int pos = FindByName(ps, name);
	if (-1 == pos)
		printf("要删除的人不存在\n"); //当i遍历完等于size的时候说明这个人不在通讯录
	else
	{
		int j = 0;
		for (j = pos; j < ps->size - 1; j++) //让j从找到的那个下标开始
		{
			ps->date[j] = ps->date[j + 1];//把结构体date的j的元素每一个都被覆盖
		}
		ps->size--;		//下标--让他指不到最后一个数
		printf("删除成功\n");
	}
}

void SEARCTContact(const struct Contact* ps)
{
	char name[MAX];
	printf("请输入需要查找人的姓名\n");
	scanf("%s", name);
	int pos = FindByName(ps, name);	
	if (-1 == ps->size)
	{
		printf("您查询的联系人不存在\n");
	}
	else
	{
		printf("姓名:%s\n", ps->date[pos].name);
		printf("年龄:%s\n", ps->date[pos].age);
		printf("性别:%s\n", ps->date[pos].sex);
		printf("电话:%s\n", ps->date[pos].tele);
		printf("住址:%s\n", ps->date[pos].addr);
	}
}

void MODIFYContact(struct Contact* ps)
{
	char name[MAX];
	printf("请输入需要修改人的名字\n");
	scanf("%s", name);
	int pos = FindByName(ps,name); if (-1 == pos)
		printf("要修改的人不存在\n");
	else
	{
		printf("请输入需要修改联系人的名字\n");
		scanf("%s", ps->date[pos].name);//把增加的联系人放在ps指向的date结构里面的size下标

		printf("请输入需要修改联系人的年龄\n");
		scanf("%s", &(ps->date[pos].age));

		printf("请输入需要修改联系人的性别\n");
		scanf("%s", ps->date[pos].sex);

		printf("请输入需要修改联系人的电话\n");
		scanf("%s", ps->date[pos].tele);

		printf("请输入需要修改联系人的住址\n");
		scanf("%s", ps->date[pos].addr);
		printf("修改成功\n");
	}
}

void ShowContact(const struct Contact* ps)
{
	if (ps->size == 0)	//如果通讯录没人的话就不需要打印
	{
		printf("当前通讯录暂无联系人\n");
	}
	else
	{
		//printf("请输入需要查询的姓名:>\n");
		//scanf("%s", ps->date->name);
		int i = 0;
			printf("如下是通讯录现有的联系人的联系人\n");
			printf("%s\t%5s\t%5s\t%12s\t%20s\n", "名字", "年龄", "性别", "电话", "住址");
			for (i = 0; i < ps->size; i++)
			{
				printf("%s\t%4s\t%5s\t%12s\t%22s\n",
					ps->date[i].name,
					ps->date[i].age,
					ps->date[i].sex,
					ps->date[i].tele,
					ps->date[i].addr
				);
			}
	}
}

 

  • 24
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
第二篇 语言基础篇 语法基本概念 C语言的数据输入与输出 C语言程序结构设计 结构化程序设计技巧 第三篇 算法模型篇 实例一 百钱百鸡问题 实例二 分油趣题 实例三 婚礼上的诺言 实例四 黑与白 实例五 歌德巴赫猜想 实例六 回文素数 实例七 中将彩球 实例八 魔术师的秘密 实例九 幸运的基督徒 实例十 汉诺诺 第四篇 数据结构篇 实例一 电子通讯录 实例二 电子通讯的排序 实例三 电话留言箱 实例四 后缀式四则计算器 第五篇 图形音乐篇 计算机作图概述 BGI图形函数作图 实例一 美丽的宝石图案 实例二 用系统定义的线型 实例三 绘制心形图案 实例四 填充图形的使用 实例五 图形方式下的文本输出 实例六 各种实用图表的制作 高级图形设计 实例七 奇怪的人脸 实例八 漫步在Mandelbrot集 实例九 海湾地貌图 实例十 歌曲《雪绒花》 实例十一 自动识谱程序 实例十二 后台演奏程序 第六篇 动画游戏篇 实例一 玩具脚踏车 实例二 星际遨游 实例三 小精灵游戏 实例四 智力九宫格 第七篇 加密解密篇 实例一 数据库文件加密 实例二 还原加密的Fox文件 实例三 伪随机数加解密 实例四 口令加密法 实例五 激光加密法 第八篇 程序界面篇 实例一 小日历 实例二 下拉式菜单 实例三 汉字库的生成与显示 附录一 math.inc 附录二 graphic.inc 附录三 reander.inc
第一篇 圆梦开篇 迈入程序设计的殿堂 怎样成为一名优秀的程序设计员 程序设计语言发展简史 选择您喜爱的程序设计语言 第二篇 语言基础篇 语法基本概念 C语言的数据输入与输出 C语言程序结构设计 结构化程序设计技巧 第三篇 算法模型篇 实例一 百钱百鸡问题 实例二 分油趣题 实例三 婚礼上的诺言 实例四 黑与白 实例五 歌德巴赫猜想 实例六 回文素数 实例七 中将彩球 实例八 魔术师的秘密 实例九 幸运的基督徒 实例十 汉诺诺 第四篇 数据结构篇 实例一 电子通讯录 实例二 电子通讯的排序 实例三 电话留言箱 实例四 后缀式四则计算器 第五篇 图形音乐篇 计算机作图概述 BGI图形函数作图 实例一 美丽的宝石图案 实例二 用系统定义的线型 实例三 绘制心形图案 实例四 填充图形的使用 实例五 图形方式下的文本输出 实例六 各种实用图表的制作 高级图形设计 实例七 奇怪的人脸 实例八 漫步在Mandelbrot集 实例九 海湾地貌图 实例十 歌曲《雪绒花》 实例十一 自动识谱程序 实例十二 后台演奏程序 第六篇 动画游戏篇 实例一 玩具脚踏车 实例二 星际遨游 实例三 小精灵游戏 实例四 智力九宫格 第七篇 加密解密篇 实例一 数据库文件加密 实例二 还原加密的Fox文件 实例三 伪随机数加解密 实例四 口令加密法 实例五 激光加密法 第八篇 程序界面篇 实例一 小日历 实例二 下拉式菜单 实例三 汉字库的生成与显示 附录一 math.inc 附录二 graphic.inc 附录三 reander.inc
第一篇 圆梦开篇 迈入程序设计的殿堂 怎样成为一名优秀的程序设计员 程序设计语言发展简史 选择您喜爱的程序设计语言 第二篇 语言基础篇 语法基本概念 C语言的数据输入与输出 C语言程序结构设计 结构化程序设计技巧 第三篇 算法模型篇 实例一 百钱百鸡问题 实例二 分油趣题 实例三 婚礼上的诺言 实例四 黑与白 实例五 歌德巴赫猜想 实例六 回文素数 实例七 中将彩球 实例八 魔术师的秘密 实例九 幸运的基督徒 实例十 汉诺诺 第四篇 数据结构篇 实例一 电子通讯录 实例二 电子通讯的排序 实例三 电话留言箱 实例四 后缀式四则计算器 第五篇 图形音乐篇 计算机作图概述 BGI图形函数作图 实例一 美丽的宝石图案 实例二 用系统定义的线型 实例三 绘制心形图案 实例四 填充图形的使用 实例五 图形方式下的文本输出 实例六 各种实用图表的制作 高级图形设计 实例七 奇怪的人脸 实例八 漫步在Mandelbrot集 实例九 海湾地貌图 实例十 歌曲《雪绒花》 实例十一 自动识谱程序 实例十二 后台演奏程序 第六篇 动画游戏篇 实例一 玩具脚踏车 实例二 星际遨游 实例三 小精灵游戏 实例四 智力九宫格 第七篇 加密解密篇 实例一 数据库文件加密 实例二 还原加密的Fox文件 实例三 伪随机数加解密 实例四 口令加密法 实例五 激光加密法 第八篇 程序界面篇 实例一 小日历 实例二 下拉式菜单 实例三 汉字库的生成与显示 附录一 math.inc 附录二 graphic.inc 附录三 reander.inc
第一篇 圆梦开篇 迈入程序设计的殿堂 怎样成为一名优秀的程序设计员 程序设计语言发展简史 选择您喜爱的程序设计语言 第二篇 语言基础篇 语法基本概念 C语言的数据输入与输出 C语言程序结构设计 结构化程序设计技巧 第三篇 算法模型篇 实例一 百钱百鸡问题 实例二 分油趣题 实例三 婚礼上的诺言 实例四 黑与白 实例五 歌德巴赫猜想 实例六 回文素数 实例七 中将彩球 实例八 魔术师的秘密 实例九 幸运的基督徒 实例十 汉诺诺 第四篇 数据结构篇 实例一 电子通讯录 实例二 电子通讯的排序 实例三 电话留言箱 实例四 后缀式四则计算器 第五篇 图形音乐篇 计算机作图概述 BGI图形函数作图 实例一 美丽的宝石图案 实例二 用系统定义的线型 实例三 绘制心形图案 实例四 填充图形的使用 实例五 图形方式下的文本输出 实例六 各种实用图表的制作 高级图形设计 实例七 奇怪的人脸 实例八 漫步在Mandelbrot集 实例九 海湾地貌图 实例十 歌曲《雪绒花》 实例十一 自动识谱程序 实例十二 后台演奏程序 第六篇 动画游戏篇 实例一 玩具脚踏车 实例二 星际遨游 实例三 小精灵游戏 实例四 智力九宫格 第七篇 加密解密篇 实例一 数据库文件加密 实例二 还原加密的Fox文件 实例三 伪随机数加解密 实例四 口令加密法 实例五 激光加密法 第八篇 程序界面篇 实例一 小日历 实例二 下拉式菜单 实例三 汉字库的生成与显示 附录一 math.inc 附录二 graphic.inc 附录三 reander.inc
第二篇 语言基础篇 语法基本概念 C语言的数据输入与输出 C语言程序结构设计 结构化程序设计技巧 第三篇 算法模型篇 实例一 百钱百鸡问题 实例二 分油趣题 实例三 婚礼上的诺言 实例四 黑与白 实例五 歌德巴赫猜想 实例六 回文素数 实例七 中将彩球 实例八 魔术师的秘密 实例九 幸运的基督徒 实例十 汉诺诺 第四篇 数据结构篇 实例一 电子通讯录 实例二 电子通讯的排序 实例三 电话留言箱 实例四 后缀式四则计算器 第五篇 图形音乐篇 计算机作图概述 BGI图形函数作图 实例一 美丽的宝石图案 实例二 用系统定义的线型 实例三 绘制心形图案 实例四 填充图形的使用 实例五 图形方式下的文本输出 实例六 各种实用图表的制作 高级图形设计 实例七 奇怪的人脸 实例八 漫步在Mandelbrot集 实例九 海湾地貌图 实例十 歌曲《雪绒花》 实例十一 自动识谱程序 实例十二 后台演奏程序 第六篇 动画游戏篇 实例一 玩具脚踏车 实例二 星际遨游 实例三 小精灵游戏 实例四 智力九宫格 第七篇 加密解密篇 实例一 数据库文件加密 实例二 还原加密的Fox文件 实例三 伪随机数加解密 实例四 口令加密法 实例五 激光加密法 第八篇 程序界面篇 实例一 小日历 实例二 下拉式菜单 实例三 汉字库的生成与显示 附录一 math.inc 附录二 graphic.inc 附录三 reander.inc
第一篇 圆梦开篇 迈入程序设计的殿堂 怎样成为一名优秀的程序设计员 程序设计语言发展简史 选择您喜爱的程序设计语言 第二篇 语言基础篇 语法基本概念 C语言的数据输入与输出 C语言程序结构设计 结构化程序设计技巧 第三篇 算法模型篇 实例一 百钱百鸡问题 实例二 分油趣题 实例三 婚礼上的诺言 实例四 黑与白 实例五 歌德巴赫猜想 实例六 回文素数 实例七 中将彩球 实例八 魔术师的秘密 实例九 幸运的基督徒 实例十 汉诺诺 第四篇 数据结构篇 实例一 电子通讯录 实例二 电子通讯的排序 实例三 电话留言箱 实例四 后缀式四则计算器 第五篇 图形音乐篇 计算机作图概述 BGI图形函数作图 实例一 美丽的宝石图案 实例二 用系统定义的线型 实例三 绘制心形图案 实例四 填充图形的使用 实例五 图形方式下的文本输出 实例六 各种实用图表的制作 高级图形设计 实例七 奇怪的人脸 实例八 漫步在Mandelbrot集 实例九 海湾地貌图 实例十 歌曲《雪绒花》 实例十一 自动识谱程序 实例十二 后台演奏程序 第六篇 动画游戏篇 实例一 玩具脚踏车 实例二 星际遨游 实例三 小精灵游戏 实例四 智力九宫格 第七篇 加密解密篇 实例一 数据库文件加密 实例二 还原加密的Fox文件 实例三 伪随机数加解密 实例四 口令加密法 实例五 激光加密法 第八篇 程序界面篇 实例一 小日历 实例二 下拉式菜单 实例三 汉字库的生成与显示 附录一 math.inc 附录二 graphic.inc 附录三 reander.inc
以下是一个使用C语言实现通讯录管理系统的示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_CONTACTS 100 typedef struct { char name[50]; char phone[20]; char qq[20]; } Contact; Contact contacts[MAX_CONTACTS]; int numContacts = 0; void addContact() { if (numContacts >= MAX_CONTACTS) { printf("通讯录已满,无法添加新联系人。\n"); return; } Contact newContact; printf("请输入联系人姓名:"); scanf("%s", newContact.name); printf("请输入联系人电话号码:"); scanf("%s", newContact.phone); printf("请输入联系人QQ号码:"); scanf("%s", newContact.qq); contacts[numContacts] = newContact; numContacts++; printf("联系人添加成功!\n"); } void deleteContact() { if (numContacts == 0) { printf("通讯录为空,无法删除联系人。\n"); return; } char name[50]; printf("请输入要删除的联系人姓名:"); scanf("%s", name); int foundIndex = -1; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, name) == 0) { foundIndex = i; break; } } if (foundIndex == -1) { printf("未找到该联系人。\n"); return; } for (int i = foundIndex; i < numContacts - 1; i++) { contacts[i] = contacts[i + 1]; } numContacts--; printf("联系人删除成功!\n"); } void searchContact() { if (numContacts == 0) { printf("通讯录为空,无法查找联系人。\n"); return; } char keyword[50]; printf("请输入要查找的关键字:"); scanf("%s", keyword); int found = 0; for (int i = 0; i < numContacts; i++) { if (strstr(contacts[i].name, keyword) != NULL || strstr(contacts[i].phone, keyword) != NULL || strstr(contacts[i].qq, keyword) != NULL) { printf("姓名:%s\n", contacts[i].name); printf("电话号码:%s\n", contacts[i].phone); printf("QQ号码:%s\n", contacts[i].qq); printf("\n"); found = 1; } } if (!found) { printf("未找到匹配的联系人。\n"); } } void modifyContact() { if (numContacts == 0) { printf("通讯录为空,无法修改联系人。\n"); return; } char name[50]; printf("请输入要修改的联系人姓名:"); scanf("%s", name); int foundIndex = -1; for (int i = 0; i < numContacts; i++) { if (strcmp(contacts[i].name, name) == 0) { foundIndex = i; break; } } if (foundIndex == -1) { printf("未找到该联系人。\n"); return; } Contact modifiedContact; printf("请输入新的联系人姓名:"); scanf("%s", modifiedContact.name); printf("请输入新的联系人电话号码:"); scanf("%s", modifiedContact.phone); printf("请输入新的联系人QQ号码:"); scanf("%s", modifiedContact.qq); contacts[foundIndex] = modifiedContact; printf("联系人修改成功!\n"); } void browseContacts() { if (numContacts == 0) { printf("通讯录为空。\n"); return; } printf("通讯录中的联系人:\n"); for (int i = 0; i < numContacts; i++) { printf("姓名:%s\n", contacts[i].name); printf("电话号码:%s\n", contacts[i].phone); printf("QQ号码:%s\n", contacts[i].qq); printf("\n"); } } void clearContacts() { numContacts = 0; printf("通讯录已清空。\n"); } void sortContacts() { if (numContacts == 0) { printf("通讯录为空,无法排序。\n"); return; } for (int i = 0; i < numContacts - 1; i++) { for (int j = 0; j < numContacts - i - 1; j++) { if (strcmp(contacts[j].name, contacts[j + 1].name) > 0) { Contact temp = contacts[j]; contacts[j] = contacts[j + 1]; contacts[j + 1] = temp; } } } printf("通讯录已按姓名排序。\n"); } int main() { int choice; while (1) { printf("通讯录管理系统\n"); printf("1. 添加联系人\n"); printf("2. 删除联系人\n"); printf("3. 查找联系人\n"); printf("4. 修改联系人\n"); printf("5. 浏览联系人\n"); printf("6. 清空通讯录\n"); printf("7. 按姓名排序\n"); printf("0. 退出\n"); printf("请输入操作编号:"); scanf("%d", &choice); switch (choice) { case 1: addContact(); break; case 2: deleteContact(); break; case 3: searchContact(); break; case 4: modifyContact(); break; case 5: browseContacts(); break; case 6: clearContacts(); break; case 7: sortContacts(); break; case 0: printf("感谢使用通讯录管理系统,再见!\n"); exit(0); default: printf("无效的操作编号,请重新输入。\n"); break; } printf("\n"); } return 0; } ``` 该通讯录管理系统具有以下功能: 1. 添加联系人:输入联系人的姓名、电话号码和QQ号码,将其添加到通讯录中。 2. 删除联系人:根据联系人的姓名,从通讯录中删除对应的联系人。 3. 查找联系人:根据关键字,在通讯录中查找匹配的联系人,并显示其姓名、电话号码和QQ号码。 4. 修改联系人:根据联系人的姓名,修改对应联系人的姓名、电话号码和QQ号码。 5. 浏览联系人:显示通讯录中所有联系人的姓名、电话号码和QQ号码。 6. 清空通讯录:清空通讯录中的所有联系人。 7. 按姓名排序:按照联系人的姓名对通讯录进行排序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值