停车场管理系统课程设计报告2汇总_第1页
停车场管理系统课程设计报告2汇总_第2页
停车场管理系统课程设计报告2汇总_第3页
停车场管理系统课程设计报告2汇总_第4页
停车场管理系统课程设计报告2汇总_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、泊车场管理系统课程设计报告2汇总泊车场管理系统课程设计报告2汇总22/22泊车场管理系统课程设计报告2汇总德州学院2012级信息管理学院计算机科学与技术数据构造课程设计泊车场管理系统实习目的经过本次课程设计,认识并初步掌握设计、实现系统的圆满过程,包含系统分析、编码设计、以及调试分析,娴熟掌握数据构造的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。问题描绘泊车场是一条可以停放n辆车的狭小通道,且只有一个大门汽车停放安抵达时间的先后挨次由北向南摆列(大门在最南端,最初抵达的第一辆车停在最北端)若泊车场已经停满n辆车,此后的汽车在便道上等候,一旦有车开走,排在便道上的第一辆车可以开入;

2、当泊车场的某辆车要走开时,停在他后边的车要先退后为他让路,等它开出后其余车在依据原序次开入车场,每两停在车场的车要安时间长短缴费。基本要求(1)以栈模拟泊车场,以行列车场外的便道,依据从终端输入的数据序列进行模拟管理。每一组数据包含三个数据项:汽车“抵达”或“走开”信息、汽车牌照号码、以及抵达或走开的时辰。对每一组数据进行操作后的信息为:假如车辆抵达,则输出汽车在泊车场的内或便道上的地点:假如车辆走开则输出汽车在泊车场内的逗留时间和应缴纳的开销(在便道上的逗留时间不收费)。栈以序次构造实现,行列以链表构造实现。2)友善性:界面要友善,输入有提示,尽量展现人性化。3)可读性:源程序代码清楚、有层

3、次,必需时给出说明。4)强健性:用户输入非法数据时,系统要实时给出警示信息。5)测试数据:要求使用1、所有合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的坚固。测试数据及测试结果请在上交的资猜中写明。需求分析泊车场是一条可以停放n辆车的狭小通道,且只有一个大门。汽车停放按抵达时间的先后摆列。若泊车场已经停满n辆车,此后的汽车在便道上等候。一旦有车开走,排在便道上的第一辆车可以开入;当泊车场的某辆车要走开时,停在他后边的车要先退后为他让路。等它开出后,其余车再依据原序次开入车场,每辆停在车场的车要准时间长短缴费。3.1设计基本要求以栈模拟泊车场,以行列模拟车场外的便道,依

4、据从终端输入的数据序列进行1德州学院2012级信息管理学院计算机科学与技术数据构造课程设计模拟管理。每一组数据包含三个数据项:汽车“抵达”或“走开”信息、汽车牌照号码、以及抵达或走开的时辰。对每一组数据进行操作后的信息为:假如车辆抵达,则输出汽车在泊车场的内或便道上的地点:假如车辆走开则输出汽车在泊车场内的逗留时间和应缴纳的开销(在便道上的逗留时间不收费)。栈以序次构造实现,行列以链表构造实现。友善性:界面要友善,输入有提示,尽量展现人性化。可读性:源程序代码清楚、有层次,必需时给出说明。强健性:用户输入非法数据时,系统要实时给出警示信息。测试数据:要求使用所有合法数据、整体非法数据、局部非法

5、数据进行程序测试,以保证程序的坚固。测试数据及测试结果请在上交的资猜中写明。3.2泊车场管理系统的主要功能依据车辆抵达泊车场到车辆走开泊车场时所逗留的时间进行计时收费。该程序设计可以经过车牌号查到该车辆在泊车场或便道中的地点。当有车辆从泊车场走开时,等候的车辆挨序次进入泊车场停放。实现泊车场的调动功能。该程序设计可以圆满的模拟泊车场的管理过程。详尽设计4.1数据构造的设计程序中使用了一个类,五个构造体,两个栈(模拟泊车场,此中一个为暂时栈),一个行列(模拟便道)。(1)车辆信息的表示车辆可看作是一个节点,设计成一个构造体,车辆信息包含:车牌号码,车辆的进站时间和走开泊车场的时间,定义以下:ty

6、pedefstructnodecharnum10;/车牌号码Timereach;/到站时间Timeleave;/走开时间CarNode;(2)时间、栈和行列的定义时间是由小时和分钟表示的,有两部分数据,设计两个变量分别储蓄小时和分钟,定义以下:typedefstructtime2德州学院2012级信息管理学院计算机科学与技术数据构造课程设计inthour;intmin;Time;泊车场内用栈表示:typedefstructNODECarNode*stackMAX+1;/栈用序次表示inttop;SeqStackCar;SeqStackCarEnter,Temp;InitStack(&Temp)

7、在车辆走开时,应用temp暂时栈把将要走开的车辆后续车辆压入,等车辆走开后压回原栈stack。便道上的车辆表示:typedefstructcarCarNode*data;/便道上的车用链表表示structcar*next;QueueNode;typedefstructNodeQueueNode*head;/设置头指针、尾指针QueueNode*rear;LinkQueueCar;4.2算法的设计思想及流程图4.2.1主要函数的功能说明(1)voidInitStack(SeqStackCar*);/车辆节点进栈。即当栈未满时,就把抵达的车辆进栈。(2)intInitQueue(LinkQueue

8、Car*);/车辆节点进行列。即当栈已满时,车辆就进入便道上的行列中(3)intArrival(SeqStackCar*,LinkQueueCar*);/车辆抵达登记。即车辆抵达时,先登记车辆车牌号码。此后再判断泊车场有没有停满,没停满就进栈,停满了就停在便道上,即进行列。(4)voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);/车辆走开处理。即经过输入走开车辆的地点办理,此后调用PRINT(CarNode*p,introom);函数进行收费。此后再判断便道上有没有车,假如有,就把便道上的车进泊车场内。3德州学院2012级信息管理学院计算机科

9、学与技术数据构造课程设计(5)voidList(SeqStackCar,LinkQueueCar);/显示车场内和便道上的车辆状况。利用switch();函数选择显示车场内或是便道上的车辆状况,包含对下边两个子函数的调用:voidList1(SeqStackCar*S);voidList2(LinkQueueCar*W);/分别用来显示车场和便道上的车辆状况(6)voidPRINT(CarNode*p,introom);/车辆走开时的收费。即这个函数由车辆走开的函数调用,以分钟计时算费,但只好计算当日以内的开销,假如次日的话会致使计费为负或减少。即只好当日停,当日开走。4.2.2泊车场管理系统

10、流程图经过对车辆的出入分析以及对该系统的详尽设计,绘制泊车场管理系统流程图如图1.4德州学院2012级信息管理学院计算机科学与技术数据构造课程设计图1泊车场管理系统流程图5德州学院2012级信息管理学院计算机科学与技术数据构造课程设计4.2.3主要模块算法描绘本程序最主要的算法就是车辆抵达登记的和车辆走开时的登记。(1)车辆抵达:intArrival(SeqStackCar*Enter,LinkQueueCar*W)/第必然义一个栈和行列的构造体指针为:*p,*t。此后申请一个车辆信息的内存空间,并把它赋给栈指针。车辆抵达时就输入车牌号,并经过if(Enter-toptop0)保证栈不空,此后

11、用个while(1)保证输入的车辆走开位置的合法性。假如不合法,显示输入有误,要从头输入。经过while(Enter-toproom)判断走开车辆的地点,假如是中间地点,就要再用一个暂时栈搁置前面对时开出来的车,等要开出的车开出后,再把暂时栈内的车开进泊车场内,并调用PRINT(p,room);这个函数计算显示开销。此后还要用if(W-head!=W-rear)&Enter-topMAX)语句判断便道上有没有车,假如有车就要显示进泊车场的车的车牌号,并登记进入时间。并要进行相应的出行列和进栈操作。测试分析5.1测试用例说明:测试用例要合理而且足够,既要有正确用例,也要有错误用例,同时查验程序的

12、正确性和强健性。5.1.1第一组测试用例(1)测试输入:泊车场的车辆走开,如表1所示:6德州学院2012级信息管理学院计算机科学与技术数据构造课程设计表1:车辆走开测试服务选择车牌号/车位抵达/走开时间1京A121212:121津S121212:131鲁D121212:142114:122125:65(错误)测试目的:测试走开方法时间格式控制以及开销计算能否正确。正确输出:第一次走开的是京A1212,应交费2.4元。第二次时,当在输入65时,应当提示输入错误,重输。实质输出:图2测试走开方式时间格式及开销计算图图3测试车辆走开错误图错误原由:第一个正确,第二个错误,原由是没有对时间格式控制。目

13、前状态:已更正7德州学院2012级信息管理学院计算机科学与技术数据构造课程设计5.1.2第二组测试用例测试输入:连续5辆车抵达,如表2所示:表2:连续5辆车抵达测试服务选择车牌号/车位抵达时间1京A121212:121津S121212:131鲁D121212:141豫F121212:151沪G121212:162114:12测试目的:测试抵达方法与列表显示方法能否正确达成。正确输出:先抵达的三辆车先进入泊车场,最后抵达的两辆在便道等候。实质输出:表4车辆抵达方式测试8德州学院2012级信息管理学院计算机科学与技术数据构造课程设计图5车辆进入提示图错误原由:没有错误。目前状态:经过。5.1.3第

14、三组测试用例测试输入:接上一步输入走开信息,如表3所示:表3:接上一步走开信息测试服务选择走开车位走开时间便道车进入时间2114:1214:13测试目的:测试走开方法功能能否成功以及便道进入车场能否正确。正确输出:输出1号车位的车辆走开信息清单,便道1号车进入泊车场。实质输出:9德州学院2012级信息管理学院计算机科学与技术数据构造课程设计图6测试走开方法功能能否成功图错误原由:没有错误。目前状态:经过5.2测试结果分析经过我们小组一天的调试,我们终于把各模块整合起来了。在这过程中,我们碰到了好多问题,像数据不般配、括号不配对、赋值重复等。由于C语言的语法限制不太严格,对变量的种类拘束不严格,

15、对数组下标越界不做检查等原由,因此,我们的更正工作难度加大。但经过我们这小组共同的努力。此泊车管理系统可以基本实现一个小的停车场的管理,其“抵达”与“走开”方法都对比较较圆满,开销结算清单直观。在输入数据时,要依据严格的格式输入,不然有可能出现逝世或崩溃。若本系统能加上保留功能就更好了,由于一个系统在使用过程中总会关机等,而此系统的弊端倒是没有保留功能,封闭此后数据抛弃。现受限于各样条件,又由于要求中并未说起,因此本程序暂时没有加入保留功能。10德州学院2012级信息管理学院计算机科学与技术数据构造课程设计使用说明1)运转程序,第一出现主界面。主界面包含四个选项:选项1:车辆抵达登记,选择该项

16、可进行车辆抵达泊车场状况登记;选项2:车辆走开登记,选择该项可进行车辆走开泊车场状况登记;选项3:车辆列表显示,选择该项可查察车辆列表显示的所有信息,包含泊车场列表和便道列表的所有信息;选项4:退出系统,选择该项将退出程序。图7程序初始界面图2)车辆列表显示界面包含3个选项:选项1:泊车场列表,选择该项可以查察停车场列表的所有车辆的所有信息;选项2:便道列表,选择该项可以查察便道列表显示的所有信息;选项3:返回主菜单,可返回主界面。11德州学院2012级信息管理学院计算机科学与技术数据构造课程设计图8车辆列表显示界面图总结整体来说,此次的课程设计比昨年的c语言的课程设计稍难。我此次的课程设计题

17、目:泊车场问题。比较其余课题来说,这个题目仍是比较简单的,主假如运用了数据结构中栈和行列的知识和操作。程序可以实现基本的车辆抵达、走开、收费、遍历显示等主要功能。但我感觉这个程序还有好多小的地方是可以圆满的,比方:在计算收费时假如走开时间是到了次日,这样就会致使收费是负的或减少好多。也就是说,该程序限制于只能规定当日停,当日开走。至于加算天数的功能我改了几次改不好,又基于程序要求中也没有说起而且时间紧张,因此也就没再去研究实现。只需能实现主要的功能就好了。自然,此次的课程设计、编程实践仍是受益匪浅的。经过实习我的收获以下:我知道了如何去简化程序,减少他的时间复杂度和空间复杂度。还知道了如何去圆

18、满程序,使其更具强健性。坚固和加深了对数据构造有关知识的理解,提升综合运用本课程所学知识的能力。12德州学院2012级信息管理学院计算机科学与技术数据构造课程设计培育了我采用参照书,查阅手册及文件资料的能力。培育独立思虑、深入研究、分析问题、解决问题的能力。经过实质编译系统的分析设计、编程调试,掌握应用软件的分析方法。经过课程设计,培育了我严肃仔细的工作作风,逐渐成立正确的生产见解、经济见解和全局见解。依据我在实习中碰到的问题,我将在此后的学习过程中注意以下几点:仔细上好专业实验课,多在实践中锻炼自己。更让我懂得实践是查验和掌握真谛的最好方法。写程序的过程中要考虑周祥、严实。需求分析需要频频思

19、虑修正。在做课程设计的时候要有信心、有耐心,切勿烦躁。仔细学习课本知识,掌握课本中的知识点,并在此基础上学会灵巧运用。在课余时间里多写程序,娴熟掌握在调试程序的过程中所碰到的常有错误,以便能节俭调试程序的时间。总之,本次课程设计不只加深了我们对栈和行列等数据构造的理解和掌握,同时必然程度上提升了我们程序设计和阅读程序的能力。本次课程设计提升了我们的专业知识,使自己所学的内容运用到实质中来,也加强了实质操作能力,为此后的工作学习供给了一个优秀的铺垫。参照文件严蔚敏,吴伟民.数据构造M.北京:清华大学第一版社,2004.李春葆.数据构造分析M.北京:清华大学第一版社,2001.谭浩强.C语言程序设

20、计M.北京:清华大学第一版社,2005.4朱战立,张选平.数据构造学习指导与典型题解M.西安:西安交通大学第一版社,2002.5张玲,席德春,刘晓杰.C语言上机实践指导教程M.北京:机械工业第一版社,2004.6罗文劼,王苗,石强.数据构造习题解答与实验指导M.北京:中国铁道第一版社,2004.7殷人昆,陶永雷,谢若阳等.数据构造M.北京:清华大学第一版社,2005.13德州学院2012级信息管理学院计算机科学与技术数据构造课程设计附录系统说明:本系统适应于小型泊车场,且泊车时间在一天以内的短期停放泊车场。在此系统中,车库容量设置为3,便于测试。在实质使用中可以对容量大小按实质状况设置。#in

21、clude#include#include#defineMAX3/泊车场最大容量为3辆,便于察看#defineprice0.02定义时间构造体typedefstructtimeinthour;intmin;Time;定义车辆信息构造体typedefstructnodecharnum10;Timereach;Timeleave;CarNode;typedefstructNODECarNode*stackMAX+1;inttop;SeqStackCar;/模拟泊车场typedefstructcarCarNode*data;structcar*next;QueueNode;typedefstruct

22、NodeQueueNode*head;QueueNode*rear;LinkQueueCar;/模拟便道方法申明voidInitStack(SeqStackCar*);/初始化栈14德州学院2012级信息管理学院计算机科学与技术数据构造课程设计intInitQueue(LinkQueueCar*);/初始化便道intArrival(SeqStackCar*,LinkQueueCar*);/车辆抵达voidLeave(SeqStackCar*,SeqStackCar*,LinkQueueCar*);/车辆走开voidPRINT(CarNode*p,introom);/车辆收费voidList1(

23、SeqStackCar*S);/显示车场里的车辆状况voidList2(LinkQueueCar*W);/显示便道上的车辆状况voidList(SeqStackCar,LinkQueueCar);/显示信息/voidsavecar(CarNode*);/保留车辆信息自定义函数/*voidsavecar(CarNode*p1)/保留车辆信息FILE*fp1;if(fp1=fopen(car1.txt,w)=NULL)printf(nt不可以保留车辆信息n);return;while(p1)fwrite(p1,sizeof(structnode),1,fp1);p1=p1-next;*/栈的初始化

24、voidInitStack(SeqStackCar*s)inti;s-top=0;for(i=0;istacks-top=NULL;行列的初始化intInitQueue(LinkQueueCar*Q)Q-head=(QueueNode*)malloc(sizeof(QueueNode);if(Q-head!=NULL)Q-head-next=NULL;Q-rear=Q-head;return(1);elsereturn(-1);15德州学院2012级信息管理学院计算机科学与技术数据构造课程设计车辆收费voidPRINT(CarNode*p,introom)intA1,A2,B1,B2;prin

25、tf(n请输入车辆走开的时间:(小时:分钟);scanf(%d:%d,&(p-leave.hour),&(p-leave.min);while(p-leave.hourleave.hour23)printf(您的输入有误!);printf(请从头输入走开时间的时(0-23):);scanf(%d,&(p-leave.hour);if(p-leave.minleave.min59)printf(您的输入有误!);printf(请从头输入走开时间的分(0-59):);scanf(%d,&(p-leave.min);printf(n走开车辆的车牌号为:);puts(p-num);printf(n该车

26、抵达时间为:%d:%d,p-reach.hour,p-reach.min);printf(n该车走开时间为:%d:%d,p-leave.hour,p-leave.min);A1=p-reach.hour;A2=p-reach.min;B1=p-leave.hour;B2=p-leave.min;printf(n应交开销为:%2.1f元!,(B1-A1)*60+(B2-A2)*price);free(p);车辆的抵达登记intArrival(SeqStackCar*Enter,LinkQueueCar*W)/charnum10;/inta;CarNode*p;QueueNode*t;p=(Car

27、Node*)malloc(sizeof(CarNode);flushall();/清空缓存输入的作用printf(n请输入车牌号(例:豫B1234):);gets(p-num);/*a=Enter-top;loop:scanf(%s,&num);if(a=0)16德州学院2012级信息管理学院计算机科学与技术数据构造课程设计strcpy(p-num,num);a+;while(a)if(strcmp(num,Enter-stacka-num)=0)printf(您输入的车牌号重复,请从头输入!);gotoloop;*/if(Enter-toptop+;printf(n车辆在车场第%d地点.,E

28、nter-top);printf(n车辆抵达时间:);scanf(%d:%d,&(p-reach.hour),&(p-reach.min);while(p-reach.hourreach.hour23)/控制时间格式正确printf(您的输入有误!);printf(请从头输入抵达时间的时(0-23):);scanf(%d,&(p-reach.hour);while(p-reach.minreach.min59)/控制分钟输入正确printf(您的输入有误!);printf(请从头输入抵达时间的分(0-59):);scanf(%d,&(p-reach.min);Enter-stackEnter-

29、top=p;printf(n恭贺您登记成功!);/savecar(?);printf(n);return(1);else/车场已满,车进便道printf(n您好,泊车场车位已满,请该车在便道上等候!有空余车位时才能进入泊车场!/n);t=(QueueNode*)malloc(sizeof(QueueNode);t-data=p;t-next=NULL;W-rear-next=t;W-rear=t;17德州学院2012级信息管理学院计算机科学与技术数据构造课程设计return(1);车辆的走开voidLeave(SeqStackCar*Enter,SeqStackCar*Temp,LinkQue

30、ueCar*W)introom;CarNode*p,*t;QueueNode*q;if(Enter-top0)/判断泊车场能否为空while(1)/输入走开车辆的信息printf(n请输入车在车场的地点/1-%d/:,Enter-top);scanf(%d,&room);if(room=1&roomtop)break;elseprintf(n您的输入有误,请从头输入:);while(Enter-toproom)/把要走开车辆前面的车开出来,进暂时栈。Temp-top+;/暂时通道的栈顶指针Temp-stackTemp-top=Enter-stackEnter-top;Enter-stackEn

31、ter-top=NULL;Enter-top-;p=Enter-stackEnter-top;/把要删除的车辆节点赋给p。Enter-stackEnter-top=NULL;Enter-top-;while(Temp-top=1)/判断暂时通道上能否有车。Enter-top+;Enter-stackEnter-top=Temp-stackTemp-top;Temp-stackTemp-top=NULL;Temp-top-;PRINT(p,room);/调用计费函数计费。if(W-head!=W-rear)&Enter-tophead-next;t=q-data;Enter-top+;print

32、f(n便道上的%s号车进入泊车场内第%d地点.,t-num,Enter-top);printf(n请输入%s号车进入泊车场的时间:,t-num);18德州学院2012级信息管理学院计算机科学与技术数据构造课程设计scanf(%d:%d,&(t-reach.hour),&(t-reach.min);while(t-reach.hourreach.hour23)/控制时间格式正确printf(您的输入有误!);printf(请从头输入抵达时间的时(0-23):);scanf(%d,&(t-reach.hour);while(t-reach.minreach.min59)/控制分钟输入正确printf(您的输入有误!);printf(请从头输入抵达时间的分(0-59):);scanf(%d,&(t-reach.min);W-head-next=q-next;if(q=W-rear)W-rear=W-head;Enter-stackEnter-top=t;printf(n恭贺您登记成功!);free(q);elseprintf(n您好,便道上没有车!n);printf(n);elseprintf(n您好,泊车场内没有车!);printf(n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论