1、1重庆科技学院课程设计报告院(系):_电气与信息工程学院_ 专业班级: 计科普 0902 学生姓名: 杨宝 学 号: 2009441658 设计地点(单位)_ _计算机自主学习中心 I306 _ _ _ _设计题目:_停车场管理系统的设计_ _完成日期: 年 月 日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 2重庆科技学院课程设计任务书设计题目:停车场管理系统的设计 学生姓名 杨宝课程名称 数据结构课程设计 专业班级 计科 2009-02地 点 计算机基础自主学习中心 起止时间 2011.01.4-2011.01.14设计内容及要求问题描述:设停车场是一
2、个可停放 n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在停车场的最北端),若停车场内已停满 n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。基本要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每
3、一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。设计参数设 n=2,输入数据为:(A,1,5),(A,2,10),(D,1,15),(A,3,20),(A,4,25),(A5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(arrival);D表示离去(departure);E表示输出结束(end)。3进度
4、要求2011.1.4 星期二(上午教师指导,下午学生独立完成) 、完成任务的讲解、并接受课程设计任务,选定课程设计的题目2011.1.5 星期三(上午教师指导,下午学生独立完成) 、了解任务的算法、并画出算法的程序流程图2011.1.6 星期四(上午教师指导,下午学生独立完成) 、对任务的关键技术进行验证、并确定解决办法2011.1.7 星期五(上午教师指导,下午学生独立完成) 、编制任务的程序2011.1.10 星期一(上午教师指导,下午学生独立完成) 、编制任务的程序2011.1.11 星期二(上午教师指导,下午学生独立完成) 、对程序的调试,并试运行。2011.1.12 星期三(上午教师
5、指导,下午学生独立完成) 、整理课程设计过程中的各个参数、并进行总结,提出改进意见2011.1.13 星期四(上午教师指导,下午学生独立完成) 、编写课程设计报告、准备答辨2011.1.14 星期五(上午答辨) 、进行答辨验收工作。参考资料1严蔚敏 吴伟民 著, 数据结构(C 语言版),清华大学出版社,2007.42Richard F.Gilberg Behrouz A.Forouzan, Data Structures A Pseudocode Approach with C,second edition, Thomson, 2005.13. 李春葆 著,数据结构教程,清华大学出版社,200
6、5.1其它说明 .本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:向毅、陈刘奎、熊茜 2010年 12 月 20日4摘要该程序要是解决单向停车场停车的问题。先停的车停在距出口比较远的地方,最后停的一辆车在距出口最近的地方,当停在里面的车要离开停车时,在它之后停的车都将要退出停车场,让它出来,然后再依次重新进入。关键字:堆栈 数组 停车管理管理系统5目录一 软件需求分析说明 .11 软件的功能 .11.1 设置停车的容量 .12 界面要求 .1
7、3 数据库要求 .1二 系统分析与设计 .21 输入输出界面 .21.1 设置容量: .21.2 选择命令 .21.4 汽车离开停车场时 .31.5 过道里带停的车 .31.6 退出系统 .42 数据结构的设计 .42.1 汽车结构体的设计 .42.2 停车场的设计 .42.3 汽车过道的设计 .53 程序流程图 .5三 软件测试 .7四 软件使用说明书 .8致谢 .9参考文献 .10附录 .111 1一需求分析1 设置停车的容量在运行程序后的第一步就是设置停车场容量的大小,设置好后保存下来。在汽车进场停车时,程序会自动返还停车内是否有车位的信息,车主即可通过这个信息知道当前所在的停车场还能否
8、停车。2 界面要求程序需要给用户提供的信息,所以应该尽可能的简单,让观看者知道整个停车场当前的所有情况。3 数据库要求该程序是一个停车场管理系统,所以需要的数据比较简单。但程序正常运行时,关于停车的时间是由系统自动的获取,在汽车离开时,系统又会根据当前系统时间算出该车停留的总时间。关于汽车的信息,主要是量的问题,考虑到全部由键盘输入的话,数据量会比较大,所以将汽车本身的信息存在文件里,在程序运行时,由用户选择命令。2 2二 系统分析与设计1 输入输出界面1.1 设置容量:该界面是在程序运行后的第一个界面,正确的操作为输入一个大于零的整数。该整数就是停车场的最大停车数,当停车场内停的车的数量超过
9、最大容量,系统将自动提醒用户该停车场已经停满了。1.2 命令选择程序运行后,用户要在当前界面做出选择,停车选择“A ”选项,提车选“D”选项, 退出系统选“O” 选型。1.3 显示停车场内的车当用户停车后, 。系统会自动记录该车所在的位置,同时将停车场内已停车的信息显示出来,同时也将显示在过道里的车的信息。1.4 汽车离开停车场时当汽车从停车场内出来时,需要将该车的信息显示出来,方便用户确认以及缴纳相关的费用。2 数据结构的设计2.1 汽车结构体的设计typedef structint CarType;char CarNum 11;int location;double duration_be
10、gin;double duration_end;char CarsHost24; Cars;3 3汽车的信息包括汽车类型(CarType) ,不同类型的车收费额度不同;车牌(CarNum 11,每辆车的车牌是唯一的,这个信息必须存储;车主(CarsHost24 ) ,要记录下停车时该车的驾驶人是谁,以及两个关于时间的量 duration_begin 和duration_end,这两个量分别用于存储该车停和离开时的时间,系统通过这两个时间算出需要交纳的费用。2.2 停车场的设计代码如下:typedef structint count; int LagNunOfPar;STACK_NODE* to
11、p; STACK;该停车场有唯一的进出口,而且只能单向顺序通,所以行采用堆栈结构模拟停车场。 停车场的设计内容包括车辆计数(count) ,最大停车数(LagNunOfPar)以及一个指向汽车信息的指针(STACK_NODE* top) ,用于记录汽车的信息。2.3 停车场外过道的设计代码如下:typedef structQUEUE_NODE* front, * rear;int count; QUEUE;过道同样是单向通行,但有指定的入口和出口,并按进入的先后顺寻出来,所以在程序设计中采用队列模拟过道。过道的信息比较简单,两个指针(front)和(rear) ,全是指向汽车信息的指针,分别指
12、向过道中第一辆汽车和最后一辆,4 4还有过道的车辆计数(count) ,方便管理。3 主程序结构图4开始设置容量设置待停的车停车 离开 退出系统选择命令结束图 2.8 主程序结构图程序从“开始”处开始运行,首先需要设置一下最大容量,其次程序自动设置一部分待停的车在过道里,用户即可选择命令进行操作,。停车,取车还是退出系统5 5三 软件测试1 设计停车场最大容量图 3.1 设子最大停车数停车场内所能容纳的车辆数是有限的,因此,在程序运行的最开始需要对此进行设置,以便在以后停车时,判断是否还有车位。2 停车图 3.2 选择停车命令选择该命令后,系统将自动排在过道中的第一辆汽车停入停车场内,并将停车场内停车的情况显示出来,如图 3.3图 3.3 停车情况3 取车