1、《人口普查管理系统》小案例介绍
《人口普查管理系统》小案例的项目简介:
人口普查管理系统是一个用于收集、管理和分析人口普查数据的软件系统。该系统的目标是提供准确、及时的人口数据,以支持决策制定、规划和资源分配等工作。在应用上该系统可以方便地添加、查找、更新和删除人口数据,支持人口数据的实时更新和维护。
训练知识点:
【1】链表的数据结构的定义
【2】链表的数据存储方式
【3】链表数据的读写操作
为了学习上的方便,我们不定义过多的字段,只包含id(身份证号)和name(姓名)。为了提高大家的熟练度和巩固链表的知识点,初学者可以按照步骤跟着我做,先不用考虑优化等之类的问题,先做到熟能生巧这一步。
步骤1:引入相关库文件;定义数据结构
#include <stdio.h>
#include <stdlib.h>
typedef struct Person{
char *id; //身份证号
char *name; //姓名
struct Person *next;
} Node;
//定义3个数据指针节点p1、p2、p3
//定义头指针head和用于运算的自由指针p
Node *p1 ,*p2 ,*p3 , *head ,*p;
步骤2:数据的新增操作
//新增人口数据,并生成链表
void addPerson(){
p1 = (Node*)malloc(sizeof(Node));
p2 = (Node*)malloc(sizeof(Node));
p3 = (Node*)malloc(sizeof(Node));
p1->id = "p001"; p1->name = "lily1";
p2->id = "p002"; p2->name = "lily2";
p3->id = "p003"; p3->name = "lily3";
//2、生成链表
head = p1;
p1->next = p2;
p2->next = p3;
p3->next = NULL;
}
步骤3:展现人口数据
//查询所有的人口数据
void personList(){
p = head;
while(p != NULL){
printf("%s,%s\n",p->id,p->name);
p = p->next;
}
}
步骤4:删除人口数据
//删除1条数据
void deletePerson(){
Node *q;
p = p2;
q = p->next;
p->next = q->next;
free(q);
}
步骤5:主函数关联操作
int main(void)
{
printf("Persons list:\n");
//新增数据
addPerson();
//展现新增的数据
personList();
printf("Delete 1 person:\n");
//删除一条数据
deletePerson();
personList();
return 0;
}
完整的参考代码如下所示: