Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >How to design a parking lot using object-oriented principles?

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

原创
作者头像
vanguard
修改于 2020-03-31 06:41:46
修改于 2020-03-31 06:41:46
1.2K0
举报
文章被收录于专栏:vanguardvanguard

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.

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Analysis of requirement specification of parking management system
Analysis of requirement specification of parking management system
程序员小藕
2020/07/28
5270
Auto Makers Are Expanding Voice Controls for Drivers
Auto Makers Are Expanding Voice Controls for Drivers. Cars Will Talk More, Too.
用户6026865
2023/03/03
3300
Auto Makers Are Expanding Voice Controls for Drivers
Ultimate Guide to WeChat for Business 2019
This is the guide for you if you're interested in the Chinese market. Companies all over are interested in creating a presence in China. One of the best ways of doing this is by using WeChat Official Account for Business. This guide is going to be a little more intricate than the others because WeChat is one of the more mysterious messaging apps.
Spanz
2019/04/02
1.2K0
Ultimate Guide to WeChat for Business 2019
python机票价格_如何获得在线机票的最佳可能价格
参考链接: Pythonn编程技巧和窍门| 2(用于竞争性编程的语言) python机票价格  As more and more travel agents are forced to hang fresh ‘For Lease’ signs in their windows, the Internet has taken up the mantle of helping aspirational aeronautic enthusiasts shop, compare, and purchase tick
用户7886150
2020/12/30
1.4K0
13 Ways Companies Do Whatsapp Marketing & Support (May 2019)
We're living in a WhatsApp world – your friends, colleagues, customers, and competitors are using WhatsApp. There are 1.3 billion WhatsApp users out there. With a huge users base – there is huge opportunity. Don't spend it on just talking with your friends! The truth is WhatsApp Marketing & Support isn't on the way. It's already here.
Spanz
2019/05/15
1K0
互联网+ 在中国,腾讯研究院秘书长司晓牛津演讲
本文根据腾讯研究院秘书长、公共战略研究部总经理司晓博士在“2015北大-牛津-斯坦福互联网法律与政策研讨会”上的演讲翻译整理,英文原文附后。   尊敬的女士们、先生们:   很荣幸收到邀请参加今天的研讨会,作关于互联网+的演讲。   中国的增长故事,首先是一个很好的故事,30年里年均GDP实际增速超过10%,(是全球增长最快的主要经济体),7亿人脱贫。其次,中国的增长故事有双重含义,一重是实体经济快速增长,另一重是虚拟经济、数字中国以更快的速度增长。前一重大家说的很多,后一重含义说的就很少。最后,中国增长故
腾讯研究院
2018/02/02
6620
互联网+ 在中国,腾讯研究院秘书长司晓牛津演讲
Top Best Programming Languages for 2020
Top-Best-Programming-Languages-for-2020.png
用户4822892
2019/12/02
6680
Top Best Programming Languages for 2020
亚麻BQ
Leaders start with the customer and work backward. They work vigorously to earn and keep customer trust. Although leaders pay attention to competitors, they obsess over customers.
王脸小
2019/10/31
9090
新洞。。。。。
In this blog post, I’m going to share a technical review of Dedecms (or “Chasing a Dream” CMS as translated to English) including its attack surface and how it differs from other applications. Finally, I will finish off with a pre-authenticated remote code execution vulnerability impacting the v5.8.1 pre-release. This is an interesting piece of software because it dates back over 14 years since its initial release and PHP has changed a lot over the years.
用户5878089
2021/10/11
1.1K0
Top 15 Substantial Impact of IT Industry on Current Business
15-Substantial-Impacts-of-IT-Industry.png
用户4822892
2019/07/03
5990
Top 15 Substantial Impact of IT Industry on Current Business
How To Improve Customer Experience With A Better Web Design?
Web Design plays an important role in any marketing strategy or positively impacting user experience. The site’s usability, aesthetics, and even formatting are significant when it comes to a company’s long-term success.
用户4822892
2021/02/03
4190
How To Improve Customer Experience With A Better Web Design?
2017 MCM Problems ABC Notes by magic2728
建模的小伙伴们,知道你们都在挑灯夜战,为了梦想做最后的努力啦,先为你们的努力喝彩!
magic2728
2019/09/27
5010
Quick start tutorials for 23 common design patterns
Design patterns are a set of useful solutions to specific types of software design problems. They often provide an abstracted way to express solutions to common problems in an application, helping developers solve problems more effectively. The purpose of design patterns is to help developers solve software design problems, improve development efficiency, reduce development costs, improve code quality and maintainability, and better manage and understand complex systems. The advantages of design patterns are that they can improve code maintainability, reduce code duplication, improve development efficiency, reduce development costs, improve code quality and maintainability, and better manage and understand complex systems. The disadvantage of design patterns is that they can complicate the code or over-engineer. The origin of design patterns was proposed by GoF (Gang of Four) in his 1995 book Design Patterns: Foundations of Reusable Object-Oriented Software.
jack.yang
2025/04/05
240
Comparison of Apache Stream Processing Frameworks: Part 1
A couple of months ago we were discussing the reasons behind increasing demand for distributed stream processing. I also stated there was a number of available frameworks to address it. Now it’s a time have a look at them and discuss their similarities and
架构师研究会
2018/04/09
1.5K0
Comparison of Apache Stream Processing Frameworks: Part 1
混沌工程原理(PRINCIPLES OFCHAOS ENGINEERING)
Chaos Engineering is the discipline of experimenting on asystem in order to build confidence in the system’s capability to withstandturbulent conditions in production.
顾翔
2022/04/04
4430
转载:Package by feature, not layer
原文地址:Package by feature, not layer Package by feature, not layer The first question in building an a
用户1172465
2018/07/31
8800
DiFi: A Go-as-You-Pay Wi-Fi Access System 精读笔记(三)
我们采用区块链整合后的模块化设计。 它通过分离不同功能的实现带来了更大的灵活性,因此我们可以利用基于区块链的智能合约的优势,同时减少开销。 图 3 说明了不同模块如何参与 DiFi 与用户之间的交互。
timerring
2022/07/20
3840
DiFi: A Go-as-You-Pay Wi-Fi Access System 精读笔记(三)
如何使用多个中继器和接入点来增强您的家庭WiFi (tech how to)
在家工作,孩子在线学习以及与同事和家人的视频会面,COVID-19大流行增加了我们对互联网服务的需求。
木樾233
2020/12/18
2.6K0
DiFi: A Go-as-You-Pay Wi-Fi Access System 精读笔记(二)
业主是指拥有 Wi-Fi 网络并部署 DiFi 的餐厅和酒店等实体,用户是指需要 Wi-Fi 访问的客户。 图 1 提供了概述。 DiFi 部署在通常连接到有线连接的 Wi-Fi 路由器/接入点 (AP) 之上。 它在路由器/AP 和用户之间进行干预以授予 Wi-Fi 访问权限。 它安装在专用硬件上,例如 Raspberry Pi,因此不需要对现有 Wi-Fi 基础设施进行修改。 因为硬件提供了DiFi的完整功能,所以我们也称它为DiFi适配器。 如果安装了多个路由器/AP,例如在机场,每个都将连接到运行系统副本的 DiFi 适配器。
timerring
2022/07/20
3380
DiFi: A Go-as-You-Pay Wi-Fi Access System 精读笔记(二)
Comparison of Apache Stream Processing Frameworks: Part 2
In the previous post we went through the necessary theory and also introduced popular streaming framework from Apache landscape - Storm, Trident, Spark Streaming, Samza and Flink. Today, we’re going to dig a little bit deeper and go through topics like fau
架构师研究会
2018/04/09
1.6K0
Comparison of Apache Stream Processing Frameworks: Part 2
推荐阅读
相关推荐
Analysis of requirement specification of parking management system
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档