「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战」
丐版通讯录
什么是丐版,就是能达到基本温饱,而微星的丐版是性价比最高的丐版,当然我是高配哈哈哈,这个通讯录就是微星丐版,一些基本用户功能是有的,甚至还多了功能,排序,用户级别的控制内存,当然有些用户友好功能没写(例如输错三次强制退出啊什么的),这些得高配再写,不然就不叫丐版了,我相信大多数人用了没有说不好的,那些高配的不要来装了(文件处理的哈哈哈),高配我们家也有,不过还没到发售时间。不吹了,吃饭了
通讯录他能干什么呢
1.存放1000个好友信息
那么一个人的好友信息包含什么东西呢
包含姓名,电话,性别,住址,年龄
2.还可以增加好友信息
3.删除指定名字的好友信息
4.查找好友信息
5.修改好友信息
6.打印好友信息
7.排序好友信息
静态版本
test.c
测试通讯录各个功能
main.c
首先就是主函数
1 | c复制代码int main() |
image-20210923080715957
菜单
1 | c复制代码void menu() |
这里的菜单序号要想到枚举
contact.c
通讯录的实现
初始化通讯录函数InitContact
1 | c复制代码//初始化通讯录 |
添加通讯录函数AddContact
1 | c复制代码//添加通讯录 |
显示通讯录函数ShowContact
1 | c复制代码//不知道自己操作成没成功就show一下 |
image-20210923080753902
找人函数FindByName
1 | c复制代码//只给本文件内函数用 |
删除指定联系人函数DelContact
1 | c复制代码//删除指定的联系人 |
查找联系人函数SearchContact
1 | c复制代码//查找联系人 我就是查找不修改,所以要const |
修改指定联系人函数ModifyContact
1 | c复制代码//修改指定联系人 |
快排通讯录函数(年龄排序)QsortContact
1 | c复制代码//由于中文名在内存中存储方式的问题。所以我们选择年龄排序 |
contact.h
通讯录的声明
创建通讯录的一些宏
1 | c复制代码#define MAX 1000 |
选项(方便删改)
1 | c复制代码//选项,因为每次输入数字的话还要看看数字的意思,会很麻烦,所以枚举 |
image-20210923080632563
用户信息结构体
1 | c复制代码//创建用户信息类型包含姓名,电话,性别,住址,年龄 |
通讯录结构体
1 | c复制代码//通讯录类型,里面是通讯录信息 |
声明函数
1 | c复制代码//声明函数 |
动态版本
比其他丐版的优势
contact.h
改一:通讯录结构体
1 | c复制代码//动态版本 |
image-20210923082936339
contact.c
改二:初始化通讯录函数InitContact
1 | c复制代码//动态版本 |
image-20210923084747640
改三:增加通讯录函数AddContact
1 | c复制代码//动态版本 |
注意我们在扩容却没有释放,那我们什么时候释放呢,是不是只有程序结束也就是程序退出的时候释放,也就是Exit的时候
所以我们得写个销毁通讯录的函数
添加四:销毁通讯录函数DestroyContact
1 | c复制代码//销毁通讯录 |
完整代码
test.c
1 | c复制代码#define _CRT_SECURE_NO_WARNINGS 1 |
contact.c
1 | c复制代码#define _CRT_SECURE_NO_WARNINGS 1 |
contact.h
1 | c复制代码#pragma once |
跑图
image-20210923094800813
image-20210923101309076
image-20210923101705704
本文转载自: 掘金