收藏 分享(赏)

数据结构课程设计 停车场模拟管理系统报告(含源码).doc

上传人:精品资料 文档编号:10817646 上传时间:2020-01-11 格式:DOC 页数:20 大小:242.50KB
下载 相关 举报
数据结构课程设计 停车场模拟管理系统报告(含源码).doc_第1页
第1页 / 共20页
数据结构课程设计 停车场模拟管理系统报告(含源码).doc_第2页
第2页 / 共20页
数据结构课程设计 停车场模拟管理系统报告(含源码).doc_第3页
第3页 / 共20页
数据结构课程设计 停车场模拟管理系统报告(含源码).doc_第4页
第4页 / 共20页
数据结构课程设计 停车场模拟管理系统报告(含源码).doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、数据结构课程设计报告专 业: 软件工程 班 级: T1123-03 学 号: 姓 名: XXX 课设题目: 停车场模拟管理系统 指导教师: 马春江 成 绩: 2013-07-03目 录 一、设计题目 1二、设计目的 1三、总体设计 1(一)问题描述 .1(二)设计要求 .1(三)数据结构 .1四、详细设计 2(一)分析与实现 .2(二)系统模块设计 .2(三)界面设计 .3五、设计结果与分析 4六、总结(收获和不足) 5(一)课设的不足 .5(二)课设的收获 .5附录 程序源码 5参考文献: 16指导教师意见 16第 1 页 共 20 页一、设计题目停车场模拟管理系统。二、设计目的利用所学的知

2、识,模拟设计一个停车场管理系统。通过程序设计,了解停车场的工作情况以及是怎么实现停车的,模拟车辆的进入停车场、离开停车场的情况,和收费情况。三、总体设计(一)问题描述假设停车场可以停放 n 辆车的狭长通道,而且只有一个入口出口,汽车进入停车场的停放按照先进先放的顺序,依次排满车道。当停车场已经停满时(已存放了 n 辆汽车) ,想进入停车场的车就只能在便道上等待,等到停车有车离开时,便道上的第一辆车进入停车场。当停车场内的某辆车要离开时,在它后面的车必须离开让出一条道路来,待车开走后,让路的车依次进入停车场,车辆离开时,按时间缴纳费用。(二)设计要求用栈模拟停车场,用队列模拟停车场外面的等车便道

3、,按照终端输入数据的方式进行模拟管理。输入 1,表示车辆到达;输入 2,表示车辆离开;输入3,表示列表显示停车场内外情况;输入 4,表示系统帮助;输入 5,表示查询车辆;输入 0,表示退出程序。车辆进入停车时,要输入车牌号码和到达时间;车辆离开时,要输入停车场车位号和离开时间,并显示应收费额;车辆查询时,要输入车牌号码;系统帮助,则是一些关于本系统的操作介绍。(三)数据结构本课程设计使用的数据结构有:顺序栈和链式队列。第 2 页 共 20 页四、详细设计(一)分析与实现1、模拟停车场的车辆进出需要输入车辆的信息,比如车辆的车牌号码、到达时间、离开时间,因此,可以定义一个车辆信息结点类型和一个时

4、间节点类型,在顺序栈和链式队列中定义结点类型为车辆信息结点类型。2、车辆离开时,需要打印输出车辆的车位号、到达时间、离开时间以及应缴纳的费用。定义 print()函数实现。3、车辆到达时要输入车辆的信息,并以此存放在停车场内;没进入一辆车,要判断停车场(顺序栈)是否已经停满,若已满,则提示该车要在便道上等待;若未满,则进行进栈操作。4、车辆的离开,要另外设计一个栈,当一辆汽车要离开时,在其后的车辆要给其让路,让路的汽车就暂时停放在这个栈中。车辆离开后,要判断便道上是否有车辆在等待,若有则进行入栈操作,即将车辆的信息结点进行入栈操作,这时要输入当前时间,今儿进行出队操作,表示车辆已经离开便道进入

5、停车场。5、系统帮助则只需设计一个函数 instruct(),将要说明的东西写进去,可以直接调用。6、车辆的查询,既可以查询停车场内的车辆,也可以查询便道上等待的车辆,查询时要输入正确的车牌号码,并显示车辆的当前情况。(二)系统模块设计主函数车辆到达车辆离开列表显示车辆查询系统帮助退出程序用户操作界面第 3 页 共 20 页(三)界面设计1、主菜单界面图 12、车辆到达界面图 23、车辆离开界面图 34、列表显示界面第 4 页 共 20 页图 4 列表显示菜单图 5 停车场情况图 6 便道等待情况5、车辆查询界面图 7五、设计结果与分析测试结果已达到我预期的结果,可以模拟实现车辆的进入、离开停

6、车场,第 5 页 共 20 页可以大体上让人了解到停车场的工作情况。六、总结(收获和不足)(一)课设的不足本次课程设计完成的系统,只能简单的模拟停车场的车辆进出、收费情况和查询功能,没有将进入停车场的车辆信息进行存盘保存。而且功能单一,有车离开时,还有可能要其他的车退出停车场让车(不够人性化) ;模拟的停车场只是一个狭长的通道,存放的车辆只能是一种类型的,即占地面积是一样的;按道理停车场可以存放各种类型的车,各种车的收费标准也应该不一样,这都应该是要完善的。(二)课设的收获历时四天,终于把数据结构课程设计做完了!本次课设,我还是挑了比较简单的题目(停车场模拟管理系统)来做,在这个题目里,只用到

7、了两个数据结构:顺序栈和链式队列。顺序栈模拟停车场,队列模拟便道。通过这次课设,确实对自己的水平提高了很多,至少再次熟悉了本学期所学的栈和队列的使用和应用。记得在刚开始的时候,看到课设指导书上面的题目,感觉自己什么都做不出来,所以迟迟不敢动手。当时间一天天逼近时,不能再拖了,就只能开工了。抱着试一试的心态,我参考着资料上面的指示,一步一步地做,居然做出了一个简单的系统;最后通过请教 XX 同学,对系统做了些完善(虽然还不是很完善) ,在此对他表示感谢!通过这次课设,我再次强烈的感受到:只要敢于尝试,很多我们自己认为做不到的事情都是可能做到的。勇于尝试,定有收获!附录 程序源码#include

8、#include #include #include #include #include #define maxnum 5第 6 页 共 20 页#define price 0.5 enum returninfook,error;typedef struct time/时间结构体int hour;int minute;TIME;typedef struct nodea/汽车结构体char number10;TIME reach;TIME leave;CARNODE;typedef struct nodeb/停车场CARNODE *stackmaxnum+1;int top;SEQSTACKCA

9、R;typedef struct car/车场中已停有的车链表结点CARNODE * data;struct car * next;QUEUENODE;class LINKQUEUECAR/链表,存放等待进入停车场的车public:QUEUENODE * head;QUEUENODE * rear;LINKQUEUECAR()head=rear=NULL;void stackpark(SEQSTACKCAR * s)int i;s-top=0;for(i=0;istacki=NULL;第 7 页 共 20 页int queuehall(LINKQUEUECAR * q)/if (q-head=

10、NULL)q-head=(QUEUENODE *)malloc(sizeof(QUEUENODE);q-head-next=NULL;q-rear=q-head;return ok;elsereturn error;void print(CARNODE * p,int room)/已选中的停车场中的车,确定其离开的时间,并显示计费int a1,a2,b1,b2;double Price;coutp-leave.hourp-leave.minute;while(p-leave.hourleave.hour24|p-leave.minuteleave.minute60)coutp-leave.ho

11、urp-leave.minute;coutnumber;coutreach.hourreach.hourreach.hourreach.minutereach.minutereach.minuteleave.hourleave.hourleave.hourleave.minuteleave.minuteleave.minutereach.hour;a2=p-reach.minute;b1=p-leave.hour;b2=p-leave.minute;Price=(b1-a1)*60+(b2-a2)*price;if(Pricep-number;if(enter-toptop+;couttopp

12、-reach.hourp-reach.minute;while(p-reach.hourreach.hour24|p-reach.minutereach.minute60)coutp-reach.hourp-reach.minute;enter-stackenter-top=p;coutdata=p;t-next=NULL;w-rear-next=t;w-rear=t;return ok;第 9 页 共 20 页void Leave(SEQSTACKCAR * enter,SEQSTACKCAR * temp,LINKQUEUECAR * w)/确定要离开的车所在的车道int room;CAR

13、NODE *p,* t;QUEUENODE * q;if (enter-top0)while (1)coutroom;if(room=1while (enter-toproom)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

14、-top;temp-stacktemp-top=NULL;temp-top-;print(p,room);couthead!=w-rear)t=q-data;enter-top+;coutnumbertopt-reach.hourt-reach.minute;while(t-reach.hourreach.hour24|t-reach.minutereach.minute60)coutt-reach.hourt-reach.minute;w-head-next=q-next;if(q=w-rear)w-rear=w-head;enter-stackenter-top=t;free(q);els

15、ecouttop,flag=0;QUEUENODE *p=NULL;coutnum;while(pos0)if(!strcmp(enter-stackpos-number,num)flag=1;break;pos-;if(flag)coutstackpos-reach.hourstackpos-reach.hourstackpos-reach.hourstackpos-reach.minutestackpos-reach.minute;elsecoutstackpos-reach.minute;coutstackpos-numberhead-next;while(p)if(!strcmp(p-

16、data-number,num)flag=1;break;p=p-next;if(flag)coutdata-numbertop0)couttop;i+)if(istacki-reach.hourstacki-reach.hourstacki-reach.hourstacki-reach.minutestacki-reach.minutestacki-reach.minutestacki-numberhead-next;if(w-head!=w-rear)coutdata-numbernext;couttag;while(tag3)couttag;switch(tag)case 1:syste

17、m(“cls“);list1(system(“pause“);break;case 2:system(“cls“);list2(system(“pause“);break;case 3:system(“cls“);flag=0;break;default:break;第 14 页 共 20 页int instruct()/说明rewind(stdin);coutchoice;rewind(stdin);while (choice5)coutchoice; switch(choice)case 1:system(“cls“);Arrive(system(“pause“);break;case 2

18、:system(“cls“);Leave(break;case 3:system(“cls“);list(enter,wait);break;case 4:system(“cls“);第 16 页 共 20 页instruct();system(“pause“);break;case 5:system(“cls“);searchcar(break;case 0:system(“cls“);cout“谢谢使用本系统!“endl;exit(0);default:break;return 0;参考文献:1 谭浩强. C 程序设计(第三版). 清华大学出版社.2 马春江,付勇智 ,孟繁军. 数据结构与程序构建. 清华大学出版社.3 滕国文. 数据结构课程设计. 清华大学出版社. 第 17 页 共 20 页指导教师意见

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报