C语言 —— 通讯录

引言

通讯录是C语言中非常简单且实用的小项目,涉及C语言中很多基础知识,能够独立写出通讯录这个小项目,证明自身对C语言知识有了一定的掌握。今天来探讨通讯录三种版本的实现

一、静态版通讯录

contact.h

pragma once 是防止头文件在程序运行时在内存的反复调用

string.h 头文件是调用字符串函数

stdio.h 就不必多说了

assert.h 头文件是在引用assert函数,防止一些指针为NULL,影响程序运行

 enum 是用来枚举出通信录八大主功能,增加代码可读性和规范性

在contact.h里面直接将contact.c中大量出现的变量进行定义,之后遇到这些变量就不用重复定义了,提高代码效率

 创建一个结构体,存放联系人信息

再创建一个结构体

data [MAX] 是一个能存放1000个Ploinfo(也就是上一个结构体)信息的数组

sz是用来纪录联系人个数

#pragma once 
#include<string.h>
#include<stdio.h>
#include<assert.h>
//类型的声明


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


#define MAX 1000
#define NAME_MAX 20
#define SEX_MAX 5
#define ADDR_MAX 30
#define TELE_MAX 12


typedef struct Ploinfo
{
	char name[NAME_MAX];  //姓名
	char sex[SEX_MAX];    //性别
	int age;              //年龄
	char addr[ADDR_MAX];  //地址
	char tele[TELE_MAX];  //电话号码
}Ploinfo;


typedef struct Contact
{
	struct Ploinfo data[MAX]; //存放联系人的数组
	int sz;                   //统计联系人的个数
}Contact;






//函数的声明


//contact 初始化
void InitContact(Contact* pc);


//Contact 增加联系人的信息
void AddContact(Contact* pc);


//Contact 打印联系人的信息
void PrintContact(const Contact* pc);//只是打印,不会改变Contact里面的数据,所以可以const来修饰


//Contact 删除指定联系人
void DelContact(Contact* pc);


//Contact 查找指定联系人
void SearchContact(Contact* pc);


//Contact 修改指定联系人信息
void ModifyContact(Contact* pc);


//Contact 通讯录信息排序
void sortContact(Contact* pc);


//Contact 通讯录信息清空
void ClearContact(Contact* pc);

contact.h

contact.h是我们自主创建的头文件,里面包含了我们运行contact.c需要的所有头文件和变量

在contact.c开头只需要引用这一个contact.h头文件就行了

InitContact函数是用来初始化通讯录的,在添加联系人信息之前,需要把data和sz全都初始化为0

assert是防止pc为NULL

memset是字符串函数,这里的作用是把data [MAX] 里面的空间全部设置为0

AddContact函数是用来添加联系人信息的

在添加之前需确认通讯录空间是否足够,如果不够是无法添加的

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极 衍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值