热门关键词:

电影票预订系统

添加时间:2022-01-29 17:39:27

来源:

浏览:

我们需要设计一个在线电影票预订系统,用户可以在其中搜索给定城市的电影并进行预订。本文将向您解释预订系统的架构。


如何实施座位预订流程?


解决方案 : 


用于用户角色的主要类: 


用户

电影

剧院

预订

地址

设施

 

// Java skeleton code to design an online movie

// booking system.

Enums :

 

    public enum SeatStatus {

    SEAT_BOOKED,

    SEAT_NOT_BOOKED;

}

 

public enum MovieStatus {

    Movie_Available,

    Movie_NotAvailable;

}

 

public enum MovieType {

    ENGLISH,

    HINDI;

}

 

public enum SeatType {

    NORMAL,

    EXECUTIVE,

    PREMIUM,

    VIP;

}

 

public enum PaymentStatus {

    PAID,

    UNPAID;

}

 

class User {

 

    int userId;

    String name;

    Date dateOfBirth;

    String mobNo;

    String emailId;

    String sex;

}

 

class Movie {

 

    int movieId;

    int theaterId;

    MovieType movieType;

    MovieStatus movieStatus;

}

 

class Theater {

 

    int theaterId;

    String theaterName;

    Address address;

 

    List<Movie> movies;

    float rating;

}

 

class Booking {

    int bookingId;

    int userId;

    int movieId;

    List<Movie> bookedSeats;

    int amount;

    PaymentStatus status_of_payment;

    Date booked_date;

    Time movie_timing;

}

 

class Address {

 

    String city;

    String pinCode;

    String state;

    String streetNo;

    String landmark;

}

这是一个 OOP 设计问题,因此不需要完整的代码。上面的代码只有类和属性。在上面的代码中,你可以看到枚举是不言自明的。 

我们有用户类,其中保存了用户的详细信息。 

剧院类,其中保留了剧院的名称、地址和当前正在播放的电影列表。 

预订舱位可让您预订特定剧院的座位。它在 Movie, Payment 类中保留一个引用。

 


如何处理两个人试图同时进入同一个座位的情况?


让我们使用将从主类调用的 SeatBook 和 Transactions 类。这里从上面的代码中,我们稍微扩展一下上面代码中没有显示的支付过程。在 SeatBook 类中,我们还将参考 Transaction 类。


现在,为了确保两个人几乎同时尝试访问同一个座位,我们将使用 Thread 类的 Synchronized 方法,并调用一个属于每个登录用户的线程。


Class SeatBook

{

    Transaction transaction_obj;

    bool seats[total_seats];

    String place;

    String ticketType;

 

    bool check_availability();

 

    int  position_of_seat()

    {

        return seat_pos_in_theater;

    }

 

    void multiple tickets();

 

    void final_booking()

    {

        place = positon_of_seat();

        if (single_ticket)

            continue;

        else

            mutliple_ticket_booking();

 

        Transaction_obj.pay(ticketType, seats_booked, place);

    }

}


用户名 Name
评论 Comment

深信服  相关内容

——
24

2022-02

网络钓鱼

浏览电子邮件的“垃圾邮件”部分。你看到了什么??您可能已经赢得了一辆全新的奥迪,或者您甚至没有购买的彩票中了令人难以置信的金额,要求您提供信用卡详细信息。或者您的银行可能会紧急要求通过电子邮件验证您的帐户详细信息。您是否在垃圾邮件部分看到与上述情况类似的情况?这就是网络钓鱼出现的… [了解更多]

24

2022-02

网络足迹

足迹意味着收集有关可用于执行成功网络攻击的目标系统的信息。为了获取此信息,黑客可能会使用各种方法和变体工具。这些信息是黑客破解系统的第一条道路。有以下两种类型的脚印。主动足迹:主动足迹意味着通过直接接触目标机器来执行足迹。被动足迹:被动足迹是指收集远离攻击者的系统的信息。可以从足… [了解更多]

24

2022-02

信息安全中的信息分类

在当今世界,信息是我们生活的重要组成部分之一。在此,我们将讨论基于不同组织和不同参数的信息分类。组织中的信息应该分类并且必须保密,这就是信息安全出现的原因,它对任何组织都起着至关重要的作用。对信息进行分类的主要原因是,并非所有数据/信息对组织都具有相同的重要性或相同的相关性/关键… [了解更多]

24

2022-02

2022 年最值得学习的 7 个深信服人

工智能现在已成为数字化转型的代名词,其影响在现代世界中显而易见。根据调查,到2025 年,全球人工智能市场预计将达到1906.1 亿美元。数字原住民和技术爱好者正在通过使其更具协同性和互动性来彻底改变数字空间。今天,即使是普通的 Joe 也可以了解 AI 框架并为改变全球的数字结… [了解更多]

08

2022-02

华氏到摄氏公式

华氏和摄氏度是用于测量温度的单位。这两种单位都被广泛使用。在日常生活中也可以看到,当测量任何东西的温度时,比如水,单位被表示为摄氏度。体温通常以华氏度表示。然而,这些单位可以很容易地相互转换。在转到转换公式及其对公式的解释之前,让我们更多地了解这些单位。华氏度华氏度是温度的标度。… [了解更多]

关注

深信服

  • 地 址:成都市人民南路四段成科西路三号 863国家孵化园
  • 电 话:18215 660330
  • 手机:18215 660330
  • 传 真:18215 660330
  • 邮 箱:179001057@qq.com
  • 邮政编码:610000