Tải bản đầy đủ (.pdf) (23 trang)

BÁO CÁO MÔN HỌC ĐỀ TÀI: LẬP TRÌNH MOBILE ĐỀ TÀI : ỨNG DỤNG XEM 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 (551.16 KB, 23 trang )

lOMoARcPSD|18034504

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MƠN HỌC
ĐỀ TÀI:

LẬP TRÌNH MOBILE
ĐỀ TÀI : ỨNG DỤNG XEM PHIM
Sinh viên thực hiện

: LÊ QUANG VINH
: BÙI TIẾN DŨNG

Giảng viên hướng dẫn : PHƯƠNG VĂN CẢNH
Ngành

: CÔNG NGHỆ THÔNG TIN

Chun ngành

: CƠNG NGHỆ PHẦN MỀM

Lớp

: D14CNPM2

Khóa

: 2019-2023


Hà Nội, tháng 12 năm 2021


lOMoARcPSD|18034504

Sinh viên thực hiện:

ST
T

Họ và tên

Nội dung thực hiện

Điểm

Chữ ký

1

2

3

Gíao viên chấấm điểm:
Họ và tên

Chữ ký

Ghi chú


Giáo viên 1:

Giáo viên 2:

LỜI NĨI ĐẦU
Lập trình đối tượng phân tán là một vấn đề nóng bỏng của cơng nghệ phân tán phần
mềm ngày này. Java là ngôn ngữ đi tiên phong với RMI (Remote Method Invocation),
một kỹ thuật cài đặt các đối tượng phân tán vô cùng hiệu vô cùng hiệu quả và linh
động. Do đó, chúng em đã chọn đề tài "Xây dựng ứng dụng mô phỏng việc đặt vé xem
phim cho các rạp chiếu phim” để giúp việc quản lý rạp phim này một cách hiệu quả.
Về mặt lý thuyết, các phần sẽ được trình bày gồm:
Chương 1: Tổng quan về đề tài
Chương 2: Cơ sở lý thuyết


lOMoARcPSD|18034504

Chương 3: Xây dựng ứng dụng mô phỏng việc đặt vé xem phim cho các rạp
chiếu phim
Chương 4: Kết luận, hướng phát triển.
Về mặt thực tiễn, khi thực hiện, đề tài giúp cho chúng em có thêm kiến thức về lập
trình Java, hiểu được cách thức vận hành của một ứng dụng di động cơ bản là như thế
nào. Điều này góp phần nâng cao kiến thức của chúng em khi viết một ứng dụng RMI
tiếp theo.
Mặc dù, chúng em đã cố gắng trong quá trình thực hiện nhưng chắc chắn sẽ cịn một
vài thiếu sót và hạn chế. Rất mong được sự đóng góp ý kiến quý báu của quý Thầy
Phương Cảnh và các bạn.



lOMoARcPSD|18034504

MỤC LỤC
LỜI CẢM ƠN................................................................................................................1
LỜI NÓI ĐẦU................................................................................................................ 2
MỤC LỤC...................................................................................................................... 3
DANH MỤC HÌNH VẼ.................................................................................................5
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI...........................................................................7
1.1. Mục đích nghiên cứu............................................................................................7
1.2. Nhiệm vụ nghiên cứu...........................................................................................8
1.3. Phương pháp nghiên cứu......................................................................................8
Chương 2: CƠ SỞ LÝ THUYẾT...................................................................................9
2.1. JAVA.................................................................................................................... 9
2.1.1. Tổng quan về Java.........................................................................................9
2.1.2. Tại sao lại sử dụng Java?..............................................................................10
2.2. Tổng quan về RMI..............................................................................................11
2.2.1. Tổng quan về RMI.......................................................................................11
2.2.2. RMI là gì?....................................................................................................11
2.3. RMI làm việc như thế nào?................................................................................11
2.4. Kiến trúc của chương trình RMI........................................................................13
2.5. Các cơ chế liên quan trong một ứng dụng RMI..................................................14
2.6. Cơ chế thực thi của một ứng dụng RMI.............................................................15
Chương 3: XÂY DỰNG ỨNG DỤNG MÔ PHỎNG VIỆC ĐẶT VÉ XEM PHIM
CHO CÁC RẠP CHIẾU PHIM....................................................................................16
3.1. Phân tích thiết kế hệ thống.................................................................................16
3.1.1. Mô tả ứng dụng............................................................................................16
3.1.2. Sơ đồ ERD...................................................................................................17


lOMoARcPSD|18034504


3.1.3. Sơ đồ cơ sở dữ liệu.......................................................................................17
3.4. Giao diện ứng dụng............................................................................................18
3.4.1. Giao diện “Server”.......................................................................................18
3.3.2. Giao diện “Client”........................................................................................18
Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN...................................................25
4.1. Kết luận..............................................................................................................25
4.1.1. Đã đạt được..................................................................................................25
4.1.2. Hạn chế........................................................................................................25
4.2. Kiến nghị............................................................................................................25
4.2.1. Định hướng phát triển..................................................................................25
4.2.2. Định hướng mở rộng và cải tiến hệ thống....................................................26
TÀI LIỆU THAM KHẢO............................................................................................27


lOMoARcPSD|18034504

DANH MỤC HÌNH VẼ
Số hiệu
hình vẽ

Tên hình vẽ

Trang

2.1

Lời triệu gọi phương thức từ xa được thi hành trên máy ảo
Java ở xa


11

2.2

Nhiều dịch vụ đăng ký với một bộ đăng ký

12

2.3

Đối tượng stub gọi đối tượng skeleton

12

2.4

Kiến trúc chương trình kiểu RMI

13

2.5

Vai trị của dịch vụ ánh xạ tên

14

2.6

Tiến trình thực thi của ứng dụng RMI


15

3.1

Sơ đồ ERD

17

3.2

Sơ đồ cơ sở dữ liệu

17

3.3

Giao diện đăng nhập admin

18

3.4

Giao diện quản lý vé xem phim

18

3.5

Giao diện đăng nhập người dùng


19

3.6

Cập nhật thông tin cá nhân

19

3.7

Giao diện quên mật khẩu

20

3.8

Giao diện quản lý vé xem phim

20

3.9

Chọn phim

21

3.10

Đặt vé


21

3.11

Chọn rạp

22


lOMoARcPSD|18034504

3.12

Chọn giờ xem

22

3.13

Chọn ghế

23

3.14

Thanh toán vé

23

3.15


Vé đã mua

24


lOMoARcPSD|18034504

Chương 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Mục đích nghiên cứu
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một
trong những yếu tố mang tính quyết định trong hoạt động của chính phủ, tổ chức cũng
như các cơng ty, nó đóng vai trị hết sức quan trọng, có thể tạo ra những bước đột phá
mạnh mẽ.
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử,
cơng nghệ thơng tin cũng được những cơng nghệ có đẳng cấp cao và lần lượt chinh
phục hết đỉnh cao này đến đỉnh cao khác. Mạng Internet là một trong những sản phẩm
có giá trị hết sức lớn lao và ngày càng trở nên một cơng cụ khơng thể thiếu, là nền
tảng chính cho sự truyền tải, trao đổi thơng tin trên tồn cầu.
Giờ đây, công việc quản lý, tổ chức và đặt vé ở rạp chiếu phim là vấn đề đang
được quan tâm. Người quản lý ln gặp khó khăn trong q trình hoạt động của từng
bộ phận như phim, lịch chiếu và các trang thiết bị và đặc biệt là quá trình mua bán vé.
Khi muốn mua vé xem phim, người mua phải đến tận rạp, chờ đợi xếp hàng, xem cịn
vé hay khơng, cịn chỗ ngồi tốt hay khơng, có bộ phim mình thích hay khơng v.v… rất
thụ động và phiền tối và tốn thời gian. Bởi đó, những ứng dụng RMI giúp người học
rất ưa chuộng và được sử dụng phổ biến vì tính tiện lợi và dể quản lý của nó.
Giúp tiết kiệm chi phí phát triển về sau cho đơn vị phát triển phần mềm triển
khai phần mềm. Nâng cao khả năng tư duy lập trình, bắt kịp xu hướng cơng nghệ mới.
Vì lẽ đó, chúng em đã thực hiện đề tài "Xây dựng ứng dụng mô phỏng việc đặt
vé xem phim cho các rạp chiếu phim". Chúng em sẽ viết một ứng dụng mà ở đó người

quản lý có thể tạo ra nhiều tiêu đề phim cùng với thông tin phim và cho phép khách
hàng thực hiện các giao dịch, phía khách hàng có thể đặt vé, mua vé, xem phim và trả
vé theo yêu cầu. Chúng em thực hiện đề tài này với mục đích học tập là chính và ứng
dụng của chúng em xây dựng một phần giúp việc quản lý rạp phim một cách tiện lợi
và nhanh chóng hơn.


lOMoARcPSD|18034504

1.2. Nhiệm vụ nghiên cứu
So với những phương thức khác, ứng dụng quản lý việc đặt vé mang lại hiệu
quả tương đối cao và tiết kiệm được chi phí. Hơn thế nữa, với việc kết nối cơ sở dữ
liệu MySQL thì việc lưu trữ thơng tin một nhanh chóng và tiện lợi hơn.
Biết được nhu cầu đó, bản thân của chúng em là những sinh viên công nghệ
thông tin luôn thơi thúc bản thân mình phải làm gì đó. Cho nên chúng em đã xây dựng
nên một ứng dụng, một hệ thống đơn giản, thân thiện, dễ sử dụng, cho phép người
dùng truy cập một cách nhanh chóng.
1.3. Phương pháp nghiên cứu
Cách tiếp cận: Nghiên cứu các bài giảng trên lớp kết hợp với việc học hỏi qua một số
tài liệu của NXB Giáo Dục.
Sử dụng các phương pháp nghiên cứu:
-

Phương pháp đọc tài liệu.

-

Phương pháp phân tích mẫu.

-


Phương pháp thực nghiệm


lOMoARcPSD|18034504

Chương 2: CƠ SỞ LÝ THUYẾT
2.1. JAVA
2.1.1. Tổng quan về Java
Ngơn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do James
Gosling khởi xướng và phát hành vào năm 1995 (Java 1.0 [J2SE]). Tính đến thời điểm
này (tháng 2/2015) phiên bản mới nhất của Java Standard Edition (JSE) là 8. Với ưu
thế về đa nền tảng (multi platform) Java càng lúc càng được ứng dụng rộng rãi trên
nhiều thiết bị từ máy tính đến mobile và nhiều thiết bị phần cứng khác...
Java là ngơn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các
ngơn ngữ hướng đối tượng:
 Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính,
các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan
với ứng dụng đang phát triển.
 Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khác
nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một
phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa
đến những kết quả khác nhau. Bản chất của sự việc chính là phương thức này
bao gồm cùng một số lượng các tham số.
 Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở
rộng các đặc tính sẵn có mà khơng phải tiến hành định nghĩa lại.
 Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chi
tiết của một đối tượng đối với người sử dụng đối tượng ấy.
Bên cạnh đó Java cịn có một số đặc tính khác:
 Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngơn ngữ

lập trình khác như C và C ++, khi Java được biên dịch, nó khơng được biên
dịch sang mã máy cụ thể, mà thay vào đó là mã bytecode chạy trên máy ảo
Java (JVM). Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ
có thể thực thi được các chương trình Java.


lOMoARcPSD|18034504

 Đơn giản: học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với các
ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn. Java trở
nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán con
trỏ từ C/C++.
 Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật tốn mã hóa như mã hóa một
chiều (one way hashing) hoặc mã hóa cơng cộng (public key) ...
 Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thi
nhiều task cùng một lúc. Tính năng này thường được sử dụng rất nhiều trong
lập trình game.
 Hiệu suất cao nhờ vào trình thu gom rác (garbage collection), giải phóng bộ
nhớ đối với các đối tượng khơng được dùng đến.
 Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích
ứng với nhiều môi trường phát triển.
2.1.2. Tại sao lại sử dụng Java?
Ngơn ngữ Java có cú pháp rất giống với ngơn ngữ C/C++ (là một ngôn ngữ rất
mạnh được dùng phổ biến hiện nay), tuy nhiên nó đã được thay đổi khá nhiều để đáp
ứng khả năng độc lập với hệ điều hành. Nền tảng của ngôn ngữ Java là các class. Các
class đóng vai trị như những đối tượng, người lập trình khi xây dựng ứng dụng sẽ sử
dụng một số class chuẩn của hệ thống, đồng thời có thể tự mình xây dựng class khác
đáp ứng u cầu cơng việc.
Java là ngơn ngữ dễ học, nó lược bớt những lệnh thừa và rườm rà của C/C++
để người lập trình chú trọng vào việc viết chương trình. Đồng thời, nó cịn hạn chế

người lập trình khơng can thiệp q sâu vào hệ thống.
Có một điểm mạnh của Java là Java có độ bảo mật cao. Một điểm nữa là Java
là miễn phí, các cơng cụ lập trình của Java thường rất nhiều, các cộng đồng Java thì
rất lớn, tạo ra được các plugin, các mã nguồn mở rất phong phú cho bạn sử dụng.
2.2. Tổng quan về RMI
2.2.1. Tổng quan về RMI


lOMoARcPSD|18034504

RMI (Remote Method Invocation) là một công nghệ của các hệ thống phân tán nó cho
phép một máy ảo Java (JVM) gọi những phương thức của đối tượng nằm trên máy ảo
Java khác ở trong cùng một mạng.
2.2.2. RMI là gì?
RMI là một cơng nghệ Java cho phép một JVM giao tiếp với một JVM khác và thi
hành các phương thức của đối tượng nằm trên JVM đó.

Hình 2.1. Lời triệu gọi phương thức từ xa được thi hành trên máy ảo Java ở xa
2.3. RMI làm việc như thế nào?
Các hệ thống sử dụng RMI cho việc truyền thông tiêu biểu được phân thành 2
loại: Clients và Servers. Server cung cấp dịch vụ RMI, và Client gọi các phương thức
do Server cung cấp. RMI Server phải đăng ký một dịch vụ tìm kiếm, cho phép các
Client tìm thấy thơng tin Server cung cấp, hoặc chúng có thể tham chiếu tới dịch vụ
khác.
Một ứng dụng chạy nền cho RMI có tên là rmiregistry. Ứng dụng này chạy và
xử lý độc lập với các chương trình RMI, nó cho phép các đối tượng trên Server đăng
ký tên của mình. Mỗi lần một đối tượng được đăng ký xong, nó sẽ đợi sau đó thực
hiện lời gọi từ phía Client.



lOMoARcPSD|18034504

Hình 2.2. Nhiều dịch vụ đăng ký với một bộ đăng ký
Các đối tượng trên Client sẽ gửi những thông điệp tới những phương thức ở xa.
Trước khi một phương thức ở xa được thực thi Client phải có tham chiếu của nó trên
Server. Điều đó được thực hiện bởi dịch vụ tìm kiếm trong bộ đăng ký RMI.
Đối tượng trên Client yêu cầu một tên dịch vụ, và sẽ nhận được một URL. Nên
nhớ những URL không phải cho HTTP, hầu hết các giao thức có thể đại diện sử dụng
cú pháp của URL. Định dạng được sử dụng bởi RMI để đại diện cho một đối tượng
tham chiếu từ xa như sau: rmi://hostname:port/servicename
Trong đó hostname tên của của Server hoặc địa chỉ IP của Server, port số hiệu
cổng cung cấp dịch vụ, servicename là một chuỗi mô tả dịch vụ. Những thông tin chi
tiết của hoạt động mạng thì ln trong suốt với người phát triển ứng dụng khi làm việc
với các đối tượng ở xa, việc đó trở nên đơn giản như khi làm việc với đối tượng tại
máy cục bộ. Điều này được thực hiện nhờ một phép chia thông minh của hệ thống
RMI thành hai thành phần, một là stub và một là skeleton.

Hình 2.3. Đối tượng stub gọi đối tượng skeleton.
Tại RMI Server, đối tượng skeleton có nhiệm vụ lắng nghe những yêu cầu và
chuyển các yêu cầu đó tới dịch vụ RMI. Sau khi người phát triển tạo ra một giao diện


lOMoARcPSD|18034504

RMI, người đó cịn phải định nghĩa cụ thể giao diện đó. Đối tượng được định nghĩa
này sẽ được gọi là đối tượng skeleton.
2.4. Kiến trúc của chương trình RMI
Kiến trúc của một chương trình theo cơ chế RMI được mơ tả như hình sau:

Hình 2.4. Kiến trúc chương trình kiểu RMI

Trong đó:
+ Server là chương trình cung cấp các đối tượng có thể được gọi từ xa.
+ Client là chương trình có tham chiếu đến các phương thức của các đối tượng ở xa
trên Server.
+ Stub chứa các tham chiếu đến các phương thức ở xa trên Server.
+ Skeleton đón nhận các tham chiếu từ Stub để kích hoạt phương thức tương ứng trên
Server.
+ Remote Reference Layer là hệ thống truyền thông của RMI.
+ Transport là tầng giao vận được dựa trên giao thức TCP/IP giữa các máy trong
mạng. Bằng cách sử dụng kiến trúc phân tầng như trên mà mỗi tầng có thể phân cấp
hoặc thay thế mà khơng ảnh hưởng tới các tầng cịn lại của hệ thống.
2.5. Các cơ chế liên quan trong một ứng dụng RMI
Trong một ứng dụng phân tán cần có các cơ chế sau:


lOMoARcPSD|18034504

+ Cơ chế định vị đối tượng ở xa (Locate remote objects)
+ Cơ chế giao tiếp với các đối tượng ở xa (Communicate with remote objects)
+ Tải các lớp danh bytecodes cho các lớp mà nó được chuyển tải qua lại giữa máy ảo
(Load class bytecodes for objects that are passed around)

Hình 2.5. Vai trị của dịch vụ ánh xạ tên
Trong đó:
+ Server đăng ký tên cho đối tượng có thể được gọi từ xa của mình với dịch vụ
ánh xạ tên (Registry Server).
+ Client tìm đối tượng ở xa thông qua tên đã đăng ký trên Registry Server
(looks up) và tiếp đó gọi các phương thức ở xa.
+ Hình 2.5 cũng cho thấy cách thức mà hệ thống RMI sử dụng một Web Server
sẵn có để truyền tải mã bytecodes của các lớp qua lại giữa Client và Server.

2.6. Cơ chế thực thi của một ứng dụng RMI
Tiến trình thực thi của một ứng dụng RMI diễn ra như sau:

Downloaded by vu ga ()


lOMoARcPSD|18034504

Hình 2.6. Tiến trình thực thi của ứng dụng RMI
+ Bước 1: Server tạo các đối tượng cho phép gọi từ xa cùng với Stub và
Skeleton của chúng.
+ Bước 2: Server sử dụng lớp Naming để đăng ký tên cho một đối tượng từ xa
(1).
+ Bước 3: Naming đăng ký Stub của đối tượng từ xa với Registry Server (2).
+ Bước 4: Registry Server sẵn sàng cung cấp tham chiếu đến đối tượng từ xa
khi có yêu cầu (3).
+ Client yêu cầu Naming định vị đối tượng ở xa thông qua tên đã được đăng ký
(phương thức lookup) với dịch vụ tên (4).
+ Naming tải Stub của đối tượng ở xa từ dịch vụ tên mà đối tượng đã đăng ký
về Client (5).
+ Cài đặt đối tượng Stub và trả về tham chiếu đối tượng ở xa cho Client (6).
+ Client thực thi một lời gọi phương thức ở xa thông qua đối tượng Stub (7).

Downloaded by vu ga ()


lOMoARcPSD|18034504

Chương 3: XÂY DỰNG ỨNG DỤNG MÔ PHỎNG VIỆC ĐẶT VÉ XEM PHIM
CHO CÁC RẠP CHIẾU PHIM

3.1. Phân tích thiết kế hệ thống
3.1.1. Mô tả ứng dụng
Định các tác nhân sử dụng website như sau:
 Admin: Người quản lý hệ thống, bao gồm quản lí rạp chiếu phim, phịng chiếu,
ghế ngồi, phim, lịch chiếu phim.
 Khách Hàng: Người sử dụng phần mềm để đặt vé xem phim.
Dựa vào các tác nhân trên, website của chúng tơi gồm có 2 module chính:
1 module dành cho người quản lý, 1 module dành cho khách hàng.
 Module dành admin:
 Hiển thị danh sách rạp phim.
 Hiển thị danh sách phòng chiếu phim theo từng rạp.
 Hiển thị vị trí ghế ngồi.
 Hiển thị danh sách phim, thông tin chi tiết của phim.
 Hiển thị lịch chiếu phim theo từng phim
 Lưu vé đã đặt và hiển thị danh sách vé theo từng người dùng.
 Module dành cho khách hàng:
 Xem thông tin phim và chọn phim.
 Chọn rạp chiếu phim và lịch chiếu.
 Chọn ghế ngồi.
 Đặt vé xem phim và xem vé đã đặt.
 Quản lý thông tin cá nhân.

Downloaded by vu ga ()


lOMoARcPSD|18034504

3.1.2. Sơ đồ ERD

Hình 3.1 Sơ đồ ERD


3.1.3. Sơ đồ cơ sở dữ liệu

Hình 3.2 Sơ đồ cơ sở dữ liệu

Downloaded by vu ga ()


lOMoARcPSD|18034504

3.4. Giao diện ứng dụng

3.4.1. Giao diện “Server”

3.3.2. Giao diện “Client”

Downloaded by vu ga ()


lOMoARcPSD|18034504

Downloaded by vu ga ()



×