版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计与算法综合训练设计报告学号: E 姓名:汪泓章 年级: 大一专 业:计科项目名称:停车场管理系统的设计与实现:完成日期: 2016 年 6 月 27 日一需求分析1. 问题描述:设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车 场内按车辆到达时间的先后顺序, 依次由北向南排列 (大门在最南端, 最先到达的第一辆车 停放在车场的最北端) 。若停车场内已经停满 n 辆车, 那么后来的车只能在门外的便道上等 候。一旦有车开走, 则排在便道上的第一辆车即可开入。 当停车场内某辆车要离开时, 在它 之后进入的车辆必须先退出车场为它让路, 待该辆车开出大门外, 其
2、他车辆再按原次序进入 车场。每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。 试为停车 场编制按上述要求进行管理的模拟程序。2. 基本要求: 以栈模拟停车场, 以队列模拟车场外的便道, 按照从终端读入数据的序列进行模拟管理。 每 一组输入数据包括三个数据项:汽车的“到达” ( A表示)或“离去” (D表示)信息、 汽车标识(牌照号)以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为: 若是车辆到达, 则输出汽车在停车场内或者便道上的停车位置; 若是车辆离去, 则输出汽车 在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费) 。栈以顺序结构实现,队 列以链表结构
3、实现。(1).程序所能达到的基本可能:程序以栈模拟停车场, 以队列模拟车场外的便道, 按照从终端读入数据的序列进行模拟管理。 栈以顺序结构实现, 队列以链表结构实现。 同时另设一个栈, 临时停放为给要离去的汽车让 路而从停车场退出来的汽车。 输入数据按到达或离去的时刻有序。 当输入数据包括数据项为 汽车的“到达” ( A表示)信息,汽车标识(牌照号)以及到达时刻时,应输出汽车在停车场内或者便道上的停车位置; 当输入数据包括数据项为汽车的“离去” (D表示)信息, 汽车标识(牌照号) 以及离去时刻时,应输出汽车在停车场停留的时间和应缴纳的费用 (便 道上停留的时间不收费) ;当输入数据项为( P
4、,0,0)时,应输出停车场的车数;当输入 数据项为( W , 0, 0)时,应输出候车场车数;当输入数据项为( E, 0, 0),退出程序; (2) .输入输出形式及输入值范围: 程序运行后进入循环,显示提示信息: “请输入停车场最大容量 n=:”,提示用户输入停车场 最大容量,输入后显示提示信息:请输入车辆信息,提示用户输入车辆信息( “到达”或者 “离开”,车牌编号, 到达或者离开的时间) 。若车辆信息为 “到达 A”,车辆信息开始进栈 (模 拟停车场),当栈满,车辆会进队列(模拟停车场旁便道) ,若车辆信息为“离开 D”,会显 示该车进入停车场的时间以及相应的停车费用, 若该车较部分车早
5、进停车场, 这部分车需先 退出停车场, 暂时进入一个新栈为其让道, 当待离开车离开停车场后, 这部分车会重新进入 停车场,同时便道上的第一辆车进入停车场;若输入( P, 0, 0),会显示停车场的车数;若输入( W, 0,0),会显示便道上的车数;若输入( E,0,0),程序会跳出循环,同 时程序结束。 用户每输入一组数据, 程序就会根据相应输入给出输出。 输入值第一个必须为 字母,后两个为数字,中间用逗号隔开 二概要设计1. 所用到得数据结构及其 ADT为了实现上述功能, 该程序以顺序栈模拟停车场以及临时停放为给要离去的汽车让路而从停 车场退出来的汽车的场地, 以链表队列模拟车场外的便道,
6、因此需要栈和队列这两个抽象数 据类型。顺序栈数据类型定义typedef struct Stackstruct Node dataMaxSize;int top;int num;SqStack;基本操作:SqStack *Init_SeqStack()表队列数据类型定义QNODE 实现每个操作的伪码1)主程序模块 int main()SqStack *parkstack;O !=ime;s-top-;s-num-;while(ISEmpty_SeqStack(p)=0)Push_SeqStack(s,p-datap-top);p-top-;p-num-;return t;10)出队模块struc
7、t Node Out_LQueue(LinkQueue *q)设计与调试过程中遇到的问题分析、体会1)编写代码时,由于对栈和队列不熟悉,经常会一些问题,该程序定义了车辆信息,停车 场的顺序栈, 便道上的链表队列, 所以在函数代值时会出现代值的问题, 例如在出栈的程序 POP_SeqStack(SqStack *s,struct Node car)中一开始在 s-datas-top.NO != 这句话中我编的代 码是 s- !=程序报错 .NO : left operand points to struct, use - ,这就是因为定义的太多了, 忘记了当初定义的停车场栈是: struct N
8、ode dataMaxSize; 就 是 像 程 序 中 s-datas-top.time 这样的定义因为太长了经常会搞混,再次像 IN_Lqueue(parkqueue,car); ,Push_SeqStack(parkstack,car); 这种涉及函数调用的尤其要注意代的应该是什么。2. 主要算法的时间复杂度分析主函数中 对每次输入的车辆信息只选择其中一个执行,时间复杂度O(1 );空间复杂度 O(1);入栈入队列函数根据判断条件将数据入栈或入队列,时间复杂度O( 1);空间复杂度O( 1);出栈数据不在最顶端需将 n 个数据先出该栈,再入新栈,再回旧栈,时间复杂度 O (n);空间复杂
9、度 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. 测试结果五总结在这个程序中还有一个问题, 就是定义的结构体数组有些多, 容易混乱,
10、所以我选择每定义 一个结构体都将其画出一个图, 这样编写的时候就不至于太混乱。 这个停车管理系统的设计 过程, 还是慢慢在适应模块化程序的编写, 但有的程序还是喜欢写在一起, 使得一个子程序 会很长,这个问题希望在之后的问题再继续慢慢改进六附录:源程序清单#include#include#include elsee=*;return OK;Status InitQueue(Shortcut &S);elsew = next;next=next-next;return OK;Status Arrival(Park &P,Shortcut &S)n,;elseEnQueue(S,number,ar
11、_time);printf( 停车场已满 ,请暂时停在便道的第 %d个位置 .n,;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;whilePop(P,e);if=number)flag=0; money=*2;ar_time=;break;Push(P1
12、,e);whilePop(P1,e);Push(P,e);/ 车从停车场中出if (flag = 0)if!=0) DeQueue(S,w);=le_time;=w-number;Push(P,m);free(w);printf( 车牌号为 %d 的车已由便道进入停车场 n,; printf( 停车费为 %d, 占用车位数为 %dn,money,;elseprintf( 停车场不存在牌号为 %d 的车 n, number); return OK;int main()int m=1;char flag;/ 选项Park P,Q;Shortcut S;InitStack(P);InitStack(Q);InitQueue(S);while(m)printf(n 停车场管理程序 n); printf(n);printf( 请选择 (A,D,E): );scanf(%c,&flag);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第7课《散文诗二首-金色花》导学单 2025-2026学年统编版语文七年级上册(学案)
- 配电室安全管理与操作规范培训
- 2026年医疗影像诊断数据合作合同协议
- 验电接地制度培训课件
- 炼铁厂设备档案管理制度培训
- 空压机工安全生产职责培训课件
- 2026年广西农业职业技术大学单招职业技能测试题库带答案详解(b卷)
- 重特大突发事件上报制度培训
- 2026年山西经贸职业学院单招职业倾向性考试题库附答案详解(能力提升)
- 2026年广西国际商务职业技术学院单招职业技能测试题库含答案详解(a卷)
- 2026春人教版(新教材)小学美术二年级下册《设计小名师》教学设计
- 国新控股(雄安)有限公司相关岗位招聘11人笔试参考题库及答案解析
- 2026小学教师资格证考试《综合素质》能力测试试题含答案
- (2026版)子宫颈上皮内瘤变2级(CIN2)管理中国专家共识解读课件
- 2026年Q3新媒体热点营销:开学季内容策划与用户触达
- 【模板】洁净厂房和设施验证报告
- 国家糖尿病基层中医防治管理指南(2025版)
- 北京协和医学院攻读医学科学(理学)硕士学位研究生培养方案
- 船舶绿色制造技术
- 2026年安徽林业职业技术学院单招(计算机)考试参考题库附答案
- 安全环境职业健康法律法规文件清单(2025年12月版)
评论
0/150
提交评论