有文件保存记录,可以在重启程序后加载相关文件,重新读取数据。
// 函数:删除记录
void del(link l) {
Node *p, *q; // p为要删除的节点,q为当前节点
char s[20]; // 存储要删除的姓名
q = l; // 从链表头开始
p = q->next; // p指向第一个实际节点
printf("请输入要删除的姓名:");
scanf("%s", s); // 输入要删除的姓名
while (p) {
if (strcmp(s, p->data.name) == 0) { // 查找与输入名字匹配的记录
q->next = p->next; // 删除p节点
free(p); // 释放p节点的内存
printf("删除成功!\n");
return; // 删除后退出
} else {
q = p; // 更新q为当前节点
p = q->next; // 更新p为下一个节点
}
}
printf("未找到记录!\n"); // 如果未找到记录,提示用户
}
// 函数:显示个人信息
void display(Node *p) {
printf("信息 \n");
printf("姓名: %s\n", p->data.name); // 显示姓名
printf("城市: %s\n", p->data.city); // 显示城市
printf("省: %s\n", p->data.province); // 显示省
printf("国家: %s\n", p->data.state); // 显示国家
printf("电话: %s\n", p->data.tel); // 显示电话号码
}