实现一个通讯录:通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名,性别,年龄,电话号码,地址
要求实现下列功能:
- 添加联系人信息
- 删除指定联系人信息
- 查找指定联系人信息
- 修改指定联系人信息
- 显示所有联系人信息
- 清空所有联系人
- 以名字排序所有联系人
- 保存联系人到文件
- 加载联系人
分为三个文件:
- contact.h:负责函数的声明
- contact .c:负责函数的实现
- test.c:负责整个通讯录的测试
源代码如下:
contact.h
#pragma once
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#define MAX_Name 20
#define MAX_Sex 3
#define MAX_Tele 12
#define MAX_Addr 30
#define MAX 1000
enum Option
{
EXIT,
ADD,
DEL,
SEARCH,
MODIFY,
SHOW,
SORT,
EMPTY
};
typedef struct Info
{
char name[MAX_Name];
int age;
char sex[MAX_Sex];
char tele[MAX_Tele];
char addr[MAX_Addr];
}Info;
//静态方法
//typedef struct Contact
//{
// int sz;
// struct Info data[MAX];
//}Contact;
//动态方法
typedef struct Contact
{
Info *data;//指向动态开辟的空间
int sz;//当前有效消息的个数
int capacity;//容量
}Contact;
void InitContact(Contact *pcon);
void DestroyContact(Contact *pcon);
void AddContact(Contact *pcon);
int Check_Capacity(Contact *pcon);
void ShowContact(const Contact *pcon);
void DelContact(Contact *pcon);
void SearchContact(const Contact *pcon);
void ModifyContact(Contact *pcon);
void SortContact(Contact *pcon);
void EmptyContact(Contact *pcon);
void SaveContact(Contact *pcon);
void LoadContact(Contact *pcon);
contact.c
#define _CRT_SECURE_NO_WARNINGS 1
#include "contact.h"
#include <