2023年数据结构停车场管理实验报告C++.pdf
《2023年数据结构停车场管理实验报告C++.pdf》由会员分享,可在线阅读,更多相关《2023年数据结构停车场管理实验报告C++.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计题目 停车场管理器设计专业:计算机科学与技术班级:14 0 1姓名:彭旭学号:实验重要内容以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据涉及三个数据项:汽 车“达成”或“拜别”信息、汽车牌照号码以及达成或拜别的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆达成、则输出汽车在停车场内或便道上停车位置;若是车辆拜别,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。环境W i ndows 10 V i s u a 1 c+c 语言实验原理1.概要设计(1)抽象数据
2、类型定义ADT Stac k 数据对象:D=ai|ai WElemSe t,i=l,2,*n;n0数据关系:R 1=|ai-l,ai GD,i=2,n)基本操作:In i tSta c k(&S)操作结果:构造一个空栈S。Pu s h(&S,e)初始条件:栈S已存在。操作结果:插入e为新的栈顶元素P op(&S,&e)初始条件:栈S 已存在。操作结果:删除S 的栈顶元素,并且用e 返回。ADT StackAD T Que u e 数据对象:D=ai|a i GElemSet,i=l,2 n;n 0 数据关系:R 1 =|a i-1,ai D,i=2,n其中:a 1 为队头,an为队尾基本操作:
3、In i tQue u e(&Q);操作结果:构造一个空队列QE n Queue(&Q,&e);初始条件:对列Q 已存在。操作结果:插入元素e 为Q的新队尾元素。D eQueue(&Q,&e);初始条件:对列Q 已存在。操作结果:删除Q 的队头元素,并用e 返回。AD T Queu e(2)本程序包含七个模块:主程序模块,其中主函数为Void mai n()初始化;构造空栈;输入已知数据;插入数据入栈;分析 入栈;出栈;入队;出队;输出数据;)构造栈模块-构造一个空栈;栈插入模块-插入新的数据元素;栈删除模块-删除指定的数据元素;构造队列模块-构造一个空队列;队列插入模块-插入新的数据元素;队
4、列删除模块-删除指定的数据元素;(3)各模块之间的调用关系图解:主:函誓模块_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _,分析 卜 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _,、-S Z-X Z-B-X-、.构造栈模块 栈插入模块 栈删除模块【构造队列模块J【队列插入模块J【队列删除模块,2.具体设计类型定义#defineST ACK_INIT_SIZE 100#define STA CKIN CREME NT1 0#define MONEY
5、 3ty p ed e f i n t Stat u s;typede f struct E 1 e mT y p e c h ar a 3;6int num;int time;Elem T ype;t ypedef s tract S q Sta c k E 1 e mT y p e*b a s e;在栈构造之前和销毁之后,base的值为NULLE 1 emTyp e*top;栈顶指针i n t st a c ksize;/当前已经分派的存储空间,以元素为单位 S q Stack;/栈的表达ty p e def struc t QNodeoElem T y p e d a t a;struc
6、t QN o d e*ne x t;QNode,*Queu e Pt r;队列的表达t yp e d e f s t rue t LinkQ u eu e QueueP t r front;/队头指针Q u e u e Ptr rear;/队尾指针JLinkQueue;V2栈和队列的基本操作St a tu s I nitSt a c k(S q Sta c k&S)/构造一个空栈S t a t u s Push(S q S t ac k&S,Elem T ype e)插入元素e为新的栈顶元素S t a t us Pop(SqS t a ck&S,El e mT y p e&e)若栈不空,则删除
7、S的栈顶元素,用e返回其值,并返回OK;否则返回ERRORSta t u s I n i t Q u eue(L inkQueu e&Q)构造一个空队列QSt a t us EnQu e ue(LinkQueue&Q,Elem T ype e)插入元素e为Q的新队列Status DeQueu e(Li n k Queue&Q,Elem T y pe&e)若队列不空,则删除Q的对头元素,用e返回其值,并返回。k;否则返回ERRO R;=S.s t a cks i z e)/栈满,追加存储空间S.b a se=(ElemType*)rea 1 1 oc(S.base,(S.s tac k siz
8、e+S TACKINCREMENT)*s i zeof(E lem T ype);-if(!S.ba s e)exit(OV E RFLOW);/存储分派失败aS.t o p=S.b a s e+S.st a c ks i ze;S.s tac k size+=STACK_INI T _SIZE;)*S.t op+=e;r etu r n OK;)Status P o p(S q Stack&S,E 1 emType&e)若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERRORi f(S.t o p=S.b a s e)r e turn O K;e=*-S.top;ret u
9、 rn 0 K;-队列S t atus I n i tQueue(Lin k Queue&Q)/构造一个空队列 QoQ.f r o n t=Q.re a r=(Qu e u ePt r)ma 1 1 o c(siz e of(QN ode);if(!Q.front)exit(OVERFLOW);存储分派失败oQ.f ro n t n e xt=NU LL;re t urn O K;)S t a t us En Queu e(L i nkQu e u e&Q,El e mType e)/插入元 素e为Q的新队列p=(QueuePtr)mallo c(s i ze o f(QNode);存储分派失
10、败。i f(!p)exit(OVERF LOW);p d a ta=e;pnex t=NUL L;o Q.r earnext=p;%,r ea r=p;r etu r n O K;)S tatus D e Que u e(LinkQu e ue&Q,ElemT y p e&e)/若队列不空,则删除Q的对头元素,用e返回其值,并返回Ok;否则返回E R R O R;if(Q.fr o nt=Q.rea r)retu r n ERROR;叩=Q-f ront-n ext;oe=p-d a ta;oQ.f ro n t nex t=p-next;if(Q.r ear=p)Q.re a r=Q.fro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 数据结构 停车场 管理 实验 报告 C+
限制150内