当前位置:文档之家› 停车场管理系统的设计与实现

停车场管理系统的设计与实现

停车场管理系统的设计与实现
停车场管理系统的设计与实现

《程序设计与算法综合训练》设计报告2

学号:E11514064 姓名:汪泓章年级:大一专业:计科

项目名称:停车场管理系统的设计与实现:完成日期:2016年6月27日

一.需求分析

1.问题描述:

设停车场是一个可停放n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端)。若停车场内已经停满n辆车,那么后来的车只能在门外的便道上等候。一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。试为停车场编制按上述要求进行管理的模拟程序。

2.基本要求:

以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入数据的序列进行模拟管理。每一组输入数据包括三个数据项:汽车的“到达”(‘A’表示)或“离去”(‘D’表示)信息、汽车标识(牌照号)以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或者便道上的停车位置;若是车辆离去,则输出汽车在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。

(1).程序所能达到的基本可能:

程序以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入数据的序列进行模拟管理。栈以顺序结构实现,队列以链表结构实现。同时另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车。输入数据按到达或离去的时刻有序。当输入数据包括数据项为汽车的“到达”(‘A’表示)信息,汽车标识(牌照号)以及到达时刻时,应输出汽车在停车场内或者便道上的停车位置;当输入数据包括数据项为汽车的“离去”(‘D’表示)信息,汽车标识(牌照号)以及离去时刻时,应输出汽车在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费);当输入数据项为(‘P’,0,0)时,应输出停车场的车数;当输入数据项为(‘W’, 0, 0)时,应输出候车场车数;当输入数据项为(‘E’, 0, 0),退出程序;

(2).输入输出形式及输入值范围:

程序运行后进入循环,显示提示信息:“请输入停车场最大容量n=:”,提示用户输入停车场最大容量,输入后显示提示信息:请输入车辆信息,提示用户输入车辆信息(“到达”或者“离开”,车牌编号,到达或者离开的时间)。若车辆信息为“到达A”,车辆信息开始进栈(模拟停车场),当栈满,车辆会进队列(模拟停车场旁便道),若车辆信息为“离开D”,会显示该车进入停车场的时间以及相应的停车费用,若该车较部分车早进停车场,这部分车需先退出停车场,暂时进入一个新栈为其让道,当待离开车离开停车场后,这部分车会重新进入停车场,同时便道上的第一辆车进入停车场;若输入(‘P’,0,0),会显示停车场的车数;若输入(‘W’,0,0),会显示便道上的车数;若输入(‘E’,0,0),程序会跳出循环,同时程序结束。用户每输入一组数据,程序就会根据相应输入给出输出。输入值第一个必须为字母,后两个为数字,中间用逗号隔开

二.概要设计

1. 所用到得数据结构及其ADT

为了实现上述功能,该程序以顺序栈模拟停车场以及临时停放为给要离去的汽车让路而从停车场退出来的汽车的场地,以链表队列模拟车场外的便道,因此需要栈和队列这两个抽象数据类型。

顺序栈数据类型定义

typedef struct Stack

{

struct Node data[MaxSize];

int top;

int num;

}SqStack;

基本操作:

SqStack *Init_SeqStack() //置空栈

int ISEmpty_SeqStack(SqStack *s) //判断栈是否为空,栈为空返回1

int ISFULL_SeqStack(SqStack *s,int n) //判断栈是否已满,若栈满返回1

void Push_SeqStack(SqStack *p,struct Node s) //入栈

int POP_SeqStack(SqStack *s,struct Node car)//出栈

2.链表队列数据类型定义

QNODE //队列节点

{

struct Node data;

QNODE *next;

};

typedef struct linkqueue //队列结构体定义

{

QNODE *front,*rear;

int num;

}LinkQueue;

基本操作:

LinkQueue *Init_LQueue() //创建空队列

int ISEmpty_LQueue(LinkQueue *q) //判断队列是否为空,队列为空返回1 void IN_Lqueue( LinkQueue *q,struct Node s) //入队

struct Node Out_LQueue(LinkQueue *q) //出队

2.主程序流程及其模块调用关系

1)主程序模块

2)出栈

3)判断栈是否为空

4)判断栈是否已满

5)判断队列是否为空

6)出队

函数调用:

main()函数中调用:

ISFULL_SeqStack(parkstack,n),

IN_Lqueue(parkqueue,car);

Push_SeqStack(parkstack,car);

t=POP_SeqStack(parkstack,car);

ISEmpty_LQueue(parkqueue)==0;

Push_SeqStack(parkstack,Out_LQueue(parkqueue) ); POP_SeqStack(SqStack *s,struct Node car)出栈函数中调用:Init_SeqStack();

Push_SeqStack(p,s->data[s->top]);

ISEmpty_SeqStack(p)==0

三、详细设计

1. 实现每个操作的伪码

1)主程序模块

int main()

{

SqStack *parkstack; //parkstack为表示停车场的栈LinkQueue *parkqueue; //parkqueue为表示便道的队列struct Node car;

int n,a=0,t; //n为停车场栈的最大容量

time_t rawtime;

struct tm * timeinfo;

time (&rawtime);

timeinfo = localtime (&rawtime);

parkstack=Init_SeqStack();

parkqueue=Init_LQueue();

printf("请输入停车场最大容量n=\n");

scanf("%d",&n);

printf("请输入车辆信息\n");

scanf("%c,%d,%d",&car.AL,&car.NO,&car.time);

while(car.AL!='E')

{

if(car.AL=='A' )

{ // 汽车到达的情况

if(ISFULL_SeqStack(parkstack,n)==1) //栈满的情况

{

IN_Lqueue(parkqueue,car); //进入队列等待

printf("这辆车在门外便道上第%d个位置\n",parkqueue->num);

printf("\n");

printf("请输入车辆信息\n");

}

else

{

Push_SeqStack(parkstack,car); //入栈

printf("这辆车在停车场内第%d个位置\n",parkstack->num);

printf("\n");

printf("请输入车辆信息\n");

}

}

if(car.AL=='D' ) //汽车离开的情况

{

t=POP_SeqStack(parkstack,car);//出栈

printf("这辆车停留时间为%d\n",t);

printf("\n");

printf("请输入车辆信息\n");

if(ISEmpty_LQueue(parkqueue)==0) //队列不为空需要进栈

Push_SeqStack(parkstack,Out_LQueue(parkqueue) );

}

if(car.AL=='P'&&car.NO==0&&car.time==0 )//显示停车场的车数

{

printf("停车场的车数为%d\n",parkstack->num);

printf("\n");

printf("请输入车辆信息\n");

}

if(car.AL=='W'&&car.NO==0&&car.time==0 )//显示候车场的车数

{

printf("候车场的车数为%d\n",parkqueue->num);

printf("\n");

printf("请输入车辆信息\n");

}

scanf("%c,%d,%d",&car.AL,&car.NO,&car.time);

}

printf("输入结束\n");

return 1;

}

2)置空栈模块

SqStack *Init_SeqStack() //置空栈

{

SqStack *s;

s=(SqStack*)malloc(sizeof(SqStack));

s->top=-1;

s->num=0;

return s;

}

3)创建空队列模块

LinkQueue *Init_LQueue() //创建空队列

{

LinkQueue *q;

QNODE *p;

q=(LinkQueue*)malloc(sizeof(LinkQueue));

p=(QNODE*)malloc(sizeof(QNODE));

p->next=NULL;

q->front=q->rear=p;

q->num=0;

return q;

}

4)判断栈是否为空模块

int ISEmpty_SeqStack(SqStack *s) //判断栈是否为空,栈为空返回1 {

if(s->top ==-1)

return 1;

else

return 0;

}

5)判断栈是否已满模块

int ISFULL_SeqStack(SqStack *s,int n) //判断栈是否已满,若栈满返回1 {

if(s->top==n-1)

return 1;

else

return 0;

}

6)判断队列是否为空模块

int ISEmpty_LQueue(LinkQueue *q) //判断队列是否为空,队列为空返回1 {

if(q->front==q->rear)

return 1;

else

return 0;

}

7)入队模块

void IN_Lqueue( LinkQueue *q,struct Node s) //入队{

QNODE *p;

p=(QNODE*)malloc(sizeof(QNODE));

p->data=s;

q->num++;

p->next=NULL;

q->rear->next =p;

q->rear =p;

}

8)入栈模块

void Push_SeqStack(SqStack *p,struct Node s) //入栈{

p->top ++;

p->data[p->top]=s;

p->num++;

}

9)出栈模块

int POP_SeqStack(SqStack *s,struct Node car)//出栈{

SqStack *p;

int t;

p=Init_SeqStack();

while(s->data[s->top].NO !=car.NO)//找到车牌号为P.NO的车,{

Push_SeqStack(p,s->data[s->top]);

s->top--;

s->num--;

}

t=car.time-s->data[s->top].time;

s->top--;

s->num--;

while(ISEmpty_SeqStack(p)==0)

{

Push_SeqStack(s,p->data[p->top]);

p->top--;

p->num--;

}

return t;

}

10)出队模块

struct Node Out_LQueue(LinkQueue *q) //出队

{

QNODE *p;

p=q->front->next;

q->front->next=p->next;

q->num --;

if( q->front->next==NULL)

q->rear=q->front;

return p->data;

free(p);

}

四、测试与分析

1. 设计与调试过程中遇到的问题分析、体会

1)编写代码时,由于对栈和队列不熟悉,经常会一些问题,该程序定义了车辆信息,停车场的顺序栈,便道上的链表队列,所以在函数代值时会出现代值的问题,例如在出栈的程序POP_SeqStack(SqStack *s,struct Node car)中一开始在s->data[s->top].NO !=car.NO 这句话中我编的代码是s->data.NO !=car.NO'程序报错.NO' : left operand points to 'struct', use '->',这就是因为定义的太多了,忘记了当初定义的停车场栈是:struct Node data[MaxSize];就是像程序中s->data[s->top].time这样的定义因为太长了经常会搞混,再次像IN_Lqueue(parkqueue,car);,Push_SeqStack(parkstack,car); 这种涉及函数调用的尤其要注意代的应该是什么。

2. 主要算法的时间复杂度分析

主函数中对每次输入的车辆信息只选择其中一个执行,时间复杂度O(1);空间复杂度O (1);入栈入队列函数根据判断条件将数据入栈或入队列,时间复杂度O(1);空间复杂度O(1);出栈数据不在最顶端需将n个数据先出该栈,再入新栈,再回旧栈,时间复杂

度O(n);空间复杂度O(1);

3.测试数据.

设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。其中:(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,1,15)表示1号牌照车在15这个时刻离去。4. 测试结果

五.总结

在这个程序中还有一个问题,就是定义的结构体数组有些多,容易混乱,所以我选择每定义一个结构体都将其画出一个图,这样编写的时候就不至于太混乱。这个停车管理系统的设计过程,还是慢慢在适应模块化程序的编写,但有的程序还是喜欢写在一起,使得一个子程序会很长,这个问题希望在之后的问题再继续慢慢改进

六.附录:源程序清单

#include

#include

#include

//函数返回状态代码

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

#define INFEASIBLE -1

#define OVERFLOW -2

#define SIZE 5//停车场位置数typedef int Status;

//栈,模拟停车场

typedef struct Car1{//车

int number;//汽车车号

int ar_time;//汽车到达时间

}CarNode;

typedef struct{//停车场CarNode *base;//停车场的堆栈底CarNode *top;//停车场的堆栈顶int stacksize;

}Park;

//队列,模拟便道

typedef struct Car2{//车

int number;//汽车车号

int ar_time;//汽车到达时间struct Car2 *next;

}*CarPtr;

typedef struct{//便道

CarPtr front;//便道的队列的对头CarPtr rear;//便道的队列的队尾int length;

}Shortcut;

Status InitStack(Park &P){//初始化停车场

P.base=(CarNode*)malloc(SIZE*sizeof(Car1));

if(!P.base) exit(OVERFLOW);

P.top=P.base;

P.stacksize=0;

return OK;

}

Status Push(Park &P,CarNode e){//车进入停车场*P.top++=e;

++P.stacksize;

return OK;

}

Status Pop(Park &P,CarNode &e){//车离开停车场if(P.top==P.base)

printf("停车场为空.");

else

{

e=*--P.top;

--P.stacksize;

}

return OK;

}

Status InitQueue(Shortcut &S){//初始化便道

S.front=S.rear=(CarPtr)malloc(sizeof(Car2));

if(!S.front||!S.rear) exit(OVERFLOW);

S.front->next=NULL;

S.length=0;

return OK;

}

Status EnQueue(Shortcut &S,int number,int ar_time){//车进入便道CarPtr p;

p=(CarPtr)malloc(sizeof(Car2));

if(!p) exit(OVERFLOW);

p->number=number;

p->ar_time=ar_time;

p->next=NULL;

S.rear->next=p;

S.rear=p;

++S.length;

return OK;

}

Status DeQueue(Shortcut &S,CarPtr &w){//车离开便道

if(S.length == 0)

printf("通道为空.");

else

{

w = S.front->next;

S.front->next=S.front->next->next;

--S.length;

}

return OK;

}

Status Arrival(Park &P,Shortcut &S){//对进站车辆的处理int number,ar_time;

printf("请输入车牌号:");

scanf("%d",&number);

printf("进场的时刻:");

scanf("%d",&ar_time);

if(P.stacksize

{

CarNode c;

c.number=number;

c.ar_time=ar_time;

Push(P,c);

printf("该车应停在第%d号车道.\n",P.stacksize);

}

else

{

EnQueue(S,number,ar_time);

printf("停车场已满,请暂时停在便道的第%d个位置.\n",S.length); }

return OK;

}

Status Leave(Park &P,Park &P1,Shortcut &S){//对离站车辆的处理int number,le_time,flag=1,money,ar_time;

printf("请输入车牌号:");

scanf("%d",&number);

printf("出场的时刻:");

scanf("%d",&le_time);

CarNode e,m;

CarPtr w;

while(P.stacksize)

{

Pop(P,e);

if(e.number==number)

{

flag=0;

停车场管理系统设计

面向对象程序设计(C++课程大作业 设计题目:停车场管理系统设计 院系:计算机科学与信息工程学院专业班级: 学号姓名: 指导教师:

目录 一、成员分工 (1) 二、需求分析 (2) 三、总体设计 (3) 四、详细设计 (6) 五、系统测试 (17) 六、总结 (20) 七、参考文献 (21)

成员分工 我们小组成员共有三名,分别是,为了能按时圆满的完成这次 VC++课程设计,我们小组进行了详细的分工,以确保设计能按时完成。经过周密的考虑和详细的调查最终确定该停车场管理系统需要以下 几个功能模块: (1)需求分析 (2)界面的设计 (3)添加功能 (4)显示功能 (5)查询功能 (6)编辑功能 (7)删除功能 (8)统计功能 (9)保存功能 (10)读取功能 经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工 神 1 具体完成以下模块的设计与实现: (1 )需求分析 (2 )界面的设计 (3 )添加功能 保存功能 (4 ) 神 2 具体完成以下模块的设计与实现: (1)显示功能 (2)查询功能 显示功能 (3) 神 3 主要具体完成以下模块的设计与实现: (1)编辑功能 (2)删除功能 (3)读取功能

二需求分析 1. 问题描述 定义车辆类,属性有车牌号、颜色、车型(小汽车、小卡、中卡和大卡)、至U达的时间和离开的时间等信息和相关的对属性做操作的行为。定义一个管理类,完成对停车场的管理。停车场的具体 要求:设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场 内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等待,一旦有车开走, 则排在便道上的第一辆车即可开入;每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。 2. 基本要求 (1)添加功能:程序能够添加到达停车场的车辆信息,要求车辆的车牌号要唯一, 如果添加了重复编号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据车牌号、车型等信息对已添加的停车场中的车辆信息进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息; (3)显 示功能:可显示当前系统中所有车辆的信息,每条记录占据一行。(4) 编辑功能:可根据查询结果对相应的记录进行修改,修改时注意车牌号的唯一性。 (5 )删除功能:主要实现对已添加的车辆记录进行删除。如果当前系统中没有相应的人员记录,贝U提示“记录为空!”并返回操作。 (6)统计功能:能统计停车场中车辆的总数、按车型、按到达时间进行统计等。 (7 )保存功能:可将当前系统中各类人员记录和休假记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 3 .系统运行环境 (1)硬件环境。联想双核处理器, 2G内存,2G独立显卡,80G硬盘。 (2) 软件环境。Microsoft Visual C++6 ?0,WindosXP 系统。

收费停车场管理系统数据库设计

东方学院 实验(实训)报告 项目名称收费停车场管理系统 所属课程名称数据库原理及应用 项目类型设计、综合型 实验(实训)日期 班级 09信息2班 学号0920400204,0920400211姓名曹欢欢林婉怡 指导教师严素蓉

目录 1. 需求分析 (4) 1.1引言 (4) 1.2任务 (4) 1.2.1需求分析阶段的目标 (4) 1.2.2具体任务 (4) 1.2.3 结果 (5) 2. 概念设计 (11) 2.1目标 (11) 2.2设计过程 (11) 2.3阶段成果 (11) 3. 逻辑设计 (12) 3.1目标 (12) 3.2任务与结果 (12) 3.2.1数据组织 (12) 图9.系统功能模块图 (15) 4. 物理设计 (16) 4.1目标 (16) 4.2任务 (16) 4.2.1数据存取方面 (16) 4.2.2功能模块图 (16) 4.3结果 (18) 4.3.1 存储过程 (18) 4.3.2 触发器 (18) 5. 数据库实施阶段 (19) 5.1目标 (19) 5.2任务与结果 (19) 5.2.1建立数据库 (19) 6. 数据库调试与测试 (20)

1.需求分析 1.1引言 需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。 目前停车场的管理方式比较落后,已经不能适应现代社会的实际需求,本系统的开发能给管理上带来新鲜的活力,提高管理的效率,具有较高的实用性和开发价值。 1.2任务

1.2.1需求分析阶段的目标 通过调查了解分析停车管理的现状,弄清用户对开发的数据库应用系统的确切要求,以及停车场管理的流程,系统的具体功能和数据库中数据信息。 1.2.2具体任务 (1)处理对象 系统处理的对象包括车辆信息、固定车位信息、自由车位信息、停车车辆信息以及收费记录等五个方面。即 固定车位信息:车位编号、车位位置、车牌号码、车主姓名、车辆品牌、车辆颜色、车辆照片、联系地址、联系方式、车位余额; 自由车位信息:车位编号、车位位置; 车辆信息:车牌号码、车辆品牌、车辆颜色; 停车信息:车位编号、车牌号码、进入时间、离开时间、时间段、车位类型、在位情况、收费费率; 收费记录:车位编号、车牌号码、停车时间、停车费用、发票编号。 (2)处理功能要求 整个系统具体包括三个子系统,分别为:停车处理子系统、车位综合管理子系统以及收费子系统。 处理的功能包括:车辆信息的查询以及更新;空闲车位信息的查询;固定车位信息的查询;进出车辆记录的更新和收费信息的查询与更新等。 (3)安全性与完整性要求 安全性可以通过视图机制来完成,对不同用户设置不同权限,不同的用户只能访问授权的视图,这样可以提高一定的程度的安全性。还可以通过存取控制机制:即定义用户权限,并将用户权限登记到数据字典中以及合法的权限检查来保障安全性。 完整性可以通过声明完整性,即在定义表时声明数据完整性和过程完整性,在服务器端编写触发器来实现。 1.2.3 结果 (1)体会和收获 通过对现在的停车场管理状况的调查,发现停车场管理缺少合适的管理系统,并了解了一下管理的大致流程。与此同时通过网络搜索查找现行的停车场管理系统,根据这两者综合来进行需求分析。调查时需要较强的信息捕捉能力以及事后的总结与思考,同时学会用网络较快较准确地搜索到需要的资料是很关键的。

停车场管理系统(需求分析)

停车场管理系统应用软件 需求分析 1. 引言 IT 行业的高速发展让计算机技术深入日常生活的每一个细节,在各个领域中,计算机技术的应用帮助人们减少劳动量,提高工作效率,发挥着越来越重要的作用。随着城市化程度的加深,房地产行业日益兴盛,越来越多的停车场散布在城市里,停车场中来往的车辆与日俱增,对停车场的管理也就是非常重要。本讨论组结合此次的课程设计开发以下的停车场管理系统,使停车场里的车辆能得到有序并且相对全面的管理。 2. 数据流程图分析 2.1. 数据流程图基本符号: 数据接口 数据处理 数据存储 数据流 2.2. 入场停车与出场取车。 2.2.1. 入场流程图: (1)入场 根据系统提示的停车场的现有信息控制车辆的入场,停车场在有车位切卡被识别的情况下方能停车。 (2)停车 指定停车位置提示给用户。 2.2.2. 出场流程图: (1)收费 根据车辆信息,卡的类型以及停车的时间等依据收费标准计算收费额度实施审核通过

收费环节。 (2)出场 交费之后在出场的相关信息提示下完成停车管理过程。 3. 数据字典 数据字典的作用就是给数据流程图上的每个成分以定义与说明。停车场管理系统的数据流程图加上数据字典。能给出一个具有详细的、具体的文字内容与图形的系统逻辑模型,形成一个完整的说明。 基于本系统的规模较大,数据字典的内容繁杂等原因,现只对部分具有代表性的给予说明。 表1、1用户名 表1、2密码 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画,如果就是派生属性则用虚线椭圆表示。 联系:联系也称关系,信息世界中反映实体内部或实体之间的联系。实体内部的联系通常就是指组成实体的各属性之间的联系。 4.2. E-R 图及基本符号:

停车场管理系统—C语言课程设计.doc

停车场管理系统 1题目要求 设有一个可以停放n 辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n 辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车站。停车站内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车站为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编制一程序模拟该停车场的管理。 【基本要求】要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场是的停车时间及它应该交的费用。 2需求分析 根据题目要求,因为停车场是一个单条的序列,可以用结构体实现;在程序中,需要知道每辆来车的具体停放位置,应提供提示、查找、标记工作。车辆离开要计时计费。另外,每天开始时,停车场要初始化。 3总体设计 这个系统可以分为:初始化、有车进入、有车离开、退出四个模块。 4详细设计 main()函数体内包含了界面选则部分menu(),并单独 抽出来作为一个独立函数,目的在于系统执行每部分 模块后能够方便返回到系统界面。即main()函数写为 如下: void main()/*主函数*/ { menu();/*菜单函数*/ } 菜单函数: void menu() { int n,w; do { puts("\t\t**************MENU**************\n\n"); puts("\t\t\t 1.初始化"); puts("\t\t\t 2.有车进入"); puts("\t\t\t 3.有车离开"); puts("\t\t\t 4.退出"); puts("\n\n\t\t*********************************\n"); printf("Please choice your number(1-4): [ ]\b\b"); scanf("%d",&n); if(n<1||n>4) /*对选择的数字作判断*/ { w=1; getchar(); } else w=0; }while(w==1); switch(n) { case 1:chushi();break; /*初始化函数*/ case 2:jinru();break; /*车辆进入函数*/

数据库设计作业 智能停车场管理系统 数据库设计(总14页)

数据库设计作业智能停车场管理系统数据库设计(总14 页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

数据库应用技术 期末作业 题目:智能停车场管理系统 学院:电子工程学院 学号: 姓名: 电话: 2014年12月28日

智能停车场管理系统 一、题目概述 随着21世纪的到来,信息化、智能化已变得越来越重要。在停车场的智能化中,涉及停车场车位管理的智能化、车主管理的智能化、停车信息管理的智能化。做好这些工作有利于提高停车场的管理效率,提升停车场的竞争力。 随着汽车工业的迅猛发展和人民生活水平的不断提高,我国汽车拥有量急剧增加。建设部统计数据显示,我国私人汽车拥有量年均增长20%左右,大大快于经济增速。截至2007年6月,全国汽车保有量达5356万辆,其中私人汽车3239万辆。停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。停车场的规模各不相同,对其进行管理的模式也有不同之处,管理者需要根据自身的条件,选择应用经济、稳定的管理程序,以免选择了高成本的管理系统。本智能停车场管理系统旨在设计一个简洁、稳定、实用的停车场管理信息系统,希望在容错性、实用性、易操作性等方面具有自己的特色,并且保持一定的可扩展性,以满足不同停车场的信息管理需求。 一个简洁、稳定、高效的智能停车场管理系统需要具备以下功能: 1.停车场员工个人信息记录、数据库访问权限设定; 2.停车场车位状况实时监控,能够得知某一时刻某车位是否空闲,如果停放了车辆,能获取车辆相关信息; 3.对于临时车辆,根据车辆进出时间差进行人工收费并记录; 4.车主可以通过手机客户端访问停车场网页,查询停车场停车信息、一段时间的停车记录、收费记录等。 二、需求分析 1 功能需求 一个典型的智能停车场管理信息系统需要包括车辆进出管理及收费功能、停车场车位及车辆信息查询功能和系统设置及管理功能。 1.1 停车场车位划分 首先将停车场划分为固定车位和自由车位两部分。固定车位又可以称为专用车位或内部车位,它的特点是使用者固定,交费采用包月制或包年制,平时进出停车场时不再交费。对于固定车位的车辆,系统有着详细的信息记录,包括车辆信息和车主信息。自由车位又可以称为公用车位或公共车位,它的特点是使用者不固定,针对临时性散客服务,车辆每次出停车场时,根据停车时间和车型交纳停车费用。固定车位的车辆总是停放在自己的车位上,而不停放在自由车位上。不同类型停车场的固定车位和自由车位数目比例是不同的,比如商场、车站、机场类停车场的自由车位数目相对较多,而住宅小区、单位自用类停车场的固定车位数目相对较多。停车场的固定车位和自由车位数目一般情

数据结构课程设计--停车场管理系统

实验二停车场管理 班级:A0712 学号:12 姓名:冷清淼成绩:__________ 指导教师签名:__________ 一、问题描述 设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。 设计要求: 1.模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。 2.从终端读入汽车到达或离去的数据,每组数据包括三项: (1)是“到达”还是“离开”; (2)汽车牌照号码; (3)“到达”或“离开”的时刻。 3.与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。 二、算法说明 1.数据结构说明 (1)用到两个堆栈:一个为车场栈;另一个为临时栈temp typedef struct NODE{ CarNode *stack[MAX+1]; int top; }SeqStackCar; /*模拟车场*/ (2)一个队列结构,存储便道车辆信息:

typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟便道*/ 2.算法说明 (1) 功能模块说明:停车场管理系统含有三个模块,即:车辆到达、离开、列表显示 停车场系统车辆到达 车辆离开列表显示 3 2 1 图1 (2)以模块为单位分析算法 1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待。如图2。 车辆到达 停车场是否满 结束 进入停车场 进入便道 是 否 图2

停车场管理系统源代码

// 停车场管理系统 #include #include #define OVERFLOW 0 #define ERROR 0 #define OK 1 #define STACKSIZE 2 /车/ 库容量 // 时间节点typedef struct time{ int hour; int min; }Time; // 车辆信息typedef struct{ char CarNum; float time; int pos_a; // 车在停车场中的位置int pos_b; // 车 在便道上的位置int flag; }Car,Car2; // 车库信息 (顺序栈) typedef struct{ Car *top; Car *base; int stacksize; }SqStack; // 初始化int InitStack(SqStack &S){ S.base=new Car[STACKSIZE]; if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACKSIZE; return OK; } // 判空int StackEmpty(SqStack S){ if(S.top==S.base) return OK; else return ERROR;

// 判满 int StackFull(SqStack S){ if(S.top-S.base>=S.stacksize) return OK; else return ERROR; } // 入栈 int Push(SqStack &S,Car e){ if(S.top-S.base==S.stacksize) return ERROR; *S.top++=e; return OK; } // 出栈 int Pop(SqStack &S,Car &e){ if(S.top==S.base) return ERROR; e=*--S.top; return OK; } // 遍历栈 int StackTraverse(SqStack S) { Car *p=S.top; Car *q=S.base; int l=1; if(StackEmpty(S)){ for(int j=1;j<=STACKSIZE;j++){ printf("\t 车牌:"); printf("\t\t 到达时间:"); printf("\t 位置%d:空空",j); printf("\n"); } return OK; } while(p!=q){ Car car=*(q); printf("\t 车牌: %d",car.CarNum); printf("\t\t 到达时 间: %5.2f",car.time); printf("\t\t 位置: %d",l++); printf("\n"); q++; return OK; } // 备用车道 (顺序栈) typedef struct { Car2 *top2; Car2 *base2; // int stacksize2; }SqStack2;

基于WEB的停车场管理系统设计和实现

2009 届毕业论文(设计) 论文(设计)题目基于WEB的停车场管理系统的 设计和实现 院系名称计算机科学与技术系 专业(班级)计算机科学与技术 2005级本科1班 (学号)段景辉(0510101005) 指导教师正茂 系负责人袁暋 二O O九年五月三十日

摘要 随着现代社会的快速发展,人民生活水平快速提高,汽车的数量飞速增加,与此同时停车问题也越来越受到人们的关注,为了实现对停车场进行有效的管理,结合一些停车场的模式和现状开发出本停车场管理系统。 停车场管理系统是典型的信息管理系统,本停车场管理系统设计的主要功能包括场内车辆管理和后台数据库管理,其中场内车辆管理又分为出入场管理模块、收费模块、用户管理模块、停车场参数、停车场数据管理模块、系统管理模块等。我们从系统的设计和功能实现方面阐述了管理系统软件的开发过程。 系统采用了B/S架构,Tomcat6.0作为运行服务器,基于J2EE标准、JSP技术利用Hibernate3.1和Struts1.2框架作为开发工具,MyEclipse6.0开发环境,数据库采用Microsoft SQL Server 2000。开发过程利用MVC开发模式,层次分明。成功实现了该系统。试运行结果表明,该系统具有良好的性能和扩展性,较高的响应速度和效率,该系统符合实际的停车场管理系统,为停车场管理供一个快速,简单规范的管理平台。这对提高信息化程度,降低人力成本有着重要的意义。 关键词:停车场管理系统,J2EE,Hibernate3.1,Struts1.2

Abstract With the rapid development of modern society, people's living standards improve and the number of vehicles increases rapidly. People pay more attention to parking problems at the same time. In order to manage the parking lots more efficiently, we have developed a Parking Management System, with some modes and the actuality of present parking lots considered. Parking Management System is typically one of the information management systems. The main functions in the Parking Management System include vehicle management and background database management, and vehicle management is divided into the passing in and out module, the charging module, the user management module, the parking parameters,parking data management module, and the system management module. We discussed the management systems development process from the system design and function of the realization in the Papers. T omcat6.0 as a running server is used in this system on the basis of B/S structure. Based on J2EE standards, JSP technology as development tools which is taken advantage of Hibernate3.1 and Struts1.2 framework and MyEclipse6.0 as development environment are applied in the system. Microsoft SQL Server 2000 is used as background database. We develop the use of MVC pattern in development process. T est results show that the system has good performance and scalability, high response speed and efficiency which is in line with the actual park management system and can provide a fast, simple and standardized management platform. It is important to improve the information level and reduce labor costs. Key words: p arking management system,J2EE, Hibernate3.x, Struts1.2

智能化停车场管理系统组成及施工方法【最新版】

智能化停车场管理系统组成及施工方法停车场管理系统主要由以下三部分组成: 管理中心 管理控制中心由高性能工控机、打印机、停车场系统管理软件组成,管理控制中心负责处理进、出口设备采集的信息,并对信息进行加工处理,控制外围设备,并将信息处理成合乎要求的报表,供管理部门使用。该部分主要用得的接口转换器一般是485转换卡,TCP/IP 集线器,光纤转换器,停车场卡授权器等设备. 入口设备 进口设备由图像抓拍系统、智能补光、道闸、停车场出入口控制机,车辆检测器,自动发卡系统,远距离读卡设备等组成,主要负责对进入停车场的内部车辆进行自动识别、身份验证并自动起落道闸;对外来车辆进行发卡,抓拍记录进入时间、车辆信息并自动起落道闸。该部分有时候需要安装停车场管理系统车位显示屏系统,还有的需要安装停车场诱导系统! 出口设备

出口设备由图像抓拍系统、智能补光、道闸、停车场出入口控制器,车辆检测器,远距离读卡设备,临时计费器等组成,主要负责对驶出停车场的内部车辆进行自动识别、身份验证并自动起落道闸;对外来车辆进行计费,收费后自动起落道闸。 工作原理 固定卡用户车辆进入停车场时,入口控制机主动检测到车辆的进入,并检测卡是否有效。如有效,则道闸开启,车辆便可开进停车场,摄像机并抓拍下该车辆的照片,并存储在管理电脑。车辆离开停车场时,出口控制机自动检测到车辆的到来,并判断所持卡的有效性。如有效,则道闸开启,并触发出口摄像机对车辆进行抓拍,车辆便可离开停车场。 临时卡用户车辆进入停车场时,从入口控制机领取临时卡,入口摄像机抓拍下该车辆的照片,并存储在电脑里,控制器记录下该车辆进入的时间,联机时传入电脑。离开停车场时,入口控制机能检测到是临时卡,提示司机必须交费,临时车必须将临时卡交还保安,并需交一定的费用,经保安确认后方能离开。 说完了原理,那咱们说说施工。按先后顺序,可分为以下几个步

停车场管理系统方案设计

实用文档 停车场管理系统设计方案

重庆冠超科技有限公司

第一章项目概述 一、项目情况说明 本次方案设计主要针对物流园区停车场管理系统进行设计,同时结合我公司对整个停车场管理系统的总体规划,提供的管理模式以供参考。 此次停车场管理系统为一进一出(可脱机收费)停车场管理系统,入口人工识别车型发卡,出口刷卡软件显示收费金额(LED同步),在停车场系统的出口设置收费管理电脑近距离读卡系统、图像对比系统、收费等。设置系统管理中心,数据的查询、管理等。 第二章系统设计思路 一、系统总体规划设计 本方案中提供停车场管理模式以供参考: 管理模式: 此为目前行业所有厂家最为通用的一种模式,停车场系统只在本地独立运行,停车场系统为独立的局域网,不借用办公网络,只能在本地存储、备份、查询和管理系统数据。 二、系统组成及功能设计 1、入口设备组成及功能设计 (1)入口设备组成 停车场入口设备由入口自动道闸(车辆检测器)、摄像机、聚光灯、近距离读卡器等组成。 一卡一车的逻辑控制功能:同一张卡如果已经入场,必须出场后才能再次入场,确

保一卡一车、一进一出的逻辑控制。 收费及记录存储功能:控制机标准设计用户数为10000,脱机记录数为10000万条。 满足大系统有更大容量要求。 手动开闸记录功能:系统具有手动开闸记录功能,给管理人员提供更多的监管手段。 图像抓拍对比功能:车辆入场时,系统会抓拍车辆的入场图片并存储,以供车辆出场时进行人工比对。 2、出口设备组成及功能设计 (1)出口设备组成 停车场出口设备由出口(含近距离读卡器、CAK3000控制器、显示屏、语音提示系统及附件)、自动道闸(车辆检测器)、摄像机、聚光灯、远距离读卡器等组成。 (2)出场功能设计 信息显示及广告发布功能:出口票箱显示屏能通过管理电脑软件加载广告信息或停车场信息,在无车情况时,显示屏会滚动显示当前时间和用户发布的广告等信息。 语音提示功能:当有车行驶至出口票箱车辆检测线圈上时,出口票箱检测到有车,会根据当前的时间,立即通过语音提示系统发出礼貌用语并在显示屏上显示礼貌用 语(提示信息:如一路顺风等等)。对于控制机使用过程中的操作,语音提示系统 也会进行相应的提示。 一卡一车的逻辑控制功能:同一张卡如果已经出场,必须再次入场后才能再次出场,确保一卡一车、一进一出的逻辑控制。 手动开闸记录功能:系统具有手动开闸记录功能,给管理人员提供更多的监管手段。 图像抓拍对比功能:车辆出场时,系统会抓拍车辆的出场图片并存储,以便操作人员与入场图像进行人工比对。 3、出口岗亭管理设备组成及功能设计 (1)出口岗亭管理设备组成 停车场出口岗亭管理设备由收费电脑、网络交换机、临时卡计费器、视频捕捉卡等组成。 (2)出口岗亭管理功能设计 临时卡收费功能:临时卡出场可通过岗亭内临时卡计费器读卡(也可在出口票箱面板读卡感应区),并根据相应的收费标准进行收费并提示收费金额、停车时间等。

停车场数据库设计.

停车场数据库管理系统 姓名: 学号: 专业:

1.需求分析 背景 现在随着社会的发展,车为了人们出行的必备工具,因为它快捷方便,但在行程中快捷方便的同时,到哪停车成为了人们头疼的事。停车场因此存在了,但有的停车场比较大,车位比较多,管理起来较麻烦,这就需要有计算机的辅助。同时随着计算机的发展,计算机数据库可以很好的帮助人们去管理,管理员的工作变的更加简单程序化,且失误减少,效率变高,停车会更加方便。 停车场数据库实现的功能 1.输入及添加停车位、停车位资料,每个停车位信息包括:停车位编号、停车位地址、停车位类别编号、登记日期、是否被占用。停车证信息包括:客户停车证编号、客户姓名、客户性别、客户种类、登记时间。 2.对已存入的停车位、停车证信息进行插入添加。 3.对已存入的信息进行修改。 4.利用停车证对停车进行租借和退还停车位。 5.利用租借停车位时间向客户收费。 关系模式

2.方案图表设计 E-R图 根据所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。 图书管理信息系统可以划分为:停车位类别信息、客户信息实体、停车位信息、租借记录信息,退还记录信息。用E-R图一一描述这些实体。 2.1.1类别E-R图: 图2-1类别E-R图 客户信息E-R图: 图2-2 客户信息E-R图 2.1.3信息实体E-R图:

图2-3停车位信息E-R图2.1.4.记录信息E-R图: 图2-4 记录信息E-R图2.1.5记录信息E-R图: 图2-5记录信息E-R图

付款信息E-R图: 图2-6付款信息E-R图2.1.6总的信息实体E-R图: 图2-7总的信息E-R图

停车场管理系统源代码

//停车场管理系统 #include #include #define OVERFLOW 0 #define ERROR 0 #define OK 1 #define STACKSIZE 2 //车库容量 //时间节点 typedef struct time{ int hour; int min; }Time; //车辆信息 typedef struct{ char CarNum; float time; int pos_a; //车在停车场中的位置 int pos_b; //车在便道上的位置 int flag; }Car,Car2; //车库信息(顺序栈) typedef struct{ Car *top; Car *base; int stacksize; }SqStack; //初始化 int InitStack(SqStack &S){ S.base=new Car[STACKSIZE]; if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACKSIZE; return OK; } //判空 int StackEmpty(SqStack S){ if(S.top==S.base) return OK; else return ERROR; }

//判满 int StackFull(SqStack S){ if(S.top-S.base>=S.stacksize) return OK; else return ERROR; } //入栈 int Push(SqStack &S,Car e){ if(S.top-S.base==S.stacksize) return ERROR; *S.top++=e; return OK; } //出栈 int Pop(SqStack &S,Car &e){ if(S.top==S.base) return ERROR; e=*--S.top; return OK; } //遍历栈 int StackTraverse(SqStack S) { Car *p=S.top; Car *q=S.base; int l=1; if(StackEmpty(S)){ for(int j=1;j<=STACKSIZE;j++){ printf("\t车牌:"); printf("\t\t到达时间:"); printf("\t位置%d:空空",j); printf("\n"); } return OK; } while(p!=q){ Car car=*(q); printf("\t车牌: %d",car.CarNum); printf("\t\t到达时间:%5.2f",car.time); printf("\t\t位置:%d",l++); printf("\n");

数据库设计作业 智能停车场管理系统 数据库设计

北京邮电大学 数据库应用技术 期末作业 题目:智能停车场管理系统 学院:电子工程学院 学号: 姓名: 电话:

2014年12月28日

智能停车场管理系统 一、题目概述 随着21世纪的到来,信息化、智能化已变得越来越重要。在停车场的智能化中,涉及停车场车位管理的智能化、车主管理的智能化、停车信息管理的智能化。做好这些工作有利于提高停车场的管理效率,提升停车场的竞争力。 随着汽车工业的迅猛发展和人民生活水平的不断提高,我国汽车拥有量急剧增加。建设部统计数据显示,我国私人汽车拥有量年均增长20%左右,大大快于经济增速。截至2007年6月,全国汽车保有量达5356万辆,其中私人汽车3239万辆。停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。停车场的规模各不相同,对其进行管理的模式也有不同之处,管理者需要根据自身的条件,选择应用经济、稳定的管理程序,以免选择了高成本的管理系统。本智能停车场管理系统旨在设计一个简洁、稳定、实用的停车场管理信息系统,希望在容错性、实用性、易操作性等方面具有自己的特色,并且保持一定的可扩展性,以满足不同停车场的信息管理需求。 一个简洁、稳定、高效的智能停车场管理系统需要具备以下功能: 1.停车场员工个人信息记录、数据库访问权限设定; 2.停车场车位状况实时监控,能够得知某一时刻某车位是否空闲,如果停放了车辆,能获取车辆相关信息; 3.对于临时车辆,根据车辆进出时间差进行人工收费并记录; 4.车主可以通过手机客户端访问停车场网页,查询停车场停车信息、一段时间的停车记录、收费记录等。 二、需求分析 1 功能需求

停车场管理系统设计方案

停车场管理系统 设 计 方 案

目录 第一章概述 (3) 1.1传统停车场面临的问题 (3) 1.2用户需求分析 (3) 1.3设计思想 (4) 1.4设计依据 (5) 第二章系统设计 (6) 2.1系统方案 (6) 2.2系统功能特点 (7) 1)资料管理 (7) 2)费用管理 (8) 3)实时监控 (8) 4)故障报修 (8) 3、车牌识别系统功能 (8) 3.1、基本功能 (8) 3.2车牌识别系统优势 (11) 3.3系统使用流程 (13) 第三章系统技术参数及功能 (14)

3.1系统硬件 (14) 3.2系统软件功能 (19)

第一章概述 1.1传统停车场面临的问题 传统的停车场收费模式大多采用近距离读卡方式或取票的方式,车主必须停车刷卡/取票后方能通行,使用非常不方便,有的车主还需要下车刷卡/取票。因此会碰到以下问题: 1)下雨天刷卡/取票容易被淋湿; 2)上下坡道停车刷卡/取票容易造成溜车、碰撞等事故。 3)停车刷卡更有通行速度慢的缺点,尤其是在进出高峰容易造成拥堵。 4)各个项目管理独立分散,给管理带来极大不便。 1.2需求分析 一个好的建筑必须具备先进的技术、现代化的硬件设施,以保证车辆进出快捷、方便、顺畅、有序,泊车安全、防盗;同时还需要优秀的收费系统以保证管理方便、收费的公开、公正、合理、费用不流失,真正实现人性化、智能化、自动化的管理。 应着停车场的信息化、智能化管理的现实需求,能给予车主提供一种更加安全、舒适、方便、快捷和开放的环境,实现停车场运行的高效化、节能化、环保化;

1.3设计思想 在系统设计过程中,所有的步骤和目的都是为了建设一个具有规范性,实用性,先进性,可靠性,经济性,可维护性,可扩充性等诸多优点的系统,带有前瞻性的设计保障系统在当前具有业界先进性,尽量延长使用周期而不会因过时而淘汰. 1)规范性:系统的设计严格遵守系统相关的国家标准和行业标准,所使用到的设备符合对应的检测标准,设备和设备的接口,通讯数据格式等都采用国际通用的相关标准格式,最大限度保障系统的标准化和规范化. 2)实用性:系统在设计之前,已经充分了解和把握项目的实际需求和项目的相关情况,根据实际使用环境选择最为合适的硬件设备,同时根据具体的客户化要求对软件平台进行优化,满足项目所有的功能要求和实际使用需求,力求做到量身订作,丝丝入扣. 3)先进性:整个系统采用了先进的开放式分布模块化设计思想,充分使用了物联网技术,自动控制技术,网络通讯技术,RFID无线射频技术,传感器技术,接口转换技术等等诸多高新技术,从基础上保障了系统的技术含量高,思想超前,提升用户形象. 4)可靠性:先有成熟的技术做基础,再加上系统在多个实际项目中的实际使用,经过实践检验和不断完善的过程,现在的系统具有良好的稳定性,平均无故障允许时间长,系统容错能力良好,个别部件故障不影响系统其他部分的正常允许. 5)经济性:在高质量地实现项目功能需求的同时,系统在设计中从用户角度出发,设备选择遵循高品质,适当价格的前提.优化设计布线方案和设备安装,连接方式,力求给用户营造一个物超所值的优质的一卡通系统. 6)可维护性:系统采用模块化设计,各功能子系统相对独立,当某个子系统发生故障,不影响其他子系统的正常允许.设备的连接和数据通讯完全采用标准化设计,不受使用环境和设备具体类型等外在因素的制约.

停车场管理系统数据库设计

停车场管理系统数据库设计说明书 文档名称数据库设计说明书 撰写人 审核/批准 创建时间

目录 1.目的.................................................................................................. 错误!未定义书签。 2.概念设计阶段 (4) 全局E-R图 (4) 3.逻辑设计阶段 (5) 任务与结果 (5) 4.物理设计阶段 (6) 功能模块图 (7) 5.数据库实施阶段 (9) 建立数据库 (9) 1.目的 21世纪以来,现代化产业高速发展,汽车作为日常交通工具已经普及社会的每一个角落,给人们的日常生活带来了极大的便利。但是随着汽车拥有量的急剧增加,车辆停放的问题随

之而来,如果没有合理的停放规则和秩序,势必引起许多不必要的麻烦,反而给生活带来不便。 停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。目前的许多停车场还处于一种纯人工的管理的模式,在车辆的管理上效率低下,而且十分容易出错。因此需要一种合适的管理系统来解决这些问题,达到高效,简易的效果,给广大人民的出行带来方便。 2.概念设计阶段 全局E-R图:

E-R图属性如下所示: 车辆:Car (Carno,Carsb,Carcolor) Carno是主码; 车位:Ffed(Cwno,Cwpace,Carno,Carpho,Caradd,Cartel,Carmon) Cwno是主码; 收费:Moneyt (Timetype,Montime) 停车:Stop (Cwno,Carno,Carin,Carout,Timetype,Cwtype,Montime) Cwno和Carno是外码; 3.逻辑设计阶段 任务与结果 数据组织 车辆信息 列名数据类型是否为主码是否为外码取值范围可否为空含义说明Carno Char 是否否车牌号码Carsb Char 否否可车辆品牌Carcolor Char 否否可车辆颜色 车位信息 列名数据类型是否为主码是否为外码取值范围可否为空含义说明Cwno Char 是否否车位编号Cwpace Char 否否否车位位置Cwtype Char 否否否车位类型Carno Char 否否可车牌号码Carpho Bit 否否可车牌号码Caradd Char 否否可车辆颜色Cartel Char 否否可车辆照片Carmon Float 否否100~200 可联系地址 停车信息 列名数据类型是否为主码是否为外码取值范围可否为空含义说明Cwno Char 否是否车位编号Carno Char 否是否车牌号码Carat Bit 否否否在位情况Carin datetime 否否否进入时间Carout datetime 否否可离开时间 否时间段Timetype Char(6) 是否高峰、一般、 低谷

停车场管理系统代码

// 1、停车场管理.cpp : Defines the entry point for the console application. // ^include stdafx.h*' ^include vcon 1o.h> ^include ^include ^include ^include //清空当前屏幕 #define ClearScreen() system( 'cls M ) 〃设置背景前景颜色 //#define setcolor() system(u color 2f ) //显不字符串szPrompt并等待用户按下任意键 #define Pause( szPrompt) printf( %s: szPrompt ),getch() typedef struct carinformation // 车辆信息 { char szRegistrationMark[64]; // 车牌号 char szArrivalTime[16]; // 到达时间 char szEntranceT1me[16]; //进入停车场(开始计费)时间 char szDepartureTime[16]; // 离开时间 } TCARINFORMATION, *LPTCARINFORAAATION; typedef struct carstack { LPTCARINFORMATION IpCarlnformation; // 车辆信息 int nTop; //栈顶元素下标 int nStackSize; // 栈容量

相关主题
文本预览
相关文档 最新文档