车库停车进出库程序c语言代码
时间: 2023-05-08 18:01:37 浏览: 164
车库停车进出库程序的c语言代码主要包括车辆信息的存储和查询、车位的管理、停车出入库等功能模块。实现该程序主要需要使用c语言中的结构体,指针及动态内存分配等知识。以下是一个简单的车库停车进出库程序的c语言代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 50 // 车位总数
#define MAX_LENGTH 10 // 车牌号最大长度
struct Car {
char plateNum[MAX_LENGTH]; // 车牌号
int status; // 1表示已停车,0表示未停车
};
// 初始化车库,所有车位状态为0,即未停车
void init(struct Car *garage) {
for (int i = 0; i < MAX_SIZE; i++) {
strcpy(garage[i].plateNum, "");
garage[i].status = 0;
}
printf("车库初始化成功!\n");
}
// 打印当前车位的停车情况
void printGarage(struct Car *garage) {
printf("车位\t车牌号\t状态\n");
for (int i = 0; i < MAX_SIZE; i++) {
printf("%d\t%s\t%d\n", i + 1, garage[i].plateNum, garage[i].status);
}
}
// 查询某辆车位的状态(即是否停车)
int queryStatus(int num, struct Car *garage) {
return garage[num - 1].status;
}
// 查询某辆车的车位号
int queryPlate(char *plate, struct Car *garage) {
for (int i = 0; i < MAX_SIZE; i++) {
if (strcmp(garage[i].plateNum, plate) == 0) {
return i + 1;
}
}
return -1;
}
// 停车入库
void parkIn(char *plate, struct Car *garage) {
int index = -1;
for (int i = 0; i < MAX_SIZE; i++) {
if (garage[i].status == 0) {
index = i;
break;
}
}
if (index == -1) {
printf("车库已满,无法停车!\n");
return;
}
else {
strcpy(garage[index].plateNum, plate);
garage[index].status = 1;
printf("车辆停放在第%d号车位成功!\n", index + 1);
}
}
// 停车出库
void parkOut(char *plate, struct Car *garage) {
int index = queryPlate(plate, garage);
if (index == -1) {
printf("未匹配到该车牌,请检查输入是否正确!\n");
return;
}
else {
garage[index - 1].status = 0;
printf("车辆成功离开车位!\n");
}
}
int main() {
struct Car garage[MAX_SIZE];
init(garage);
while (1) {
printf("请输入序号进行操作:\n");
printf("1.查询车位状态\n");
printf("2.查询车牌号对应车位\n");
printf("3.打印当前车位停车情况\n");
printf("4.车辆停车入库\n");
printf("5.车辆停车出库\n");
printf("6.退出程序\n");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1: {
printf("请输入车位号:\n");
int num;
scanf("%d", &num);
int status = queryStatus(num, garage);
printf("该车位状态为%d(1表示已停车,0表示未停车)\n", status);
break;
}
case 2: {
printf("请输入车牌号:\n");
char plate[MAX_LENGTH];
scanf("%s", plate);
int index = queryPlate(plate, garage);
if (index == -1) {
printf("未匹配到该车牌,请检查输入是否正确!\n");
}
else {
printf("该车辆停放在第%d号车位\n", index);
}
break;
}
case 3: {
printGarage(garage);
break;
}
case 4: {
printf("请输入车牌号:\n");
char plate[MAX_LENGTH];
scanf("%s", plate);
parkIn(plate, garage);
break;
}
case 5: {
printf("请输入车牌号:\n");
char plate[MAX_LENGTH];
scanf("%s", plate);
parkOut(plate, garage);
break;
}
case 6: {
printf("感谢您的使用!\n");
return 0;
}
default: {
printf("请输入正确的操作序号!\n");
break;
}
}
}
return 0;
}
阅读全文