C++数据结构停车场管理

C++数据结构停车场管理
C++数据结构停车场管理

数据结构实验报告

实验题目:停车场管理

学生姓名:

班级:

学号:

问题描述

设有一个停车场,它是利用一个南北向的狭窄通道建成,北端封闭,大门在最南端。最先到达的汽车停放在最北端,后面到达的汽车从北至南依次顺序停放。停车场只能停放n 辆汽车。当停车场停满n辆车后,后面到达的汽车只能在门外的便道上等候。一旦有汽车开走,便道上等候的第一辆车就可以开入停车场停放。当停车场内某辆汽车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该车开出大门外,其他汽车再按原次序返回车场。每辆停放在车场内的汽车在离开时必须按它停放时间的长短交纳费用。

例题分析

每到达一辆汽车,先检查停车场栈是否已满,若未满则该车进入停车场停放(入栈操作),并将该车的车号和停放时刻记录在停车场栈的相应元素中,同时显示该车在停车场内的停放位置。反之,若停车场已满,则该车排到便道上等候的汽车队列最后(入队列操作),并将该车的车号信息记录在汽车队列的相应结点内,同时显示该车在便道上的停放位置。

若要取一辆汽车,则需依次进行下述操作:将阻挡在它后面的汽车退出(停车场栈的出栈操作),并将这些汽车临时存放在另一个辅助栈中(辅助栈的入栈操作);开走要取的汽车(停车场栈的出栈操作),并显示该车应交纳的费用;依次从辅助栈中开出汽车(辅助栈出栈操作),开回停车场中(停车场栈的入栈操作);这时停车场已有一个空车位,便道上等候的第一辆汽车则可以开进停车场内停放(汽车队列的出队列操作和停车场栈的入栈操作)。

程序源代码

#include

#include

#include

#include

#include

#include

#include

using namespace std;

#define Max_Size 2//停车的最大容量

#define HourFare 2 //每小时的停车费用

int CountForStack=0; //栈里现有的车数

int CountForQueue=0; //排队等候的车数

typedef struct

{

char Condition;//到达或者离开的状态

int Arrivetime;//到达时间,默认为-1,表示没有到达int Leavetime;//离开时间,默认为-1,表示没有离开int License;//车牌号

}

CarNode;//保存每辆车的信息

typedef struct//栈的定义

{

CarNode *base;//栈底指针

CarNode *top;//栈顶指针

int Stacksize;//栈的最大容量

}

CarStack;

typedef struct QNode

{

char Condition;//到达或者离开的状态

int Arrivetime;//到达时间,默认为-1,表示没有到达int Leavetime;//离开时间,默认为-1,表示没有离开int License;//车牌号

QNode *next;

}

QNode;

typedef struct//队列的定义

QNode *front;//对头指针

QNode * rear;//队尾指针

}

Queue;

bool InitStack(CarStack &S1)//初始化栈S1

{

S1.base=(CarNode*)malloc(Max_Size*sizeof(CarNode));

if(!S1.base)

{

cout<<"栈S1 内存分配失败"<

return false;

}

S1.top=S1.base;

S1.Stacksize=Max_Size;

return true;

}

bool InitQueue(Queue &Q)

{

Q.front=(QNode*)malloc(sizeof(QNode));

if(!Q.front)

{

cout<<"队列Q 内存分配失败!"<

return false;

}

Q.rear=Q.front;

Q.front->next=NULL;

return true;

}

bool EnQueue(Queue &Q,QNode &e)//插入元素e 为Q 的新的队尾元素

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

if(!p)

{

cout<<"p 内存分配失败"<

return false;

}

p->Arrivetime=e.Arrivetime;

p->Leavetime=e.Leavetime;

p->Condition=e.Condition;

p->License=e.License;//将e 赋给P

p->next=NULL;

Q.rear->next=p;

Q.rear=p;

return true;

}

bool DeQueue(Queue &Q,QNode &t)//出队列函数{

if(Q.front==Q.rear)

{

cout<<"队列为空!"<

return false;

}

QNode *p=Q.front->next;

t.Arrivetime=p->Arrivetime;

t.Condition=p->Condition;

t.Leavetime=p->Leavetime;

t.License=p->License;

Q.front->next=p->next;

if(Q.rear==p)

Q.rear=Q.front;

}

free(p);

return true;

}

void InitCarNode(CarNode &C,char condition,int arrivetime,int leavetime,int license) {

C.Arrivetime=arrivetime;

C.Condition=condition;

C.Leavetime=leavetime;

C.License=license;

}

bool Push(CarStack &S1,CarNode &car)//插入新的元素car 为的栈顶元素

{

if(S1.top-S1.base>=S1.Stacksize)

{

cout<<"此栈已满,不能压入新的信息"<

return false;

}

(*S1.top).Arrivetime=car.Arrivetime;

(*S1.top).Condition=car.Condition;

(*S1.top).Leavetime=car.Leavetime;

(*S1.top).License=car.License;

++S1.top;//栈顶指针上移

return true;

}

bool Pop(CarStack &S1,CarNode &t)//出栈操作

{

if(S1.top==S1.base)

cout<<"栈S1 为空,不能执行出栈操作"<

return false;

}

--S1.top;//栈顶指针下移

t.Arrivetime=(*S1.top).Arrivetime;

t.Condition=(*S1.top).Condition;

t.Leavetime=(*S1.top).Leavetime;

t.License=(*S1.top).License;

return true;

}

bool IsStackFull(CarStack &S1)//判断S1 栈是否已满

{

if(S1.top-S1.base>=S1.Stacksize)

return true;

else

return false;

}

bool IsStackEmpty(CarStack &S1)//判断S1 栈是否已空{

if(S1.top==S1.base)

return true;

else

return false;

}

bool IsQueueEmpty(Queue &Q)//判断队列是否为空

{

if(Q.front==Q.rear)

return true;

else

return false;

}

bool SearchInStack(CarStack &S1,int a)//a 表示要查找的车牌号,如果在停车场里面,就返回true

{

bool tag=false;

if(!IsStackEmpty(S1))//如果栈S1 非空

{

CarNode *p=S1.top-1;

while(p!=S1.base)

{

if((*p).License==a)

tag=true;

--p;

}

if((*p).License==a)

tag=true;

}

return tag;

}

bool SearchInQueue(Queue &Q,int a)//a 表示要查找的车牌号,如果在通道里面,就返回true

{

bool tag=false;

if(!IsQueueEmpty(Q))//如果队列非空

{

QNode *p=Q.front->next;

while(p!=Q.rear)

{

if((*p).License ==a)

tag=true;

p=p->next;

}//退出此while 循环时p 指向最后一个元素

if((*p).License ==a)

tag=true;

}

return tag;

}

void InCar(CarStack &S1,Queue &Q,int a1,int a2)//表示进入车辆,a1 表示到达时间,a2 表示车牌号码

{

if(SearchInStack(S1,a2))

{

cout<<"车号"<

return;

}

if(SearchInQueue(Q,a2))

{

cout<<"车号"<

return;

}

if(IsStackFull(S1))//如果堆栈已满,说明停车场已满,需要停车在通道里面

{

QNode qnode;

qnode.Arrivetime=-1;//在通道里面不收费,所以不计时

qnode.Condition='A';

qnode.Leavetime=-1;//定义为-1,说明还没有开始离开

qnode.License=a2;

EnQueue(Q,qnode);//停在通道上

++CountForQueue;

cout<<"车号:"<

"<

}

else

{

CarNode carnode;

carnode.Arrivetime=a1;

carnode.Condition='A';

carnode.Leavetime=-1;

carnode.License=a2;

Push(S1,carnode);

++CountForStack;

cout<<"车号:"<

}

}

void Sreach(CarStack &S1,Queue &Q,int a)

{

if(SearchInStack(S1,a))

{

cout<<"车号:"<

return;

}

if(SearchInQueue(Q,a))

{

cout<<"停车场已满,车号"<

return;

}

else

{

cout<<"对不起!你查找的车号不在停车场里面"<

return;

}

}

void OutCar(CarStack &S1,Queue &Q,int a1,int a2)//出车函数,a1 表示离开时间,a2 表示车牌号码

{

if(SearchInQueue(Q,a2))

{

cout<<"车号"<

return;

}

if(!SearchInStack(S1,a2))

{

cout<<"车号"<

return;

}

CarStack tempstack;

InitStack(tempstack);//新建一个栈,存放让路的汽车

bool tag1=false;//标志这个停车场出车以前是否已满,默认为没有满

tag1=IsStackFull(S1);

bool tag2=true;//标志通道是否有汽车在等待,默认为通道为空

tag2=IsQueueEmpty(Q); CarNode temp;//用来保存暂时取出的汽车

bool tag3=false;

while(1)

{

Pop(S1,temp);

if(temp.License==a2)

{

if(a1

{

cout<<"离开失败!"<

tag3=true;

Push(tempstack,temp);

}

else

{

cout<<"车号:"<

}

break;

}

else

Push(tempstack,temp);//进入暂存栈} 则把前面倒出的车再次放

while(!IsStackEmpty(tempstack))//如果临时栈不空,入停车场

{

Pop(tempstack,temp);

Push(S1,temp);

}

QNode tempqnode;//用来暂时保存从通道出来的汽车

if(tag1==true&&tag2==false&&tag3==false)//如果出车前停车场已满,并且通道不为空,并且离开没有失败

{

DeQueue(Q,tempqnode);

--CountForQueue;

temp.Arrivetime=a1;

temp.Condition=tempqnode.Condition;

temp.Leavetime=tempqnode.Leavetime;

temp.License=tempqnode.License;

Push(S1,temp);

}

if(tag3==false)//如果停车通道是空的,停车场没有满,并且离开成功

{

--CountForStack;

}

}

}

void showmenu(CarStack &S1,Queue &Q)

{

cout<<"******************************选择菜单*******************************"<

cout<<" 1: 停车"<

cout<<" 2: 离开停车场"<

cout<<" 3: 查看车辆信息"<

cout<<" 4: 退出系统"<

cout<<"*****************************请按键选择******************************"<

int tag;

cin>>tag;

while(tag!=1&&tag!=2&&tag!=3&&tag!=4)

cin>>tag;

int a1;

unsigned int a2;

switch(tag)

{

case 1:

cout<<"请输入到达的车号:"<

cin>>a1;

cout<<"请输入到达的时间:"<

cin>>a2;

InCar(S1,Q,a2,a1);

Sreach(S1,Q,a1);

break;

case 2:

cout<<"请输入离开的车号:"<>a1;

cout<<"请输入离开的时间:"<>a2;

OutCar(S1,Q,a2,a1);

break;

case 3:

cout<<"请输入你要查看的车号:"<

cin>>a1;

Sreach(S1,Q,a1);

break;

case 4:

return;

break;

}

showmenu(S1,Q);

}

void main()

{

CarStack carstack;

InitStack(carstack);//建立并且初始化用于停车场的堆栈Queue carQueue;

InitQueue(carQueue);//建立并且初始化用于通道的队列showmenu(carstack,carQueue);

}

停车场数据结构实验报告附代码

数据结构实验报告 ——实验三停车场模拟管理程序的设计与实现 本实验的目的是进一步理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 一、【问题描述】 设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。为了以下描述的方便,停车场的停车场用“停车位”进行叙述,停车场的便道用“便道”进行叙述。 二、【数据结构设计】 1、为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码和汽车的当前状态,所以为汽车定义一个新的类型CAR,具体定义如下: typedef struct { char *license //汽车牌照号码,定义为一个字符指针类型 char state; //汽车当前状态,字符s表示停放在停车位上,//字符p表示停放在便道上,每辆车的初始状态用字符i来进行表示 } 2、①由于车位是一个狭长的通道,所以不允许两辆车同时出入停车位,当有车到来要进入停车位的时候也要顺次停放,当某辆车要离开时,比它后到的车要先暂时离开停车位,而且越后到的车就越先离开停车位,显然这和栈的“后进先出”特点相吻合,所以可以使用一个栈来描述停车位。 由于停车位只能停放有限的几辆车,而且为了便于停车场的管理,为每个车位要分配一个固定的编号,不妨设为1、2、3、4、5(可利用数组的下标),分别表示停车位的1车位、2车位、3车位、4车位。5车位,针对这种情况使用一个顺序栈比较方便。 ②当某辆车要离开停车场的时候,比它后进停车位的车要为它让路,而且当它开走之后让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为了完成这项功能,再定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出开走请求的车开走后再从辅助栈的栈顶依次“弹出”到停车位中。对辅助栈也采用顺序栈。

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

实验二停车场管理 班级: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

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

东方学院 实验(实训)报告 项目名称收费停车场管理系统 所属课程名称数据库原理及应用 项目类型设计、综合型 实验(实训)日期 班级 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 图及基本符号:

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

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

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

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

C++数据结构停车场管理

数据结构实验报告 实验题目:停车场管理 学生姓名: 班级: 学号: 问题描述 设有一个停车场,它是利用一个南北向的狭窄通道建成,北端封闭,大门在最南端。最先到达的汽车停放在最北端,后面到达的汽车从北至南依次顺序停放。停车场只能停放n 辆汽车。当停车场停满n辆车后,后面到达的汽车只能在门外的便道上等候。一旦有汽车开走,便道上等候的第一辆车就可以开入停车场停放。当停车场内某辆汽车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该车开出大门外,其他汽车再按原次序返回车场。每辆停放在车场内的汽车在离开时必须按它停放时间的长短交纳费用。 例题分析 每到达一辆汽车,先检查停车场栈是否已满,若未满则该车进入停车场停放(入栈操作),并将该车的车号和停放时刻记录在停车场栈的相应元素中,同时显示该车在停车场内的停放位置。反之,若停车场已满,则该车排到便道上等候的汽车队列最后(入队列操作),并将该车的车号信息记录在汽车队列的相应结点内,同时显示该车在便道上的停放位置。 若要取一辆汽车,则需依次进行下述操作:将阻挡在它后面的汽车退出(停车场栈的出栈操作),并将这些汽车临时存放在另一个辅助栈中(辅助栈的入栈操作);开走要取的汽车(停车场栈的出栈操作),并显示该车应交纳的费用;依次从辅助栈中开出汽车(辅助栈出栈操作),开回停车场中(停车场栈的入栈操作);这时停车场已有一个空车位,便道上等候的第一辆汽车则可以开进停车场内停放(汽车队列的出队列操作和停车场栈的入栈操作)。 程序源代码 #include #include #include #include #include #include #include

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

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

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

智慧停车场管理系统建设设计方案

智慧停车场管理系统建设设计方案 1.1.1 对原设计的研读和优化建议 通过对原设计图纸的研读,我们得知: 1、原设计停车场管理系统并未提到与门禁系统采用一卡通的方式设计,而是一个独立的系统。 2、原设计图纸中未提供智慧医院室外总平面图。 3、原设计图纸中停车场出入管理选用了半球摄像机。 针对以上几点,我们提出以下几点建议: 1、将门禁系统和停车场管理系统的管理平台合并成同一个一卡通管理平台,统一发卡、授权、充值等。 2、在智慧医院室外平面入口处也设置停车场管理系统,方便外来车辆的管理和车流控制。

3、与停车场出入口管理系统相配套的摄像机宜选用宽动态带强光抑制的枪式摄像机。 1.1.2 设计说明 停车场电脑收费管理系统是现代化停车场车辆收费及设备自动化管理的统称,是将停车场完全置于计算机管理下的高科技机电一体化产品。内含数控、电子、机械、多媒体技术。 本次工程主要为固定泊位车(医院内部工作车辆)、临时停车(得到临时租用及对外服务)处。为了有效管理医院的有限停车位置的管理,智慧医院停车场系统主要有门诊医技楼地下二层,及整个医院的进出口。 1.1.3 系统功能 1.1.3.1 基本功能 进出口及场内通道行车指示;

出入栅门自动控制; 入口处车位显示; 与内部计算机网络联网并进行统一管理; 采用与智能卡系统中相配套的感应式IC,作为停车身份认证卡。 1.1.3.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图

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

课程设计报告 课程名称数据结构课程设计 课题名称停车场管理系统 专业信息管理与信息系统 班级 09级1班 学号 200903110112 姓名洪俊斌 指导教师赵锦元、李峰、罗敬 2011年 1 月 9 日

湖南工程学院 课程设计任务书 课程名称数据结构 课题停车场管理系统 专业班级信息管理0901班 学生姓名洪俊斌 学号200903110112 指导老师赵锦元、李峰、罗敬 审批 任务书下达日期2011 年1 月 3 日任务完成日期2011 年1 月20 日

一、设计内容与设计要求 1.设计内容: [问题描述] 设停车场只是一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出,还有一个等停的的狭长通道。汽车在停车场内按车辆的先后顺序依次排列,若车站内已停满汽车,则后来的汽车只能在门外的通道上等停,一旦停车场内有车开走,则排在通道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车站为它让路,待该车辆开出大门,为它让路的车辆再按原来次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。 [基本功能] (1)车辆成批入站。 当一个停车场刚开始投入运行的时候,会有很多车进来,因此,要设计一个函数来实现车辆批量进站。并要检测车辆的数目是否超过规定的最大容量,给出相关提示信息。 (2)单个车辆入站。 当系统正常投入运行后,会有零散的车辆进进出出,因此,设计一个函数实现单个车辆入站。 (3)车站内信息实时显示。 车站内信息包括两个部分:停车场内停放的车辆以及在外面通道上等停的车辆。 (4)车辆出站。 当停车场内车辆出站后,检查通道上是否有车等停,如果有,则要把排在最前面的车调入停车场内。

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

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

2014年12月28日

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

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

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

目录 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) 是否高峰、一般、 低谷

数据结构 停车场管理

实习报告 题目:停车场管理姓名:袁韬博学号:16030120021完成日期:2017.10.23 一、需求分析 1.本题目要求建立一个可指定长度的栈,和长度可变化的队列,以当作停车场和便道 的车的存放。 2.本题目要求在停车场的车离开时,便道的车按照先后顺序进入一辆,并开始于此时 记录时间。 3.在本题目之中在便道的停车不计费用,在此题中应判断在停车场还是在便道的信息。 4.本题目要求根据数据的第一位数据判断进入还是离开,根据要求输出信息。 5.程序执行命令为:1.存入车辆时输出停车信息2.车辆离开时输出停车时间和应缴纳 费用 3.输入‘E’时表示结束。 6.测试数据: n=2,m(每小时停车费用)=3,(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表示为Arrival(到达),D表示为Departure(离 开),E表示为End(结束)。 二、概要设计 1.设定栈的抽象数据类型定义 数据对象:D={a i|a i∈SStop,i=1,2,3,······,n} 数据关系:R={|a i∈D,i=1,2,3,······,n } 基本操作: initStack(&S,d) 操作结果:建立一个长度为d的空栈 Push(&S, &e, &d) 初始条件:栈已存在,长度为d 操作结果:如栈已满返回false,否则将e,压入栈中,返回true Pop(&S,e) 初始条件:栈已存在 操作结果:如栈为空返回false,否则弹栈入e,返回true 2.设定队列的抽象数据类型定义 数据对象:D={a i|a i∈SStop,i=1,2,3,······,n} 数据关系:R={|a i∈D,i=1,2,3,······,n } *SQTypeInit() 操作结果:建立一个空队列 InSQType(*q, &data) 初始条件:队列已存在 操作结果:将data压入队列之中 *OutSQType( *q) 初始条件:队列已存在 操作结果:弹出队列,返回其指针。 3.程序包含6个模块 1)主程序模块:包含栈与队列的对象建立,输入值的判断以及函数的实现 2)栈模块:实现停车场抽象数据类型 3)队列模块:实现便道抽象数据类型

停车场管理系统介绍

停车场管理系统介绍 停车场管理系统介绍作者:佚名 时间:2008-8-21 浏览量: 停车场管理系统解决方案 一、系统简介 停车场管理系统采用当前国际上最先进的射频读卡技术,用户持特定的感应卡进出此停车场,使用感应卡读卡器来分辨停车场的用户,停车场收费,月租卡的发售及临时卡的授权均由收费电脑完成,可自动调用每一车辆的进场时存入的数据及出场时存入的数据,并自动计算出收费金额。实现真正的智能化管理。而且系统用视窗操作,中文菜单显示,使用者能轻易掌握可用此系统的操作。

二、系统主要功能 车道日常作业功能 卡管理功能 卡发行授权功能:月卡、临时卡、储值卡、特殊卡、住户卡、操作员卡等; 卡充值功能; 卡遗失禁用功能:卡挂失、卡加锁、卡解锁; 卡使用情况报表功能。 车辆出入控制管理 空位信息的自动显示,满位禁止入场; 有效卡刷卡自动抬闸,车过后自动降闸; 防砸车功能,能够独立控制道闸,可用遥控器控制道闸和手

动开关栏杆。 栏杆自动控制功能 入场时,临时自动发卡,月卡、储值等有效卡刷卡,栏杆自动抬起,车辆驶出通道后,栏杆自动落下; 出场时,临时车交费确认,月卡、储值等有效卡刷卡,栏杆自动抬起,车辆驶出通道后,栏杆自动落下。 车辆自动检测功能 实现车辆自动检测、计数、统计,便于收费统计与稽核。 收费作业自动控制功能 全汉化工作环境,操作简便,无需专业操作培训,临时车出口读卡,收费金额自动计算,收费金额将自动显示在收费金额显示器上,确认收取通行费后,自动打印票据,收费数据自动统计与上传。 收费数据自动管理功能

所有收费交易自动入帐、管理,所有收费过程系统数据自动完成登记、存储。免费、月卡、冲卡车辆信息存储。所有收费数据自动通过网络传输至收费网络服务器。 严密的收费稽核管理功能 采用多级控制与监控技术,设计严密且采取防人为修改收费数据措施,杜绝任何形式的收费失误与作弊。 收费信息查询与统计功能 收费数据的实时监测 实时监测收费车辆的登录状态,实时监测每个出入口的当前工班或任一时间至今通过的收费车辆和收费金额及月卡车、免费车、冲卡车的数量以及车辆总数。 交通信息的实时查询

数据结构实验报告—停车场问题

《计算机软件技术基础》实验报告I—数据结构 实验二:停车场管理问题 一、问题描述 1.实验题目: 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端)。若停车场内已经停满 n辆车,那么后来的车只能在门外的便道上等候。一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。试为停车场编制按上述要求进行管理的模拟程序。 2.基本要求: 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入数据的序列进行模拟管理。每一组输入数据包括三个数据项:汽车的“到达”(‘A’表示)或“离去”(‘D’表示)信息、汽车标识(牌照号)以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或者便道上的停车位置;若是车辆离去,则输出汽车在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 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这个时刻离去。 二、需求分析

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

停车场管理 专业班级: XXXXXXX 学号: XXXXXXX 姓名: XXXXXXX 指导教师: XXXXXXX 课程设计时间: XXXXXXX

计算机专业数据结构课程设计任务书 学生姓名XXXXXX专业班级XXXXXX学号XXXXXX 题目停车场管理系统 课题性质工程设计课题来源XXXXXX 指导教师XXXXXX同组姓名XXXXXX 主要内容一、设计的任务及主要技术参数 1编写停车场管理系统。 2主要技术:C语言中的模块化程序设计;数据结构中的栈、队列 二、设计任务 1每组成员分工合作完成一个课程设计,每个人的任务不同; 2要求利用结构化程序设计方法以及C的编程思想来完成系统的设计; 3要求有欢迎界面、菜单、文件操作,数据使用数组、结构体、链表等均可,键盘操作或鼠标操作均可; 4要求在设计的过程中,按功能定义函数或书写多个文件,进行模块化设计,各个功能模块用函数的形式来实现; 5要求对各个功能模块进行算法设计,可用流程图表示算法思想; 6要求编程实现系统功能,并进行调试与测试,使系统能正常运行; 7要求源程序书写格式规范,可读性好,进行必要的注释,采用缩进格式; 8撰写课程设计说明书 三、设计工作量 1根据问题描述,分析系统功能,划分功能模块,完成程序的数据设计,确定各模块函数名称; 2程序的函数设计 3函数编码及调试 4程序整体调试 5完成设计文档和课程设计说明书

任务要求 1、系统应具备的功能:(1)停车场的车位管理(2)停车场的停车管理(3)停车场的记费管理 2、数据结构设计 3、主要算法设计 4、编程及上机实现 5、撰写课程设计报告 参考文献 1.《数据结构(C语言版)》,严蔚敏、吴伟民,清华大学出版社,1997. 2.谭浩强. C语言程序设计(第三版)[M]. 北京:清华大学出版社,2005 3.廖雷、罗代忠. C语言程序设计基础实验教程[M]. 北京:高等教育出版社,2005 4.谭浩强. C程序设计解题与上机指导(第三版) [M]. 北京:清华大学出版社,2005 . 审查意见指导教师签字: 教研室主任签字:年月日实验题目:停车场管理系统 一、要解决的问题 停车场是一条可以停放n辆车的狭窄通道,且只有一个大门汽车停放安到达时间的先后依次由北向南排列(大门在最南端,最先到达的第一辆车停在最北端)若停车场已经停满n辆车,后来的汽车在便道上等候,一旦有车开走,排在便道上的第一辆车可以开入;当停车场的某辆车要离开时,停在他后面的车要先后退为他让路,等它开出后其他车在按照原次序开入车场,每两停在车场的车要安时间长短缴费。要求:以栈模拟停车场,以队列车场外的便道,按照从终端输入的数据序列进行模拟管理。每一组数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码、以及到达或离去

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

汇景瑞兴置业停车场管理系统 一:问题综述 随着社会的发展,信息化成为21世纪各行各业的发展趋势,也扮演着越来越重要的角色。与此同时汽车作为日常交通工具已经普及社会的每一个角落,给人们的日常生活带来了极大的便利。但是随着汽车拥有量的急剧增加,车辆停放的问题随之而来,但是由于停车场管理信息化缓慢,很多停车没有合理的停放规则和秩序,引起许多不必要的麻烦,给生活带来不便。 停车场作为交通设施的重要组成部分,随着经济的不断发展,我国机动车数量持续快速增长,人们对其管理的要求也不断提高,希望对停车场的管理能够达到方便、快捷以及安全的效果。然后目前许多停车场仍然采取传统的手工管理方式,费时费力,效率低,且出错率高,给管理带来很大的麻烦。显然这种管理模式已经不能满足现状。因此需要一种合适的管理系统充分发挥计算机处理速度快、准确性高的特点来解决这些问题,以达到高效,简易的效果,给广大人民的出行带来方便。 通过在瑞兴置业的实习及与管理人员的充分沟通交流,我充分了解了他们的工作流程和工作需求。在此基础上我立足现实,结合实际需求,将管理理念与信息技术相结合开发了此管理信息系统,旨在解决该公司停车场面临的效率低下,出错率高,管理成本高等一系列问题。本系统具有操作简单,便于维护,并具有一定的扩展性,为以后的发展留下了空间。

二:需求分析 2.1引言 需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。 通过了解该停车场管理的现状,了解用户对开发此管理信息系统的真正需求,在此基础上确定了该系统的具体功能。 2.2系统功能需求分析 2.2.1停车场车位划分 首先将停车场的车位划分为固定车位和临时车位两部分。固定车位又可以称为专用车位,它的使用者固定,交费采用包月制或包年制,平时进出停车场时不再交费。对于固定车位的车辆,系统有着详细的信息记录,包括车辆信息和车主信息。临时车位又可以称为公用车位,它的使用者不固定,针对临时性散客服务,车辆每次出停车场时,根据停车时间和管理规定交纳停车费用。 2.2.2管理员划分 根据需求将该停车场的管理员划分为2种,一种为超级管理员,其拥有该数据库的所有权限,比如可以对系统的其他管理员进行设置,固定车位缴费信息修改查询,查询场内车辆数目及组成比例,本月(或当前)收费金额查询等等。另一种为普通管理员,主要负责系统基本信息录入,例如进场临时车登记,出场收费等。

数据结构c语言版课程设计停车场管理系统

课程设计:停车场 c语言版本的数据结构课程设计,要求用栈模拟停车场,用队列模拟便道,实现停车场的收费管理系统

停车场停满车后车会停在便道上面 下面附上源码,vc:(下编译 #include //#include //malloc #include //获取系统时间所用函数#include //getch() #include //设置光标信息 mallco #define MaxSize 5 /*定义停车场栈长度*/ #define PRICE 0.05 /*每车每分钟收费值*/

#define BASEPRICE 0.5 //基础停车费 #define Esc 27 //退出系统 #define Exit 3 //结束对话 #define Stop 1 //停车 #define Drive 2 //取车 int jx=0,jy=32; //全局变量日志打印位置 typedef struct {int hour; int minute; }Time,*PTime; /*时间结点*/ typedef struct /*定义栈元素的类型即车辆信息结点*/ {int num ; /*车牌号*/ Time arrtime; /*到达时刻或离区时刻*/ }CarNode; typedef struct /*定义栈,模拟停车场*/ {CarNode stack[MaxSize]; int top; }SqStackCar; typedef struct node /*定义队列结点的类型*/ {int num; /*车牌号*/ struct node *next; }QueueNode; typedef struct /*定义队列,模拟便道*/ {QueueNode *front,*rear; }LinkQueueCar; /*函数声明*/ PTime get_time(); CarNode getcarInfo(); void qingping(int a); void gotoxy(int x,int y); void printlog(Time t,int n,int io,char ab,int po,double f); void printstop(int a,int num,int x0,int y0); void printleave(int a,int po,int num); /*初始化栈*/ void InitSeqStack(SqStackCar *s) { s->top=-1; } /* push入站函数 */ int push(SqStackCar *s,CarNode x) //数据元素x入指针s所指的栈

数据结构—停车场管理系统

理工大学华夏学院 课程设计报告书 课程名称:《数据结构与算法分析》 课程设计 实训名称:停车场管理系统 姓名:航 院(系):信息工程系 专业班级:软件1141 学号:10212814127 指导教师:云华 成绩:

时间:2015年6月29日至2015年7月3日 实训任务书 一、题目 1.停车场管理 二、实训的性质和任务 数据结构实训是在完成理论课程学习之后安排的综合实践训练,要求学生能根据数据结构中所讲到的各种数据类型以及它们顺序和链式存储,在具体的应用中能运用并实现各种数据的各种不同操作。通过一的综合实训,使学生加深对如将逻辑关系的数据按一定的存储式存储在计算机。并为以后的编程打好基础。 三、实训的基本要求 1、熟悉各种数据类型及它们在计算机中的存储式; 2、熟悉各种数据类型的基本操作,各基本操作的实现。 3、能综合运用各种数据类型实现一些具体的问题。 四、考核指标及成绩评定 实训成绩由下面构成: 平时成绩(10%)+作品(70%)+实训报告(20%)=总评成绩 作品成绩评定标准: 1、全部完成90-100 2、主要功能完成70-90 3、部分功能完成60-70 4、少部分完成40-60 5、几乎没做0-40 完成期限:年月日 指导教师签章: 专业负责人签章: 教学院长签章

年月日 一、需求说明 仅仅认识到栈和队列是两种特殊的线性表是远远不够的,本次实习的目的在于使读者深入了解栈和队列的特征,以便在实际问题背景下灵活运用它们;同时还将巩固这两种结构的构造法,接触较复杂问题的递归算法设计。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车离去;则输出汽车在停车场停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。 设停车场只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

相关文档
最新文档