當前位置:首頁 » 編程語言 » c語言停車場管理

c語言停車場管理

發布時間: 2022-08-12 10:21:13

c語言 停車場管理

用棧組織數據結構

⑵ 39、停車場管理C語言編程

程序太大 不讓發 我是分幾次發過去的 打三個出現亂碼了 我在重新發一次

/*初始化停車場信息,初始狀態為第一層已經停有4輛車,
* 其車位號依次為1—4 , 停車時間依次為20, 15, 10 , 5
*/
void Init(struct Garage gar[][6])
{
int i, j;

/*給所有的車位的層號,車位號初始化,停車時間初始化為0,停車位全都初始化為空*/
for (i=0; i<2; i++)
{
for (j=0; j<6; j++)
{
gar[i][j].lay = i+1;
gar[i][j].garagenum = j+1;
gar[i][j].time = 0;
gar[i][j].isempty = 1;
}
}

/*第一層的1-4號車位停車*/
for (i=0; i<4; i++)
{
gar[0][i].isempty = 0;
}
strcpy(gar[0][0].carnum, "GF8888"); /*我自己初始化的車牌號,你可以自己改一下*/
gar[0][0].time = 20;
strcpy(gar[0][1].carnum, "GF6666");
gar[0][1].time = 15;
strcpy(gar[0][2].carnum, "GF9999");
gar[0][2].time = 10;
strcpy(gar[0][3].carnum, "GF5858");
gar[0][3].time = 5;
}

/*新停入的汽車後,將在此之前的所有車的停車時間加5*/
void AddTime(struct Garage gar[][6])
{
int i, j;
for (i=0; i<2; i++)
{
for (j=0; j<6; j++)
{
if (gar[i][j].isempty == 0)
{
gar[i][j].time += 5;
}
}
}
}

/*停車*/
void Park(struct Garage gar[][6])
{
int i;
char num[8];

printf("請輸入車牌號:");
scanf("%s", num);

/*查找空車位*/
for (i=0; i<6; i++)
{
if (gar[0][i].isempty == 1)
{
printf("第一層第%d號車位空著,請在此處停車\n", i+1);
strcpy(gar[0][i].carnum, num);
printf("車牌號:%s 層號:1 車位號: %d \n", num, i+1);
AddTime(gar); /*在此之前停車的所有汽車時間加5*/
gar[0][i].isempty = 0; /*表示該車為已經停車*/
gar[0][i].time = 5; /*將時間設為5*/

return;
}
}

printf("第一層已經沒有空車位\n");

for (i=0; i<6; i++)
{
if (gar[1][i].isempty = 1)
{
printf("第二層第%d號車位空著,請在此處停車\n", i+1);
strcpy(gar[1][i].carnum, num);
printf("車牌號:%s 層號:2 車位號: %d \n", num, i+1);
AddTime(gar); /*在此之前停車的所有汽車時間加5*/
gar[1][i].isempty = 0; /*表示該車為已經停車*/
gar[1][i].time = 5; /*將時間設為5*/

return;
}
}

printf("對不起,1 2層都沒有空車位,您現在不能在此停車\n");
}

/*查看所有車輛信息*/
void Information(struct Garage gar[][6])
{
int i, j;

printf(" 車牌號 層號 車位號 停車時間\n");

for (i=0; i<2; i++)
{
for(j=0; j<6; j++)
{
if (gar[i][j].isempty == 0)
printf(" %s%8d%8d%8d\n", gar[i][j].carnum, gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time);
}
}

printf("\n");
}

/*取車*/
double Leave(struct Garage gar[2][6])
{
int i, j;
char num[8];
double charge = 0;

printf("請輸入要取的車牌號:");
scanf("%s", num);

for (i=0; i<2; i++)
{
for (j=0; j<6; j++)
{
if (!strcmp(gar[i][j].carnum, num))
{
printf("您在%d層%d車位停車%d分鍾\n", gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time);
charge = gar[i][j].time/5*0.2;
printf("停車費用為每5分鍾0.2元,您需交%.2lf元\n", charge);
gar[i][j].isempty = 1;
return charge;
}
}
}

printf("沒有您輸入的車號。\n\n");
return charge;
}

/*是否查看總收入*/
void IsPrintTotal(double total)
{
char ch;
printf("是否查看停車收費總計?Y/N");
scanf("%c", &ch);
while (ch!='y' && ch!='Y' && ch!='n' && ch!='N')
{
printf("請輸入Y或N ");
scanf("%c", &ch);
printf("\n");
}

switch (ch)
{
case 'Y':
case 'y':
printf("停車收費總計為%.2lf元\n", total);
break;
case 'N':
case 'n':
break;
}
}
main()
{
int choice;
double total = 0;
struct Garage gar[2][6];

Init(gar); //初始化第一層已經停有的4輛車

while (1)
{
Instruction();
printf("請輸入要進行的操作:");
scanf("%d", &choice);
while (choice<0 || choice>3)
{
printf("輸入的不合法,請輸入0-3選擇:");
scanf("%d", &choice);
}

switch (choice)
{
case 1:
Park(gar);
break;
case 2:
total += Leave(gar);
IsPrintTotal(total);
break;
case 3:
Information(gar);
break;
case 0:
exit(0);
}
}
return 0;
}

⑶ C語言停車場管理問題

細節上的優化就看Lz怎麼想了,我覺得提示做得還不夠好,免強能用了。
#include
#include
#define N 3 /*停車場大小*/
#define MAX 50 /*過道大小*/
#define sign 10/*車牌大小*/
#define price 10/*每分鍾的價錢*/
char part[N][sign];
char Rpart[MAX][sign];
char time[N][20];
int P,R;
partadd(char *t)
{
strcpy(&part[P][0],t);
printf("請輸入時間:例如十點十分格式為「10.10」\n");
scanf("%s",&time[P][0]);
getchar();
P++;
}
Rpartadd(char *t)
{
if(R<MAX)
{
strcpy(&Rpart[R][0],t);
R++;
}
else
{
printf("過道己滿。無法停車。\n");
}
}
newcar()
{
char temp[sign];
printf("請輸入車牌號:");
scanf("%s",temp);
getchar();
if(P<N)
{
partadd(temp);
}
else if(R<MAX)
{
Rpartadd(temp);
}
}
int timed(char *t1,char *t2)
{
int i=0,y=0,x=0,j,n=1;
while(1)
{
if(t1[i]=='.')
{
for(j=i-1;j>=0;j--)
{
y=y+(t1[j]-'0')*(60*n);
n=n*10;
}
while(1)
{
if(t1[j]==NULL)
{
for(n=1;j>i;j--)
{
y=y+(t1[j]-'0')*n;
n=n*10;
}
break;
}
j++;
}
i=0;
while(1)
{
if(t2[i]=='.')
{
for(j=i-1;j>=0;j--)
{
x=x+(t2[j]-'0')*(60*n);
n=n*10;
}
while(1)
{
if(t2[j]==NULL)
{
for(n=1;j>i;j--)
{
x=x+(t2[j]-'0')*n;
n=n*10;
}
break;
}
j++;
}
y=(x-y)*price;
return y;
}
i++;
}
}
i++;
}
}
partcarout(int i)
{
int j,money;
char t[20];
printf("請輸入現在的時間:例如十點十分格式為「10.10」\n");
scanf("%s",t);
getchar();
money=timed(t,&time[i][0]);
printf("收費%d\n",money);
for(j=i;j<P;j++)
{
strcpy(&part[j][0],&part[j+1][0]);
P--;
}
if(R!=0)
{
strcpy(&part[N-1][0],&Rpart[0][0]);
P++;
strcpy(&time[P][0],t);
Rpartcarout(0);
}
}
Rpartcarout(int i)
{
int j;
for(j=i;j<R;j++)
{
strcpy(&Rpart[j][0],&Rpart[j+1][0]);
R--;
}
}
carout()
{
char t[sign];
int i,get=0;
printf("請入要離開的車牌號:");
scanf("%s",t);
getchar();
for(i=0;i<P;i++)
{
if(strcmp(t,&part[i][0])==0)
{
get=1;
partcarout(i);
break;
}
}
for(i=0;i<R&&get==0;i++)
{
if(strcmp(t,&Rpart[i][0])==0)
{
get=1;
Rpartcarout(i);
break;
}
}
if(get==0)
{
printf("查無此車。\n");
}
}
jopart()
{
int i;
for(i=0;i<P;i++)
{
printf("%d.%s\n",i,&part[i][0]);
}
}
joRpart()
{
int i;
for(i=0;i<R;i++)
{
printf("%d.%s\n",i,&Rpart[i][0]);
}
}
main()
{
int c;
while(1)
{
printf("請選擇要做的事:\n");
printf("1.加入新車。\n");
printf("2.有車離開。\n");
printf("3.顯示在停車場內的車。\n");
printf("4.顯示在過道上的車。\n");
printf("5.退出。\n");
c=getchar();
getchar();
switch (c)
{
case '1':newcar();
break;
case '2':carout();
break;
case '3':jopart();
break;
case '4':joRpart();
break;
case '5':exit(1);
break;
}
}
}

⑷ 用C語言編寫「停車場管理系統」

程序太大 不讓發 我是分幾次發過去的 打三個出現亂碼了 我在重新發一次

/*初始化停車場信息,初始狀態為第一層已經停有4輛車,
* 其車位號依次為1—4 , 停車時間依次為20, 15, 10 , 5
*/
void Init(struct Garage gar[][6])
{
int i, j;

/*給所有的車位的層號,車位號初始化,停車時間初始化為0,停車位全都初始化為空*/
for (i=0; i<2; i++)
{
for (j=0; j<6; j++)
{
gar[i][j].lay = i+1;
gar[i][j].garagenum = j+1;
gar[i][j].time = 0;
gar[i][j].isempty = 1;
}
}

/*第一層的1-4號車位停車*/
for (i=0; i<4; i++)
{
gar[0][i].isempty = 0;
}
strcpy(gar[0][0].carnum, "GF8888"); /*我自己初始化的車牌號,你可以自己改一下*/
gar[0][0].time = 20;
strcpy(gar[0][1].carnum, "GF6666");
gar[0][1].time = 15;
strcpy(gar[0][2].carnum, "GF9999");
gar[0][2].time = 10;
strcpy(gar[0][3].carnum, "GF5858");
gar[0][3].time = 5;
}

/*新停入的汽車後,將在此之前的所有車的停車時間加5*/
void AddTime(struct Garage gar[][6])
{
int i, j;
for (i=0; i<2; i++)
{
for (j=0; j<6; j++)
{
if (gar[i][j].isempty == 0)
{
gar[i][j].time += 5;
}
}
}
}

/*停車*/
void Park(struct Garage gar[][6])
{
int i;
char num[8];

printf("請輸入車牌號:");
scanf("%s", num);

/*查找空車位*/
for (i=0; i<6; i++)
{
if (gar[0][i].isempty == 1)
{
printf("第一層第%d號車位空著,請在此處停車\n", i+1);
strcpy(gar[0][i].carnum, num);
printf("車牌號:%s 層號:1 車位號: %d \n", num, i+1);
AddTime(gar); /*在此之前停車的所有汽車時間加5*/
gar[0][i].isempty = 0; /*表示該車為已經停車*/
gar[0][i].time = 5; /*將時間設為5*/

return;
}
}

printf("第一層已經沒有空車位\n");

for (i=0; i<6; i++)
{
if (gar[1][i].isempty = 1)
{
printf("第二層第%d號車位空著,請在此處停車\n", i+1);
strcpy(gar[1][i].carnum, num);
printf("車牌號:%s 層號:2 車位號: %d \n", num, i+1);
AddTime(gar); /*在此之前停車的所有汽車時間加5*/
gar[1][i].isempty = 0; /*表示該車為已經停車*/
gar[1][i].time = 5; /*將時間設為5*/

return;
}
}

printf("對不起,1 2層都沒有空車位,您現在不能在此停車\n");
}

/*查看所有車輛信息*/
void Information(struct Garage gar[][6])
{
int i, j;

printf(" 車牌號 層號 車位號 停車時間\n");

for (i=0; i<2; i++)
{
for(j=0; j<6; j++)
{
if (gar[i][j].isempty == 0)
printf(" %s%8d%8d%8d\n", gar[i][j].carnum, gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time);
}
}

printf("\n");
}

/*取車*/
double Leave(struct Garage gar[2][6])
{
int i, j;
char num[8];
double charge = 0;

printf("請輸入要取的車牌號:");
scanf("%s", num);

for (i=0; i<2; i++)
{
for (j=0; j<6; j++)
{
if (!strcmp(gar[i][j].carnum, num))
{
printf("您在%d層%d車位停車%d分鍾\n", gar[i][j].lay, gar[i][j].garagenum, gar[i][j].time);
charge = gar[i][j].time/5*0.2;
printf("停車費用為每5分鍾0.2元,您需交%.2lf元\n", charge);
gar[i][j].isempty = 1;
return charge;
}
}
}

printf("沒有您輸入的車號。\n\n");
return charge;
}

/*是否查看總收入*/
void IsPrintTotal(double total)
{
char ch;
printf("是否查看停車收費總計?Y/N");
scanf("%c", &ch);
while (ch!='y' && ch!='Y' && ch!='n' && ch!='N')
{
printf("請輸入Y或N ");
scanf("%c", &ch);
printf("\n");
}

switch (ch)
{
case 'Y':
case 'y':
printf("停車收費總計為%.2lf元\n", total);
break;
case 'N':
case 'n':
break;
}
}
main()
{
int choice;
double total = 0;
struct Garage gar[2][6];

Init(gar); //初始化第一層已經停有的4輛車

while (1)
{
Instruction();
printf("請輸入要進行的操作:");
scanf("%d", &choice);
while (choice<0 || choice>3)
{
printf("輸入的不合法,請輸入0-3選擇:");
scanf("%d", &choice);
}

switch (choice)
{
case 1:
Park(gar);
break;
case 2:
total += Leave(gar);
IsPrintTotal(total);
break;
case 3:
Information(gar);
break;
case 0:
exit(0);
}
}
return 0;
}

⑸ C語言停車場管理程序(順序號 int,車牌號 char(8),停車位號int,進入停車場時間cha

for(int i=0;i<=Enter->top;i++)
{if( Enter->stack[i]->num==p->num)
{ cout<<"你的車號與停車場內車號重復"<<endl;
break;
}
}
if(Enter->top<MAX)
{
Enter->top++;
cout<<endl<<"車輛在車場第"<<Enter->top<<"位置.";
cout<<endl<<"車輛到達時間:";
cin>>p->reach.hour>>p->reach.min;
cout<<endl<<"車輛到達登記完畢!"<<endl;
cout<<"--------------------------------------------"<<endl;
Enter->stack[Enter->top]=p;
return 1;
}

⑹ C語言停車場管理系統

/*----------------------------------------------------------------
// Copyright (C) 2009 沈陽工程學院信息安全工作室
// 版權所有。
//
// 文件名:模擬停車場問題.cpp
// 文件功能描述:模擬停車場問題
//
//
// 創建標識:20091214
//
// 修改標識:20091218
// 修改描述:完成編碼
//----------------------------------------------------------------*/

//頭文件
#include <iostream>
#include <malloc.h>
#include <string>
#include <windows.h>

//常量定義
#define MAX_STOP 4 //定義停車場最大停車數
#define MAX_PLATE 10 //定義車牌號最大長度
#define TIME_COUNT "秒" //定義時間單位
#define TIME_MS_TO_CONUT 1000 //定義時間進制,意為由TIME_COUNT到毫秒的進制
#define UNIT_PRICE 10 //定義單位時間收費標准

using namespace std; //使用std命名空間

//數據結構定義
//定義存儲汽車信息的結構體
typedef struct
{
char license_plate[MAX_PLATE]; //汽車牌照號碼,定義為一個字元指針類型
char state; //汽車當前狀態,字元p表示停放在停車位上,字元s表示停放在便道上,每輛車的初始狀態用字元i來進行表示
int time; //汽車停入停車場時的時間,用來計時收費
}CAR;

//定義模擬停車場的棧結構
typedef struct
{
CAR STOP[MAX_STOP]; //汽車信息的存儲空間
int top; //用來指示棧頂位置的靜態指針
}SeqStack;

//定義模擬便道的隊列結構
typedef struct node
{
CAR WAIT; //汽車信息的存儲空間
struct node *next; //用來指示隊列位置的動態指針
}QNode; //鏈隊列節點的類型
//定義鏈隊列的收尾指針
typedef struct
{
QNode *front,*rear;
}LQueue; //將頭尾指針封裝在一起的鏈隊

//函數聲明
int Empty_LQueue(LQueue *q); //判隊空
int LeaveCheck(SeqStack parking , char *license_plate); //檢查離開的車是否在停車場中
int QueueLength(LQueue *q); //判隊長度
int Out_LQueue(LQueue *&sidewalk , char *license_plate); //出隊操作
int StackEmpty(SeqStack parking); //判斷棧是否為空
int StackFull(SeqStack parking); //判斷棧是否為滿
int StackPop(SeqStack &parking); //出棧操作
int StackTop(SeqStack parking , char *license_plate , int &time);//取棧頂元素
void Car_come(SeqStack &parking , LQueue *&sidewalk); //有車到來時的操作
void Car_leave(SeqStack &parking , LQueue *&sidewalk); //有車離開的操作
void Display(SeqStack parking); //顯示停車場內的所有信息 調試時用
void InitStack(SeqStack &parking); //初始化棧
void InitList(LQueue *&sidewalk); //初始化隊列
void In_LQueue(LQueue *&sidewalk , char *license_plate); //進隊操作
void Input_Check(char *license_plate); ////檢驗輸入的車牌是否合法
void StackPush(SeqStack &parking , char *license_plate , int stop_time);//進棧操作

void main()
{
//定義變數
SeqStack parking;
LQueue *sidewalk = NULL;
char *choice = new char;
int flag = 1; //定義一個變數 判斷是否退出

//初始化一個為空的停車場
InitStack(parking);
//初始化一個為空的便道
InitList(sidewalk);

//運行界面及功能選擇
while(flag)
{
cout<<"\n\t 停車場模擬管理系統 \n\n";
cout<<"\t|--------------------------------------------------|\n\n";
cout<<"\t|本程序為停車場的模擬管理系統,有車到來時請按C鍵。|\n\n";
cout<<"\t|然後根據屏幕提示進行相關操作,有車要走時請按l鍵。|\n\n";
cout<<"\t|然後根據屏幕提示進行相關操作,查看停車場請按D鍵。|\n\n";
cout<<"\t|然後根據屏幕提示進行相關操作,要退出系統請按Q鍵。|\n\n";
cout<<"\t|--------------------------------------------------|\n\n";
cout<<"請選擇操作:";
gets(choice);
if(1 != strlen(choice))
{
cout<<"請正確輸入選項!";
continue;
}
else
{
switch(*choice)
{
case 'c':
case 'C':
{
Car_come(parking,sidewalk);break;
}
case 'l':
case 'L':
{
Car_leave(parking,sidewalk);break;
}
case 'q':
case 'Q':
{
flag=0;break;
}
case 'd':
case 'D':
{
Display(parking);break;
}
default:
cout<<"選擇不正確!請重新選擇!\n";
}
}
}
}
//有車到來時的操作
void Car_come(SeqStack &parking , LQueue *&sidewalk)
{
//定義變數
char license_plate[MAX_PLATE];

cout<<"請輸入車輛的車牌號碼:";
Input_Check(license_plate);
//判斷停車場是否已滿,滿則進入便道,不滿進入停車場
if(StackFull(parking))
{
In_LQueue(sidewalk , license_plate); //進入便道
cout<<"停車場已滿請在便道等候,您的位置為"<<QueueLength(sidewalk)
<<endl;
}
else
{
StackPush(parking , license_plate , GetTickCount()); //進入停車場
cout<<"請進入停車場中的"<<parking.top+1<<"號停車位\n";
}
// Display(parking);
}

//有車離開時的操作
void Car_leave(SeqStack &parking , LQueue *&sidewalk)
{
//定義變數
SeqStack tmpparking; //定義臨時停車場
char leave_license_plate[MAX_PLATE]; //要離開的車牌號
char license_plate[MAX_PLATE]; //存放從停車場中讀出來的車牌信息
int time;

InitStack(tmpparking); //初始化臨時停車場
//判斷停車場中是否有車
if(StackEmpty(parking))
{
cout<<"當前停車場中沒有車\n";
return; //退出子函數
}

cout<<"請輸入要離開的車牌照:";
Input_Check(leave_license_plate);
cout<<"當前停車場中有"<<parking.top+1<<"輛車\n";

if(LeaveCheck(parking , leave_license_plate)) //判斷車是否在停車場中
{
//車在停車場中
cout<<"您的車在"<<LeaveCheck(parking , leave_license_plate)<<"號車位上\n";
while(StackTop(parking , license_plate , time)
&& (strcmp(parking.STOP[parking.top].license_plate , leave_license_plate) != 0))
{
strcpy(parking.STOP[parking.top].license_plate , license_plate);
cout<<"牌照為"<<license_plate<<"的車暫時退出停車場"<<parking.top+1<<"號位\n";
StackPush(tmpparking , license_plate , time); //停車場中的車暫時退出 進入臨時停車場
StackPop(parking); //出棧
}

cout<<"牌照為"<<license_plate<<"的車離開停車場"<<parking.top+1<<"號位\n";
cout<<"您在停車場中停了"<<(GetTickCount()-time)/TIME_MS_TO_CONUT<<TIME_COUNT<<endl; //輸出所停時間信息
cout<<"應繳費用為"<<(GetTickCount()-time)/TIME_MS_TO_CONUT*UNIT_PRICE<<"元\n";; //輸出費用信息
StackPop(parking); //出棧
//將臨時停車場中的車停回停車場
while(StackEmpty(tmpparking) != 1)
{
StackTop(tmpparking , license_plate , time);
StackPush(parking , license_plate , time);
cout<<"牌照為"<<license_plate<<"的車進入停車場"<<parking.top+1<<"號位\n";
license_plate[0] = '\0';
StackPop(tmpparking);
}

if(parking.top+1 == MAX_STOP-1) //判斷車離開前停車場是否停滿
if(QueueLength(sidewalk)) //如果停滿則判斷便道上是否有車
{
//便道中有車 則從便道中停入停車場
Out_LQueue(sidewalk , license_plate); //出隊
StackPush(parking , license_plate , GetTickCount()); //入棧
cout<<"在便道中牌照為"<<license_plate<<"的車進入停車場"<<parking.top+1<<"號位\n";
}
}
else
//車不在停車場中
cout<<"您的車不在停車場中!\n";
}

//初始化順序棧
void InitStack(SeqStack &parking)
{
parking.top = -1;
}

//判棧空
int StackEmpty(SeqStack parking)
{
if(parking.top == -1)
return 1;
else
return 0;
}

//判棧滿
int StackFull(SeqStack parking)
{
if(parking.top == MAX_STOP-1)
return 1;
else
return 0;
}

//入棧
void StackPush(SeqStack &parking , char *license_plate , int stop_time)
{
parking.top++;
strcpy(parking.STOP[parking.top].license_plate , license_plate);
parking.STOP[parking.top].state = 'p';
parking.STOP[parking.top].time = stop_time;
}

//出棧 返回棧頂指針
int StackPop(SeqStack &parking)
{
if(StackEmpty(parking))
return 0;
else
return parking.top--;
}

//取棧頂元素
int StackTop(SeqStack parking , char *license_plate , int &time)
{
if(StackEmpty(parking))
return 0;
else
{
strcpy(license_plate , parking.STOP[parking.top].license_plate);
time = parking.STOP[parking.top].time;
return 1;
}
}

//顯示所有
void Display(SeqStack parking)
{
if(parking.top == -1)
printf("停車場為空\n");
else
{
while(parking.top != -1)
{
cout<<"車牌號為:"<<parking.STOP[parking.top].license_plate;
cout<<",停在"<<parking.top + 1 <<"號車位上";
cout<<",已停"<<(GetTickCount()-parking.STOP[parking.top].time)/TIME_MS_TO_CONUT<<TIME_COUNT<<endl;
parking.top--;
}
}
}

//初始化隊列
void InitList(LQueue *&sidewalk)
{
sidewalk = (LQueue *)malloc(sizeof(LQueue));
sidewalk->front=sidewalk->rear = NULL;
}

//入隊
void In_LQueue(LQueue *&sidewalk,char *license_plate)
{
QNode *car_on_sidewalk;
car_on_sidewalk = (QNode *)malloc(sizeof(QNode)); //為新節點開辟新空間
strcpy(car_on_sidewalk->WAIT.license_plate , license_plate); //將數據寫入節點
car_on_sidewalk->WAIT.state = 's'; //寫入停車信息
car_on_sidewalk->WAIT.time = GetTickCount(); //寫入停車時間
car_on_sidewalk->next = NULL;
if(Empty_LQueue(sidewalk)) //隊空則創建第一個節點
sidewalk->front = sidewalk->rear = car_on_sidewalk;
else
{
//隊非空插入隊尾
sidewalk->rear->next = car_on_sidewalk;
sidewalk->rear = car_on_sidewalk;
}
}

//判隊空
int Empty_LQueue(LQueue *q)
{
if(q->front == NULL)
return 1;
else
return 0;
}

//判隊長度 返回隊長
int QueueLength(LQueue *q)
{
QNode *p=q->front;
int i=0;
while(p != NULL)
{
i++;
p=p->next;
}
return i;
}

//出隊 成功返回1 隊空返回0
int Out_LQueue(LQueue *&sidewalk,char *license_plate)
{
QNode *car_on_sidewalk;

if(Empty_LQueue(sidewalk)) //如果隊空返回0
return 0;

car_on_sidewalk = sidewalk->front;
strcpy(license_plate , car_on_sidewalk->WAIT.license_plate);//取出隊頭元素
if(sidewalk->front == sidewalk->rear) //隊中只有一個元素
sidewalk->front = sidewalk->rear=NULL; //刪除元素
else
sidewalk->front = sidewalk->front->next; //隊頭指針後移
free(car_on_sidewalk); //釋放指針
return 1;
}

//檢查離開的車是否在停車場中 返回車在停車場中位置 不在則返回0
int LeaveCheck(SeqStack parking,char *license_plate)
{
int flag = parking.top+1; //定義變數記錄當前車在停車場中位置

if(StackEmpty(parking))
return 0;
else
{
//查找離開車所在位置
while(parking.top != -1 && strcmp(parking.STOP[parking.top].license_plate , license_plate) != 0)
{
flag--;
parking.top--;
}
return flag;
}
}

//檢驗輸入的車牌是否合法
void Input_Check(char *license_plate)
{
int flag = 1;
int i;
string tmpstr;
while(flag)
{
cin>>tmpstr;
getchar();
if(tmpstr.length()<MAX_PLATE)
{
for(i=0;i<10;i++)
license_plate[i] = tmpstr.c_str()[i];
flag = 0;
}
else
cout<<"輸入有誤,請重新輸入:";
}
}

以前的課設 你看看吧 純手工的~~

熱點內容
垃圾壓縮價格 發布:2025-01-20 22:14:05 瀏覽:421
溫十系統如何看處理器配置 發布:2025-01-20 21:59:47 瀏覽:302
米號源碼 發布:2025-01-20 21:55:30 瀏覽:893
電信四川dns伺服器ip 發布:2025-01-20 21:54:51 瀏覽:92
電腦彈出腳本錯誤還能繼續使用嗎 發布:2025-01-20 21:42:29 瀏覽:586
安卓私密照片在哪裡 發布:2025-01-20 21:41:05 瀏覽:5
同濟復試編譯原理 發布:2025-01-20 21:33:54 瀏覽:310
c語言判斷字母 發布:2025-01-20 21:31:09 瀏覽:424
ftp伺服器搭建linux 發布:2025-01-20 21:26:05 瀏覽:335
安卓手機瀏覽器如何翻譯英文網頁 發布:2025-01-20 21:21:01 瀏覽:423