(1)停车场有若干停车位(为说明问题,定为3个),每个位置可以存放不同类型的汽车,包括卡车Track,k客车Carriage和小轿车Car,但同一时刻一个位置只能存放0或1辆汽车。(2)管理系统模拟实际车辆停车情况:新来车辆时如果有空位,按顺序为该车分配停车位;车辆走开时,交纳相应停车费;统计各类车辆的数量。(3)定义描述停车场的类Park,其中有三个位置停放各类车辆。(4)定义基类Automobile,至少包括纯虚函数Pay()用于显示车辆信息并交纳相应停车费。
停车场管理系统的设计与实现 停车场信息管理系统的设计与实现
停车场管理系统的设计与实现 停车场信息管理系统的设计与实现
你好!我是西沃分公司的,我公司主要做停车场设备的生产厂商,你可以到我公司网站下栽停车场标准方案,可以帮你解决你以上的问题?QQ:278968978 有需要可以联系!
蓝牙卡停车场系统
产品介绍
系统:
蓝牙停车场系统是利用蓝牙技术完成远距离(现有技术在3—15米范围内)非接触性刷卡的停车场管理系统,具有省时省力节能、收费、计时准确可靠、保密防伪性好、灵敏度高、使用寿命长、用户不停车刷卡进出、功能强大等众多优点。
一般根据频率的不同,可分为低频射频卡(125k,134k)、中频射频卡和高频射频卡,低频射频卡主要有125kHz和134.2kHz两种,中频射频卡频率主要为13.56MHz,高频射频卡主要为433MHz、5MHz,微波2.45GHz、5.8GHz等。
从有无电池供电
远距离2.4G读卡系统
系统:无须人工靠近刷卡,实现全自动识别,车辆通行过程中司机不需要打开车窗,汽车不需要减速,像正常行驶一样直接通过道闸即可。在高峰时间可有效缓解出入库车辆过多、排队刷卡带来的堵塞问题;信号可有效穿过汽车金属贴膜。可以避免在恶劣天气下司机必须摇窗靠近阅读器才能刷卡等问题。
本系统具有以下特点:
1、远距离:读头与卡片之间的有效读取距离为3~20米可调。
2、优点:卡,随便放在车的任何一个位置都能有效感应。无角度。
3、高速度:卡片移动速度为0~180km/h时,仍能正确识别卡。
4、可以有效抑制单通道或者双通道中出现进出混合读卡的现象存在。
远距离5M读卡系统
系统:读写器通过RS232数据接口与计算机连接进行数据交换。安装高度在1.8M以上,读写器稍微向下倾斜,能识别在120km/h以内快速移动的电子标签。
本系统具有以下特点:
1、稳定读取距离可达10M。
2、兼容6C和6B协议。
3、支持多种语言的SDK开发包,系统接入方便。
4、提供RJ45的接口。
5、一体化工业设计,防水防晒,安装方便。
中距离125K读卡系统
系统:车辆进出停车场时,司机只要在车内把卡靠近读卡器,系统就能将卡中信息读取。在严寒的冬天或下雨天气,司机免去把手伸到车窗外读卡的痛苦,同时不要求司机一定要把车紧靠读卡器才能读卡,避免了不必要的交通,使停车场管理系统更为智能化、人性化。与远距离读卡器相比,在不要求压地感读卡的情况下,更便于管理。
系统特点:
完全支持4100所兼容格式的任何ID卡,内置感应天线,方便用户的外观设计及开发,广泛应用于停车场管理系统,门禁控制系统等一卡通管理系统。
内置接收天线,工作频率为125KHZ。
视频免取卡停车场系统
产品介绍
系统:
视频免取卡收费系统是以一套完善的基于车牌及车型识别的收费系统作为车辆出入停车场的凭证,通过出入口的车辆识别来判断车辆进出场的权限及车辆的停放时间和应缴停车费
#include
#include
#include
#define MAX 20
#define pr 0.05
typedef struct time{
int hour;
int min;
}Time;
typedef struct node{
char num[10];
Time reach;
Time lee;
}CarNode;
typedef struct NODE{
CarNode stack[MAX+1];
int top;
}SeqStackCar;
typedef struct car{
CarNode data;
struct car next;
}QueueNode;
typedef struct Node{
QueueNode head;
QueueNode rear;
}LinkQueueCar;
void InitStack(SeqStackCar );
int InitQueue(LinkQueueCar );
int Arrival(SeqStackCar ,LinkQueueCar );
void Lee(SeqStackCar ,SeqStackCar ,LinkQueueCar );
void List(SeqStackCar,LinkQueueCar);
void main()
{SeqStackCar Enter,Temp;
LinkQueueCar Wait;
int ch;
InitStack(&Enter);
InitStack(&Temp);
InitQueue(&Wait);
while(1)
{printf("n1. 车辆到达登记");
printf(" 2. 车辆离开登记");
printf(" 3. 车辆列表显示");
printf(" 4. 退出系统n");
while(1)
{scanf("%d",&ch);
if(ch>=1&&ch<=4)break;
else printf("n请选择: 1~4.");
}switch(ch)
{case 1:Arrival(&Enter,&Wait);break;
case 2:Lee(&Enter,&Temp,&Wait);break;
case 3:List(Enter,Wait);break;
case 4:exit(0);
default: break;
}}
}void InitStack(SeqStackCar s){
int i;
s->top=0;
for(i=0;i<=MAX;i++)
s->stack[s->top]=NULL;
}int InitQueue(LinkQueueCar Q){
Q->head=(QueueNode )malloc(sizeof(QueueNode));
if(Q->head!=NULL)
{Q->head->next=NULL;
Q->rear=Q->head;
return(1);
}else return(-1);
}void PRINT(CarNode p,int room){
int A1,A2,B1,B2;
printf("n车辆离开的时间:");
scanf("%d:%d",&(p->lee.hour),&(p->lee.min));
printf("n离开车辆的车牌号为:");
puts(p->num);
printf("n其到达时间为: %d:%d",p->reach.hour,p->reach.min);
printf("离开时间为: %d:%d",p->lee.hour,p->lee.min);
A1=p->reach.hour;
A2=p->reach.min;
B1=p->lee.hour;
B2=p->lee.min;
printf("n应交费用为: %2.1f元",((B1-A1)60+(B2-A2))pr);
free(p);
}int Arrival(SeqStackCar Enter,LinkQueueCar W){
CarNode p;
QueueNode t;
p=(CarNode )malloc(sizeof(CarNode));
flushall();
printf("n请输入车牌号(例:豫B1234):");
gets(p->num);
if(Enter->top {Enter->top++; printf("n车辆在车场第%d位置.",Enter->top); printf("n车辆到达时间:"); scanf("%d:%d",&(p->reach.hour),&(p->reach.min)); Enter->stack[Enter->top]=p; return(1); }else {printf("n该车须在便道等待!有车位时进入车场"); t=(QueueNode )malloc(sizeof(QueueNode)); t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; return(1); }} void Lee(SeqStackCar Enter,SeqStackCar Temp,LinkQueueCar W) {int room; CarNode p,t; QueueNode q; if(Enter->top>0) {while(1) {printf("n请输入车在车场的位置/1--%d/:",Enter->top); scanf("%d",&room); if(room>=1&&room<=Enter->top) break; }while(Enter->top>room) {Temp->top++; Temp->stack[Temp->top]=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; }p=Enter->stack[Enter->top]; Enter->stack[Enter->top]=NULL; Enter->top--; while(Temp->top>=1) {Enter->top++; Enter->stack[Enter->top]=Temp->stack[Temp->top]; Temp->stack[Temp->top]=NULL; Temp->top--; }PRINT(p,room); if((W->head!=W->rear)&&Enter->top {q=W->head->next; t=q->data; Enter->top++; printf("n便道的%s号车进入车场第%d位置.",t->num,Enter->top); printf("n请输入%s号车进入车场的时间:"); scanf("%d:%d",&(t->reach.hour),&(t->reach.min)); W->head->next=q->next; if(q==W->rear) W->rear=W->head; Enter->stack[Enter->top]=t; free(q); }else printf("n便道里没有车.n"); }else printf("n车场里没有车."); }void List1(SeqStackCar S) {int i; if(S->top>0) {printf("n车场:"); printf("n 位置到达时间 车牌号n"); for(i=1;i<=S->top;i++) {printf(" %d ",i); printf(" %d:%d ",S->stack[i]->reach.hour,S->stack[i]->reach.min); puts(S->stack[i]->num); }} else printf("n车场里没有车"); }void List2(LinkQueueCar W) {QueueNode p; p=W->head->next; if(W->head!=W->rear) {printf("n等待车辆的号码为:"); while(p!=NULL) {puts(p->data->num); p=p->next; }} else printf("n便道里没有车."); }void List(SeqStackCar S,LinkQueueCar W) {int flag,tag; flag=1; while(flag) {printf("n请选择 1|2|3:"); printf("n1.车场列表n2.便道列表n3.返回主菜单n"); while(1) {scanf("%d",&tag); if(tag>=1||tag<=3) break; else printf("n请选择 1~3:"); }switch(tag) {case 1:List1(&S);break; case 2:List2(&W);break; case 3:flag=0;break; default: break; }} } #include #include #include 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; ("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.010); 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:%dn",i,p[i].id,num1,tm1->tm_min); }i++; }} else puts("车位已满!"); }7、某停车场有20个车位(1-20号),设计一个停车场管理系统,实现停车管理系统。 c语言程序设计 。
版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。