主页:114514的代码大冒险
qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ )
文章目录
前言
OK,在对结构体有了进一步的认识之后,博主尝试制作了一个简易版的概念模型通讯录
这个项目主要涉及结构的进阶使用。OK,那么就开始正文吧
一、通讯录的大概的功能涉及
我们希望这个通讯录能够:
存储用户的信息,增加目录内容,删减目录内容,查找某一个联系人,修改某一联系人的信息,
对目录的内容有所显示,对内容进行排序
二、建设步骤
1.建立任务文件
标准的工程要求把,函数声明与函数自身要分开,而且一般建立三个文件,于是便有了接下来的
三噶文件:contact.c(实现函数功能) contact.h(对标准库引用以及函数声明) test.c(对函数进行引用,并引导工程主体逻辑的建立)
如下图(此为vs2022的解决方案资源管理器的截图)所示:
2.菜单(引导用户的基本使用)
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");
printf("*************************************\n");
printf("*************************************\n");
}
接下来就是按照顺序部署功能
3. 容器建设(存储用户的信息)
#define MAX 100
#define MAX_NAME 12
#define MAX_SEX 6
#define MAX_TELE 12
typedef struct peoinfo
{
char name[MAX_NAME];
char tele[MAX_TELE];
int age;
char sex[MAX_SEX];
}peoinfo;
typedef struct Contact
{
peoinfo data[100];
int sz;
}Contact;
这一段要在头文件中应用(以至于其他两个文件可以使用),对于peoinfo 是英文people information(个人信息)的简写,还有就是对于name tele等数组的初试创建的容量,一定要使用宏来处理 (好处:1.使用在头文件的宏,可以使其他两个文件灵活使用这些MAX_SEX,MAX_NAME等数据 2.便于日后的修改,比如这里将MAX(通讯录最多存储的个人信息数的人数)设置成了100,以后扩容会非常方便)
4.add(增加目录内容)
sz 意味着目录存储信息的人数
void addcontact(Contact* pc)
{
if ((pc->sz) == M