C语言 简易通讯录C语言实现

这篇博客通过C语言实现了一个简易通讯录,涵盖了指针、结构体、动态内存管理和文件操作等基础知识。功能包括添加、删除、查找、修改联系人,以及联系人排序和文件的读写。提供了contact.h、contact.c和test.c三个源文件作为实现示例。
一、概述

  通讯录的实现其中包括了指针、结构体、动态内存管理、文件的读写操作等知识点,是对这些知识点应用巩固的非常好的例子;
  通讯录功能如下:

  • 添加联系人
  • 删除联系人
  • 查找联系人
  • 修改联系人
  • 显示所有联系人
  • 加载联系人
  • 保存联系人
  • 联系人排序
二、代码如下

  contact.h

#ifndef CONTACT_H
#define CONTACT_H

#define NAME_MAX 20
#define SEX_MAX 10
#define TEL_MAX 12
#define ADDR_MAX 20
#define MEMBER_MAX 1

typedef struct info
{
   
   
	char name[NAME_MAX];
	char sex[SEX_MAX];
	int age;
	char tele[TEL_MAX];
	char addr[ADDR_MAX];
}info;

typedef struct contact
{
   
   
	info *data;
	int size;
	int capacity;
}contact, *pcontact;

//初始化通讯录
void InitContact(pcontact list);
//添加联系人
void AddContact(pcontact list);
//删除联系人
void DellContact(pcontact list);
//查找联系人
void FindContact(pcontact list);
//修改联系人
void ModContact(pcontact list);
//显示所有联系人
void ShowContact(pcontact list);
//联系人排序(选择法)
void SortContact(pcontact list);
//检查容量
int CheckSize(pcontact list);
//查找联系人在数组data第几个位置
int FindContactAddr(pcontact list);
//从文件中加载联系人到内存
void LoadContact(pcontact list);
//将联系人从内从中保存到文件
void SaveContact(pcontact list);

#endif

  contact.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "contact.h"

//初始化通讯录
void InitContact(pcontact list)
{
   
   
	list->data = (info *)malloc(sizeof(info)* MEMBER_MAX);
	list->size = 0;
	list->capacity = MEMBER_MAX;
	//每次初始化是加载一遍文件,防止最新录入的在保存在文件时覆盖上次
	//打开程序时保存的信息
	LoadContact(list);
}

//添加联系人
void AddContact(pcontact list)
{
   
   
	info tmp_member;
	if (CheckCapacity(list) == 0)
	{
   
   
		printf("成员已满,添加失败!");
		return;
	}

	printf("请输入姓名:");
	scanf("%s", tmp_member.name);
	printf("请输入性别:");
	scanf("%s", tmp_member.sex);
	printf("请输入年龄:");
	scanf("%d", &tmp_member.age);
	printf("请输入电话:");
	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值