当前位置:首页 » 编程软件 » 编程车位表

编程车位表

发布时间: 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.这样你就得到剩余车位的总数了。

热点内容
原神游戏服务器ip 发布:2025-02-06 17:54:23 浏览:810
如何查笔记本电脑的真正配置 发布:2025-02-06 17:48:07 浏览:81
存储器存在地址 发布:2025-02-06 17:47:28 浏览:539
phpsocket教程 发布:2025-02-06 17:42:13 浏览:423
mysql解压缩版安装 发布:2025-02-06 17:26:33 浏览:179
phpgd图片 发布:2025-02-06 17:24:34 浏览:206
php代码整理 发布:2025-02-06 17:24:31 浏览:477
java可执行文件 发布:2025-02-06 17:18:59 浏览:249
卫士相当于现在什么配置 发布:2025-02-06 17:05:04 浏览:409
项目编译慢 发布:2025-02-06 16:53:48 浏览:382