版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 报 告课程名称 数据 结构 题 目 停车场管理 学生姓名 班级/学号 191103 一、 需求分析设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端),若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。【测试数据
2、】 设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表示输入结束。概要设计以栈模拟停车场,以队列模拟车场外的便道。栈以顺序结构实现。队列以链表结构实现。每一组输入数据包括:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。 输出信息:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 二、 详细设计三、 程序设计1.数据结构设计/
3、*栈,模拟停车场*/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;/便道的队列的对头
4、carptr rear;/便道的队列的队尾 int length;shortcut;2.程序设计 主函数中包括3个子函数,a(arrive),d(depart),e(end) (1)输入车辆数据:a为到达,d为离去,e为结束程序。(2)接着输入车辆的牌照信息(3)若为到达的车辆,输入进场信息,若为离去的车辆,输入离场信息。(4)若车辆到达,可得到车辆的停放位置信息,若车辆离去,可得到车辆的停放时间(在便道上的停放时间除外),以及应该交纳的费用。(5)本程序不断循环要求输入车辆信息,直到输入的车辆数据为e时,程序结束。四、 调试分析a、 一开始在调试程序时遇到了内存错误,经过debug,找到了引
5、起内存错误的原因:即在建立队头指针与队尾指针时没有对指针进行初始化(没有为指针动态分配空间)。问题得到解决。b、 本程序中:车辆到达,离去时的时间复杂度均为:o(n)。本程序空间复杂度为:o(n)五、 使用说明和测试结果1.使用说明:用户按照屏幕所显示的提示来选择需要进行操作2、测试结果:测试结果满足题目要求,程序无错误。 六、 心得体会通过此实验,加深了我对数据结构这门课的理解,真正运用了知识。将理论与现实完美的联系在了一起。增强了动手能力,对今后的工作学习都有很大的帮助。单调的看书本没有太大的作用,只有去编程才能理解究竟学习的作用。同时,编程过程中遇到过各种各样的问题,与同学讨论,与老师交
6、流。锻炼了我的协做能力与克服困难的能力。编程也极大的提高了我的学习积极性。七、 附录#include#include#include#define size 2/停车场位置数,共5个车位typedef int status;/*栈,模拟停车场*/typedef struct car1 /车 int number;/汽车车号 int ar_time;/汽车到达时间carnode;typedef struct /停车场 carnode *base;/停车场的堆栈底 carnode *top;/停车场的堆栈顶 int stacksize;park;/*队列,模拟便道*/typedef struct
7、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(-2); p.top=p.base; p.stacksize=0; return 1;status
8、 push(park &p,carnode e)/车进入停车场 *p.top+=e; +p.stacksize; return 1;status pop(park &p,carnode &e)/车离开停车场 if(p.top=p.base) printf(停车场为空); else e=*-p.top; -p.stacksize; return 1;/*初始化便道*/status initqueue(shortcut &s) s.front=s.rear=(carptr)malloc(sizeof(car2); if(!s.front|!s.rear) exit(-2); s.front-nex
9、t=null; s.length=0; return 1;status enqueue(shortcut &s,int number,int ar_time)/车进入便道 carptr p; p=(carptr)malloc(sizeof(car2); if(!p) exit(-2); p-number=number; p-ar_time=ar_time; p-next=null; s.rear-next=p; s.rear=p; +s.length; return 1;status dequeue(shortcut &s,carptr &w)/车离开便道 if(s.length = 0) p
10、rintf(通道为空); else w = s.front-next; s.front-next=s.front-next-next; -s.length; return 1;status arrival(park &p,shortcut &s)/对进站车辆的处理 int number,ar_time; printf(请输入车牌号:); scanf(%d,&number); printf(进场的时刻:); scanf(%d,&ar_time); if(p.stacksizenumber; push(p,m); free(w); printf(车牌号为%d的车已由便道进入停车场n,m.numbe
11、r); printf(停车费为%d, 占用车位数为%dn,money,p.stacksize); else printf(停车场不存在牌号为%d的车n, number); return 1;/*主函数*/int main() int m=1; char flag;/选项 park p,q; shortcut s; initstack(p); initstack(q); initqueue(s); while(m) printf(n 停车场管理程序 n); printf(a 汽车进车场 d 汽车出车场 e 退出程序n); printf(请选择(a,d,e): ); scanf(%c,&flag); switch(flag) case a: case a:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年终工作总结15篇
- 人文关怀:传递爱与温暖的力量主题班会
- 2025年高考语文文化常识题试题库300题(含答案)
- 2025年河南对外经济贸易职业学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年杨凌职业技术学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 中班幼儿重阳活动策划方案五篇
- 电子商务交易合同
- 广告宣传片制作合同范本
- 固始土鸡蛋购销合同书
- 幼儿园种子科学活动策划方案五篇
- 财务BP经营分析报告
- 三年级上册体育课教案
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 2025届河北衡水数学高三第一学期期末统考试题含解析
- 提高数学教师命题能力培训
- 猎聘网在线人才测评题库
- 《社区康复》课件-第八章 视力障碍患者的社区康复实践
- 透析患者的血糖管理
- 《逆向建模与产品创新设计》课程标准
- 前置审方合理用药系统建设方案
- 国寿增员长廊讲解学习及演练课件
评论
0/150
提交评论