當前位置:首頁 » 編程軟體 » 編程車位表

編程車位表

發布時間: 2022-07-22 18:01:32

① 7、某停車場有20個車位(1-20號),設計一個停車場管理系統,實現停車管理系統。 c語言程序設計 。

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
typedef struct{
int num;
char id[50];
time_t in;
time_t out;
float mon;
}P;
P p[21];
void in();
void out();
void look();
void init();
int vacant();

int main()
{
int i,flag=0;
init();
while(1)
{ printf(" \n");
printf(" 1: 進入 \n");
printf(" 2 離開 \n");
printf(" 3: 查看車位情況 \n");
printf(" 4: 退出 \n");
printf(" \n");
puts("請輸入選項:");
scanf("%d",&i);
switch(i)
{
case 1: in();break;
case 2: out();break;
case 3: look();fflush(stdin);
puts("按任意鍵繼續。。。。。。。");
getchar();break;
case 4: flag=1;break;
}
if(flag==1) break;
system("CLS");
}
return 0;
}

void init()
{ int i=0;
while(i<21){ p[i].num=i;p[i].id[0]='\0';p[i].in=0;p[i].out=0;p[i].mon=0.;i++;}
}
int vacant()
{
int i=1,num=0;
while(i<21){ if(p[i].id[0]=='\0') num++;i++;}
return num;
}
void in()
{ int i=0,a[21];
while(i<21){ a[i]=0; i++;}
i=1;
if(vacant()!=0){ puts("有車位 空車位為:");
while(i<21){ if(p[i].id[0]=='\0') {a[i]=i; printf("%-4d",i);}i++;}
puts("");
puts("請輸入所要停入車位號:");
while(1){
scanf("%d",&i);
int j=0,flag=0;
while(j<21) { if(a[j]==0){ j++;continue;} if(a[j]==i){ flag=1;break;}j++;}
if(flag==0) puts("輸入錯誤,請再次輸入所要停入車位號:");
else break;
}

puts("請輸入所要停入的車牌號:");
scanf("%s",p[i].id);
time(&(p[i].in));
}
else puts("車位已滿!");
fflush(stdin);
puts("按任意鍵繼續。。。。。。。");
getchar();
}
void out()
{
int i,j=0,a[21],flag=0;
while(j<21){ a[j]=0; j++;}
j=0;
look();
while(j<21){ if(p[j].id[0]!='\0') a[j]=j;j++; }
puts("請輸入離開車的車位號:");
while(1)
{
j=0;
scanf("%d",&i);
while(j<21) { if(a[j]==0){ j++;continue;} if(a[j]==i){ flag=1;break;}j++;}

if(flag==1) break;
else puts("輸入錯誤,請再次請輸入離開車的車位號:");
}
time(&(p[i].out));
struct tm *tm1,*tm2;
tm1=gmtime(&(p[i].in));
tm2=gmtime(&(p[i].out));
int num1,num2;
if(tm1->tm_hour+8>23) num1=tm1->tm_hour+8-24;
else num1=tm1->tm_hour+8;
if(tm2->tm_hour+8>23) num2=tm2->tm_hour+8-24;
else num2=tm2->tm_hour+8;
printf("該車位號為: %d 車牌號為:%s \n%d:%d 停入 %d:%d 離開 \n應付金額為 %0.2f元\n",i,p[i].id,num1,tm1->tm_min,num2,tm2->tm_min,(p[i].out-p[i].in)/3600.0*10);
p[i].id[0]='\0';
fflush(stdin);
puts("按任意鍵繼續。。。。。。。");
getchar();
}
void look()
{ int i=1,k=0;
struct tm *tm1;

if(vacant()!=0)
{ puts("空車位為:");
while(i<21){ if(p[i].id[0]=='\0'){ printf("%-4d",i);k++;}i++; }
i=1;
puts("");
puts("已佔車位為:");
if(k==20) puts(" 沒有停車輛!");
while(i<21)
{ if(p[i].id[0]!='\0')
{ tm1=gmtime(&(p[i].in));int num1;
if(tm1->tm_hour+8>23) num1=tm1->tm_hour+8-24;else num1=tm1->tm_hour+8;
printf("車位號:%-4d 車牌號:%s 進入時間:%d:%d\n",i,p[i].id,num1,tm1->tm_min);
}
i++;

}

}
else puts("車位已滿!");

}

② 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;
}

③ 關於升降橫移立體車庫,在存車是如何設置自動存車,只求一個自動選擇車位編程思路,謝謝你了

工作原理:設備為多層多列布置,每層設一空位,作為交換車位,除底層以外的所有車位均能自行升降,除頂層以外的所有車位均能自行橫移。當某一車位需存取車輛時,該車位下方到空位之間的所有車位向空位方向橫移,形成升降通道,此時便可進行升降存取。

④ PLC停車場車位控制

可以這樣的,
思路:出入口用一個加減計數器自動計算剩餘車位,然後做相應的顯示,車位16個,如果每個車位需要光電探頭,plc輸入點就用的多了,想剩銀子可以把輸入端編程為矩陣輸入端

⑤ 西門子plc設計:停車場車位控制系統。求梯形圖。語句表。

http://wenku..com/view/fe36e3380912a2161479295d.html?st=1
這個你自己去看吧,什麼都有了,符合你的一切要求

⑥ 跪求大神解決:PLC控制地下停車位系統。。急!要用PLC編程哦,有的發我QQ郵箱[email protected]

看不懂,投幣是用來做什麼的?顯示時間是顯示什麼時間?
只要PLC控製程序,不需要做上位機和觸摸屏是么?
我是做工業自動化的,你講清楚點,我幫你寫個設計思路,至於程序還是要自己寫。
你這樣思考:投幣(或者感應)就是輸入點,點動輸入,然後自保持開門,開門延遲時間,然後自動關閉。顯示時間如果是顯示北京時間,那邊觸摸屏程序里有,需要和PLC同步的話就寫同步程序,如果顯示的是車輛進入或者離開的時間,那麼就需要外加計時器了,或者你把離開或者進入設置為報警信號,因為觸摸屏程序的報警功能是能夠記下時間的。當然停車場里必須有開關量的輸入才能知道是否已經有車,那麼就需要在每一個車位安裝光電開關,或者其他輸入設備,把這些輸入的位分別寄存起來,那麼你就可以知道哪些位置上有車,哪些位置上沒有,你也可以把這些布爾量通過邏輯運算加起來,通過十進制數顯示出來,那麼這就是總量了。如果你需要的是停車數,那麼你可以將有車的狀態設置為邏輯1,反之則設置為邏輯0.這樣你就得到剩餘車位的總數了。

熱點內容
自帶ftp伺服器好用嗎 發布:2025-02-06 15:26:11 瀏覽:109
win7訪問xp區域網 發布:2025-02-06 15:17:07 瀏覽:524
均線差演算法 發布:2025-02-06 15:13:22 瀏覽:459
androidbrowser 發布:2025-02-06 15:09:49 瀏覽:622
勇敢的心ftp 發布:2025-02-06 15:09:03 瀏覽:327
php日誌分析 發布:2025-02-06 15:08:19 瀏覽:874
36腳本大廳作者 發布:2025-02-06 14:55:53 瀏覽:409
買電腦配送伺服器嗎 發布:2025-02-06 14:54:58 瀏覽:243
伺服器怎麼刪除資源 發布:2025-02-06 14:36:14 瀏覽:672
安卓如何設置桌面返回鍵 發布:2025-02-06 13:58:15 瀏覽:49