个人通讯录管理系统
用 C、结构体、链表与本地文件保存,完成一个具备增删改查、查询与年龄排序能力的命令行通讯录管理系统。

PROJECT

01 / 项目快照
独立开发者
C 语言程序设计基础技能实践
C · Visual Studio 2019 · Linked List · Local File Storage
CRUD · 查询 · 年龄排序 · 本地持久化
02 / 我实现了什么
从联系人记录到完整操作流程。
我使用 C 语言实现了一个命令行通讯录管理系统,将联系人信息组织为结构体与链表,支持新增、查询、修改、删除与浏览,并将信息保存到文件中,使程序重新打开后仍能够读取已有联系人。同时提供按年龄升序或降序浏览功能。
03 / 系统设计
菜单驱动,链表承接数据。
报告中的总体运行框图将主页面连接到浏览、修改、查找、删除与插入操作;浏览路径进入链表冒泡排序,修改和删除路径复用查询信息。报告列出了 SystemMenu()、printlist()、DeleteAtNumber()、fixNode() 与 CheckAt() 等函数。

04 / 关键实现
在链表上按年龄排序。
报告记录,最初曾考虑数组排序,但为了避免预先分配过多空间,最终选择链表,并把冒泡排序的比较与数据交换逻辑应用到节点遍历中。程序提供年龄升序与降序两种选择,再遍历链表输出结果。这不是高性能排序的尝试,而是一次对数据结构、节点遍历、数据交换和排序控制流的早期实践。
if (cp->data.age > tp->next->data.age) {
struct Student change = tp->next->data;
tp->next->data = cp->data;
cp->data = change;
}05 / 运行证据
保留程序真正运行过的痕迹。
以下均为 2021 年原始课程报告中提取的 Console 运行截图;点击可放大查看。
06 / 实现细节
插入
按姓名、年龄、电话、住址顺序采集一条联系人记录,并加入通讯录。
浏览与排序
提供按年龄升序或降序排序,再遍历链表输出联系人。
查询
以姓名或电话号码定位目标联系人,供后续确认与操作复用。
修改
查询到目标记录并确认无误后,更新联系人信息。
删除
查询到目标记录并确认无误后,执行删除。
本地文件保存
联系人信息写入本地文件;报告记录程序重新进入后仍可查看已保存信息。
07 / 我的工作
从题目要求拆分菜单与功能范围
设计联系人字段,并以结构体和链表组织记录
实现新增、浏览、查询、修改、删除与年龄排序
实现本地文件保存,调试完整程序流程,并编写课程设计报告与运行说明
08 / 现在回看
这个项目最大的价值不在技术复杂度,而在于我第一次完整经历了需求拆解、数据结构选择、功能实现、调试、持久化与结果验证的全过程。
报告也诚实记录了局限:代码不够简练,部分功能存在重复代码,当时尚未充分掌握更复杂的数据结构。若今天重新实现,我会进一步拆分数据访问与业务逻辑、减少重复代码,并增加更系统的输入校验——这些是今天对 2021 年工作所做的反思,而非当时已经实现的能力。