📜  Sapient – 为德里地铁设计智能卡系统的编码练习

📅  最后修改于: 2022-05-13 01:58:29.037000             🧑  作者: Mango

Sapient – 为德里地铁设计智能卡系统的编码练习

大家好,

今天我要和sapient分享面试经验

第 1 轮:接到 HR 的电话和初步筛选。

我接到了 HR 的电话,在与开幕式讨论之后,我接到了 sapient 的电话,要求进行技术电话轮次。

有一些Java基本问题,如抽象、继承和自定义异常以及一些多线程问题。

第二轮:机器测试

在第二轮中,我接到了机器测试的电话,他们为我提供了从家里接送的出租车,这太棒了。

他们为我提供了以下要求的编码挑战。

需求范围

  1. 开发一个 API 来计算给定站点的总进出(刷入 + 刷出)
  2. 按需生成每张卡报告的 API,即打印给定智能卡的所有旅程详细信息——源站、目的地站、旅行日期和时间、余额、票价等。

详细的问题陈述

德里地铁设计智能卡系统的编码练习。为德里市实施“地铁智能卡系统”(MSCS)。对于应用,假设有一条地铁线线性覆盖 10 个车站。站点名称为 A1、A2、A3、A4、A5、A6、A7、A8、A9、A10,如下所示。行程可以是任何方向。

旅行者拥有智能卡,其行为与购买时具有初始余额的任何普通借记卡一样。旅客进入地铁站时刷卡,离开时刷卡。刷卡时卡余额会自动更新。

练习的目标是创建一个具有以下功能的自动化系统:

  1. 刷卡时卡的最低余额应为 5.5 卢比。在刷卡时,系统应根据在一天开始时设置的以下策略计算票价。票价必须从卡中扣除。
  2. 卡应有足够的余额,否则用户将无法退出。工作日 - 卢比。 7 *(经过的车站数量)周末 - 卢比。 5.5 *(周六或周日行驶的车站数量)(*未来可能会有更多这样的票价策略)

解决方案:

https://drive.google.com/open?id=1CmvnqTIJgpVNc1H4FQpX0LNu_2yQ4rD2

第三轮:代码审查轮+总决赛

在最后一轮中,他们问了我所有与我编写的编码程序相关的问题。由于我在编码挑战中使用了许多设计模式,他们问了我许多与设计模式相关的问题。

当他们正在寻找可以在Java和 UI 上工作的Java开发人员时,他们向我询问了Java、Spring、Hibernate、JDBC、Css、Html、Javascript、Shell 脚本。

最后我被选入 Sapient Global Market 🙂

当我在家里被选中时,我得到了鲜花花束。