汽车牌照管理系统数据结构c语言代码

时间: 2023-10-16 19:06:41 浏览: 51
以下是一个基于链表的汽车牌照管理系统的数据结构C语言代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LEN 20 // 定义一个车辆结构体 typedef struct Car { char plate_num[MAX_LEN]; // 车牌号码 char owner[MAX_LEN]; // 车主姓名 int year; // 购买年份 struct Car *next; // 指向下一个车辆的指针 } Car; // 插入新车辆记录 void insert_car(Car **head, char *plate_num, char *owner, int year) { // 创建一个新车辆结构体 Car *new_car = (Car *) malloc(sizeof(Car)); strcpy(new_car->plate_num, plate_num); strcpy(new_car->owner, owner); new_car->year = year; new_car->next = NULL; // 如果链表为空,直接将新车辆作为头结点 if (*head == NULL) { *head = new_car; return; } // 找到链表末尾,并将新车辆插入链表尾部 Car *cur = *head; while (cur->next != NULL) { cur = cur->next; } cur->next = new_car; } // 删除指定车辆记录 void delete_car(Car **head, char *plate_num) { // 如果链表为空,则直接返回 if (*head == NULL) { return; } // 如果要删除的车辆是头结点,直接将头结点指向下一个节点 if (strcmp((*head)->plate_num, plate_num) == 0) { Car *temp = *head; *head = (*head)->next; free(temp); return; } // 找到要删除的车辆节点,并将其从链表中删除 Car *cur = *head; while (cur->next != NULL && strcmp(cur->next->plate_num, plate_num) != 0) { cur = cur->next; } if (cur->next != NULL) { Car *temp = cur->next; cur->next = temp->next; free(temp); } } // 修改指定车辆记录 void modify_car(Car *head, char *plate_num, char *new_owner, int new_year) { // 找到要修改的车辆节点,并更新车主姓名和购买年份 Car *cur = head; while (cur != NULL && strcmp(cur->plate_num, plate_num) != 0) { cur = cur->next; } if (cur != NULL) { strcpy(cur->owner, new_owner); cur->year = new_year; } } // 查找指定车辆记录 void find_car(Car *head, char *plate_num) { // 找到要查找的车辆节点,并输出车辆信息 Car *cur = head; while (cur != NULL && strcmp(cur->plate_num, plate_num) != 0) { cur = cur->next; } if (cur != NULL) { printf("车牌号码:%s,车主姓名:%s,购买年份:%d\n", cur->plate_num, cur->owner, cur->year); } else { printf("未找到车牌号码为%s的车辆记录\n", plate_num); } } // 输出所有车辆记录 void print_all_cars(Car *head) { // 遍历链表,并输出每辆车的信息 Car *cur = head; while (cur != NULL) { printf("车牌号码:%s,车主姓名:%s,购买年份:%d\n", cur->plate_num, cur->owner, cur->year); cur = cur->next; } } int main() { Car *head = NULL; // 插入新车辆记录 insert_car(&head, "京A12345", "张三", 2020); insert_car(&head, "京B67890", "李四", 2019); insert_car(&head, "京C24680", "王五", 2018); // 输出所有车辆记录 print_all_cars(head); // 删除一辆车辆记录 delete_car(&head, "京B67890"); // 输出所有车辆记录 print_all_cars(head); // 修改一辆车辆记录 modify_car(head, "京A12345", "赵六", 2021); // 输出所有车辆记录 print_all_cars(head); // 查找一辆车辆记录 find_car(head, "京C24680"); return 0; } ```

相关推荐

最新推荐

recommend-type

数据结构综合课设停车场问题.docx

每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则...
recommend-type

数据结构程序课程设计--停车场问题 代码

每一组输人数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,...
recommend-type

数据结构算法课程设计-汽车牌照的排序与查找问题

汽车牌照的排序与查找问题汽车牌照的排序与查找问题汽车牌照的排序与查找问题汽车牌照的排序与查找问题汽车牌照的排序与查找问题
recommend-type

汽车牌照的排序与查找问题-数据结构与算法课程设计报告

此程序要完成如下要求:选择一种数据结构来存储每个车辆的信息(如车主姓名,汽车等),在此基础上进行基数排序,而汽车牌照是由汉字、字母以及数字组成,即多关键字,其中字母和数字的比较是比较容易实现的,考虑到...
recommend-type

数据结构课程设计停车场管理

每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。