C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的停車場(chǎng)管理系統(tǒng)
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單停車場(chǎng)管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
1.問(wèn)題描述
1)有一個(gè)兩層的停車場(chǎng),每層有6個(gè)車位,當(dāng)?shù)谝粚榆囄煌M后才允 許使用第二層(停車場(chǎng)可用一個(gè)二維數(shù)組實(shí)現(xiàn)),每輛車的信息包括車牌號(hào),層號(hào),車位號(hào),停車時(shí)間共四項(xiàng),其中停車時(shí)間按分鐘計(jì)算;
2)假設(shè)停車場(chǎng)初始狀態(tài)為第一層空、第二層已經(jīng)有四輛車,其車位號(hào)依次為第二層的1-4號(hào),停車時(shí)間依次為20,15,10,5;
3)停車操作:當(dāng)一輛車進(jìn)入停車場(chǎng)時(shí),先輸入其車牌號(hào),再為它分配一個(gè)層號(hào)和一個(gè)車位號(hào)(分配前先查詢車位的使用情況,如果第一層有空位則必須停在第一層),停車時(shí)間設(shè)為5,并將在此之前的停車時(shí)間加5。(此題簡(jiǎn)化時(shí)間的處理:當(dāng)有一輛車進(jìn)入時(shí)才對(duì)別的車加時(shí)間5分鐘);
4)收費(fèi)管理(取車):當(dāng)有車開(kāi)走時(shí),輸入其車牌號(hào),先按其停車時(shí)間計(jì)算費(fèi)用,每5分鐘0.2元,同時(shí)將該車對(duì)應(yīng)的車位設(shè)置為可使用狀態(tài)。
5)輸出停車場(chǎng)中全部車輛的信息;
6)退出系統(tǒng);
涉及的知識(shí)
結(jié)構(gòu)體的運(yùn)用,用數(shù)組當(dāng)函數(shù)參數(shù)等。
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請(qǐng)輸入車牌號(hào)\n");
?? ?scanf("%s", carn);
?? ?for (k = 0; k < 12; k++)
?? ?{
?? ??? ?if (strcmp(CAR[k].car_num, carn) == 0)
?? ??? ?{
?? ??? ??? ?printf("該車已在停車場(chǎng)內(nèi)\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號(hào)\n", CAR[i].floor, CAR[i].position_num);
?? ??? ??? ?flag = 1;
?? ??? ??? ?break;
?? ??? ?}
?? ?}
?? ?if (flag == 0)
?? ?{
?? ??? ?printf("\n停車場(chǎng)已滿\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èi)%f\n", price);
?? ??? ?}
?? ?}
?? ?if (flag == 0)
?? ?{
?? ??? ?printf("\n停車場(chǎng)內(nèi)無(wú)此車\n");
?? ?}
?? ?
}
void information(struct car CAR[])
{
?? ?printf("車牌號(hào) ? ?\t層號(hào)\t位號(hào)\t時(shí)間\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.離開(kāi)\n");
?? ??? ?printf("3.輸出停車場(chǎng)信息\n");
?? ??? ?printf("0.退出\n");
?? ??? ?printf("*************************\n");
?? ??? ?printf("請(qǐng)輸入功能號(hào)0-3:");
?? ??? ?scanf("%d", &m);
?? ??? ?while (m < 0 || m>3)
?? ??? ?{
?? ??? ??? ?printf("\n輸入錯(cuò)誤!請(qǐng)輸入正確的功能號(hào)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.運(yùn)行結(jié)果部分截圖





以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C語(yǔ)言實(shí)現(xiàn)停車場(chǎng)項(xiàng)目
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易停車場(chǎng)管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)游戲VIP停車場(chǎng)管理系統(tǒng)
- C語(yǔ)言源碼實(shí)現(xiàn)停車場(chǎng)管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單停車場(chǎng)管理系統(tǒng)
- C語(yǔ)言實(shí)現(xiàn)停車場(chǎng)管理
- C語(yǔ)言實(shí)現(xiàn)停車場(chǎng)管理系統(tǒng)
- C語(yǔ)言設(shè)計(jì)圖書(shū)登記系統(tǒng)與停車場(chǎng)管理系統(tǒng)的實(shí)例分享
- C語(yǔ)言課程設(shè)計(jì)之停車場(chǎng)管理問(wèn)題
相關(guān)文章
Qt實(shí)現(xiàn)簡(jiǎn)單TCP服務(wù)器
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)簡(jiǎn)單TCP服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
C/C++使用Zlib實(shí)現(xiàn)文件的壓縮與解壓
zlib 是一個(gè)開(kāi)源的數(shù)據(jù)壓縮庫(kù),旨在提供高效、輕量級(jí)的壓縮和解壓縮算法,本文將介紹如何使用 zlib 庫(kù)進(jìn)行數(shù)據(jù)的壓縮和解壓縮,以及如何保存和讀取壓縮后的文件,感興趣的可以了解下2023-11-11
用代碼和UML圖化解設(shè)計(jì)模式之橋接模式的深入分析
本篇文章是對(duì)橋接模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C語(yǔ)言簡(jiǎn)明講解單引號(hào)與雙引號(hào)的使用
這篇文章主要介紹了在C語(yǔ)言里單引號(hào)和雙引號(hào)的使用,本文通過(guò)實(shí)例代碼說(shuō)明了單引號(hào)和雙引號(hào)的概念與各自的用法,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2022-04-04
C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼
這篇文章主要介紹了C++中用new創(chuàng)建二維數(shù)組和指針數(shù)組實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-03-03
C語(yǔ)言中大小寫(xiě)字母相互轉(zhuǎn)化的方法示例
在C語(yǔ)言中,大小寫(xiě)字母的轉(zhuǎn)換可以通過(guò)標(biāo)準(zhǔn)庫(kù)中的ctype.h頭文件提供的函數(shù)來(lái)實(shí)現(xiàn),具體來(lái)說(shuō),toupper()函數(shù)可以將小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)字母,而tolower()函數(shù)可以將大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)字母,本文給大家介紹了C語(yǔ)言中大小寫(xiě)字母相互轉(zhuǎn)化的方法,需要的朋友可以參考下2024-08-08
與ASCII碼相關(guān)的C語(yǔ)言字符串操作函數(shù)
這篇文章主要介紹了與ASCII碼相關(guān)的C語(yǔ)言字符串操作函數(shù),分別是將字符轉(zhuǎn)換為ASCII碼的toascii()函數(shù)和根據(jù)ASCII碼進(jìn)行字符串比較的strcoll()函數(shù),需要的朋友可以參考下2015-08-08

