"停车场车位管理程序设计报告"

需积分: 0 0 下载量 57 浏览量 更新于2023-12-15 收藏 30KB DOCX 举报
车位管理系统设计报告 学生姓名: 专业: 班级: 学号: 指导教师: 完成日期: 一、需求和规格说明 随着家庭购买汽车的增加,停车场车位紧张的问题越来越突出。为了解决这个问题,我们需要设计一个简单的车位管理程序。具体需求和规格如下: 1. 停车场有若干停车位(假定为3个),每个位置可以存放不同种类的汽车,包括卡车(Truck)、客车(Carriage)和小轿车(Car),但同一时刻一个位置只能存放0或1辆汽车。 2. 管理系统需要模拟实际车辆停车的情况,具体包括: ① 停车:当新来车辆时,如果有空位,按顺序为该车分配停车位,并自动记录开始停车的时间(用系统时间); ② 计费:当车辆开走时,输入车位编号,系统自动记录结束停车的时间(用系统时间),并根据停车时间计算出相应的停车费用; ③ 显示:显示停车场中各类车辆的信息; ④ 保存:保存停车场信息,以便下次系统启动时恢复; ⑤ 退出:退出程序。 3. 定义描述停车场的类Park,其中包括3个位置用于存放各类车辆。 4. 定义基类Automobile,至少包括纯虚函数Pay,用于显示车辆信息并交纳相应停车费。 5. 定义派生类Truck、Carriage和Car,这些车辆除了拥有车牌号外,Truck还拥有载重量(浮点数,单位:吨)。 二、系统设计概述 本车位管理系统通过面向对象的方法,设计了一套包含停车、计费、显示和保存等功能的程序。系统主要由Park类、Automobile基类和Truck、Carriage、Car派生类组成。 1. Park类:该类代表停车场,包含以下成员变量和成员函数: 成员变量: - int capacity: 停车场容量,即可停放车辆的总数量 - Automobile* parkingLot[]: 存储车辆的数组 成员函数: - Park(int capacity): 构造函数,初始化停车场容量为capacity - bool park(Automobile* automobile): 停车方法,将车辆停放到停车场中的合适位置,并记录开始停车时间 - bool leave(int position): 离开方法,将指定位置的车辆开走,并计算停车费用 - void display(): 显示停车场中各类车辆的信息 - void save(): 保存停车场信息到文件 - void load(): 从文件中加载停车场信息 2. Automobile基类:该类代表车辆,包含以下成员变量和成员函数: 成员变量: - string licensePlate: 车牌号 成员函数: - virtual void pay() = 0: 纯虚函数,用于显示车辆信息并交纳相应停车费用 3. Truck类、Carriage类和Car类:这些类是Automobile基类的派生类,分别表示卡车、客车和小轿车。每个类都继承了Automobile的licensePlate成员变量,并实现了pay()函数。 三、程序运行流程 1. 系统初始化: - 创建Park对象,并指定停车场容量 - 从文件中加载停车场信息(如果存在) 2. 主菜单循环: - 显示主菜单,包括停车、离开、显示、保存、退出等选项 - 根据用户选择执行相应功能 3. 停车功能: - 输入车辆类型、车牌号和其他特定信息 - 根据车辆类型创建具体的车辆对象 - 调用Park类的park()方法将车辆停放到停车场中 4. 离开功能: - 输入车位编号 - 调用Park类的leave()方法将指定位置的车辆开走,并计算停车费用 5. 显示功能: - 调用Park类的display()方法,显示停车场中各类车辆的信息 6. 保存功能: - 调用Park类的save()方法,将停车场信息保存到文件 7. 退出功能: - 退出程序并结束循环 四、系统测试与总结 1. 测试:通过使用不同类型的车辆进行停车、离开和显示等操作,验证系统功能的准确性和稳定性。 2. 总结:本车位管理系统能够有效地模拟实际车辆停车的情况,能够方便地记录车辆的停车时间并计算停车费用。同时,系统具备保存和加载停车场信息的功能,方便系统的使用和管理。系统的目标已经达到,并且在测试中表现良好。 总之,该车位管理系统能够满足停车场管理的基本需求,实现了车辆的停车、计费、显示、保存和退出等功能。通过系统的设计和实现,可以有效地解决停车位紧张的问题,提高停车场的利用率和管理效率。对于实际停车场管理工作具有一定的参考价值。