C语言实现简单的停车场管理系统

 更新时间:2022年03月15日 11:34:20   作者:张小桐  
这篇文章主要为大家详细介绍了C语言实现简单的停车场管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现简单停车场管理系统的具体代码,供大家参考,具体内容如下

1.问题描述

1)有一个两层的停车场,每层有6个车位,当第一层车位停满后才允 许使用第二层(停车场可用一个二维数组实现),每辆车的信息包括车牌号,层号,车位号,停车时间共四项,其中停车时间按分钟计算;
2)假设停车场初始状态为第一层空、第二层已经有四辆车,其车位号依次为第二层的1-4号,停车时间依次为20,15,10,5;
3)停车操作:当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空位则必须停在第一层),停车时间设为5,并将在此之前的停车时间加5。(此题简化时间的处理:当有一辆车进入时才对别的车加时间5分钟);
4)收费管理(取车):当有车开走时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元,同时将该车对应的车位设置为可使用状态。
5)输出停车场中全部车辆的信息;
6)退出系统;

涉及的知识

结构体的运用,用数组当函数参数等。

2.上代码

#include "stdio.h"
#include<string.h>
struct car
{
    char car_num[10];
    int floor;
    int position_num;
    int time;
}CAR[12] = { {"0",1,1,0},{"0",1,2,0},{"0",1,3,0},{"0",1,4,0},{"0",1,5,0},{"0",1,6,0}
            ,{"冀F12345",2,1,20},{"冀F17845",2,2,15},{"冀F12856",2,3,10},{"冀F12445",2,4,5},{ "0",2,5,0 }, {"0",2,6,0} };
void park(struct car CAR[])
{
    int i, j,k;
    int flag = 0;
    char carn[10];
    printf("\n请输入车牌号\n");
    scanf("%s", carn);
    for (k = 0; k < 12; k++)
    {
        if (strcmp(CAR[k].car_num, carn) == 0)
        {
            printf("该车已在停车场内\n");
            flag = 2;
            break;
        }
    }
    for (i = 0; i < 12; i++)
    {
        if (strcmp(CAR[i].car_num,"0") == 0&&flag==0)
        {
            strcpy(CAR[i].car_num, carn);
            for (j = 0; j < 12; j++)
            {
                if (strcmp(CAR[j].car_num, "0") != 0)
                {
                    CAR[j].time += 5;
                }
            }
            printf("该车可停在了%d层%d号\n", CAR[i].floor, CAR[i].position_num);
            flag = 1;
            break;
        }
    }
    if (flag == 0)
    {
        printf("\n停车场已满\n");
    }

}
void leave(struct car CAR[])
{
    int i, j;
    int flag = 0;
    char carn[10];
    float price;
    scanf("%s",carn);
    for (i = 0; i < 12; i++)
    {
        if (strcmp(CAR[i].car_num,carn)==0)
        {
            strcpy(CAR[i].car_num,"0");
            price = CAR[i].time*0.04;
            CAR[i].time = 0;
            flag = 1;
            printf("\n停车费%f\n", price);
        }
    }
    if (flag == 0)
    {
        printf("\n停车场内无此车\n");
    }
    
}
void information(struct car CAR[])
{
    printf("车牌号    \t层号\t位号\t时间\n");
    for (int i = 0; i < 12; i++)
    {
        printf("%-10s\t%d\t%d\t%d\n", CAR[i].car_num, CAR[i].floor, CAR[i].position_num, CAR[i].time);
    }

}
int main()
{
    int n;
    int m = -1;
    while (m != 0)
    {
        printf("\n*************************\n");
        printf("1.停车\n");
        printf("2.离开\n");
        printf("3.输出停车场信息\n");
        printf("0.退出\n");
        printf("*************************\n");
        printf("请输入功能号0-3:");
        scanf("%d", &m);
        while (m < 0 || m>3)
        {
            printf("\n输入错误!请输入正确的功能号0-3:");
            scanf("%d", &m);
        }
        if (m == 1)
            park(CAR);
        else if (m == 2)
            leave(CAR);
        else if (m == 3)
            information(CAR);
    }
    return 0;
}

3.运行结果部分截图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 使用Qt框架制作一个表白程序

    使用Qt框架制作一个表白程序

    这篇文章主要为大家详细介绍了如何使用Qt框架制作一个表白程序,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下
    2024-01-01
  • Qt界面中滑动条的实现方式

    Qt界面中滑动条的实现方式

    这篇文章主要介绍了Qt界面中滑动条的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • C++ EasyX学习之鼠标操作详解

    C++ EasyX学习之鼠标操作详解

    EasyX是针对C/C++的图形库,可以帮助使用C/C++语言的程序员快速上手图形和游戏编程。本文将为大家详细讲讲EasyX的鼠标操作,需要的可以参考一下
    2022-07-07
  • C++自定义API函数实现大数相乘算法

    C++自定义API函数实现大数相乘算法

    这篇文章主要为大家详细介绍了C++自定义API函数实现大数相乘算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • C++内存泄漏的检测与实现详细流程

    C++内存泄漏的检测与实现详细流程

    内存泄漏(memory leak) 是指由于疏忽或错误造成了程序未能释放掉不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费
    2022-08-08
  • 关于C语言和命令行之间的交互问题

    关于C语言和命令行之间的交互问题

    这篇文章主要介绍了C语言和命令行之间的交互,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C++中回调函数(CallBack)的用法分析

    C++中回调函数(CallBack)的用法分析

    这篇文章主要介绍了C++中回调函数(CallBack)的用法,较为详细的分析了C++中回调函数(CallBack)的原理并以实例形式总结了其具体用法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • C++引用和结构体介绍

    C++引用和结构体介绍

    这篇文章主要介绍了C++引用和结构体,结构体是我们自定义的复合类型,本质上也是一种变量类型,所以一样可以使用引用,下面来看看文章内容详细介绍,需要的朋友可以参考一下
    2021-11-11
  • 手把手教你实现漂亮的Qt 登录界面

    手把手教你实现漂亮的Qt 登录界面

    最近在使用Qt5,Qt Creator做一个管理系统类的项目,需要用到登录界面,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C语言sizeof和strlen的指针和数组面试题详解

    C语言sizeof和strlen的指针和数组面试题详解

    strlen是函数,字符串长度,不包括停止符。而sizeof则是内存块的大小,包括停止符。数组是一种数据类型,数据类型的本质就是固定大小,内存块的别名。可以用sizeof()一般都是数据类型
    2022-04-04

最新评论