C语言:通讯录

这篇博客介绍了如何使用C语言编写一个通讯录管理系统。内容包括定义`contact.h`头文件,设置常量、枚举和结构体,以及实现添加、删除、查找和显示联系人等功能。在`test.c`中,利用结构体和枚举增强代码可读性,而在`contact.c`中实现了具体的函数操作,如初始化通讯录、按名字查找和删除联系人等。
摘要由CSDN通过智能技术生成

contact.h

作为整个项目的头文件,该代码段具有以下功能:

1、引入项目所需要的头文件;

2、定义MAX和MAX_...等常量,在后续调整程序时,只需要调整头文件中的定义 ;

3、定义枚举,在switch语句中将0、1、2、3、4等数字替换为EXIT、ADD、DEL、SEARCH等代称,增强代码可读性;

4、定义结构体变量,用于存储通讯录各类信息和当前通讯录的大小;

5、声明函数。

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<string.h>

#define MAX 10

#define MAX_NAME 20
#define MAX_SEX 5
#define MAX_TELE 12
#define MAX_ADDR 30

enum Option
{
	EXIT,//0
	ADD,//1
	DEL,
	SEARCH,
	MODIFY,
	SHOW,
	SORT
};
//加入枚举,可以将switch语句中的case指定名称,增强代码可读性

struct PeoInfo
{
	char name[MAX_NAME];
	int age;
	char sex[MAX_SEX];
	char tele[MAX_TELE];
	char addr[MAX_ADDR];

};
//通讯录类型
struct Contact//将以上结构体与size相结合
{
	struct PeoInfo data[MAX];//存放一个信息
	int size;//记录当前已经有的元素个数
};

//声明函数
void InitContact(struct Contact* ps); //变量类型为结构体指针
void AddContact(struct Contact* ps);
void ShowContact(const struct Contact* ps);
void DelContact(struct Contact* ps);
void SearchContact(const struct Contact* ps);
void ModifyContact(struct Contact* ps);

test.c

作为通讯录程序的逻辑主代码段

1、创建通讯录时,注意要使用结构体Contact,因为其包含size;

2、通讯录在创建完成后要初始化,将所有内容初始化为0;

3、在函数中需要用到结构体时,结构体传参要传地址;

4、do...while循环里使用switch语句(通过枚举将0123456转换为exit、add等可读性高的代码);

#include"contact.h"

//通讯录
//存放1000个好友的信息
//名字、电话、性别、地址、年龄
//增加好友信息
//删除指定名字的好友信息
//查找好友信息
//修改好友信息
//打印好友信息
//排序

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;  //用于存放用户选择
	int size = 0;   //用于存放当前通讯录的大小

	//创建通讯录
	struct Contact con;//con就是通讯录,存放MAX个人的信息,1000个元素的数和size。
	//初始化通讯录
	InitContact(&con);//函数可以改变con,要传址
	do
	{
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case ADD:
			AddContact(&am
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值