🦄个人主页:-雷阵雨-
⚙️操作环境:Visual Studio 2019
目录
一:前言
本文章将使用C语言实现通讯录的系统,并且储存个人的信息 电话 性别 年龄 电话 地址。并且对通讯录进行增删查改 排序 打印操作。
二:通讯录的实现
1:通讯录的准备
(1):菜单的实现
首先建立一个通讯录,建立一个菜单很重要,菜单能便于用户对通讯录进行操作。
代码如下:
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"); }
(2):通讯录所建立的结构体
在这里我们需要利用结构体来实现前言中通讯录功能以及联系人的信息,我们需要使用两个结构体。
代码如下:
typedef struct PeoInfo { char name[namemax]; int age; char sex[sexmax]; char tele[telemax]; char addr[addrmax]; }PeoInfo; //通讯录 typedef struct Contact { PeoInfo data[max]; int sz; }Contact;
第一个结构体 PeoInnfo 是个人信息的存储。
第二个结构体中 PeoInfo data[max] 是用来作为第一个结构体为类型的数组,sz是记录这个结构体存放联系人的个数。
(3):菜单里面功能的实现
用户需要选择菜单里面的选项来对通讯录进行一系列功能,我们在菜单里面的对功能的编号为0到6,所以我选择使用枚举的方法,将操作变成数字,然后利用switch选择语句来实现功能。
tips:在这里我也犯了个错误,因为枚举是库函数,还有宏,他们需要大写,不然后面会出现重定义。
代码如下:
enum select { EXIT, add, del, search, modify, show, sort }; test() { int input = 0; //首先要有通讯录存放的位置; Contact con; initContact(&con); do { menu(); printf("请选择:> "); scanf("%d", &input); switch(input) { case add: addContact(&con);//在data中输入 所以传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); } int main() { test(); return 0; }
(4):全局变量的定义
为了后期方便我们处理数组的大小,我们可以利用宏来实现
代码如下:
#define max 100 #define namemax 20 #define sexmax 5 #define telemax 20 #define addrmax 30
2:通讯录功能的实现
(1):通讯录的初始化
刚开始我们建立了通讯录的结构体,但里面存放的是我们不需要的变量,我们需要把这个结构体初始化ÿ