停车场数据机构设计文档格式.docx

上传人:b****4 文档编号:7809040 上传时间:2023-05-09 格式:DOCX 页数:24 大小:201.99KB
下载 相关 举报
停车场数据机构设计文档格式.docx_第1页
第1页 / 共24页
停车场数据机构设计文档格式.docx_第2页
第2页 / 共24页
停车场数据机构设计文档格式.docx_第3页
第3页 / 共24页
停车场数据机构设计文档格式.docx_第4页
第4页 / 共24页
停车场数据机构设计文档格式.docx_第5页
第5页 / 共24页
停车场数据机构设计文档格式.docx_第6页
第6页 / 共24页
停车场数据机构设计文档格式.docx_第7页
第7页 / 共24页
停车场数据机构设计文档格式.docx_第8页
第8页 / 共24页
停车场数据机构设计文档格式.docx_第9页
第9页 / 共24页
停车场数据机构设计文档格式.docx_第10页
第10页 / 共24页
停车场数据机构设计文档格式.docx_第11页
第11页 / 共24页
停车场数据机构设计文档格式.docx_第12页
第12页 / 共24页
停车场数据机构设计文档格式.docx_第13页
第13页 / 共24页
停车场数据机构设计文档格式.docx_第14页
第14页 / 共24页
停车场数据机构设计文档格式.docx_第15页
第15页 / 共24页
停车场数据机构设计文档格式.docx_第16页
第16页 / 共24页
停车场数据机构设计文档格式.docx_第17页
第17页 / 共24页
停车场数据机构设计文档格式.docx_第18页
第18页 / 共24页
停车场数据机构设计文档格式.docx_第19页
第19页 / 共24页
停车场数据机构设计文档格式.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

停车场数据机构设计文档格式.docx

《停车场数据机构设计文档格式.docx》由会员分享,可在线阅读,更多相关《停车场数据机构设计文档格式.docx(24页珍藏版)》请在冰点文库上搜索。

停车场数据机构设计文档格式.docx

当车辆离开时,统计其停留时间,记录其停车费用。

3.4查询信息

进入查询界面,可以查询目前车长信息,和变到信息。

4系统流程图

5主函数、子程序调用关系

6主要算法实现及其基本操作

6.1此停车场管理系统,主要分为以下若干模块:

首先定义用来模拟停车场的堆栈以及用来模拟通道的链队列为全局变量,然后编写主函数,在此主函数中实现对其它各个模块的调用。

在主函数中首先调用option()函数,出现欢迎用户使用的主界面,然后提示用户进入此停车场管理系统后,再出现一个供用户选择的界面,在用户的选择过程中,程序又分别调用车辆的到达、车辆的离开、停车场停放车辆的信息以及退出程序这四个函数模块。

其中,在车辆的离开那个模块函数中又调用了打印离开车辆信息的函数,在停车场停放车辆信息的那个模块函数中,又分别调用了显示停车场上车辆信息的函数以及显示便道上车辆信息的函数。

最后,从调鼐的这四个函数中回到主函数结束整个程序的运行。

6.2在以上各个模块中,各模块的伪码算法:

6.2.1栈的初始化:

voidInitStack(SeqStackCar*s)/*初始化栈*/

{inti;

s->

top=0;

for(i=0;

i<

=MAX;

i++)

stack[s->

top]=NULL;

}

6.2.2链队列的初始化:

intInitQueue(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);

6.2.3车辆到达时的算法:

intArrival(SeqStackCar*Enter,LinkQueueCar*W)/*车辆到达*/

{CarNode*p;

QueueNode*t;

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

printf("

\t\t\t请输入到达车辆车牌号:

"

);

scanf("

%d"

&

(p->

num));

if(Enter->

top<

MAX)/*车场未满,车进车场*/

{Enter->

top++;

\n\t\t\t该车辆在停车场的位置是:

%d\n"

Enter->

top);

\n\t\t\t请输入该车辆到达的时间:

reachtime));

Enter->

stack[Enter->

top]=p;

}

else/*车场已满,车进便道*/

{printf("

\n\t\t\t停车场已满该车辆需在便道上等待!

"

t=(QueueNode*)malloc(sizeof(QueueNode));

t->

data=p;

W->

rear->

next=t;

rear=t;

6.2.4车辆离开时的算法:

voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQueueCar*W)/*车辆离开*/

{inti,room;

CarNode*p,*t;

QueueNode*q;

/*判断车场是否有车*/

printf("

\n********************************************************************************"

top>

0)/*有车*/

{while

(1)/*输入离开车辆的信息*/

\t\t\t停车场里停放的车辆总数:

%d"

\n\n\t\t\t请输入要离开车辆的位置:

room);

if(room>

=1&

&

room<

=Enter->

top)

break;

while(Enter->

room)/*车辆离开*/

{Temp->

Temp->

stack[Temp->

top]=Enter->

top];

top--;

p=Enter->

while(Temp->

=1)

top]=Temp->

PRINT(p);

/*判断通道上是否有车及车站是否已满*/

if((W->

=W->

rear)&

Enter->

MAX)/*便道的车辆进入车场*/

{q=W->

next;

t=q->

data;

\n\n\t\t\t便道的%d号车进入车场第%d位置."

t->

num,Enter->

\n\n\t\t\t请输入现在的时间:

(t->

next=q->

if(q==W->

rear)

rear=W->

top]=t;

free(q);

\n\n\t\t\t便道里没有车.\n"

\n\n\t\t\t车场里没有车."

/*没车*/

6.2.5列表现试车场信息

voidList1(SeqStackCar*S)/*列表显示车场信息*/

if(S->

0)/*判断车站是否有车*/

\n\t\t\t车场:

\n\n\t\t\t位置到达时间车牌号\n"

for(i=1;

=S->

top;

%26d"

i);

%6d"

S->

stack[i]->

reachtime);

%10d"

num);

\n"

else

\n\t\t\t车场里没有车"

6.2.6列表显示便道信息

voidList2(LinkQueueCar*W)/*列表显示便道信息*/

{QueueNode*p;

p=W->

if(W->

rear)/*判断通道上是否有车*/

\n\t\t\t等待车辆的为:

while(p!

%-10d"

p->

data->

p=p->

\n\t\t\t便道里没有车."

7系统运行环境和开发工具

7.1系统运行环境

7.1.1硬件环境

处理器:

InterPentium166MX或更高

存:

32MB或更大

硬盘空间:

1GB以上

显卡:

SVGA显示适配器

7.1.2软件环境

操作系统:

Windows98/ME/2000/XP

7.2开发工具

C-FREE4.0

8用户手册

8.1用户界面

这个程序用来实现对停车场车辆的管理,整个操作界面为中文,更加符合人性化的标准,使得用户使用方便,而且每一个操作都有提示,使得初次接触该程序的用户也能很快适应程序的操作。

8.2新的车辆到达

这个程序操作简单,对于车牌号,只需输入车牌号上的数字就行,简化了操作。

车辆满的时候停靠在便道上。

8.3场车辆离开

离开时同样,输入离开的车牌号及其离开时间,自动判断费用。

及其便道上车辆进入,以及进入时间。

8.4查询车辆信息

可以查看场车辆信息和便道上的车辆信息。

9详细设计

9.1源文件

#include<

stdio.h>

stdlib.h>

string.h>

#defineMAX10/*车库容量*/

#defineprice1/*每车每时刻费用*/

typedefstructnode

{intnum;

intreachtime;

intleavetime;

}CarNode;

/*车辆信息结点*/

typedefstructNODE

{CarNode*stack[MAX+1];

inttop;

}SeqStackCar;

/*模拟车站*/

typedefstructcar

{CarNode*data;

structcar*next;

}QueueNode;

typedefstructNode

{QueueNode*head;

QueueNode*rear;

}LinkQueueCar;

/*模拟通道*/

/*---------------------------------------------------------------------------*//*函数声明部分*/

voidInitStack(SeqStackCar*);

/*初始化栈*/

intInitQueue(LinkQueueCar*);

/*初始化便道*/

intArrival(SeqStackCar*,LinkQueueCar*);

/*车辆到达*/

voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);

/*车辆离开*/

voidList(SeqStackCar,LinkQueueCar);

/*显示存车信息*/

voidPRINT(CarNode*p);

/*---------------------------------------------------------------------------*/voidoption()

{inti;

charchoice;

=80;

\004"

\n\n\n\n"

----------------------------\n"

|停车场管理系统|\n"

设计者:

王勇\n"

班级:

计算机08-3"

\n\n\n是否进入该系统\n(y/n)"

choice=getchar();

if(choice=='

N'

||choice=='

n'

exit(0);

voidmain()

{SeqStackCarEnter,Temp;

LinkQueueCarWait;

intch;

option();

InitStack(&

Enter);

/*初始化车站*/

Temp);

/*初始化让路的临时栈*/

InitQueue(&

Wait);

/*初始化通道*/

while

(1)

\n\n\t\t\t1.新的车辆到达请选择1"

\n\n\t\t\t2.场车辆离开请选择2"

\n\n\t\t\t3.查询车辆信息请选择3"

\n\n\t\t\t4.选择退出程序请选择4"

\n\n\t\t\t现在请选择以上信息:

while

(1)

{scanf("

ch);

if(ch>

ch<

=4)break;

\n\t\t\t错误!

请再次做出选择!

\n\n\t\t\t"

switch(ch)

{case1:

Arrival(&

Enter,&

case2:

Leave(&

Temp,&

case3:

List(Enter,Wait);

/*列表打印信息*/

case4:

exit(0);

/*退出主程序*/

default:

/*------------------------------------------------------------------------------*/

voidInitStack(SeqStackCar*s)/*初始化栈*/

intInitQueue(LinkQueueCar*Q)/*初始化便道*/

}

}

voidPRINT(CarNode*p)/*打印出站车的信息*/

{intA1,A2;

printf("

\n\t\t\t请输入离开时间:

leavetime));

\n\t\t\t离开车辆的车牌号:

\n\n\t\t\t离开车辆到达时间:

%d"

\n\n\t\t\t离开车辆离开时间:

leavetime);

A1=p->

reachtime;

A2=p->

leavetime;

\n\n\t\t\t停车场管理费用:

(A2-A1)*price);

free(p);

intArrival(SeqStackCar*Enter,LinkQueueCar*W)/*车辆到达*/

void

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2