广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言与C++动态通讯录超详细实现流程
  • 625
分享到

C语言与C++动态通讯录超详细实现流程

2024-04-02 19:04:59 625人浏览 薄情痞子
摘要

目录1、思路以及要实现的功能2、详细步骤2.1 打印菜单界面(建一个源文件test.c)2.2 主函数2.3 初始化函数与加载函数2.4 增加联系人函数AddContact2.5 删

1、思路以及要实现的功能

通讯录就是为了存储许多联系人的不同方面的信息如名字、电话、地址、年龄、性别等,除此之外,还要实现增删查改还有打印通讯录等功能,所以我们先把要实现的功能列出来:

  • 增加联系人
  • 删除联系人
  • 搜索联系人
  • 修改联系人信息
  • 按年龄大小排序联系人
  • 打印联系人信息

2、详细步骤

2.1 打印菜单界面(建一个源文件test.c)

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

2.2 主函数

写出我们的主函数,利用do-while循环,并把即将要实现的功能先放在主函数内

在写函数之前,我们也要先定义一个结构体来存放联系人的信息还有联系人个数以及通讯录的最大容量,所以我们建一个头文件,称为contact.h,用来存放这些信息。

#pragma once
#include<stdio.h>
#define NAME_MAX 20//名字的最大长度
#define SEX_MAX 6
#define TELE_MAX 12//号码的最大位数
#define ADDR_MAX 30//地址的最大位数
#define ADD_PEO 1//每次拓展通讯录的人数
#define PEO_NUM 3//通讯录的初始容量
//类型的定义
typedef struct Peoinfo
{
	char name[NAME_MAX];
	char sex[SEX_MAX];
	int age;
	char tele[TELE_MAX];
	char addr[ADDR_MAX];
}Peoinfo;
typedef struct Contact
{
	Peoinfo *data;//指向动态申请的空间,存放联系人的信息
	int sz;//记录通讯录中有效信息的个数
	int capacity;//记录当前通讯录的最大容量
}Contact

除此之外,我们可以利用枚举将函数的选项封装一下!(存放在test.c)

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

这样子我们就可以写主函数啦!

#include "contact.h"
int main()
{
	Contact con;//创建通讯录
	InitContact(&con);//初始化通讯录
	int input=0;
	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:
			SortContact(&con);//排序
			break;
		case PRINT:
			PrintContact(&con);//打印通讯录
			break;
		case EXIT:
			SaveContact(&con);//保存通讯录
			DestoryContact(&con);//销毁信息
			printf("退出通讯录!\n");
			break;
		default:
			printf("选择错误!\n");
			break;
		}
	}while(input);
	return 0;
}

好啦!这样子我们就把轮廓写好了,现在就要一个个的实现每个函数的功能了!

2.3 初始化函数与加载函数

初始化函数InitContact与加载函数LoadContact

这里我们要先利用动态内存函数位信息开辟内存,然后用文件操作打开我们保存信息的文件中读取信息。

void InitContact(Contact* pc)
{
	pc->data=(Peoinfo*)malloc(PEO_NUM * sizeof(Peoinfo));
	if(pc->data==NULL)
	{
		perror("InitContact");
		return;
	}
	pc->sz=0;
	pc->capacity=PEO_NUM;

	LoadContact(pc);//加载已有的通讯录
}
void LoadContact(Contact* pc)
{
	File* pf = fopen("contact.txt","r");//创建或访问contact.txt读取信息
	if(pf == NULL)
	{
		perror("LoadContact");
		return;
	} 
	Peoinfo tmp={0};
	while(fread(&tmp,sizeof(Peoinfo),1,pf))
	{
		if(pc->sz==pc->capacity)
		{
			Peoinfo* ptr=(Peoinfo*)realloc(pc,(ADD_PEO+pc->capacity)sizeof(Peoinfo));
			if(ptr!=NULL)
			{
				pc->data=ptr;
				pc->capacity+=ADD_PEO;
			}
			else
			{
				perror("AddContact");
				printf("读取通讯录失败!\n");
				return;
			}
		}
		pc->data[pc->sz]=tmp;
		pc->sz++;
	}
	fclose(pf);
	pf=NULL;
}

这里我们创建一个Contact.c源文件来存放各自函数的功能,然后将函数的各个声明放到Contact.h中,以下也如此。

2.4 增加联系人函数AddContact

void AddContact(Contact* pc)
{
	if(pc->sz==pc->capacity)
	{
		(Peoinfo*)ptr=(Peoinfo*)realloc(pc,(ADD_PEO+pc->capacity) * sizeof(Peoinfo));
		if(ptr!=NULL)
		{
			pc->data=ptr;
			pc->capacity+=ADD_PEO;
		}
		else
		{
			perror("AddContact");
			printf("读取通讯录失败!\n");
			return;
		}
	}
	printf("请输入名字:");
	scanf("%s", pc->data[pc->sz].name);
	printf("请输入性别:");
	scanf("%s", pc->data[pc->sz].sex);
	printf("请输入年龄:");
	scanf("%d", &(pc->data[pc->sz].age));
	printf("请输入电话:");
	scanf("%s", pc->data[pc->sz].tele);
	printf("请输入住址:");
	scanf("%s", pc->data[pc->sz].addr);
	pc->sz++;
	printf("增加成功!\n");
}

2.5 删除联系人函数DelContact

在实现该函数之前,我们发现,删除联系人函数与接下来的查找联系人、修改信息等函数有个共同的特点,那就是要先判断这个要做动作的联系人存不存在,所以考虑这点我们决定先封装一个FindByName函数用来判断这个人以及返回这个人信息的位置。

#include <string.h>	
static int FindByName(Contact* pc,char*name)
{
	int i=0;
	for(i=0;i<pc->sz;i++)
	{
		if(strcmp(pc->data[i].name,name)==0)
			return i;
	}
	return -1;
}

接下来我们就来实现删除联系人函数:

void DelContact(Contact* pc)
{
	char delname[NAME_MAX]={0};
	if (pc->sz == 0)
	{
		printf("通讯录为空,无须删除!\n");
		return;
	}
	printf("请输入要删除人的名字:");
	scanf("%s", delname);
	//查找要删除的人
	int pos=FindByName(pc,delname);
	if(pos==-1)
	{
		printf("查无此人的信息!\n");
		return;
	}
	else
	{
		int i=0;
		for(i=pos;i<pc->sz-1;i++)
		{
			pc->data[i]=pc->data[i+1];
		}
		pc->sz--;
		printf("删除联系人成功!\n");
	}
}

2.6 查找联系人函数与打印函数

查找联系人函数SearchContact与打印函数PrintContact

查找函数的功能是查找通讯录中是否有此人,并将其打印出来,所以我们可以顺便的把打印函数PrintContact实现。

void PrintContact(Contact* pc)
{
	//打印标题
	printf("****************************************************************************\n");
	printf("|姓名                |性别  |年龄  |电话号码    |地址                      |\n");
	if (pc->sz == 0)
	{
		printf("通讯录无信息!\n");
		printf("****************************************************************************\n");
		return;
	}
	for (int i = 0; i < pc->sz; i++)
	{
		printf("|%-20s|%-6s|%-6d|%-12s|%-26s|\n", pc->data[i].name, pc->data[i].sex, pc->data[i].age, pc->data[i].tele, pc->data[i].addr);
	}
	printf("****************************************************************************\n");
	printf("\n");
}

接下来实现查找联系人函数:

void SearchContact(Contact* pc)
{
	char findname[NAME_MAX] = { 0 };
	if (pc->sz == 0)
	{
		printf("通讯录为空,无须删除!\n");
		return;
	}
	printf("请输入要查找的人的名字:");
	scanf("%s", findname);
	int pos=FindByName(pc,findname);
	if (pos == -1)
	{
		printf("查无此人的信息!\n");
		return;
	}
	printf("****************************************************************************\n");
	printf("|姓名                |性别  |年龄  |电话号码    |地址                      |\n");
	printf("|%-20s|%-6s|%-6d|%-12s|%-26s|\n", pc->data[pos].name, pc->data[pos].sex, pc->data[pos].age, pc->data[pos].tele, pc->data[pos].addr);
	printf("****************************************************************************\n");
	printf("\n");
}

2.7 修改信息函数ModifyContact

void ModifyContact(Contact* pc)
{
	char findname[NAME_MAX] = { 0 };
	if (pc->sz == 0)
	{
		printf("通讯录为空,无须删除!\n");
		return;
	}
	printf("请输入要查找的人的名字:");
	scanf("%s", findname);
	int pos=FindByName(pc,findname);
	if (pos == -1)
	{
		printf("查无此人的信息!\n");
		return;
	}
	printf("请输入名字:");
	scanf("%s", pc->data[pos].name);
	printf("请输入性别:");
	scanf("%s", pc->data[pos].sex);
	printf("请输入年龄:");
	scanf("%d", &(pc->data[pos].age));
	printf("请输入电话:");
	scanf("%s", pc->data[pos].tele);
	printf("请输入住址:");
	scanf("%s", pc->data[pos].addr);
	printf("修改成功!\n");
}

2.8 排序函数SortContact

这里使用的是按年龄排序(冒泡排序),读者可按自己的需求实现不同的方法函数。

void SortContact(Contact* pc)
{
	if (pc->sz == 0)
	{
		printf("通讯录无信息,无法排序!\n");
		return;
	}
	int i=0,j=0;
	for(i=0;i<pz->sz-1;i++)
	{
		int flag=1;
		for(j=0;j<pz->sz-1-i;j++)
		{
			if(pz->data[j].age>pz->data[[j+1].age)
			{
				Peoinfo tmp[2];
				tmp[0] = pc->data[j];
				pc->data[j] = pc->data[j + 1];
				pc->data[j + 1] = tmp[0];
				flag=0;
			}
		}
		if(flag==1)
			break;
	}
	printf("排序完成!\n");
}

2.9 保存信息函数与销毁数据函数

保存信息函数SaveContact与销毁数据函数DestoryContact

通讯录的大体功能我们都实现了,剩下的就是保存我们的信息到文本中与将各个数据置零了。我们先实现保存函数SaveContact:

void SaveContact(Contact* pc)
{
	File* pf=fopen("contact.txt","w");
	if(pf==NULL)
	{
		perror("SaveContact");
		return;
	}
	int i=0;
	for(i=0;i<pc->sz;i++)
	{
		fwrite(pc->data+i,sizeof(Peoinfo),1,pf);
	}
	fclose(pf);
	pf=NULL;
}

实现下面的销毁数据函数DestoryContact:

void DestoryContact(Contact* pc)
{
	free(pc->data);
	pc->data=NULL;
	pc->sz=0;
	pc->capacity=0;
}

完结撒花!!

3、源码

test.c

#define _CRT_SECURE_NO_WARNINGS
#include "contact.h"
void menu()
{
	printf("********************************\n");
	printf("******  1.add    2.delete ******\n");
	printf("******  3.search 4.modify ******\n");
	printf("******  5.sort   6.print  ******\n");
	printf("************ 0.exit  ***********\n");
	printf("*******************************\n");
}
enum Option
{
	EXIT,
	ADD,
	DEL,
	SEARCH,
	MODIFY,
	SORT,
	PRINT
};
int main()
{
	Contact con;//创建通讯录
	InitContact(&con);//初始化通讯录
	int input = 0;
	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:
			SortContact(&con);
			break;
		case PRINT:
			PrintContact(&con);//打印通讯录
			break;
		case EXIT:
			SaveContact(&con);//保存通讯录
			DestoryContact(&con);
			printf("退出通讯录!\n");
			break;
		default:
			printf("选择错误!\n");
			break;
		}
	} while (input);
	return 0;
}

contact.h

#pragma once
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define NAME_MAX 20
#define SEX_MAX 6
#define TELE_MAX 12
#define ADDR_MAX 30
#define ADD_PEO 1
#define PEO_NUM 3
//#define PEO_MAX 1000
//类型的定义
typedef struct Peoinfo
{
	char name[NAME_MAX];
	char sex[SEX_MAX];
	int age;
	char tele[TELE_MAX];
	char addr[ADDR_MAX];
}Peoinfo;
//动态版本
typedef struct Contact
{
	Peoinfo *data;//指向动态申请的空间,存放联系人的信息
	int sz;//记录通讯录中有效信息的个数
	int capacity;//记录当前通讯录的最大容量
}Contact;
//初始化通讯录
void InitContact(Contact* pc);
//增加人的信息
void AddContact(Contact* pc);
//打印通讯录
void PrintContact(const Contact* pc);
//输出人的信息
void DelContact(Contact* pc);
//按名字查找
int FindByName(Contact* pc, char* name);
//查找信息
void SearchContact(Contact* pc);
//修改信息
void ModifyContact(Contact* pc);
//排序信息
void SortContact(Contact* pc);
//销毁通讯录
void DestoryContact(Contact* pc);
//保存通讯录
void SaveContact(Contact* pc);
//加载通讯录
void LoadContact(Contact* pc);

contact.c

#define _CRT_SECURE_NO_WARNINGS
#include "contact.h"
void LoadContact(Contact* pc)
{
	FILE* pf = fopen("contact.txt", "r");
	if (pf == NULL)
	{
		perror("LoadContact");
		return;
	}
	Peoinfo tmp = { 0 };
	while (fread(&tmp, sizeof(Peoinfo), 1, pf))
	{
		if (pc->sz == pc->capacity)
		{
			Peoinfo* ptr = (Peoinfo*)realloc(pc->data, (pc->capacity + ADD_PEO) * sizeof(Peoinfo));
			if (ptr != NULL)
			{
				pc->data = ptr;
				pc->capacity+=ADD_PEO;
			}
			else
			{
				perror("AddContact");
				printf("读取通讯录失败!\n");
				return;
			}
		}
		pc->data[pc->sz] = tmp;
		pc->sz++;
	}
	fclose(pf);
	pf = NULL;
}
void InitContact(Contact* pc)
{
	pc->data = (Peoinfo*)malloc(PEO_NUM * sizeof(Peoinfo));
	if (pc->data == NULL)
	{
		perror("InitContact");
		return;
	}
	pc->sz = 0;
	pc->capacity = PEO_NUM;
	//加载通讯录
	LoadContact(pc);
}
void AddContact(Contact* pc)
{
	if (pc->sz == pc->capacity)
	{
		Peoinfo* ptr = (Peoinfo*)realloc(pc->data, (pc->capacity + ADD_PEO) * sizeof(Peoinfo));
		if (ptr != NULL)
		{
			pc->data=ptr;
			pc->capacity += ADD_PEO;
			printf("增加容量成功!\n");
		}
		else
		{
			perror("AddContact");
			printf("增加联系人失败!\n");
			return;
		} 
	}
	printf("请输入名字:");
	scanf("%s", pc->data[pc->sz].name);
	printf("请输入性别:");
	scanf("%s", pc->data[pc->sz].sex);
	printf("请输入年龄:");
	scanf("%d", &(pc->data[pc->sz].age));
	printf("请输入电话:");
	scanf("%s", pc->data[pc->sz].tele);
	printf("请输入住址:");
	scanf("%s", pc->data[pc->sz].addr);
	pc->sz++;
	printf("增加成功!\n");
}
void PrintContact(const Contact* pc)
{
	//打印标题
	printf("****************************************************************************\n");
	printf("|姓名                |性别  |年龄  |电话号码    |地址                      |\n");
	if (pc->sz == 0)
	{
		printf("通讯录无信息!\n");
		printf("****************************************************************************\n");
		return;
	}
	for (int i = 0; i < pc->sz; i++)
	{
		printf("|%-20s|%-6s|%-6d|%-12s|%-26s|\n", pc->data[i].name, pc->data[i].sex, pc->data[i].age, pc->data[i].tele, pc->data[i].addr);
	}
	printf("****************************************************************************\n");
	printf("\n");
}
static int FindByName(Contact* pc,char* name)
{
	for (int i = 0; i < pc->sz; i++)
	{
		if (strcmp( pc->data[i].name,name) == 0)
			return i;
	}
	return -1;
}
void DelContact(Contact* pc)
{
	char delname[NAME_MAX]={0};
	if (pc->sz == 0)
	{
		printf("通讯录为空,无须删除!\n");
		return;
	}
	printf("请输入要删除人的名字:");
	scanf("%s", delname);
	//查找要删除的人
	int pos =FindByName(pc, delname);
	if (pos == -1)
	{
		printf("查无此人的信息!\n");
		return;
	}
	for (int i = pos; i < pc->sz-1; i++)
	{
		pc->data[i] = pc->data[i + 1];
	}
	pc->sz--;
	printf("删除成功!\n");
}
void SearchContact(Contact* pc)
{
	char findname[NAME_MAX] = { 0 };
	if (pc->sz == 0)
	{
		printf("通讯录为空,无须删除!\n");
		return;
	}
	printf("请输入要查找的人的名字:");
	scanf("%s", findname);
	int pos = FindByName(pc, findname);
	if (pos == -1)
	{
		printf("查无此人的信息!\n");
		return;
	}
	printf("****************************************************************************\n");
	printf("|姓名                |性别  |年龄  |电话号码    |地址                      |\n");
	printf("|%-20s|%-6s|%-6d|%-12s|%-26s|\n", pc->data[pos].name, pc->data[pos].sex, pc->data[pos].age, pc->data[pos].tele, pc->data[pos].addr);
	printf("****************************************************************************\n");
	printf("\n");
}
void ModifyContact(Contact* pc)
{
	char findname[NAME_MAX] = { 0 };
	if (pc->sz == 0)
	{
		printf("通讯录为空,无须删除!\n");
		return;
	}
	printf("请输入要查找的人的名字:");
	scanf("%s", findname);
	int pos = FindByName(pc, findname);
	if (pos == -1)
	{
		printf("查无此人的信息!\n");
		return;
	}
	printf("请输入名字:");
	scanf("%s", pc->data[pos].name);
	printf("请输入性别:");
	scanf("%s", pc->data[pos].sex);
	printf("请输入年龄:");
	scanf("%d", &(pc->data[pos].age));
	printf("请输入电话:");
	scanf("%s", pc->data[pos].tele);
	printf("请输入住址:");
	scanf("%s", pc->data[pos].addr);
	printf("修改成功!\n");
}
void SortContact(Contact* pc)
{
	if (pc->sz == 0)
	{
		printf("通讯录无信息,无法排序!\n");
		return;
	}
	for (int i = 0; i < pc->sz - 1; i++)
	{
		int flag = 1;
		for (int j = 0; j < pc->sz - 1 - i; j++)
		{
			if (pc->data[j].age > pc->data[j + 1].age)
			{
				Peoinfo tmp[2];
				tmp[0] = pc->data[j];
				pc->data[j] = pc->data[j + 1];
				pc->data[j + 1] = tmp[0];
				flag = 0;
			}
		}
		if (flag == 1)
			break;
	}
	printf("排序完成!\n");
}
void DestoryContact(Contact* pc)
{
	free(pc->data);
	pc -> data = NULL;
	pc->capacity = 0;
	pc->sz = 0;
}
void SaveContact(Contact* pc)
{
	FILE* pf = fopen("contact.txt", "w");
	if (pf == NULL)
	{
		perror("SaveContact");
		return;
	}
	for (int i = 0; i < pc->sz; i++)
	{
		fwrite(pc->data + i, sizeof(Peoinfo), 1, pf);
	}
	fclose(pf);
	pf = NULL;
}

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

--结束END--

本文标题: C语言与C++动态通讯录超详细实现流程

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

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

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

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

下载Word文档
猜你喜欢
  • C语言与C++动态通讯录超详细实现流程
    目录1、思路以及要实现的功能2、详细步骤2.1 打印菜单界面(建一个源文件test.c)2.2 主函数2.3 初始化函数与加载函数2.4 增加联系人函数AddContact2.5 删...
    99+
    2022-11-13
  • C语言静态与动态通讯录的实现流程详解
    目录静态通讯录contact.hcontact.ctest.c动态通讯录contact.hcontact.cqsort.ctest.c本次通讯录的代码已经放到我的Gitee仓库中,感...
    99+
    2022-11-12
  • C语言动态与静态分别实现通讯录详细过程
    目录前言:一.静态通讯录的实现1.环境的分工逻辑2.待实现的功能3.contact.h4.contact.c5.test.c6.实现效果二.通讯录动态的实现1.contact.h2....
    99+
    2022-11-13
  • C语言实现可增容动态通讯录详细过程
    目录创建可自动扩容的通讯录添加用户信息删除用户信息查找联系人修改用户信息以名字将用户排序销毁通讯录创建可自动扩容的通讯录 这里我们想实现通讯录自动扩容,不够了能扩大内存,变得稍微有点...
    99+
    2022-11-13
  • C语言实现一个文件版动态通讯录流程详解
    目录通讯录思维导图一、Contact.h二、Contact.c1.初始化通讯录2.检查容量是否满3.添加联系人4.显示联系人5.查找联系人6.修改联系人7.通过名字来排序联系人8.保...
    99+
    2023-01-29
    C语言动态通讯录 C语言通讯录
  • C语言模拟实现动态通讯录
    目录1.模拟实现通讯录总体架构一览图2.文件执行任务3.分模块实现 测试模块 test.c头文件 功能函数声明 contact.h功能函数逐一实现1.模拟实现通讯录总体架构...
    99+
    2022-11-12
  • C语言实现通讯录的详细代码
    目录(一)实现思路1.通讯录功能2.模块化实现各方面的功能3.代码实现(二)源代码A.test.cB.Contact.hC.Contact.c(一)实现思路 1.通讯录功能 添加好友...
    99+
    2022-11-12
  • C语言实现通讯录功能的流程与代码
    用C语言制作一个拥有添加,删除,查找,修改,排序,清空,打印功能的通讯录 用分模块的方法来实现这个通讯录,函数的声明,类型的声明放在一个.h文件中,函数的实现放在一个.c文件中,在主...
    99+
    2022-11-13
  • C语言动态与静态分别实现通讯录的方法
    这篇文章主要讲解了“C语言动态与静态分别实现通讯录的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言动态与静态分别实现通讯录的方法”吧!一.静态通讯录的实现1.环境的分工逻辑由于过程...
    99+
    2023-06-29
  • C语言怎么模拟实现动态通讯录
    本篇内容主要讲解“C语言怎么模拟实现动态通讯录”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言怎么模拟实现动态通讯录”吧!目录模拟实现通讯录总体架构一览图文件执行任务分模块实现 测...
    99+
    2023-06-20
  • C语言静态与动态通讯录的实现方法是什么
    这篇文章主要讲解了“C语言静态与动态通讯录的实现方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言静态与动态通讯录的实现方法是什么”吧!静态通讯录在我们学习完C语言的结构体、指针...
    99+
    2023-06-25
  • 详解C语言之实现通讯录
    目录基本思路和代码实现其他探讨总结基本思路和代码实现 为了代码清晰易读,我们创建一个Main.c源文件用来实现代码的基本逻辑。创建一个Contact.h源文件用于封装实现功能的函数,...
    99+
    2022-11-12
  • C语言实现简易通讯录完整流程
    目标:通讯录可以存放1000个人信息,人的信息:性别名字年龄电话住址 菜单打印 1.增加联系人 2.删除联系人 3.查找联系人(修改) 4.名字排序联系人 5.展示 6.清空 分析:...
    99+
    2022-11-13
  • C语言实现通讯录程序
    本文实例为大家分享了C语言实现通讯录程序的具体代码,供大家参考,具体内容如下 设计要求: 可以存放1000个人的信息,每个人的信息包括姓名、年龄、性别、电话、住址 通讯录功能包括: ...
    99+
    2022-11-12
  • C语言静态版通讯录的设计与实现
    目录1. 配置运行环境2. 通讯录的实现2.1 通讯录的功能目录2.2 增加信息功能代码的实现2.3 显示信息功能代码的实现2.4 删除信息功能代码的实现2.5 查询信息功能代码的实...
    99+
    2023-05-16
    C语言静态版通讯录 C语言通讯录实现
  • C语言多功能动态通讯录实现示例
    目录前言一、预设置1,头文件的包含2,联系人的信息格式3,通讯录的信息格式4,通讯录相关宏定义5,通讯录功能枚举6,基本主函数二、功能函数实现1,初始化函数2,查找函数3,打印菜单4...
    99+
    2023-01-31
    C语言多功能动态通讯录 C语言 通讯录
  • 新手向超详细的C语言实现动态顺序表
    目录一、各个函数接口的实现 1.1 不太好‘'李姐‘'的“容量检测函数” 1.2 在任意位置插入的函数"坑!" 1.3 在任意位置删除数据的函数 1.4 其余简单的接口函数 二、顺序...
    99+
    2022-11-12
  • C语言实现动态版通讯录的代码分享
    目录前言初始化函数具体实现代码检查容量函数实现代码销毁通讯录函数实现代码动态版通讯录完整代码前言 哈喽各位友友们,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!我仅已...
    99+
    2023-01-12
    C语言动态版通讯录 C语言动态通讯录 C语言 通讯录
  • C语言实现贪吃蛇超详细教程
    目录一、游戏说明1.1游戏按键说明1.2计分系统二、游戏运行2.1游戏效果展示2.2一个报错的纠正2.3 游戏代码三、游戏框架构建3.1游戏界面的大小3.2蛇头和蛇身3.2.1蛇头3...
    99+
    2022-11-12
  • C语言实现通讯录系统程序
    本文实例为大家分享了C语言实现通讯录系统程序的具体代码,供大家参考,具体内容如下 前言 利用链表增、删、改、查功能以及文件来完成通讯录系统。通讯录中包含联系人的基本信息:姓名、联系电...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作