

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构课程设计停车场管理系统word专业资料一、课设目的.2二、问题描述 .2三、基本要求 .2四、详细设计.2(1).原理分析.2(2)功能模块.3(3)用户手册.5(4)流程图.6(5)测试用例.7(6)测试目的.7(7)测试要求.7. 7.13五、程序源码六、测试结果七、课设总结八、参考文献word专业资料.14.15word专业资料、课设目的(1) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(2)初步掌握软件开发过程中的问题分析,系统设计,程序编码,测试等基本方法和技能;(3)提高综合应用所学的理论知识和方法独立分析和解决问题的能力;(4)训练用系统的观点和软
2、件开发和一般规进行软件开发,培养软件工作者所应具有的科学的工作方法和作风。二、问题描述设停车场只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可 开入;当停车场某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其 它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试 为停车场编制按上述要求进行管理的模拟程序。
3、三、基本要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输 入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照及到达或离去的时刻,对每一组输入数据 进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场或便道上的停车位置;若是车离去,则输出汽车在停车场停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。四、详细设计(1)原理分析:栈是一种只能在一段进行输入和输出操作的线性表,表尾称为栈顶,表头称为栈底。栈的主要特点是“后进先出”,即后进栈的元素先处理,停车场的容量即为栈的存储空间。队列是限定仅能在表的一段
4、进行插入,在表的另一端进行删除的线性表。队列中可以插入的一段称为word专业资料队尾,可以删除的一端称为队首。队列的主要特点是“先进先出”。停车场管理系统是充分利用数据结构中栈和队列的思想实现的,用到两个堆栈,一个用来模拟停车场,另一个为临时栈,存储为离开停车场的车辆让道的其他车辆;一个队列结构,存储便道的车辆信息。typedef struct定义栈,表示停车场CarNode *base;停车场的堆栈底CarNode *top; 停车场的堆栈顶int stacksize;/停车场的容量Park;typedef struct定义队列,表示便道CarPtr front;便道的队列的队头CarPtr
5、 rear;/便道的队列的队尾int len gth;Shortcut;(2)功能模块:车辆到达:a、若栈不满,车辆进栈,停到停车场;b、若栈满,车辆入队,停到便道;word专业资料Status Arrival(Park & P,Shortcut &S)int nu mber,ar_time;printf(请输入车牌号:”);scan f(%d, &n umber);printf(进场的时刻:);scan f(%d,& ar_time);if(P.stacksize nu mber;Push(P,m);/便道中的车开入停车场free(w);printf(车牌号为
6、d的车已由便道进入停车场n,m.number);printf(停车费为%d,占用车位数为dn,money,P.stacksize);else printf(停车场不存在牌号为%d的车n, number);return OK;(3)用户手册:输出菜单选项;请选择(A,D,E):2如果选择A,即车辆到达:若栈不满,车辆进栈,停到停车场;若栈满,车辆入队,停到便道;3如果选择D,即车辆离开:计算时间及费用;如果队列不空且栈不满,队列上的车出队入栈;word专业资料4如果选择E,则退出程序。word专业资料(4)流程图:图一、函数关系调用图word专业资料图二、操作流程图(5)测试用例:A1,5),
7、A 2 , 10),D1,15), A3,20), A4,25), A 5,30), D2,35) , D4,40), E,0,0)。每一组输入数据包括三个数据项: 汽车到达”或离去”信息、汽车牌照及到达或离去的时刻,其中,A表示到达,D表示离去,E表示输入结束。(6)测试目的:测试菜单显示方法,到达方法和离开方法能否正确完成,时间和费用计算是否正确。(7)测试要求:测试用例要合理并足够,既要有正确用例,也要有错误用例,检验程序的正确性和健壮性。五、程序源码#i nclude#i nclude#in clude#define OK 1 /函数返回状态代码,宏定义#defi ne ERROR 0
8、#defi ne TRUE 1#defi ne FALSE 0#defi ne INFEASIBLE -1#defi ne OVERFLOW -2#defi ne SIZE 2停车场位置数#defi ne PRICE 2 typedef int Status;/栈,模拟停车场typedef struct Car1 II定义一个结构体来表示停车场中的车int number;/汽车车号int ar_time;/汽车到达时间CarNode;typedef struct/定义栈,表示停车场CarNode *base;/停车场的堆栈底CarNode *top; 停车场的堆栈顶word专业资料int st
9、acksize;/停车场的容量Park;typedef int Status;/队列,模拟便道typedef struct Car2 用另一个结构体来表示便道中停放的车int number;/汽车车号int ar_time;/汽车到达时间struct Car2 *n ext;*CarPtr;typedef struct定义队列,表示便道CarPtr front;/便道的队列的队头CarPtr rear;/便道的队列的队尾int len gth;Shortcut;Status Ini tStack(Park &P)P.base=(CarNode*)malloc(SIZE*sizeof(C
10、ar1);if(!P.base) exit(OVERFLOW);P.top=P.base;P.stacksize=0;return OK;Status Push(Park & P,CarNode e)*P.top+=e;+P.stacksize;return OK;Status Pop(Park & P,CarNode &e) if(P.top=P.base)/初始化停车场/车进入停车场,栈的输入操作/车离开停车场,栈的输岀操作printf(通道为空.);word专业资料printf(停车场为空.);else e=*-P.top;-P.stacksize;return
11、OK;Status Ini tQueue(Shortcut &S) S.fro nt=S.rear=(CarPtr)malloc(sizeof(Car2);if(!S.front|!S.rear) exit(OVERFLOW);S.fro nt- next=NULL;S.le ngth=O;return OK;Status En Queue(Shortcut &S,i nt nu mber,i nt ar_time) CarPtr p;p=(CarPtr)malloc(sizeof(Car2);if(!p) exit(OVERFLOW);p-nu mber =nu mber;p
12、-ar_time=ar_time;p- next=NULL;S.rear- n ext=p;S.rear=p;+S.le ngth;return OK;Status DeQueue(Shortcut & S,CarPtr &w)else if(S.le ngth = 0)II车离开便道,队列的输出操作/初始化便道II车进入便道,队列的输入操作printf(出场的时刻:”);word专业资料 w = S.front-n ext;S.fro nt- next=S.fr on t- next-next;-S.le ngth;return OK;Status Arrival(Park
13、& P,Shortcut &S)int nu mber,ar_time;printf(请输入车牌号:”);scan f(%d, &n umber);printf(进场的时刻:);scan f(%d,& ar_time);if(P.stacksize nu mber;Push(P,m);/便道中的车开入停车场free(w);printf(车牌号为%d的车已由便道进入停车场n,m.number);word专业资料else printf(停车场不存在牌号为d的车n, number);return OK;int mai n() int m=1;char flag;/选项
14、Park P,Q;Shortcut S;In itStack(P);In itStack(Q);Ini tQueue(S);while(m) pri ntf(n停车场管理程序n);prin tf(n ”);printf(请选择(A,D,E):);scan f(%c, &flag);switch(flag) caseA:casea: Arrival(P,S);break; /车进入停车场caseD:cased: Leave(P,Q,S);break; /车离开停车caseE:casee: m=0; break;default:prin tf(I nput error!n );break;
15、caseE:while (flag != n)sca nf(%c, &flag);word专业资料六、测试结果停车场管理粹序请选择A请输入车牌号:1进场的时刻拓 该车应停心第1号车追.停车场管理程序请选择(A, D, E): A请输入车牌号:2进场的时刻:10该车应停在第2号车道.车场管珅稈序请选择(A, DfE) : D请输入车牌号;1出场的时刻:15停车费为占用车位数为1停车场管理程宇请选择(A, D, E) : A请输入车牌号:3进场的时刻煜0该车应停在第2号车道”word专业资料停车场管理起序请选择(A, DfE) ; A诗输入车牌号:4进场的时刻:停车场己满*请暂时停在便道的
16、第1个付骨.停车场管理程环请选择(A,D,E): A请输入车牌号:5进场的时刻;30停年场己満,i青苜时停在便道的第2个位置.停车场管理稈中请选择(AD,E): D请输入车牌号:2岀场的时刻;35车牌号为4的车己由便道进入停车场停车费为50,占用车位数为2停车场管理程序请选择(AtDtE) : D请输入车牌号壬4出场的时刻:40车牌号为3的车己由便道进入停车场停车费为16占用车位数为2停车场管理稈序请选择(A,D,E): EProcess exited after 110 seconds with return value 0请按任意键继续七、课设总结通过这次课程设计,我充分理解了用栈和队列实现模拟停车场的基本原理,探究了栈的顺序存储结构和 队列的链式存储结构的定义和算法描述,同时也学会了编写停车场问题的程序。虽然此次的程序比较简单, 没有加入一些word专业资料更完善的功能,但总体上来说比较完整,实现了基础功能。在实践的过程中,我了解到了自己的一些不足,因为很多书
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小说阅读(高中生)
- 竞聘演讲稿精彩开头
- 应聘个人简历英语
- 《深度学习项目案例开发》课件-任务二:使用卷积神经网络完成猫狗识别
- 二零二五年度北京市房地产销售顾问劳动合同标准模板
- 中医护理学(第5版)课件 第九章针灸疗法与护理4经外奇穴
- 三农产品品牌传播策略与实践手册
- 高效办公空间资源调配方案表格模板(财务部)
- 项目推广演讲致辞和宣传文案
- 云智停车智能停车场管理系统
- 江苏省镇江市2024-2025学年高三下学期开学检测语文试题 含解析
- 2025年生物制药市场分析:生物制药行业规模以上企业数量超过1148家
- 2025年咸阳职业技术学院单招职业技能测试题库完整版
- 公路养护服务方案(技术方案)
- 早泄诊断及治疗
- 2025年不离婚互不干涉协议模板
- 2024年江西司法警官职业学院高职单招语文历年参考题库含答案解析
- 【数学】整式的除法课件-2024-2025学年北师大版数学七年级下册
- 2025年云南云天化股份有限公司招聘笔试参考题库含答案解析
- 招标代理机构选取招标代理工作计划及流程
- 2025年全国法制宣传日普法知识竞赛题库及答案(共200题)
评论
0/150
提交评论