数据结构课程设计停车场模拟系统.docx

上传人:自*** 文档编号:126259864 上传时间:2020-03-23 格式:DOCX 页数:8 大小:47.71KB
返回 下载 相关 举报
数据结构课程设计停车场模拟系统.docx_第1页
第1页 / 共8页
数据结构课程设计停车场模拟系统.docx_第2页
第2页 / 共8页
数据结构课程设计停车场模拟系统.docx_第3页
第3页 / 共8页
数据结构课程设计停车场模拟系统.docx_第4页
第4页 / 共8页
数据结构课程设计停车场模拟系统.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据结构课程设计停车场模拟系统.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计停车场模拟系统.docx(8页珍藏版)》请在金锄头文库上搜索。

1、题 目 停车场模拟管理程序的设计与实现停车场模拟管理程序的设计与实现一、简介1设计目的理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。2问题描述设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序。二、数据结构的设计

2、(1)为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码和汽车当前的状态。(2)为了便于停车场的管理,要为每个车位分配一个固定的编号。(3)当停车场的停车位上都已停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的先后顺序顺次序放在便道上,为便道上的每个位置分配一个固定的编号。当有车从停车位上离开后,便道上的第一辆汽车就立即进入停车位上的某个车位。(4)当某辆车离开停车场的时候,比他后进停车位的车要为他让路,而且当他开走之后让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为完成这项功能,定义一个结构体。三、功能(函数)设计:本程序从总体上

3、分为四个功能模块,分别为:(1)程序功能介绍和操作提示模块(2)汽车进入停车位的管理模块(3)汽车离开停车位的管理模块(4)查看停车场状态的查询模块四、界面设计:5、 程序设计:主函数:显示主操作界面和调用其他函数车辆进入函数:负责处理车辆的进入浏览函数:查看此时停车场和等候区的车辆的相关信息查询函数:查询停车场某位置的车辆信息车辆开出函数:负责处理某位置车辆开出时,其后车辆的移动状况以及等候区的车辆进入停车场结束函数:置空此停车场以及等候区开始程序流程图:输入相关函数指令否是结束是否退出函数编写代码的过程中遇到的问题对于停车场和的等候区是否要分两个线性表来处理若要分两个线性表进行处理则处理车

4、辆开出和进入时较为麻烦,现用一个线性表进行处理(只需在结构体中加入一个变量来指明车辆的所处位置即可)6、 运行与测试:1、测试的数据及其结果:(1)连续有7辆汽车到来,牌照号分别为CF001、CF002、CF003、CF004、CF005、CF006、CF007,前5辆车应该进入停车位15车位,第6、7辆车应停入便道的1、2位置上。(2)上面(1)中的情况发生后,让牌照CF003的汽车从停车场开走,应显示CF005、CF004的让路动作和CF006从便道到停车位的动作。(3)随时检查停车位和便道的状态,不应该出现有空位而便道上还有车的情况。(4)其它正常操作的一般情况。4.1重复进行7次添加函

5、数依次输入七辆车的位置号码和车牌号码,然后进行一次浏览函数结果如下4.2承接上述操作(不进行退出函数)运行一次删除函数输入所删除的位置号码3运行结果如下4.3运行一次浏览函数查看剩余车的状态信息保证程序的正确性运行结果如下4.4任意开出停车位上的多部车辆保证所有车都在停车位,等候区无车辆停放4.5多次运行指令函数保证正确性(如表空状态,查询不存在,删除位置不存在的提示错误)2、运行与测试期间遇到的问题及其解决办法。1.系统进入死循环状态重复输出操作界面错误原因:车牌号的类型错误解决办法:在车辆结构体中定义一个字符串指针指向车牌号2.无法对等候区的编码进行从1开始计数解决办法:对对应位置编号(停

6、车场内)进行对(停车场最大停车辆+1)进行取余运算,对对应位置编号(等候区)进行对(停车场最大停车辆+1)进行取余运算后+1。七、设计后的思考:经过一个星期的课程设计,过程曲折可谓一语难尽。整天都是对着电脑,不然就是翻阅资料。在此期间我失落过,也曾一度热情高涨。点点滴滴令我回味无长。这次课程设计使我体会到只有做到细心耐心,恒心才能做好事情。这次的课程设计,加强了我们动手、思考和解决问题的能力。巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。通过实际编译系统的分析设计、编程调试,掌握应

7、用软件的分析方法和工程设计方法。通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。而且做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有些问题就不是很能理解,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的程序源码:#include#include#include#define length sizeof(struct lianbiao)struct carint number;/车停靠在停车场的位置编号char *s

8、tate;/区分是在停车场还是等候区char chepai5;/车的车牌号码,默认5字符;struct lianbiaostruct car data;/车的信息资料struct lianbiao *next;int num1;/被查询的位置编号int num2;/开出的车辆的位置编号int m;/主界面的功能选择int count=0;/停车场内的车辆数量bool z=true;/主界面的判断条件 void main()struct lianbiao *head;head=(struct lianbiao*)malloc(length);/申请结点head-next=NULL;/置空stru

9、ct lianbiao *add(struct lianbiao *head);/声明添加方法void scan(struct lianbiao *head);/声明浏览方法void cha(struct lianbiao *head,int num1);/声明查询方法struct lianbiao *del(struct lianbiao *head,int num2);/声明删除方法while(z)/主界面printf(输入功能选项n);printf(添加。1n);printf(查询。2n);printf(浏览。3n);printf(删除。4n);printf(结束。5n);scanf(%

10、d,&m);switch(m)case 1:head=add(head);break;/调用添加方法case 2:printf(输入查询位置编号);scanf(%d,&num1);cha(head,num1); break;/调用查询方法case 3: scan(head);break;/调用扫描方法case 4:printf(输入删除位置编号);scanf(%d,&num2);head=del(head,num2);break;/调用删除方法case 5: z=false;head-next=NULL;break;/跳出小程序struct lianbiao *add(struct lianb

11、iao *head)/车辆进入时调用的方法struct lianbiao *p2;p2=(struct lianbiao*)malloc(length);/申请结点if(head-next=NULL)/此时停车场为空printf(输入车辆信息位置编号 车牌n);scanf(%d%s,&p2-data.number,&p2-data.chepai);/获取车的信息count+; p2-data.state=停车场;p2-next=NULL; head-next=p2; return head;else /停车场不空printf(输入车辆信息位置编号 车牌n);scanf(%d%s,&p2-dat

12、a.number,&p2-data.chepai);/获取车的信息count+; if(countdata.state=停车场; else p2-data.state=等候区;p2-next=head-next;head-next=p2;return head;void scan(struct lianbiao *head)/浏览停车场的方法struct lianbiao *p1;p1=head-next;if(!p1)printf(空的停车场);/停车场为空的情况elseprintf(%sn,位置编号 车牌号 停车位置);while(p1)if(p1-data.number5)/车辆在等候区

13、printf(%dtt%st%sn,(p1-data.number)%6+1,p1-data.chepai,p1-data.state);else if(p1-data.numberdata.number)%6,p1-data.chepai,p1-data.state);p1=p1-next;void cha(struct lianbiao *head,int num1)/查询停车区某位置的车辆信息struct lianbiao *p1=head-next;while(p1)/停车场不空if(p1-data.number=num1&p1-data.number5)/车辆位于等候区printf(%sn,位置编号 车牌号 停车位置);printf(%dtt%st%sn,(p1-data.number)%6+1,p1-data.chepai,p1-data.state);break;else if (p1-data.number=num1&p1-data.numberdata.number)%6,p1-data.chepai,p1-data.state);break;else p1=p1-next;if(p1=NULL)printf(查询没有结果);/空停车场或查找不存在struct lianbiao *d

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号