C语言实现静态通讯录
一、静态通讯录的实现
1.为实现方便理解通讯录代码编写,我们可以通过将代码分块完成
2.这里就以VS编辑器为例,新建两个源文件contact.c和text.c,还要新建一个头文件contact.h
3.text.c用于测试通讯录、contact.c用于相关函数的实现、contact.h用于函数声明和类型定义
由于该通讯录是静态开辟的,内存大小不能灵活改变,所以下篇文章说明如何改成动态版本的通讯录
//text.c代码实现 #define _CRT_SECURE_NO_WARNINGS 1 #include "contact.h" void menu() { printf("*****************************************\n"); printf("****** 1. add 2. del *******\n"); printf("****** 3. search 4. modify *******\n"); printf("****** 5. show 6. sort *******\n"); printf("****** 0. exit *******\n"); printf("*****************************************\n"); } int main() { int input = 0; //创建通讯录 struct Contact con;//con就是通讯录,里边包含:1000的元素的数和size //初始化通讯录 InitContact(&con); // do { menu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case ADD: AddContact(&con); break; case DEL: DelContact(&con); break; case SEARCH: SearchContact(&con); break; case MODIFY: ModifyContact(&con); break; case SHOW: ShowContact(&con); break; case SORT: //自主实现 /*SortContact(&con);*/ break; case EXIT: printf("退出通讯录\n"); break; default: printf("选择错误\n"); break; } } while (input); return 0; }
//contact.h代码实现 #include <stdio.h> #include <string.h> enum Option { EXIT,//0 ADD, //1 DEL, SEARCH, MODIFY, SHOW, SORT }; struct PeoInfo { char name[MAX_NAME]; int age; char sex[MAX_SEX]; char tele[MAX_TELE]; char addr[MAX_ADDR]; }; //通讯录类型 //contact嵌套了一个peoinfo,所以date数组里面的每一个元素都包含(年龄、名字、性别、电话、地址) struct Contact { struct PeoInfo data[MAX];//存放1000个信息 int size;//记录当前已经有的元素个数 }; //声明函数 //初始化通讯录的函数 void InitContact(struct Contact* ps); //增加一个信息到通讯录 void AddContact(struct Contact* ps); //打印通讯录中的信息 void ShowContact(const struct Contact* ps); //删除指定的联系人 void DelContact(struct Contact* ps); //查找指定的人的信息 void SearchContact(const struct Contact* ps); //修改指定联系人 void ModifyContact(struct Contact* ps);