停车场管理系统_第1页
停车场管理系统_第2页
停车场管理系统_第3页
停车场管理系统_第4页
停车场管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

滁滁 州州 学学 院院 课课程程设设计计报报告告 课程名称:课程名称: 数据结构课程设计报告 设计题目设计题目: 停车场管理问题 系系 别:别: 计算机科学与技术系 专专 业:业: 计算机科学与技术专业 组组 别:别: 二 起止日期起止日期: 2011 年 5 月 20 日2011 年 6 月 20 日 指导教师指导教师: 杨斌 计算机科学与技术系二计算机科学与技术系二一一年制一一年制 课程设计题目停车场管理问题 组长康金山学号2010211097班级计科 101 系别 计算机科学与技 术系 专业计算机科学与技术专业 组员 吉国燕、任祥、徐晟凯 指导教师杨斌 课程设计目的 深入理解数据结构的基本理论,掌握数据存储结构的设计方法, 掌握数据结构基于的各种操作的实现方法 课程设计所需环境Microsoft Visual C+ 6.0 课程设计任务要求 用数据结构的基本理论和数据存储的设计方法完成一个实际应用 问题,在完成程序设计的同时能够写出比较规范的设计报告 课程设计工作进度计划 序号起止日期工 作 内 容分工情况 15.20-5.23整体思路编写以及修改代 码编写。 康金山 25.23-5.26主函数的编写任祥 35.23-5.26数据的保存徐晟凯 45.23-5.26数据的计算及输出吉国燕 指导教师签字: 年 月 日 教研室审核意见: 教研室主任签字: 年 月 日 目录 引引言言.1 需需求求分分析析.1 2.1 问题描述.1 2.2 设计思路.1 2.3 运行环境及开发工具.2 概概要要设设计计.2 3.1 流程图.2 3.2 主要数据结构.2 3.3 函数及其实现的功能.3 详详细细设设计计.4 4.1 程序代码.4 调调试试与与操操作作说说明明.9 5.1 操作说明.9 课课程程设设计计总总结结与与体体会会.10 致致谢谢.11 参参考考文文献献.11 课程设计的主要内容课程设计的主要内容 引言引言 数据结构主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨 论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行 简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专业 的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工智能等的重要基础, 广泛的应用于信息学、系统工程等各种领域。 需求分析需求分析 2.1 问题描述问题描述 题目、停车场管理问题 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到 达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场 的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待, 一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要 开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些 车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长 短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍 然保持在便道上等待的车辆的次序。编制一个程序模拟该停车场的管理。 实现要求 要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停 车场时应交纳的费用和它在停车场内停留的时间。 实现提示 汽车的模拟输入信息格式可以是:(到达离去,汽车牌照号码,到达离去 的时刻)。例如,(A,1,5)表示1号牌照车在5这个时刻到达,而(D,5,20)表示5号 牌照车在20这个时刻离去。整个程序可以在输入信息为(E,0,0)时结束。本题可用栈和 队列来实现。 2.2 设计思路设计思路 构造三个主要的结构体分别保存不同的数据,第一个用于保存第一个用于保存车辆停在停车场的车辆, 1 第二个用于保存停在便道的车辆,第三用保存要离开的车辆,然后设计程序首先要把输入的 数 据分别保存在相应的结构体里,例如当停车场里没有停满时车辆要停在停车场,因此该车辆 的 相应数据要存第一个结构体里,相反要是满了就要保存在第二个结构体里,要离开的车辆要 保 存在第三结构体里,同时也用到队列栈,当数据输入完整后运行程序,输出要求输出的数据。 2 最后要对车辆位置进 行调整就可以了。 2.3 运行环境及开发工具运行环境及开发工具 运行环境 Microsoft Visual C+ 6.0;开发工具 C/C+ 概要设计概要设计 3.1 流程图流程图 (1)设计流程图)设计流程图 3.2 主要数据结构主要数据结构 typedef struct /*用于保存每辆车的信息用于保存每辆车的信息*/ char ch; -1 -1 -1 开始 输入 输入数据 i=-1 i=-1 返回主程序 返回主程序 返回主程序 主菜单 输入记录保存进车出车修改退出 int chehao; int time; node; typedef struct /*用保存停在停车场的车辆用保存停在停车场的车辆*/ int lengh; /*记录车辆的个数记录车辆的个数*/ node numn; queue; typedef struct /*用于保存每辆车的信息用于保存每辆车的信息*/ char ch1; int chepai; int time1; node1; typedef struct /*保存停在便道的车辆保存停在便道的车辆*/ int front,reare; node1 numb20; squeue; typedef struct /*用于保存每辆车的信息用于保存每辆车的信息*/ char ch2; int cheph; int time; node2; typedef struct /*保存要离开的车辆保存要离开的车辆*/ int top; ode2 number30; stack1; 3.3 函数及其实现的功能函数及其实现的功能 void create(queue 对离开的车辆进行删除在相应结构体的信息以及将可能停在便道上的车辆的信 息移到停车场的结构体里相应位置。 详细设计详细设计 4.1 程序代码程序代码 #includeiostream.h #define n 10 typedef struct char ch; int chehao; int time; node; typedef struct int lengh; node numn; queue; typedef struct char ch1; int chepai; int time1; node1; typedef struct int front,reare; node1 numb20; squeue; typedef struct char ch2; int cheph; int time; node2; typedef struct int top; node2 number30; stack1; void main() queue chechang; squeue biandao; stack1 departure; void create(queue void xugai(queue create(chechang,biandao,departure); xugai(chechang,biandao,departure); void create(queue int chepai; int time; int i,j,k; chechang.lengh=0; biandao.front=-1; biandao.reare=-1; departure.top=-1; cout请输入数据请输入数据 例如例如 A 1 4; coutchchepaitime; while(ch!=E|chepai!=0|time!=0) if(ch=A biandao.numbbiandao.reare.ch1=ch; biandao.numbbiandao.reare.chepai=chepai; biandao.numbbiandao.reare.time1=time; else departure.top+; departure.numberdeparture.top.ch2=ch; departure.numberdeparture.top.cheph=chepai; departure.numberdeparture.top.time=time; cinchchepaitime; cout停在停车场的车停在停车场的车 车牌号车牌号 停车时刻停车时刻endl; for(i=0;ichechang.lengh;i+) coutchechang.numi.chehao chechang.numi.time; cout ; coutendl; cout停在便道的车停在便道的车 车牌号车牌号 停车时刻停车时刻endl; for(i=0;ibiandao.reare+1;i+) coutbiandao.numbi.chepai biandao.numbi.time1; cout ; coutendl; cout车牌号车牌号 停车费用停车费用 停车时间停车时间endl; coutendl; for(i=0;i=departure.top;i+) for(j=0;jchechang.lengh;j+) if(departure.numberi.cheph=chechang.numj.chehao) k=2*(departure.numberi.time-chechang.numj.time); coutchechang.numj.chehao; cout ; coutk; cout ; coutk/2; coutendl; for(i=0;i=departure.top;i+) for(j=0;j=biandao.reare;j+) if(departure.numberi.cheph=biandao.numbj.chepai) k=departure.numberi.time-biandao.numbj.time1; coutbiandao.numbj.chepai; cout ; cout0; cout ; coutk; coutendl; void xugai(queue for(i=0;i=departure.top;i+) for(j=0;jbiandao.reare;j+) if(departure.numberi.cheph=biandao.numbj.chepai) while(jbiandao.reare-1) biandao.numbj=biandao.numbj+1; j+; biandao.reare-; for(i=0;i=departure.top;i+) for(j=0;jchechang.lengh;j+) if(departure.numberi.cheph=chechang.numj.chehao) while(jchechang.lengh-1) chechang.numj=chechang.numj+1; j+; if(biandao.front=biandao.reare) chechang.lengh-; else k=chechang.lengh-1; chechang.numk.ch=biandao.numbbiandao.front+1.ch1; chechang.numk.chehao=biandao.numbbiandao.front+1.chepai; chechang.numk.time=departure.numberi.time; 调试与操作说明调试与操作说明 5.1 操作说明操作说明 输入相应的数据例如(输入相应的数据例如(A 1 4)代表进车辆,)代表进车辆, (D 3 4)代表要离开的车辆,然后以)代表要离开的车辆,然后以 E 0 0, 为结束条件。为结束条件。 A 1 2 A 2 3 A 4 5 A 3 6 D 1 9 E 0 0 5.2 运行结果运行结果 停在停车场的车停在停车场的车 车牌号车牌号 停车时刻停车时刻 1 2;2 3;4 5;3 6; 车牌号车牌号 停车费用停车费用 停车时间停车时间 ( 2 )运行结果图)运行结果图 1 14 7 A A 1 1 2 2 A A 2 2 3 3 A A 4 4 5 5 A A 3 3 6 6 D D 1 1 9 9 E E 0 0 0 0 5.25.2 运行结果运行结果 停在停车场的车停在停车场的车 车牌号车牌号 停车时刻停车时刻 1 1 2 2;2 2 3 3;4 4 5 5;3 3 6 6; 车牌号车牌号 停车费用停车费用 停车时间停车时间 1 1 1414 7 7 PressPress angang keykey toto continuecontinue Press ang key to continue 课程设计总结与体会课程设计总结与体会 1)编程的核心是算法结构,数据结构又包括逻辑结构和物理结构,编程中要时刻注意 这些问题。 2)调试过程远远比编程过程繁琐,需要足够的耐心对一个个错误进行修改直至完全正确。并 且调试过程也需要一定的技巧,能够选取适当的实验数据对程序进行验证,找到出错的 地方以进行修正。 我这次的课程设计题目是关于停车场问题的,总体来说,这个题目还是比较简单的, 主要是运用了栈和队列的一些知识和操作。也没有用到其他太多的数据结构知识。程序基 本上还是能够运行,结果也正确,能够实现那些基本的车辆到达、离开、收费、遍历显示 等主要功能。 但我觉得这个程序还有很多小的地方是可以完善的,比如:在输入登记车辆到达 时间的时候,没有相关的小时、分钟数字的限制范围(小时 023,分钟 060) ;这 就使程序不那么健壮了,还有,在计算收费时如果离开时间是到了第二天了,这样就可能 会导致收费时负的或减少很多。就是说,还应该算天数,要不就要规定只能当天停,当天 开走。我改了几次改不好,又鉴于程序要求中也没有提及,所以我也就没去该了。只要能 实现主

温馨提示

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

评论

0/150

提交评论