C语言课程设计报告停车场管理系统(1)

上传人:206****923 文档编号:90107467 上传时间:2019-06-08 格式:DOC 页数:22 大小:282KB
返回 下载 相关 举报
C语言课程设计报告停车场管理系统(1)_第1页
第1页 / 共22页
C语言课程设计报告停车场管理系统(1)_第2页
第2页 / 共22页
C语言课程设计报告停车场管理系统(1)_第3页
第3页 / 共22页
C语言课程设计报告停车场管理系统(1)_第4页
第4页 / 共22页
C语言课程设计报告停车场管理系统(1)_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《C语言课程设计报告停车场管理系统(1)》由会员分享,可在线阅读,更多相关《C语言课程设计报告停车场管理系统(1)(22页珍藏版)》请在金锄头文库上搜索。

1、C课程设计报告C语言课程设计报告停车场管理1班 级: 192102学 号: 20101003907姓 名: 聂 彪指导教师: 张冬梅时 间: 2011年6月7日目录一、 题目及要求二、 题目及要求三、 题目及要求四、 题目分析五、 数据结构说明六、 各函数算法分析七、 程序测试八、 课程设计感悟与收获九、 源代码一、 题目及要求要求设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道

2、上的第一辆国就进入停车场。停车场内如有某辆车要走,在它之后进来的车都必须退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且其他在便道上等待的车辆的次序不变。编制一程序模拟停车场管理。提示汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去时刻)。例如:(A,1,5)表示1号牌照车在5这个时刻到达,而(D,5,20)表示5号牌照车在20这个时刻离去,整个程序可以在输入信息为(E,0,0)时结束。基本要求:要求程序输出每辆车到达后的停车位

3、置(停车场或便道上),以及某辆车离开停车场时应交的费用和它在停车场内停留的时间。根据题目要求,停车场可以用一个长度为n的堆栈来模拟。由于停车场内如有某辆车要开走,在它之后进来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。所以可以设两个堆栈。二、题目分析由于停车场是一个狭窄通道,而且只有一个大门可供汽车进出,问题要求汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列。由此很容易联想到用结构体数组来存储车库信息。又每个汽车的车牌号都不一样,这样一来就可以根据车牌号准确找到汽车位置。当停车场内某辆车要离开时,在他之后进入的汽车必须再按原次序进入车库。这是一个一退

4、一进的过程,而且让道的汽车必须保持原有的先后顺序,因此可再设计一个结构体数组,用来暂时存放为出站汽车暂时让道的汽车车牌号。当车库满后,继续进来的汽车需要停放在车库旁边的便道上等候,若车库满后,继续进来的汽车需要停放在车库旁边的便道上等候,若车有汽车开走,这完全是一个先进先出模型,因此可以设计一个队列来模拟便道,队列中的数据元素仍然设计成汽车的车牌号。另外,停车场是根据汽车在停车场内停放的总长来收费的,在便道上的时间不计费,因此必须记录车辆进入车库时的时间,车辆离开车库时的时间不需要记录,当从终端输入时可直接使用。另外,题目提示中的表示方法(A,1,5)表示1号牌照车在5这个时刻到达有两点不好;

5、一、对用户友好程度不高,用起来并不方便;二、不接近实际情况,生活中表示时间的格式为“-:-”,完全可以建立一个时间结点来实现。因此,实际编程中将对这一方面予以优化。三、数据结构说明根据题意,停车场中的空间分为车库和便道。这里用结构体来模拟车库和便道,按照从端读入数据序进行管理。模拟车库和模拟便道中分别用结构体数组和链表来存储车辆信息。模拟车库和模拟便道的数据结构如下表1和表2所示:Moni_cheku结构体CarNode *stackMAX+1结构体数组char num10Time reach结构体int hourint minTime leave结构体int hourint minint t

6、op表1 模拟车库的数据结构Moni_biandao结构体QueueNode*head链表CarNode *data数组char num 10Time reach结构体int hourint minTime leave结构体int hourint minStruct car *nextQueueNode *rear链表CarNode *data数组char num 10Time reach结构体int hourint minTime leave结构体int hourint minStruct car *next表2 模拟便道的数据结构用C语言实现这一部分为:typedef struct tim

7、e int hour; int min; Time; /*时间结点*/typedef struct node char num10; Time reach; Time leave; CarNode;/*车辆信息结点*/ typedef struct NODE CarNode *stackMAX+1; int top; Moni_Cheku; typedef struct car CarNode *data; struct car *next; QueueNode; typedef struct Node QueueNode *head; QueueNode *rear; Moni_Bianda

8、o;四、 各函数算法分析(1)主函数void main() Moni_Cheku Enter,Temp; Moni_Biandao Wait; int ch; InitStack(&Enter); /*初始化车站*/ InitStack(&Temp); /*初始化让路的临时链表*/ InitQueue(&Wait); /*初始化便道*/ printf(n); printf( _欢迎进入停车场管理系统1!_n); printf(n); printf(提示! (1).该车库的最大容量为:%d;n ,MAX); printf( (2).该车库的收费标准为:%4.2f元/(辆*分钟).n,price)

9、; while(1) printf(*主菜单*n); printf(1.车辆到达); printf( 2.车辆离开); printf( 3.列表显示); printf( 4.退出系统n); printf(*n); printf(请选择(1-4): bb); while(1) scanf(%d,&ch); if(ch=1&chnum); if(Enter-toptop+; printf(该车在车库位置%d.n,Enter-top); printf(请输入到达时间(*:*):); scanf(%d:%d,&(p-reach.hour),&(p-reach.min); Enter-stackEnte

10、r-top=p; return(1); else /*车库已满,车进便道*/ printf(该车须在便道等待!n); t=(QueueNode *)malloc(sizeof(QueueNode); t-data=p; t-next=NULL; W-rear-next=t; W-rear=t; return(1); 车辆到达输入车牌号车库满否否是车进车库车进便道(3)车辆离开函数void Leave(Moni_Cheku *Enter,Moni_Cheku *Temp,Moni_Biandao *W) /*车辆离开*/ int i, room; CarNode *p,*t; QueueNode *q; /*判断车库内是否有车*/ if(Enter-top0) /*有车*/ printf(请输入车在车库的位置(1-%d):,Enter-top);/*输入车辆离开的信息*/while(1) scanf(%d,&room); if(room=1&roomtop) break; else printf(错误!请重选:); while(Enter-toproom) /*车辆离开*/ Temp-top+; Temp-

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

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

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