专栏首页readmeHow to design a parking lot using object-oriented principles?
原创

How to design a parking lot using object-oriented principles?

Design a parking lot using object-oriented principles.

Asked In : Amazon, Apple, Google and many more interviews

Solution:

For our purposes right now, we’ll make the following assumptions. We made these specific assumptions to add a bit of complexity to the problem without adding too much. If you made different assumptions, that’s totally fine. 1) The parking lot has multiple levels. Each level has multiple rows of spots. 2) The parking lot can park motorcycles, cars, and buses. 3) The parking lot has motorcycle spots, compact spots, and large spots. 4) A motorcycle can park in any spot. 5) A car can park in either a single compact spot or a single large spot. 6) A bus can park in five large spots that are consecutive and within the same row. It cannot park in small spots.

信息来源于网络,突出多对多数据模型设计,以下是另一个更复杂的例子,同样来源于网络。

A parking lot or car park is a dedicated cleared area that is intended for parking vehicles. In most countries where cars are a major mode of transportation, parking lots are a feature of every city and suburban area. Shopping malls, sports stadiums, megachurches, and similar venues often feature parking lots over large areas.

System Requirements

We will focus on the following set of requirements while designing the parking lot:

  1. The parking lot should have multiple floors where customers can park their cars.
  2. The parking lot should have multiple entry and exit points.
  3. Customers can collect a parking ticket from the entry points and can pay the parking fee at the exit points on their way out.
  4. Customers can pay the tickets at the automated exit panel or to the parking attendant.
  5. Customers can pay via both cash and credit cards.
  6. Customers should also be able to pay the parking fee at the customer’s info portal on each floor. If the customer has paid at the info portal, they don’t have to pay at the exit.
  7. The system should not allow more vehicles than the maximum capacity of the parking lot. If the parking is full, the system should be able to show a message at the entrance panel and on the parking display board on the ground floor.
  8. Each parking floor will have many parking spots. The system should support multiple types of parking spots such as Compact, Large, Handicapped, Motorcycle, etc.
  9. The Parking lot should have some parking spots specified for electric cars. These spots should have an electric panel through which customers can pay and charge their vehicles.
  10. The system should support parking for different types of vehicles like car, truck, van, motorcycle, etc.
  11. Each parking floor should have a display board showing any free parking spot for each spot type.
  12. The system should support a per-hour parking fee model. For example, customers have to pay $4 for the first hour, $3.5 for the second and third hours, and $2.5 for all the remaining hours.

Use case diagram

Here are the main Actors in our system:

  • Admin: Mainly responsible for adding and modifying parking floors, parking spots, entrance, and exit panels, adding/removing parking attendants, etc.
  • Customer: All customers can get a parking ticket and pay for it.
  • Parking attendant: Parking attendants can do all the activities on the customer’s behalf, and can take cash for ticket payment.
  • System: To display messages on different info panels, as well as assigning and removing a vehicle from a parking spot.

Here are the top use cases for Parking Lot:

  • Add/Remove/Edit parking floor: To add, remove or modify a parking floor from the system. Each floor can have its own display board to show free parking spots.
  • Add/Remove/Edit parking spot: To add, remove or modify a parking spot on a parking floor.
  • Add/Remove a parking attendant: To add or remove a parking attendant from the system.
  • Take ticket: To provide customers with a new parking ticket when entering the parking lot.
  • Scan ticket: To scan a ticket to find out the total charge.
  • Credit card payment: To pay the ticket fee with credit card.
  • Cash payment: To pay the parking ticket through cash.
  • Add/Modify parking rate: To allow admin to add or modify the hourly parking rate.

Class diagram

Here are the main classes of our Parking Lot System:

  • ParkingLot: The central part of the organization for which this software has been designed. It has attributes like ‘Name’ to distinguish it from any other parking lots and ‘Address’ to define its location.
  • ParkingFloor: The parking lot will have many parking floors.
  • ParkingSpot: Each parking floor will have many parking spots. Our system will support different parking spots 1) Handicapped, 2) Compact, 3) Large, 4) Motorcycle, and 5) Electric.
  • Account: We will have two types of accounts in the system: one for an Admin, and the other for a parking attendant.
  • Parking ticket: This class will encapsulate a parking ticket. Customers will take a ticket when they enter the parking lot.
  • Vehicle: Vehicles will be parked in the parking spots. Our system will support different types of vehicles 1) Car, 2) Truck, 3) Electric, 4) Van and 5) Motorcycle.
  • EntrancePanel and ExitPanel: EntrancePanel will print tickets, and ExitPanel will facilitate payment of the ticket fee.
  • Payment: This class will be responsible for making payments. The system will support credit card and cash transactions.
  • ParkingRate: This class will keep track of the hourly parking rates. It will specify a dollar amount for each hour. For example, for a two hour parking ticket, this class will define the cost for the first and the second hour.
  • ParkingDisplayBoard: Each parking floor will have a display board to show available parking spots for each spot type. This class will be responsible for displaying the latest availability of free parking spots to the customers.
  • ParkingAttendantPortal: This class will encapsulate all the operations that an attendant can perform, like scanning tickets and processing payments.
  • CustomerInfoPortal: This class will encapsulate the info portal that customers use to pay for the parking ticket. Once paid, the info portal will update the ticket to keep track of the payment.
  • ElectricPanel: Customers will use the electric panels to pay and charge their electric vehicles.

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Anchoring & random 锚定/沉锚效应和随机

    Anchoring or focalism is a cognitive bias where an individual depends too heavil...

    readme
  • socks5 helloworld

    SOCKS is an Internet protocol that exchanges network packets between a client an...

    readme
  • Color model 色彩模型

    A color model is a system for creating a full range of colours from a small set ...

    readme
  • 【NDN心得】Literature Review on Security of Named Data Networking

    版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gongxifacai_believe/artic...

    魏晓蕾
  • 将社交事件数据应用于蜂窝网络的管理(CS NI)

    互联网提供了越来越多的社交数据源:日历,事件聚合器,社交网络,浏览器等。此外,从这些资源中收集信息的机制(例如Web服务,语义Web和大数据技术)变得更加易于访...

    小童
  • python中 for ... else

    在<Effective Python:编写高质量Python代码的59个有效方法>  这本书中并不推荐用 for else语句

    py3study
  • 机器人体验营笔记(四)实践

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    zhangrelay
  • 语义分割--Global Deconvolutional Networks for Semantic Segmentation

    语义分割 Global Deconvolutional Networks for Semantic Segmentation BMVC 2016 ...

    用户1148525
  • SAP S/4 HANA新变化-FI:GL总账

    GENERAL LEDGER总账 General Ledger in S/4H is based in the Universal Journal; the l...

    SAP最佳业务实践
  • The Chinese zodiac

    haoLan: The Chinese zodiac, explained Asking a zodiac sign is a polite way of as...

    杨熹

扫码关注云+社区

领取腾讯云代金券