C语言通讯录系统——结构体数组(2)
运行结果
起始进入菜单页面
添加用户
展示用户数据
删除数据
查找数据
修改数据
修改数据前先进行查找,如果输入的在数据中没找到提示未找到!
如果能找到数据进行修改
对数据按姓名首字母顺序进行排序
清空数据
代码分析
头文件引入
#pragma once
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
预定义
姓名最大输入20个字符,邮编省份最多输入30个字符(这里偷了懒,应该分开命名,但考虑他们差不多就偷懒了,开发中建议分开命名),电话号码最多输入11个字符,地址最多输入30个字符,通讯录容量1000
#define MAX_Name 20
#define MAX_post 30
#define MAX_Tele 11
#define MAX_Addr 30
#define MAX 1000
枚举菜单名
enum Option
{
EXIT,
ADD,//增加
DEL,//删除
SEARCH,//搜索
MODIFY,//修改
SHOW,//显示
SORT,
EMPTY//清空
};
定义结构体数组
typedef struct Info//每条通讯录成员的具体内容
{
char name[MAX_Name];//姓名
char tele[MAX_Tele];//电话
char addr[MAX_Addr];//街道
char city[MAX_Addr];//城市
char province[MAX_post];//省份
char postcode[MAX_post];//邮编
}Info;
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);
转载自:https://juejin.cn/post/7034861717658009631