Tải bản đầy đủ (.docx) (91 trang)

Đề tài nhóm hệ thống quản lý rạp chiếu phim

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.32 MB, 91 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Khoa: Cơng nghệ thơng tin </b>

<b>1Nguyễn Thiệu HiếuB20DCCN256Bán vé tại quầy2Ngô Trần Đức TháiB20DCCN636Lên lịch chiếu phim</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>A. PHẦN VIỆC CHUNG CỦA NHĨM I.Mơ tả hệ thống. </b>

<b>1. Mục đích </b>

Hệ thống trang web phục vụ cơng tác quản lí đặt mua vé trực tuyến, đổi điểm thưởng lấy quà tặng/vé, khách hàng hoàn trả vé, lên lịch chiếu phim, mua vé tại quầy

<b>2. Phạm vi</b>

<b>● Thành viên hệ thống:</b>

- Đăng nhập:

+ Cho phép người dùng truy cập vào hệ thống với tài khoản của mình.

- Đăng xuất:

+ Cho phép người dùng đăng xuất khỏi hệ thống. - Đổi mật khẩu cá nhân:

+ Cho phép người dùng thay đổi mật khẩu của mình để bảo vệ thông tin cá nhân.

<b>● Khách hàng (Người xem):</b>

- Đặt vé: Cho phép người dùng chọn phim, suất chiếu, và đặt vé.

- Hủy vé:

+ Cho phép người dùng hủy đặt vé trước một khoảng thời gian cố định trước suất chiếu. - Xem thông tin phim:

+ Hiển thị thông tin về các bộ phim, lịch chiếu, và giá vé.

<b>● Nhân viên rạp chiếu phim:</b>

- Quản lý thơng tin phim:

+ Thêm, xóa, sửa thơng tin về các bộ phim. - Quản lý lịch chiếu:

+ Tạo và cập nhật lịch chiếu phim cho mỗi rạp. - Quản lý vé:

+ Theo dõi và kiểm sốt số lượng vé cịn lại cho mỗi suất chiếu.

- Báo cáo doanh thu:

+ Tạo báo cáo doanh thu cho từng bộ phim hoặc

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

suất chiếu.

<b>● Quản lý rạp chiếu phim:</b>

- Quản lý nhân viên:

+ Thêm, xóa, sửa thơng tin của nhân viên.

- Thống kê doanh thu:

+ Xem các báo cáo thống kê về doanh thu, số lượng vé bán được, và các chỉ số khác.

- Quản lý khuyến mãi:

+ Thêm, xóa, sửa thơng tin về các chương trình khuyến mãi.

- Quản lý rạp chiếu:

+ Thêm, xóa, sửa thơng tin về các rạp chiếu, số lượng ghế, và các trang thiết bị khác.

- Xem bảng điểm của rạp:

+ Xem bảng điểm về hiệu suất hoạt động của rạp chiếu.

<b>3. Thông tin về các đối tượng</b>

● Nhóm các thơng tin liên quan đến con người: - Khách hàng:

+ Tài khoản: tên đăng nhập, mật khẩu

+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại

- Nhân viên:

+ Tài khoản: tên đăng nhập, mật khẩu

+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại

+ Vị trí cơng việc: quyền hạn (bán vé, quầy bar, quản lý rạp)

- Quản lý rạp chiếu phim:

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

+ Tài khoản: tên đăng nhập, mật khẩu

+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại

+ Vị trí cơng việc: quản lý rạp, có quyền kiểm sốt doanh số, quản lý nhân viên

- Nhân viên bán vé:

+ Tài khoản: tên đăng nhập, mật khẩu

+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại

+ Vị trí cơng việc: bán vé, quyền xem thơng tin suất chiếu

- Nhân viên quầy:

+ Tài khoản: tên đăng nhập, mật khẩu

+ Thông tin cá nhân: họ tên, địa chỉ, ngày sinh, email, số điện thoại

+ Vị trí công việc: phục vụ quầy bar, quyền xem thông tin doanh số quầy.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

+ Thông tin: tên, mơ tả, thời gian áp dụng

● Nhóm thơng tin liên quan đến thống kê: - Doanh số bán vé:

- Thống kê theo suất chiếu, theo phim - Thống kê đánh giá của khách hàng: - Đánh giá phim, dịch vụ

- Thống kê doanh thu từ quầy bar: - Thống kê theo suất chiếu

- Thống kê lượt đặt vé online:

- Thống kê theo suất chiếu, theo ngày

- Thống kê doanh thu từ chương trình khuyến mãi: - Thống kê theo suất chiếu, theo phim

- Thống kê số lượng khách hàng theo thời gian: - Thống kê theo ngày, tháng, năm

- Thống kê doanh thu từ các nguồn khác nhau (vé, quầy bar, khuyến mãi):

- Thống kê tổng hợp theo thời gian.

<b>4. Quan hệ giữa các đối tượng</b>

- Rạp Chiếu Phim có nhiều Phịng Chiếu:

+ Một Rạp Chiếu Phim có thể có nhiều phịng chiếu. + Mỗi Phịng Chiếu thuộc một Rạp Chiếu Phim cụ thể. - Mỗi Phịng Chiếu có nhiều Suất Chiếu:

+ Mỗi Phịng Chiếu có thể có nhiều suất chiếu trong một ngày.

+ Mỗi Suất Chiếu thuộc một Phịng Chiếu cụ thể. - Mỗi Suất Chiếu có nhiều Ghế Ngồi:

+ Mỗi Suất Chiếu có thể có nhiều ghế ngồi. + Mỗi Ghế Ngồi thuộc một Suất Chiếu cụ thể. - Mỗi Suất Chiếu có nhiều Vé:

+ Mỗi Suất Chiếu có thể có nhiều vé. + Mỗi Vé thuộc một Suất Chiếu cụ thể. - Mỗi Vé có một hoặc nhiều Mặt Hàng:

+ Mỗi Vé có thể liên kết với một hoặc nhiều mặt hàng (ví dụ: thức ăn, nước uống).

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

+ Mỗi Mặt Hàng thuộc một hoặc nhiều Vé. - Mỗi Suất Chiếu có nhiều Đánh Giá và Bình Luận:

+ Mỗi Suất Chiếu có thể có nhiều đánh giá và bình luận từ khách hàng.

+ Mỗi Đánh Giá và Bình Luận thuộc một Suất Chiếu cụ thể.

<b>II.Biểu đồ UC tổng quát</b>

Chúng ta có thể đề xuất các actor cho hệ thống quản lý rạp chiếu phim như sau: thành viên, khách hàng, nhân viên rạp chiếu phim, quản lý rạp chiếu phim, và kỹ thuật viên. Tất cả đều có những chức năng cơ bản như đăng nhập và đổi mật khẩu, nhưng mỗi đối tượng sẽ có những chức năng riêng phù hợp với vai trò của họ.

Các chức năng cụ thể được phân chia như sau:

● Xem lại lịch sử mua vé. Nhân viên rạp chiếu phim:

● Quản lý thông tin suất chiếu. ● Kiểm tra và báo cáo vé đã bán. ● Thực hiện báo cáo về doanh thu. Quản lý rạp chiếu phim:

● Quản lý thông tin phim, đạo diễn, diễn viên. ● Xem và cập nhật lịch chiếu.

● Quản lý giá vé và chính sách khuyến mãi.

● Thống kê doanh thu theo khoảng thời gian và theo từng phim.

Kỹ thuật viên:

● Quản lý và bảo dưỡng hệ thống âm thanh, hình ảnh. ● Sửa chữa thiết bị kỹ thuật khi cần.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Trong số các chức năng này, việc xem lịch chiếu của khách hàng là tương tự chức năng xem lịch dạy của nhân viên rạp chiếu phim. Nên hai use case này được cho kế thừa từ use case xem lịch chiếu. Như vậy, biểu đồ use case tổng quan của hệ thống được trình bày với mô tả các use case như sau:

Đặt vé:

● Cho phép khách hàng truy cập hệ thống để đặt vé xem phim theo lịch chiếu mong muốn.

Xem lịch chiếu:

● Hiển thị thông tin chi tiết về lịch chiếu của các bộ phim trong rạp, giúp khách hàng chọn suất chiếu phù hợp.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Mua vé online:

● Cung cấp khả năng mua vé trực tuyến, giúp tiện lợi cho khách hàng.

Quản lý thông tin suất chiếu:

● Cho nhân viên rạp chiếu phim quản lý thông tin về các suất chiếu, bao gồm thêm, sửa, và xóa suất chiếu.

Kiểm tra vé đã bán:

● Nhân viên rạp chiếu phim có thể kiểm tra thơng tin về số vé đã được bán cho mỗi suất chiếu.

Thống kê doanh thu:

● Quản lý rạp chiếu phim có khả năng xem thống kê doanh thu theo khoảng thời gian và theo phim.

Quản lý thông tin phim:

● Quản lý rạp chiếu phim có thể thêm, sửa, và xóa thơng tin về các bộ phim.

Xem và cập nhật lịch chiếu:

● Quản lý rạp chiếu phim có khả năng xem và điều chỉnh lịch chiếu cho các suất chiếu.

Quản lý giá vé và chính sách khuyến mãi:

● Quản lý rạp chiếu phim có thể quản lý giá vé và áp dụng chính sách khuyến mãi.

Quản lý thơng tin nhân viên:

● Quản lý rạp chiếu phim có khả năng quản lý thơng tin về nhân viên, bao gồm thêm, sửa, và xóa thơng tin.

Quản lý thiết bị kỹ thuật:

● Kỹ thuật viên có thể quản lý và bảo dưỡng hệ thống âm thanh, hình ảnh, và thực hiện sửa chữa khi cần.

Xuất bảng điểm:

● Cho khảo thí xuất bảng điểm cho khách hàng theo yêu cầu.

Xem thống kê:

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

● Nhân viên quản lý có khả năng xem các loại báo cáo thống kê về hoạt động của rạp chiếu phim.

<b>III.Biểu đồ lớp thực thể ở pha phân tích </b>

Bước 1: Mơ tả hệ thống trong một đoạn văn

Hệ thống quản lý rạp chiếu phim là một ứng dụng trực tuyến được thiết kế để hỗ trợ quản lý các hoạt động liên quan đến chiếu phim trong một rạp.

Trong đó, khách hàng có khả năng đặt vé xem phim theo lịch chiếu và chọn suất chiếu mong muốn; xem thông tin chi tiết về lịch chiếu, bao gồm thời gian chiếu, phòng chiếu, và phim đang chiếu; thực hiện mua vé trực tuyến để tiết kiệm thời gian và công sức; kiểm tra số vé đã được bán và cập nhật thông tin về doanh thu. Nhân viên rạp chiếu phim có thể quản lý thơng tin chi tiết về các suất chiếu, bao gồm thêm, sửa, và xóa suất chiếu; kiểm tra thông tin về số vé đã được bán và thực hiện báo cáo về doanh thu; quản lý thông tin về các bộ phim, bao gồm thêm, sửa, và xóa thơng tin. Quản lý rạp chiếu phim có khả năng thêm, sửa, và xóa thơng tin về các bộ phim, đạo diễn, diễn viên; xem và cập nhật lịch chiếu cho các suất chiếu; quản lý giá vé và áp dụng chính sách khuyến mãi để thu hút khách hàng; xem thống kê doanh thu theo khoảng thời gian và theo từng phim.

Kỹ thuật viên có thể quản lý và bảo dưỡng hệ thống âm thanh, hình ảnh; sửa chữa thiết bị kỹ thuật khi cần.

Bước 2: Trích các danh từ xuất hiện trong đoạn văn.

Các danh từ liên quan đến người: khách hàng, nhân viên rạp chiếu phim, quản lý rạp chiếu phim, kỹ thuật viên.

Các danh từ liên quan đến vật: rạp chiếu phim, suất chiếu, vé, doanh thu.

Các danh từ liên quan đến thông tin: lịch chiếu, bộ phim, đạo diễn, diễn viên, giá vé, chính sách khuyến mãi.

Bước 3: Đánh giá và lựa chọn các danh từ làm lớp thực thể hoặc thuộc tính.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Các danh từ trừu tượng: hệ thống, ứng dụng trực tuyến, thông tin. Các danh từ liên quan đến người:

● Thành viên hệ thống -> ThanhVien: tên, tên đăng nhập, mật khẩu, ngày sinh, địa chỉ, email, điện thoại.

● Khách hàng -> KhachHang: kế thừa ThanhVien, mã khách

● Kỹ thuật viên -> KyThuatVien: kế thừa NhanVienRap. Các danh từ liên quan đến vật:

● Rạp chiếu phim -> RapChieuPhim: tên, địa chỉ, mô tả. ● Suất chiếu -> SuatChieu: mã suất chiếu, thời gian chiếu. ● Vé -> Ve: mã vé, giá vé.

● Doanh thu -> DoanhThu: mã doanh thu, ngày thu, số vé bán được.

Các danh từ liên quan đến thông tin:

● Lịch chiếu -> LichChieu: liên quan đến thời gian chiếu, suất chiếu, phim.

● Phim -> Phim: tên, đạo diễn, diễn viên, mơ tả. ● Giá vé -> GiaVe: giá vé, chính sách khuyến mãi. Bước 4: Xác định quan hệ số lượng giữa các thực thể

● Rạp chiếu phim có nhiều suất chiếu -> RapChieuPhim - SuatChieu là 1-n, với mỗi suất chiếu được liên kết với một rạp chiếu phim cụ thể.

● Suất chiếu có nhiều vé được đặt -> SuatChieu - VeDat là 1-n, với mỗi vé được đặt liên kết với một suất chiếu cụ thể. ● Khách hàng có thể đặt nhiều vé cho nhiều suất chiếu ->

KhachHang - VeDat là n-n -> đề xuất lớp DatVe kết nối giữa KhachHang và SuatChieu (DatVe # VeDat), mỗi DatVe biểu diễn một giao dịch đặt vé cụ thể.

● Rạp chiếu phim có nhiều phim -> RapChieuPhim - Phim là 1-n, với mỗi bộ phim được liên kết với một rạp chiếu phim cụ thể.

● Một phim có thể chiếu ở nhiều suất chiếu -> Phim -

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

SuatChieu là 1-n, với mỗi suất chiếu liên kết với một phim cụ thể.

● Giá vé có thể áp dụng cho nhiều suất chiếu -> GiaVe - SuatChieu là n-n -> đề xuất lớp GiaVeSuatChieu xác định duy nhất một giá vé áp dụng cho một suất chiếu cụ thể. ● Nhân viên rạp chiếu phim có thể quản lý nhiều suất chiếu ->

NhanVienRap - SuatChieu là 1-n, với mỗi suất chiếu được quản lý bởi một nhân viên rạp chiếu phim.

● Quản lý rạp chiếu phim có thể quản lý nhiều nhân viên -> QuanLyRap - NhanVienRap là 1-n, với mỗi nhân viên rạp chiếu phim được quản lý bởi một quản lý rạp chiếu phim. ● Kỹ thuật viên có thể quản lý và bảo dưỡng nhiều thiết bị kỹ

thuật -> KyThuatVien - ThietBiKyThuat là 1-n, với mỗi thiết bị kỹ thuật được quản lý bởi một kỹ thuật viên.

● Mỗi lịch chiếu có thể liên kết với một suất chiếu cụ thể và có nhiều buổi chiếu -> LichChieu - SuatChieu là 1-n, với mỗi suất chiếu được liên kết với một lịch chiếu cụ thể.

● Ngồi ra, thơng tin Họ và tên có thể tách thành một lớp thực thể riêng - HoTen, với các thuộc tính là Họ và Tên. Thông tin địa chỉ cũng có thể tách thành một lớp thực thể riêng - DiaChi, với các thuộc tính là Số nhà, Đường, Quận, Thành phố. Các thơng tin này có thể được sử dụng lại trong nhiều đối tượng khác nhau mà khơng làm ảnh hưởng đến tính nhất quán và dễ bảo trì của hệ thống.

Bước 5: Xác định quan hệ đối tượng giữa các thực thể

● Rạp chiếu phim là thành phần của Hệ thống Quản lý Rạp Chiếu Phim

● Suất chiếu là thành phần của Rạp chiếu phim ● Vé đặt là thành phần của Suất chiếu

● Khách hàng là thành phần của Hệ thống Quản lý Rạp Chiếu

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

● Bộ phim là thành phần của Hệ thống Quản lý Rạp Chiếu Phim

● Giá vé là thành phần của Hệ thống Quản lý Rạp Chiếu Phim ● Lịch chiếu là thành phần của Hệ thống Quản lý Rạp Chiếu

● Lịch chiếu liên kết với Suất chiếu và Bộ phim để tạo ra lịch chiếu cụ thể

● DatVe là thành phần của Hệ thống Quản lý Rạp Chiếu Phim ● DatVe liên kết với Khách hàng và Suất chiếu để tạo ra giao

dịch đặt vé cụ thể

● Thông tin địa chỉ là thành phần của Khách hàng ● Thông tin họ và tên là thành phần của Khách hàng

● Lớp thống kê liên kết với các thực thể tương ứng để tạo ra các báo cáo thống kê.

Kết quả thu được biểu đồ lớp thực thể pha phân tích tồn hệ thống như trong hình.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>IV.Biểu đồ lớp thực thể ở pha thiết kế </b>

Bước 1:

Các lớp được bổ sung thuộc tính id: trừ các lớp thống kê (TK), nhân viên, Rapchieuphim, Phim, Suatchieu, Nhanvien, NVQuanli,

Quan hệ Nhanvien – Rapchieuphim -> NhanvienRapchieuphim chuyển thành NhanvienRapchieuphim chứa Nhanvien và

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Quan hệ Phim – Suatchieu -> PhimSuatchieu chuyển thành PhimSuatchieu chứa Phim và Suatchieu.

Quan hệ Suatchieu – Rapchieuphim -> Chieuphim chuyển thành Chieuphim chứa Suatchieu và Rapchieuphim.

Quan hệ Rapchieuphim – NVQuanli -> Quanli chuyển thành Quanli chứa Rapchieuphim và NVQuanli.

Quan hệ Rapchieuphim – NVBanve -> Banve chuyển thành Banve chứa Rapchieuphim và NVBanve.

Bước 4:

Bổ sung các thuộc tính thành phần của quan hệ hợp thành/gắn chặt, ta thu được biểu đồ lớp thực thể pha thiết kế.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

● tblRapChieu có các thuộc tính: id, tên, địa chỉ ● tblPhim: id, tên, thể loại, đạo diễn

● tblSuatChieu: id, giờ chiếu, ngày chiếu

● tblGheNgoi: id, số ghế, trạng thái (đã đặt/chưa đặt) ● tblKhachHang: id, tên, email, số điện thoại

● tblVe: id, giá vé, loại vé

● tblDatVe: id, ngày đặt, trạng thái đặt vé ● tblNhanVien: id, tên, chức vụ

● tblPhanHoi: id, nội dung, ngày phản hồi ● tblDoanhThu: id, ngày, doanh thu

● tblDienVien: id, tên, ngày sinh, quốc tịch ● tblHangPhim: id, tên, địa chỉ

● tblLoaiGhe: id, tên, mô tả ● tblPhongChieu: id, tên, số ghế

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

● tblQuocGia: id, tên

● tblDaoDien: id, tên, ngày sinh, quốc tịch ● tblTheLoai: id, tên, mô tả

● tblLoaiVe: id, tên, giá vé

● tblNguoiDung: id, tên đăng nhập, mật khẩu ● tblHeThongRap: id, tên, số phòng chiếu

Bước 3:

Chuyển quan hệ số lượng giữa các lớp thực thể thành quan hệ số lượng giữa các bảng:

● tblRapChieu – n tblPhim: Mỗi rạp chiếu có thể chiếu nhiều phim, nhưng mỗi phim chỉ thuộc một rạp chiếu.

● tblRapChieu – n tblSuatChieu: Mỗi rạp chiếu có thể có nhiều suất chiếu, nhưng mỗi suất chiếu thuộc một rạp chiếu.

● tblSuatChieu – n tblGheNgoi: Mỗi suất chiếu có nhiều ghế ngồi, nhưng mỗi ghế ngồi chỉ thuộc một suất chiếu.

● tblPhim – n tblSuatChieu: Mỗi phim có thể được chiếu ở nhiều suất, nhưng mỗi suất chiếu chỉ chiếu một phim.

● tblKhachHang – n tblVe: Mỗi khách hàng có thể mua nhiều vé, nhưng mỗi vé chỉ thuộc một khách hàng.

● tblKhachHang – n tblDatVe: Mỗi khách hàng có thể đặt nhiều vé, nhưng mỗi đặt vé chỉ thuộc một khách hàng.

● tblNhanVien – n tblDoanhThu: Mỗi nhân viên có thể ghi nhận nhiều doanh thu, nhưng mỗi doanh thu chỉ do một nhân viên ghi nhận.

● tblRapChieu – n tblPhanHoi: Mỗi rạp chiếu có thể nhận nhiều phản hồi, nhưng mỗi phản hồi chỉ thuộc một rạp chiếu.

● tblSuatChieu – n tblDoanhThu: Mỗi suất chiếu có thể sinh ra nhiều doanh thu, nhưng mỗi doanh thu chỉ thuộc một suất chiếu.

● tblPhim – n tblPhanHoi: Mỗi phim có thể nhận nhiều phản hồi, nhưng mỗi phản hồi chỉ liên quan đến một phim.

● tblDienVien – n tblPhim: Mỗi diễn viên có thể tham gia nhiều phim, nhưng mỗi phim chỉ có một đạo diễn.

● tblHangPhim – n tblPhim: Mỗi hãng phim có thể sản xuất nhiều phim, nhưng mỗi phim chỉ thuộc một hãng phim.

● tblLoaiGhe – n tblGheNgoi: Mỗi loại ghế có thể có nhiều ghế ngồi,

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

nhưng mỗi ghế ngồi chỉ thuộc một loại ghế.

● tblPhongChieu – n tblGheNgoi: Mỗi phịng chiếu có thể có nhiều ghế ngồi, nhưng mỗi ghế ngồi chỉ thuộc một phòng chiếu.

● tblQuocGia – n tblDaoDien: Mỗi quốc gia có thể có nhiều đạo diễn, nhưng mỗi đạo diễn chỉ thuộc một quốc gia.

● tblTheLoai – n tblPhim: Mỗi thể loại có thể thuộc nhiều phim, nhưng mỗi phim chỉ thuộc một thể loại.

● tblLoaiVe – n tblVe: Mỗi loại vé có thể được sử dụng cho nhiều vé, nhưng mỗi vé chỉ thuộc một loại vé.

● tblNguoiDung – n tblDatVe: Mỗi người dùng có thể đặt nhiều vé, nhưng mỗi đặt vé chỉ thuộc một người dùng.

● tblHeThongRap – n tblRapChieu: Mỗi hệ thống rạp có thể có nhiều rạp chiếu, nhưng mỗi rạp chiếu chỉ thuộc một hệ thống rạp.

● tblNguoiDung – n tblPhanHoi: Mỗi người dùng có thể gửi nhiều phản hồi, nhưng mỗi phản hồi chỉ thuộc một người dùng.

Bước 4:

Bổ sung các thuộc tính khóa. Khóa chính được thiết lập với thuộc tính id của các bảng tương ứng, trừ các bảng tblVe và tblDatVe.

Khóa ngoại được thiết lập cho các bảng:

● tblRapChieu – n tblPhim -> Bảng tblPhim có khóa ngoại

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

● tblLoaiVe – n tblVe -> Bảng tblVe có khóa ngoại tblLoaiVeId ● tblNguoiDung – n tblDatVe -> Bảng tblDatVe có khóa ngoại

● Loại bỏ các bảng thống kê, như tblThongKeVe,

tblThongKeDatVe, tblThongKeDoanhThu, giữ lại các thông tin dẫn xuất trong bảng tblDoanhThu.

● Tổng hợp số lượng vé đã đặt và đã mua trong bảng tblVe và tblDatVe.

● Đưa ra thông tin về số lượng phản hồi và đánh giá từ khách

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

hàng trong bảng tblPhanHoi.

● Tính tốn tổng số lượng ghế ngồi và số lượng ghế đã đặt trong bảng tblGheNgoi.

● Tổng hợp thông tin về số lượng suất chiếu và các thông tin liên quan từ bảng tblSuatChieu.

● Xác định số lượng phòng chiếu và các thông tin chi tiết từ bảng tblPhongChieu.

● Thống kê thông tin về số lượng phim, đạo diễn, diễn viên, thể loại từ các bảng liên quan như tblPhim, tblDienVien,

● Thống kê thông tin về các hệ thống rạp chiếu và các thông tin chi tiết từ bảng tblHeThongRap.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>B.PHẦN VIỆC TỪNG CÁ NHÂN </b>

<b>I. Sinh viên Vũ Anh Tuấn – UC : Khách hàng đặt</b>

mua vé trực tuyến.

<b>1.Đặc tả UC.</b>

<b>a.Hoạt động nghiệp vụ của UC:</b>

- Khách hàng vào hệ thống => Giao diện trang chủ hiện ra: có 1 chức năng đăng nhập.

- Khách hàng click đăng nhập => Giao diện đăng nhập hiện ra có ơ nhập username, password và nút login.

- Khách hàng nhập username, password và click login.

- Có 2 trường hợp xảy ra:

+ Nếu đăng nhập sai => Hệ thống thông báo sai username hoặc password => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện đăng nhập chứa thông tin cũ.

+ Nếu đăng nhập đúng => Giao diện chính của khách hàng hiện ra và có chức năng đặt mua vé trực tuyến.

- Khách hàng click vào chức năng đặt mua vé

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

trực tuyến => Giao diện tìm kiếm suất chiếu phim hiện ra:

+ Danh sách lựa chọn ngày chiếu(7 ngày tính từ ngày hiện tại)

+ Danh sách lựa chọn khung giờ chiếu trong ngày

+ Danh sách lựa chọn các phim có lịch chiếu đang chọn

+ Danh sách phịng chiếu có thơng tin đang chọn

- Khách hàng chọn 1 ngày. => Giao diện hiện ra danh sách các khung giờ chiếu trong ngày đang chọn.

- Khách hàng chọn 1 khung giờ chiếu => Giao diện hiện ra danh sách các phim có lịch chiếu đang chọn.

- Khách hàng chọn 1 phim => Giao diện hiện ra danh sách phòng chiếu phù hợp với thông tin đang chọn.

- Khách hàng click một phòng => Giao diện chọn chỗ ngồi hiện ra bao gồm:

+ Bảng tất cả các chỗ ngồi của phịng vừa chọn: mỗi ơ tương ứng với một chỗ. (khách hàng chỉ được chọn những chỗ chưa được đặt).

+ Nút hủy. + Nút mua vé.

- Nếu khách hàng click hủy => Hệ thống trở lại giao diện chọn phịng với các thơng tin cũ. - Nếu khách hàng chọn những chỗ còn trống và

click mua vé => Giao diện xác nhận mua vé hiện ra với thông tin:

+ Danh sách các vé vừa chọn, mỗi vé một dòng với thông tin: tên phim, ngày chiếu, giờ chiếu, tên phòng chiếu, loại phòng chiếu, mã chỗ ngồi, giá vé, nút

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

- Nếu khách hàng click trở lại => Hệ thống trở lại giao diện chọn chỗ ngồi với các thông tin cũ.

- Nếu khách hàng click áp dụng quà tặng của 1 vé => Giao diện lựa chọn quà tặng hiện ra có thơng tin:

+ Danh sách các quà tặng đang có của khách hàng có điều kiện phù hợp với thơng tin khách hàng đã chọn.

+ Mỗi quà tặng ứng với một dịng với thơng tin: tên, chi tiết, điều kiện áp dụng, hạn sử dụng.

+ Khách hàng chọn 1 quà tặng => Hệ thống trở lại giao diện xác nhận mua vé với cập nhật quà tặng vừa lựa chọn và tổng tiền thanh toán.

+ Nếu khách hàng click thanh toán => Giao diện thanh tốn hiện ra với thơng tin thanh toán (mã QR hoặc số tài khoản ngân hàng), tổng số tiền.

- Khách hàng thực hiện thanh toán:

+ Nếu một trong các chỗ ngồi vừa chọn đã được thanh toán bởi khách hàng khác => Hệ thống thông báo chỗ ngồi đã được đặt bởi khách hàng khác => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện chọn chỗ ngồi với các cập nhập về các chỗ ngồi

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

đã được đặt.

+ Nếu các chỗ ngồi vừa chọn chưa được đặt bởi khách hàng khác => Hệ thống thơng báo thanh tốn thành cơng và lưu thơng tin đặt vé vào cơ sở dữ liệu => Khách hàng click ok của thông báo => Hệ thống trở về giao diện chính của khách hàng.

<b>b. Biểu đồ UC chi tiết: </b>

<i><b>Use chi tiết của </b></i>

<b>chức năng đặt mua vé trực tuyến.</b>

Chức năng đặt mua vé trực tuyến có các giao diện tương tác với khách hàng: + Đăng nhập => Đề xuất usecase đăng nhập.

+ Tìm kiếm phim => Đề xuất usecase tìm kiếm phim. + Chọn phịng => Đề xuất usecase chọn phòng.

+ Chọn chỗ ngồi => Đề xuất usecase chọn chỗ ngồi. + Thanh toán => Đề xuất usecase thanh tốn.

+ Tích điểm thưởng => Đề xuất usecase tích điểm thưởng. + Áp dụng quà tặng => Đề xuất usecase áp dụng quà tặng. - Các usecase đăng nhập, tìm kiếm phim, chọn phịng, chọn chỗ ngồi,

thanh tốn là bắt buộc mới hồn thành được việc đặt mua vé trực tuyến do đó usecase đặt mua vé trực tuyến include các usecase này.

- Các usecase áp dụng quà tặng, tích điểm thưởng là tùy chọn từ giao diện

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

thanh tốn, nên usecase áp dụng q tặng, tích điểm thưởng có quan hệ mở rộng từ usecase thanh toán.

- Như vậy biểu đồ usecase chi tiết cho chức năng đặt mua vé trực tuyến được trình bày trong hình trên. Các usecase được mơ tả như sau:

+ Tìm kiếm phim: cho phép khách hàng tìm kiếm phim chiếu theo ngày chiếu, giờ chiếu, tên phim.

+ Chọn phòng chiếu: cho phép khách hàng chọn phòng chiếu để tiến hành mua vé.

+ Chọn chỗ ngồi: cho phép khách hàng chọn chỗ ngồi để tiến hành mua vé.

+ Thanh toán: cho phép khách hàng áp dụng phần q, tích điểm thưởng và thanh tốn các vé đã chọn.

1. Khách hàng Trần Minh C truy cập vào hệ thống.

2. Giao diện chính của hệ thống hiện ra có ít nhất 1 chức năng

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

8. Giao diện lựa chọn suất chiếu hiện ra có:

- Danh sách lựa chọn lịch chiếu tính từ ngày hiện tại.(đang chọn lịch đầu tiên ngày 24/09/2023 20:00)

- Danh sách phim có lịch chiếu 24/09/2023, khung giờ = 20:00 (đang chọn phim đầu tiên)

<b><small>phim phim </small><sup>Tên</sup><sup>Đạo diễn </sup><sup>Thời lượng </sup></b>

<small>MV01 Oppenheimer Chirstopher Nolan 180 phút MV02 Joker Todd Phillips 121 phút MV03 The Usual Suspect Bryan Singer 106 phút </small>

- Danh sách phịng chiếu có lịch chiếu và phim đang chọn

<b><small>Mã phòng Tên phòng Loại phòng Số ghế </small></b>

- Nút/ link next

9. Khách hàng chọn dịng đầu tiên với thơng tin mã phịng = R01, tên phòng = 101, loại phòng = 2D, click next

10.Giao diện chọn vị trí ngồi hiện ra với thông tin:

- Thông tin xuất chiếu vừa chọn bao gồm: mã phim = MV01, tên phim = Oppenheimer, đạo diễn = Christopher Nolan, thời lượng = 180 phút, ngày chiếu = 24/09/2023, giờ chiếu = 20:00 - Thơng tin phịng vừa chọn: mã phịng = R01, tên phịng =

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

11.Khách hàng tích chọn 1 chỗ ngồi có vị trí D5 và click mua

- Nút/link thanh toán

13.Khách hàng click thanh toán

14.Giao diện hiển thị chi tiết về số tài khoản ngân hàng hiện

15.Khách hàng thực hiện thanh tốn

16.Hệ thống thơng báo thanh tốn thành cơng 17.Khách hàng click ok của thơng báo

18.Hệ thống trở lại giao diện chính của khách hàng.

<b>2. Phân tích UC </b>

<b>a. Phân tích lớp module </b>

Bước 1: Giao diện trang chủ => Đề xuất Class Homeview, cần có subLogin.

inpUsername, inpPassword, subLogin

+ input: username, password (Member) + output: boolean

+ Gán cho Class Member

ClientHomeView cần có: subBookingTicket, outUsername, outFullname, outEmail

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

SearchShowTimeView, cần có outInpTimeSlot, outInpFilm, outSubRoom

=> đề xuất phương thức getShowTimeFromCurrentDate() + input: date

+ output: TimeSlot[] + Gán cho Class TimeSlot

có lịch chiếu vừa chọn => đề xuất phương thức getFilmHaveTimeSlot()

+ input: TimeSlot + output: Film[] + Gán cho Class Film

tin Room => đề xuất phương thức getShowTimeWithRoom() + input: timeSlot, Film (ShowTime)

+ output: ShowTime[] + Gán cho Class ShowTime

ngồi => đề xuất Class SelectSeatView, cần có outInpAvailableSeat, outBookedSeat, subBooking, subBack

đề xuất phương thức getAvailableSeat() + input: ShowTime

+ output: Seat[] + Gán cho Class Seat

xuất phương thức getBookedSeat() + input: ShowTime

+ output: Seat[] + Gán cho Class Seat

xuất Class PaymentView: outListTicket, subApplyGift, outGift, outTotalBonusPoint, subCancel, subPayment.

outSubGiftOfClient

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

dụng phù hợp với vé, hóa đơn của khách hàng => Đề xuất phương thức getGiftOfClient()

+ input: clientID, Bill (Bill) + output: RedemptionGift[] + Gán cho Class RedemptionGift

DetailPayment: outBank, outBankNumber, outTotal

xuất phương thức saveBill()

4. Class HomeView gọi Class LoginView 5. Class LoginView hiển thị cho khách hàng

6. Khách hàng nhập username, password, click login 7. Class LoginView gọi Class Member

8. Class Member gọi phương thức login()

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

9. Class Member trả kết quả cho Class LoginView 10. Class LoginView gọi Class ClientHomeView 11. Class ClientHomeView hiển thị cho người dùng 12. Khách hàng click bookingTicket

13. Class ClientHomeView gọi Class SearchShowTimeView 14. Class SearchShowTimeView gọi Class TimeSlot

15. Class TimeSlot gọi phương thức getTimeSlotFromCurrentDate() 16. Class TimeSlot trả kết quả cho Class SearchShowTimeView 17. Class SearchShowTimeView gọi Class Film

18. Class Film gọi phương thức getFilmHaveTimeSlot() 19. Class Film trả kết quả cho Class SearchShowTimeView 20. Class SearchShowTimeView gọi Class ShowTime

21. Class ShowTime gọi phương thức getShowTimeWithRoom() 22. Class ShowTime trả kết quả cho Class SearchShowTimeView 23. Class SearchShowTimeView hiển thị cho khách hàng

24. Khách hàng chọn 1 ShowTime, click next

25. Class SearchShowTimeView gọi Class SelectSeatView 26. Class SelectSeatView gọi Class Seat

27. Class Seat gọi phương thức getAvailableSeat() 28. Class Seat trả kết quả cho Class SelectSeatView 29. Class SelectSeatView gọi Class Seat

30. Class Seat gọi phương thức getBookedSeat() 31. Class Seat trả kết quả cho Class SelectSeatView 32. Class SelectSeatView hiển thị cho khách hàng 33. Khách hàng chọn 1 seat và click booking 34. Class SelectSeatView gọi ClassPaymentView 35. Class PaymentView hiển thị cho khách hàng 36. Khách hàng click payment

37. Class PaymentView gọi Class DetailPaymentView 38. Class DetailPaymentView hiển thị cho khách hàng 39. Khách hàng thanh toán

40. Class DetailPaymentView gọi Class Bill 41. Class Bill gọi phương thức saveBill()

42. Class Bill trả kết quả cho Class DetailPaymentView 43. Class DetailPaymentView hiển thị thông báo thành công.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b>3. Thiết kế UC </b>

<b>a. Thiết kế giao diện và đề xuất các lớp (giao diện, lớp truy xuất dữ liệu) Bước 1: Thiết kế giao diện </b>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

● <b>Bước 2: Đề xuất các lớp giao diện tương ứng </b>

- Tầng giao diện có các trang jsp: HomeView.jsp, LoginView.jsp, doLogin.jsp, ClientHomeView.jsp, preSearch.jsp,

SearchShowTimeView.jsp, SelectSeatView.jsp, DetailPaymentView.jsp, ApplyGiftView.jsp, doSaveBill.jsp

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

● <b>Bước 3: Đề xuất các lớp truy xuất dữ liệu DAO. </b>

- Tầng thao tác dữ liệu bao gồm: DAO, MemberDAO, FilmDAO, TimeSlotDAO, ShowTimeDAO, SeatDAO, RedemptionGiftDAO,

+ Gán cho Class MemberDAO

- Tại trang preSearch.jsp cần lấy danh sách các TimeSlot tính từ ngày giờ hiện tại

=> đề xuất hàm getTimeSlotFromCurrentDate() + input: date, time(Date)

+ output: List<TimeSlot>

+ Gán cho Class TimeSlotDAO

- Tại trang preSearch.jsp cần lấy danh sách các Film của một TimeSlot => đề xuất hàm getFilmHaveTimeSlot()

+ input: TimeSlot + output: List<Film>

+ Gán cho Class FilmDAO

- Tại trang preSearch.jsp cần lấy danh sách các ShowTime bao gồm cả thông tin Room của một TimeSlot và một Film

=> đề xuất hàm getShowTimeWithRoom() + input: TimeSlot, Film

+ output: List<ShowTime>

+ Gán cho Class ShowTimeDAO

- Tại trang SelectSeatView.jsp cần lấy danh sách các Seat còn của một ShowTime

=> đề xuất hàm getAvailableSeat() + input: ShowTime

+ output: List<Seat>

+ Gán cho Class SeatDAO

- Tại trang SelectSeatView.jsp cần lấy danh sách các Seat đã được đặt của một ShowTime

=> đề xuất hàm getBookedSeat() + input: ShowTime

+ output: List<Seat>

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

+ Gán cho Class SeatDAO

- Tại trang ApplyGiftView.jsp cần lấy danh sách các RedemptionGift của khách hàng

=> đề xuất hàm getGiftOfClient() + input: Bill

+ output: List<RedemptionGift>

+ Gán cho Class RedemptionGiftDAO

- Tại trang doSaveBill.jsp cần kiểm tra và lưu thông tin Bill => đề xuất hàm saveBill()

+ input: Bill + output: boolean

+ Gán cho Class BillDAO

● <b>Bước 4: Bổ sung các lớp thực thể liên quan </b>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<b>b. Thiết kế động: kịch bản UC cuối và biểu đồ tuần tự cho từng modul.</b>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

5. Trang LoginView.jsp hiển thị cho khách hàng

getTimeSlotFromCurrentDate()

setFilm(), setTimeSlot()

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

40. Class ShowTime trả lại kết quả cho Class ShowTimeDAO

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

77. Khách hàng click ok

<b>II. Sinh viên Nguyễn Văn Tú – UC : </b>

<b>Khách hàng đổi điểm thưởng lấy quà tặng/vé.</b>

<b>1.Đặc tả UC.</b>

<b>a.Hoạt động nghiệp vụ của UC:</b>

Khách hàng vào hệ thống => Giao diện trang chủ hiện ra: có 1 chức năng đăng nhập.

- Khách hàng click đăng nhập => Giao diện đăng nhập hiện ra có ơ nhập username, password và nút login.

- Khách hàng nhập username, password và click login.

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

+ Nếu đăng nhập sai => Hệ thống thông báo sai username hoặc password => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện đăng nhập chứa thông tin cũ.

+ Nếu đăng nhập đúng => Giao diện chính của khách hàng hiện ra: có chức năng đổi điểm thưởng.

- Khách hàng click đổi điểm thưởng => Giao diện lựa chọn phần quà hiện ra với thơng tin:

+ Điểm thưởng hiện có của khách hàng.

+ Bảng danh sách các quà tặng. Mỗi quà tặng tương ứng với một dịng có các thơng tin mã, tên, điều kiện áp dụng, số điểm cần để đổi.

- Khách hàng click vào đổi quà trên một dịng:

+ Nếu tổng điểm thưởng của khách hàng đang có nhỏ hơn tổng số điểm thưởng cần để đổi quà => Hệ thống thông báo không đủ điều kiện đổi quà => Khách hàng click ok của thông báo => Hệ thống trở lại giao diện đổi quà.

+ Nếu tổng điểm thưởng của khách hàng đang có lớn hơn hoặc bằng tổng số điểm thưởng cần để đổi quà => Hệ thống thông báo thành công và lưu thông tin phần quà vào cơ sở dữ liệu => Khách hàng click ok của thông báo thành công => Hệ thống trở về giao diện đổi quà.

<b>b. Biểu đồ UC chi tiết: </b>

<i><b>Use chi tiết của chức năng </b></i>

<b>Khách hàng đổi điểm thưởng lấy quà tặng/vé.</b>

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

Ch ức năng đổi điểm thưởng có các giao diện tương tác với khách hàng:

+ Đăng nhập => Đề xuất usecase đăng nhập

+ Chọn phần quà => Đề xuất usecase chọn phần quà

- Chọn phần quà là bắt buộc mới hoàn thành được việc đổi điểm thưởng nên usecase đổi điểm thưởng include usecase này.

- Như vậy biểu đồ usecase chi tiết cho chức năng đổi điểm thưởng được trình bày trong hình trên.

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="40">

Main event 1. Khách hàng Trần Minh C truy cập vào hệ thống. 2. Giao diện đăng nhập hiện lên có

5. Khách hàng click đổi quà

6. Giao diện đổi quà hiện lên có thơng tin:

- Thơng tin khách hàng: username = nvt123, họ và tên = C, email =

, số điện thoại = 0393333333, địa chỉ = Hà Nội, tổng

<small>GF04 1 bỏng ngơ 80000 Hóa đơn5 [Text Box]</small> - Danh sách quà đang chọn(hiện trống)

<small>Mã quà Tên quàLoại quà Điều kiện</small>

</div>

×