版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数据结构课程设计133302班20133531蒋国奇20124733马美玲 20133543 施晨 2014年12月31日课题名称:停车场管理系统任务分工:20133531蒋国奇:负责部分代码编写,程序代码修改,课程设计报告书编写工作20133543施晨:负责部分代码编写,程序调试以及测试,课程设计报告书编写工作20124733马美玲:负责部分代码编写,程序代码修改以及课程设计报告书编写工作 目 录第1章 引言.11.1摘要.11.2问题的提出.11.3目的及意义.1第2章 需求分析.22.1 概述.22.2 系统目标.22.3 功能需求.22.4非功能性需求.32.5数据需求.32.6 将
2、来可能提出的需求.3第3章 系统分析与设计.33.1概述.3 3.1.1功能.3 3.1.2数据.3 3.1.3操作.33.2系统框架图.33.3函数设计.4 3.3.1主函数.4 3.3.2初始化函数.5 3.3.3车的入场登记函数.6 3.3.4车的出场登记函数.6 3.3.5车辆显示函数.73.4模块设计.9 3.4.1主函数模块.9 3.4.2车辆入场登记模块.9 3.4.3车辆出场登记模块.10 3.4.4车辆停靠查询选择.11 3.4.5查看场内车模块.13 3.4.6查看便道车模块.14第4章 编码与测试.15 4.1典型界面实现代码.15 4.1.1车辆入场模块.15 4.1.
3、2车辆离开车场模块.174.2源程序 .18第5章 结束语.27参考文献.27附录一.30附录二.32 第一章 引言1.1摘要本课程设计所选课题的主要目标是采用B/S模式,基于J2EE架构,实现网站构建管理系统的基本功能。本次设计的主要工作及报告的主要内容可以归结如下:(1)分析网站构建管理系统的功能需求和非功能需求。(2)设计网站构建管理系统的技术体系结构,应用设计模式,设计数据库实体联系模型。(3)实现网站构建管理系统的组件管理、模块管理、界面模板管理等诸多系统管理功能,提供留言板、滚动新闻、计数器等常用组件和模块。(4)完成网站构建管理系统的单元测试、功能测试及性能测试,并给出测试分析。
4、1.2问题的提出我们选择停车场管理系统是因为随着经济的发展,生活水平的不断提高,家庭车辆、社会车辆的拥有量在迅速地增长, 停车场管理的重要性也会越来越受到重视,而其技术的核心是对车辆的自动监控、识别和自动管理。现在车越来越多,导致停车拥挤,散乱,无秩序,所以我们想通过设计出一种管理停车的系统来解决现在私家车辆增多带来的违停乱停问题,于是在施晨的建议下,提出了“停车场管理系统”的开发。1.3目的及意义 有效保证车辆停放平安,提高管理效率,封堵收费漏洞使停车场秩序有条不紊,提高停车场车位利用率。自动化、智能化水平高,智能停车场系统采用了多种先进技术。如采用车牌识别可以做到无人化值守,或者一个管理中
5、心可以管理多个进出口,大大提高了管理效率,同时也降低了人手,节省管理本钱。另外智能停车场系统科学严谨的收费方式,防止管理人员私吞停车费用,保证了停车场的利益。能通过停车场系统中的车位引导系统可以让客户快速的找到剩余车位,会起到有效的引导作用。自动化、智能化水平高,智能停车场系统采用了多种先进技术。如采用车牌识别可以做到无人化值守,或者一个管理中心可以管理多个进出口,大大提高了管理效率,同时也降低了人手,节省管理本钱。另外智能停车场系统科学严谨的收费方式,防止管理人员私吞停车费用,保证了停车场的利益。一般的停车场,蹭车位也是停车场管理的一个难题。 第2章 需求分析2.1 概述 根据停车场管理系统
6、的问题分析及设计要求,可以把系统分为三个查询模块:车辆入场登记模块、车辆出场登记模块、车辆停靠查询查询模块。通过需求与问题提出相结合,将需求关系分为以下几种:系统目标、功能需求、非功能性需求、数据需求。2.2 系统目标(1) 总体目标:解决车辆进入停车场秩序问题。(2)具体目标:解决车辆入场问题,解决车辆等候问题。2.3 功能需求 结合程序与实际,将提炼出其程序所执行的功能,并按功能挖掘其所有需求或部分需求。 (1)管理车辆信息数据 (2)管理车辆到达停车场时间数据 (3)管理车辆离开停车场时间数据 (4)管理车辆位置信息数据2.4非功能性需求 :根据程序的执行情况以及C+语言的特点,在非功能
7、性如安全性、程序健壮性、可扩展性方面十分突出。2.5数据需求: 该系统要处理的数据有车辆信息数据,车辆到达停车场时间数据,车辆离开停车场时间数据,车辆位置信息数据等,并根据具体的实际问题指定数据的流向。2.6将来可能提出的需求:根据本系统可能提出的需求如:维护需求、管理需求、资源分配需求等。 第3章系统分析与设计3.1概述3.1.1功能设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排
8、在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。3.1.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表示输入结束。3.1.3操
9、作1) 可以输入车辆的进入时间和车辆的车牌号;2) 能查询停车场的信息;1.系统实际遵循的系统设计的原则及方法用C+编程以及采用系统功能模块化,用结构体数组的存储结构进行存储,将所需要的停车场和便道抽象为栈和队列。1.此系统采用栈和队列的存储结构存储,定义了五个结构体数组:1. 定义时间结点typedef struct time2.定义每辆车的牌号,进入时刻,开出时刻typedef struct node3.用栈定义,构造停车场typedef struct NODE4.用队列结点定义,构造停车场外的单个等候车辆typedef struct car5.用队列定义,构造停车场外的等候便道typed
10、ef struct Node3.2系统构架图3.3函数设计 3.3.1主函数void main()1.初始栈,中转栈 SeqStackCar Enter,Temp;定义便道队列 LinkQueueCar Wait对已定义的栈初始化 InitStack(&Enter); InitStack(&Temp);对已定义的队初始化InitQueue(&Wait);/进入提示while(1)当输入不再范围1至4时提示错误重新输入使用switch函数进入其他模块2.主函数中用到了2个while语句,一个进入主菜单,一个提示错误输入:2. 用到了switch(a)语句:3.3.2初始化函数栈堆初始化void
11、InitStack(SeqStackCar *s),将栈顶设置为NULL,s-stacks-top=NULL;队列初始化int InitQueue(LinkQueueCar *Q),设置头结点,将头结点设置为NULL,令队的头等于尾3.3.3车的入场登记函数int Arrival(SeqStackCar *Enter,LinkQueueCar *W)1.提示车辆登记开始,输入该车的车牌号。进入if条件判断停车位是否已经满,若未满则需输入该车的到达时间,输出车辆所在位置。coutp-reach.hour;coutp-reach.min;若车位已满,则提示车位已满,须在便道等待,利用已定义的队,将
12、其排列在队中即便道。 3.3.4车的出场登记函数Leave(Seqstackcar *Enter,Seqstackcar *Temp,LinkQueueCar *w)1.提示车辆离开登记开始,输入车位位置。2.if语句判断是否输入满足要求,满足则进入while,从停车场堆栈向中转堆栈移动车辆直到要离开车辆的位置停止Temp-stackTemp-top=Enter-stackEnter-top;Enter-stackEnter-top=NULL;3.用whlie(1)语句提示输入车辆位置信息,4.用whlie(1)语句判断位置信息输入正确与否,5.用while(Temp-top=1)语句判断中转
13、栈车辆,if语句判断便道车辆。3.3.5车辆显示函数List(SeqStackCar S,LinkQueueCar w)1.用While(1)语句输出查询列表。2.用While(1)语句提示输入13。3.if语句判断输入是否正确。4.用switch(tag)进入相应查询列表。List1函数:List2函数:3.4模块设计3.4.1主函数模块3.4.2车辆入场登记模块3.4.3车辆出场登记模块3.4.4车辆停靠查询选择模块3.4.5查看场内车模块 3.4.6查看便道车模块 第4章编码与测试4.1典型界面即实现代码。4.1.1车辆入场模块int Arrival(SeqStackCar *Enter
14、,LinkQueueCar *W) CarNode *p;QueueNode *t;p=new CarNode;cout=endl;cout 车辆到达登记开始:endl;coutendlp-num;if(Enter-toptop+;coutendl车辆在车场第top位置.;coutendl车辆到达时间:endl;coutp-reach.hour;coutp-reach.min;coutendl 车辆到达登记完毕!stackEnter-top=p;return 1; else /如果车位已满,则停靠在便道上 cout=endl;coutendl该车须在便道等待!有车位时进入车场data=p;t-
15、next=NULL; W-rear-next=t;W-rear=t;return 1; 4.1.2车辆离开车场模块void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) int room;CarNode *p,*t;QueueNode *q;if(Enter-top0) while(1) cout+endl; cout 车辆离开登记开始:endl; coutendl请输入车在车场的位置/1-toproom;if(room=1&roomtop) break;while(Enter-toproom)/从停车场堆栈向中转堆栈移
16、动车辆,直到要离开车辆的位置停止Temp-top+;Temp-stackTemp-top=Enter-stackEnter-top;Enter-stackEnter-top=NULL;Enter-top-; p=Enter-stackEnter-top;Enter-stackEnter-top=NULL;Enter-top-;while(Temp-top=1)/将中转堆栈中的车辆移回停车场堆栈 Enter-top+;Enter-stackEnter-top=Temp-stackTemp-top;Temp-stackTemp-top=NULL;Temp-top-;cout+endl;cout 车
17、辆离开登记结算:head!=W-rear)&Enter-tophead-next;t=q-data;Enter-top+;coutendl便道的num号车进入车场第;couttop位置.endl;cout请输入num号车进入车场的时间:endl;coutt-reach.hour;coutt-reach.min;W-head-next=q-next;if(q=W-rear) W-rear=W-head;Enter-stackEnter-top=t;delete q;else coutendl便道里已没有车endl;else coutendl车场里已没有车.endl; 4.2源程序#include
18、#includeusing namespace std;#define MAX 2 /停车场车位数#define price 0.05 /每分钟收取的费用typedef struct time int hour; int min;Time;/定义时间结点typedef struct node string num; Time reach; Time leave;CarNode;/定义每辆车的牌号,进入时刻,开出时刻typedef struct NODE CarNode *stackMAX+1; int top;SeqStackCar;/用栈定义,构造停车场typedef struct car
19、CarNode *data; struct car *next;QueueNode;/用队列结点定义,构造停车场外的单个等候车辆typedef struct Node QueueNode *head; QueueNode *rear;LinkQueueCar;/用队列定义,构造停车场外的等候便道void InitStack(SeqStackCar *); /初始化堆栈函数声明int InitQueue(LinkQueueCar *); /初始化队列头结点函数声明int Arrival(SeqStackCar *,LinkQueueCar *); /车辆进入时登记函数声明void Leave(S
20、eqStackCar *,SeqStackCar *,LinkQueueCar *);/车辆离开时函数声明 void List(SeqStackCar,LinkQueueCar); /*查看停车场内车辆情况及便道上车辆情况的函数声明*/void main( )SeqStackCar Enter,Temp;/初始栈,中转栈 LinkQueueCar Wait;/便道队列int a;InitStack(&Enter); InitStack(&Temp);InitQueue(&Wait);/初始化while(1) cout*endl;cout 欢迎光临停车场!;cout(*_*) !;coutend
21、l请按 1endl;cout请按 2endl;cout请按 3endl;cout请按 4endl;/系统选项设置cout*a;if(a=1&a=4) break;else coutendltop=0; s-stacks-top=NULL;int InitQueue(LinkQueueCar *Q)/队列初始化 Q-head=new QueueNode ; if(Q-head!=NULL) Q-head-next=NULL; Q-rear=Q-head; return 1; else return -1;void PRINT(CarNode *p,int room) /输出离开停车场的车辆情况
22、int A,B,C,D;coutn车辆离开的时间:endl;coutp-leave.hour;coutp-leave.min;cout离开车辆的车牌号为:;coutnum;coutendl其到达时间为: reach.hour时reach.min分endl;cout离开时间为: leave.hour时leave.minreach.hour;B=p-reach.min;C=p-leave.hour;D=p-leave.min;coutendl应交费用为: (C-A)*60+(D-B)*price元endl;cout 车辆离开登记完毕!endl;delete p;int Arrival(SeqSta
23、ckCar *Enter,LinkQueueCar *W) CarNode *p;QueueNode *t;p=new CarNode;cout=endl;cout 车辆到达登记开始:endl;coutendlp-num;if(Enter-toptop+;coutendl车辆在车场第top位置.;coutendl车辆到达时间:endl;coutp-reach.hour;coutp-reach.min;coutendl 车辆到达登记完毕!stackEnter-top=p;return 1; else /如果车位已满,则停靠在便道上 cout=endl;coutendl该车须在便道等待!有车位时进
24、入车场data=p;t-next=NULL; W-rear-next=t;W-rear=t;return 1; void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) int room;CarNode *p,*t;QueueNode *q;if(Enter-top0) while(1) cout+endl; cout 车辆离开登记开始:endl; coutendl请输入车在车场的位置/1-toproom;if(room=1&roomtop) break;while(Enter-toproom)/从停车场堆栈向中转堆栈移动
25、车辆,直到要离开车辆的位置停止Temp-top+;Temp-stackTemp-top=Enter-stackEnter-top;Enter-stackEnter-top=NULL;Enter-top-; p=Enter-stackEnter-top;Enter-stackEnter-top=NULL;Enter-top-;while(Temp-top=1)/将中转堆栈中的车辆移回停车场堆栈 Enter-top+;Enter-stackEnter-top=Temp-stackTemp-top;Temp-stackTemp-top=NULL;Temp-top-;cout+endl;cout 车辆
26、离开登记结算:head!=W-rear)&Enter-tophead-next;t=q-data;Enter-top+;coutendl便道的num号车进入车场第;couttop位置.endl;cout请输入num号车进入车场的时间:endl;coutt-reach.hour;coutt-reach.min;W-head-next=q-next;if(q=W-rear) W-rear=W-head;Enter-stackEnter-top=t;delete q;else coutendl便道里已没有车endl;else coutendl车场里已没有车.top0)cout#endl;couten
27、dl车场内部车辆停靠情况:endl; for(i=1;itop;i+)cout 第i辆车 endl;cout 位置:;coutiendl;cout到达时间:;coutstacki-reach.hour时stacki-reach.min分endl;cout 车牌号:;coutstacki-numendl; else cout#endl;coutendl车场里没有车head-next;if(W-head!=W-rear)cout!endl;coutendl便道停靠车辆情况:endl;while(p!=NULL)coutendl车辆牌号:;coutdata-numnext;else cout!end
28、l;coutendl便道里已没有车.endl;void List(SeqStackCar S,LinkQueueCar W) /车辆列表显示函数int flag,tag;flag=1;while(flag) coutendl; cout车辆停靠查询开始:endl; coutendl请选择 1|2|3:endl; cout1.车场列表endl2.便道列表endl3.返回主菜单tag; if(tag=1|tag=3) break; else coutendl; cout请选择 13:;switch(tag)case 1:List1(&S);cout车辆停靠查询结束!endlendlendl;bre
29、ak; case 2:List2(&W);cout车辆停靠查询结束!endlendlendl;break;case 3:flag=0;break;default: break; 第5章结束语在课程设计的过程中,虽然遇到了很多问题,但最终差不多也都一一解决了。有的时候是一些很小的逻辑错误,需要的是细心。同学之间互相帮助,多个人思考多个力量,遇到自己解决不了的问题,向同学求助,能更好的帮我们解决所面临的难题。由于此次课程设计用到数据文件的知识,而这些知识老师都没讲,自学起来稍微有点困难,但也不是完全看不懂,只是对一些函数的应用不太熟悉,经过此次课程设计,对文件的读写有了更深的了解,也相应的培养了我
30、的自学能力。经过数据结构的学习,我发现数据结构有许多需要考虑的地方,数据结构前期的整体规划和构思非常重要,先确立合理的存储结构,再来编写算法,实际上一旦存储结构确立了,算法的实现相对来说简单很多,难就难在如何确立合理的存储结构。能够把此次课程设计做出来,是一个很大的挑战,但我经过自己的不懈努力,终于完成了,看着自己的作品,心里还是说不出的高兴,虽然做的过程很艰难。人生就是要把困难踩在脚下。参考文献 1 数据结构(C语言版),严蔚敏,吴伟民编著,清华大学出版社,2002年9月2 C语言程序设计教程,杨路明,郭浩志,北京邮电大学出版社,2005年12月3 C程序设计(第三版),谭浩强,清华大学出版社,2005年2月4 数据结构实用教程,徐孝凯,清华大学出版社,2006年8月5 数据结构(C语言版),严蔚敏,清华大学出版社,20036 数据结构题集,严蔚敏,清华大学出版社,20057 数据结构(C语言版),刘大有,高等教育出版社,2004附录1 部分系统界面附录2 部分源程序#include#includeusing namespace std;#define MAX 2 /停车场车位数#define price 0.05 /每分钟收取的费用typedef struct time int hour; int min;Time;/定义时间结点typedef struct nod
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海电子信息职业技术学院《金融学概论》2025-2026学年期末试卷
- 上海立达学院《社会调查》2025-2026学年期末试卷
- 上海民远职业技术学院《健康教育与健康促进》2025-2026学年期末试卷
- 上海欧华职业技术学院《物流管理学》2025-2026学年期末试卷
- 山西信息职业技术学院《中国文化概论》2025-2026学年期末试卷
- 上海杉达学院《环境与自然资源经济学》2025-2026学年期末试卷
- 朔州师范高等专科学校《卫生保健》2025-2026学年期末试卷
- 沈阳音乐学院《教师职业道德》2025-2026学年期末试卷
- 太原师范学院《临床免疫学检验技术》2025-2026学年期末试卷
- 山西管理职业学院《会计电算化》2025-2026学年期末试卷
- T/CAPE 10108-2024设备设施报废管理指南
- 《语文教学技能训练》课件全套 第1-8章 课堂教学语言技能训练- 教学反思技能训练
- 医院消毒灭菌与监测课件
- 测绘公司安全培训课件
- 浮雕画彩塑艺术精讲
- 交警路面执法规范课件
- 消防救援机器人技术应用与发展
- 食品安全卫生管理条例
- 舞台技术技师试题及答案
- 塑料复合袋基础知识培训
- 低温热年代学方法解析及其在黔西南卡林型金矿床研究中的应用
评论
0/150
提交评论