首頁 > 軟體

C語言實現簡單的停車場管理系統

2022-03-15 13:02:18

本文範例為大家分享了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停車費%fn", 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("%-10st%dt%dt%dn", 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.執行結果部分截圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com