设计目标:写一个通讯录,每个人的信息包括:1.名字,2.年龄,3.性别,4.电话,5.住址
//功能:1. 增加一个人的信息
2. 删除一个指定的联系人
3. 查找一个指定的联系人
4. 修改一个指定的联系人
5. 显示通讯录中所有人的信息
6. 保存
7.销毁
0. 退出
静态版本 - 一次开辟1000个元素的连续空间
文件的版本 - 数据可以存储到文件中,不至于丢失,动态增长 - 按需开辟
成果图:增加:
查找:
删除:
保存:
销毁,展示:
1.通过结构保存个人信息和通讯录(静态动态两种建立方法)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<errno.h>
#define MAX 1000
#define NAME_MAX 20
#define SEX_MAX 5
#define TELL_MAX 12
#define ADDRESS_MAX 30
#define CAPACITY_SZ 3
typedef struct Personal //个人信息结构体
{
char name[NAME_MAX];
int age;
char sex[SEX_MAX];
char tell[TELL_MAX];
char address[ADDRESS_MAX];
}Persona;
//struct Contact //通讯录静态
//{
// Persona data[MAX]; //每创建一个就包含1000个 个人
// int sz;
//};
struct Contact //通讯录
{
Persona *data;
int sz;
int capacity; //最大容量
};
2.主函数:逻辑是创建通讯录--->初始化--->菜单--->功能,这里用枚举代替数字选择方便调试,更加直观。
enum Features
{
Exit = 0,
add,
del,
find,
mod,
show,
save,
Destroy,
};
void menu()
{
printf("*****************************\n");
printf("****1.add **