热门关键词:

电影票预订系统

添加时间: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

深信服  相关内容

——
27

2022-02

C中的UDP服务器-客户端实现

主机之间通信有两种主要的传输层协议:TCP和UDP。创建 TCP Server/Client 已在上一篇文章中讨论过。先决条件:创建 TCP 服务器/客户端理论在 UDP 中,客户端不会像 TCP 那样与服务器形成连接,而只是发送数据报。同样,服务器不需要接受连接,只是等待数据报… [了解更多]

27

2022-02

TCP 和 UDP 的区别

基础传输控制协议 (TCP)用户数据报协议 (UDP)服务类型TCP 是一种面向连接的协议。面向连接的意思是通信设备在传输数据之前应该建立连接,在传输数据之后应该关闭连接。UDP是面向数据报的协议。这是因为打开连接、维护连接和终止连接没有开销。UDP 对于广播和多播类型的网络传输… [了解更多]

24

2022-02

网络钓鱼

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

24

2022-02

网络足迹

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

24

2022-02

信息安全中的信息分类

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

关注

深信服

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