C语言项目实战:通讯录 - 增删查改|动态分配|数据读取和保存

目录

目录

1. 功能介绍

2. 代码部分

2.1 main函数 - 'test.c'

2.2 结构体定义、函数声明 - 'contact.h'

2.3 函数定义 - 'contact.c' 

3. 项目获取


1. 功能介绍

该项目用C语言实现了一个字符界面的通讯录,在终端窗口运行,功能包括对联系人信息的增添,查找(按照姓名),修改,删除,展示,排序(按照年龄)的功能;

该代码的内存为动态分配,会随着输入数据的增多而动态分配,不用担心造成内存浪费的情况;

在结束进程时,程序还能保存联系人数据到本地文件(以二进制形式保存),并在下一次打开时从本地读取到程序内存中。

2. 代码部分

2.1 main函数 - 'test.c'

#define _CRT_SECURE_NO_WARNINGS 1

#include"contact.h"

int main()
{
	AddressBook con;

	int input = 0;

	InitialAddressBook(&con);

	do
	{
		system("cls");
		display();

		printf("Please input function choice:>");
		scanf("%d", &input);

		switch (input)
		{
		case ADD:
			addInfo(&con);
			break;
		case DEL:
			delInfo(&con);
			break;
		case SEARCH:
			searchInfo(&con);
			break;
		case MODIFY:
			modifyInfo(&con);
			break;
		case SHOW:
			showInfo(&con);
			break;
		case SORT:
			sortByAgeInfo(&con);
			break;
		case EXIT:
			saveData(&con);
			freeMemory(&con);
			break;
		default:
			printf("Invalid input! Please choose again!");
			Sleep(1500);
			break;
		}
	} while (input);
}

2.2 结构体定义、函数声明 - 'contact.h'

#define _CRT_SECURE_NO_WARNINGS 1
#define DEFAULT_CAPACITY 3
#define INC_SIZE 2

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>

struct PeoInfo
{
	char name[10];
	int age;
	char gender[6];
	char number[12];
};

typedef struct PeoInfo PeoInfo;

struct AddressBook
{
	PeoInfo* data;
	int size;
	int capacity;
};

typedef struct AddressBook AddressBook;

enum CHOOSE
{
	EXIT,
	ADD,
	DEL,
	SEARCH,
	MODIFY,
	SHOW,
	SORT
};

int InitialAddressBook(AddressBook* p);  //In
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值