一、整体思路
1.需要一个结构体,用来表示人的基本信息,再需要一个结构体用来存放人的基本信息,声明一个结构体的全局变量访问结构体成员。
2.定义一个枚举enum,表示通讯录各种执行的操作,用户选择时调用对应的函数。
3.主要的函数:结构体的初始化函数,通讯录的增、删、改、查、显示、退出、清除函数,通讯录用文件的保存、加载函数。
4.main函数:按步骤调用主要的函数,主要需要一个选择语句switch,进行各种操作的选择。
5.具体的实现细节:
1.存放人的基本信息用mallco动态存储,再使用时需要将数据保存到新开辟的内存中,将原来的
释放;
2.需要一个size用来记录通讯录中人的个数,方便执行其他操作;
3.显示通讯录内容需要根据字典序;(给人按字母排序)
4.清除是进行一次判断,确定用户是否删除所有;
5.文件操作:用户每执行一个关于人的基本信息变化的操作,就将所有信息加载并保存到文件中,
注意一下文件每执行一次关闭一次。
二、具体完整代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 1024
//通讯录
typedef struct Person
{
char name[N];
char sex[N];
char age[N];
char phone[N];
char address[N];
}Person;
typedef struct Addrbook
{
Person* person_info;
int size;
int capacity;
}Addrbook;
Addrbook g_addr_book;
enum
{
EXIT = 0,
ADD = 1,
FIND = 2,
DEL = 3,
MODFITY = 4,
PRINT = 5,
CLEAR = 6
};
//初始化通讯录
void Init()
{
g_addr_book.size = 0;
g_addr_book.capacity = 5;
g_addr_book.person_info = (Person*)malloc(sizeof
(Person)*g_addr_book.capacity);
}
int Menu()
{
printf("(>^ω^<)喵\n")