停车场
设计一个停车场
让我们为多层停车场做一个面向对象的设计
我们将涉及以下内容
1.系统需求
2.用例图
3.类图
4.活动图
5.代码
停车场是专门为停放车辆而开辟的空地。在大多数国家,汽车是主要的交通工具,停车场是每个城市和郊区的一个特点。购物中心、体育场馆、大型教堂和类似的场所通常都有大面积的停车场。
系统需求
在设计停车场时,我们将重点考虑以下一系列要求:
1.停车场应该有多个楼层供顾客停车。
2.停车场应该有多个进出点。
3.顾客可以在入口点领取停车罚单,并在出口点支付停车费。
4.顾客可以在自动出口面板或停车服务人员处付款。
5.顾客可以通过现金和信用卡支付。
6. 客户还应能够在每层的客户信息门户支付停车费。如果客户已经在信息门户网站付款,他们就不必在出口付款。
7. 该系统不应允许超过停车场最大容量的车辆。如果停车位已满,系统应能在入口面板和地面层的停车显示板上显示信息。
8. 每个停车场都会有很多停车位。该系统应该支持小型、大型、残疾人、摩托车等多种类型的停车位。
9. 停车场应设置电动汽车专用停车位。这些点位应该有一个电动面板,消费者可以通过它来付款和充电。
10. 该系统应该支持不同类型的车辆的停车,如汽车,卡车,面包车,摩托车等。
11.每个泊车楼层应有一个展板,显示每种泊车类型的任何免费泊车位。
12. 该系统应该支持每小时停车收费模式。例如,用户需要为第一个小时支付4美元,为第二个和第三个小时支付3.5美元,为剩下的所有小时支付2.5美元。
用例图
以下是我们系统中的主要参与者:
管理员:主要负责停车场楼层、停车位、出入口面板的添加和修改、停车人员的添加和移除等工作。
顾客:所有的顾客都可以得到一张停车罚单并支付停车费。
泊车员:泊车员可代办客户所有活动,并可领取现金购票。
系统:在不同的信息面板上显示消息,以及分配和移除一个停车位的车辆。
以下是停车场的主要用例:
-
添加/删除/编辑停车场:从系统中添加、删除或修改一个停车场。每层都可以有自己的展板显示免费停车位。
-
添加/删除/编辑停车位:在一个停车场上添加、删除或修改一个停车位。
-
添加/移除泊车服务员:从系统中添加或移除泊车服务员。
-
取停车票:在客户进入停车场时,为客户提供一张新的停车票。
-
扫票:扫票查看总费用。
-
信用卡支付:使用信用卡支付门票费用。
-
现金支付:使用现金支付停车罚单。
-
添加/修改停车率:允许管理员添加或修改每小时停车率。
活动图
顾客支付停车账单
任何客户都可以执行此活动。以下是一些步骤:
类图
以下是我们停车场系统的主要类:
- 停车场(ParkingLot):
本软件设计的组织的中心部分。它有像“名称”这样的属性来区分它和其他停车场,还有“地址”来定义它的位置 - 停车层(ParkingFloor):
停车场将有很多停车层。 - 停车位(parking spot):
每个停车层将有多个停车位。我们的系统将支持不同的停车位1)残疾人停车位,2)紧凑型停车位,3)大型停车位,4)摩托车停车位,5)电动停车位。 - 账户(Account):
我们将在系统中有两种类型的账户:一种用于管理员,另一种用于停车管理员。 - 停车账单(Parking ticket):
这个类将封装一张停车罚单。顾客在进入停车场时要拿一张票。 - 车辆:
车辆将停在停车位内。我们的系统将支持不同类型的车辆1)轿车,2)卡车,3)电动,4)货车和5)摩托车。 - 入口面板(entranc panel)和出口面板(Exit Panel): 入口面板(entrancpanel)将打印门票,而出口面板(ExitPanel)将方便支付门票费用。
- 停车费(Parking Rate)•本课程将跟踪每小时停车收费情况。它将指定每小时的金额。例如,对于一张两小时的停车罚单,这个类将定义第一个小时和第二个小时的成本。
- 泊车显示板(ParkingDisplayBoard每个泊车楼层将有一个显示板,显示每种泊车类型的可用泊车位。该类将负责向客户显示最新的免费停车位。
- 停车服务员门户(Parking Attendant Portal): 这个类将封装一个话务员可以执行的所有操作,比如扫描票和处理支付。
- 客户信息门户(Customer Info Portal): 这个类将封装客户用来支付停车罚单的信息门户。一旦支付,信息门户将更新门票,以保持跟踪付款。
- 电动面板: 客户将使用电动面板支付和充电。