1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo đồ án đấu trường 100

33 1K 4
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Trang Web Đấu Trường 100
Tác giả Phạm Xuân Y, Trần Thanh Nam, Bùi Nguyễn Mạnh Tuấn, Nguyễn Ngọc Quý
Người hướng dẫn PTs. Nguyễn Quang Minh
Trường học Đại Học Công Nghệ Thông Tin, Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ thuật Phần Mềm
Thể loại Báo cáo đồ án lập trình ứng dụng mạng
Năm xuất bản 2014
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 33
Dung lượng 5,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Báo cáo đồ án Website Đấu trường 100. Được phát triển bởi một nhóm thuộc khoa Mạng máy tính và truyền thông Trường ĐH Công nghệ Thông tin TP.HCM Hi vong sẽ giúp ích nhiều cho các bạn Đấu trường 100 là game show truyền hình rất nổi tiếng cả trong lẫn ngoài nước. Tuy nhiên, không phải ai cũng may mắn có cơ hội ngồi trên chiếc ghế nóng của chương trình. Xuất phát từ thực tế đó, nhóm chúng tôi chọn đề tài “Xây dựng trang web đấu trường 100” để tất cả những ai yêu thích và mong muốn thử sức với các câu hỏi đều có thể tham gia.

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 3

MỤC LỤC

I GIỚI THIỆU 5

1 Lý do chọn đề tài 5

2 Mục đích của đề tài 5

3 Đối tượng và phạm vi nghiên cứu 5

II CÁC KIẾN THỨC ỨNG DỤNG 5

1 Mô hình MVC 5

a Lịch sử 5

b Tổng quan 6

c Cơ chế thực hiện 6

2 Java Servlet 8

3 JSP & HTML 8

4 Cơ sở dữ liệu MySQL trên PHP MyAdmin 10

III GIỚI THIỆU WEBSITE ĐẤU TRƯỜNG 100 11

IV MÔ HÌNH CHỨC NĂNG VÀ XỬ LÍ 14

1 Cấu trúc chương trình sử dụng mô hình MVC 14

a Người chơi chính 14

b Người chơi phụ 14

c MC 15

d Khán giản 15

2 Hoạt động chương trình 15

a Xử lí Đăng ký 15

b Xử lí Đăng nhập 16

c Xử lí Câu hỏi 18

d Xử lí Đồng bộ thời gian 22

e Xử lí Trợ giúp 22

3 Hướng dẫn sử dụng 23

V ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 23

1 Đánh giá 23

a Ưu điểm 23

Trang 4

b Khuyết điểm 23

2 Hướng phát triển 23

VI TÀI LIỆU THAM KHẢO 24

Trang 5

I GIỚI THIỆU

1 Lý do chọn đề tài

Đấu trường 100 là game show truyền hình rất nổi tiếng cả trong lẫn ngoài nước Tuy nhiên, không phải ai cũng may mắn có cơ hội ngồi trên chiếc ghế nóng của chương trình Xuất phát từ thực tế đó, nhóm chúng tôi chọn đề tài “Xây dựng trang web đấu trường 100” để tất cả những ai yêu thích và mong muốn thử sức với các câu hỏi đều cóthể tham gia

3 Đối tượng và phạm vi nghiên cứu

Nhóm đã cố gắng đưa ra những tính năng website gần gũi và giống với game show trên truyền hình nhất

đề phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm

Vì vậy sau đó, lần lượt cái MVC framework ra đời dựa trên mô hình MVC như : Zend, Spring, Hibernate…

Trang 6

b Tổng quan

Models

 Chứa data mà ứng dụng sử dụng

 Nhận yêu cầu từ Views

 Thực hiên các yêu cầu liên quan

đến DB

 Trả về các giá trị tính toán cho Views

 Kiểm tra tính hợp lệ của data

Views

 Hiển thị giao diện người dùng

 Được tạo ra từ dữ liệu của Models

Controllers

 Xử lý các yêu cầu của user

 Chọn Views thích hợp hiển thị cho người dùng

 Đồng bộ hóa giữa khung nhìn và mô hình

 Model thực hiện xử lý, kết nối dữ liệu vật lý dưới DBMS (nếu có) và trả kết quả trả về cho Controller

Trang 7

 Kết quả xử lý được chuyển vào Servlet – Controller, Servlet Controller thực hiện tạo hay lựa chọn View để từ đó đưa kết quả xử lý hay dữ liệu lấy từ Model để cập nhật lại trang kết quả View.

 Controller gửi View qua response cho người dùng để browser có thể trìnhbày dữ liệu trong Web Browser

a Ưu điểm và nhược điểm

Ưu điểm:

Phát triển phần mềm chuyên hóa, có thể chia công việc cho nhiều nhóm

chuyên môn khác nhau: nhóm thiết kê , nhóm lập trình, nhóm tổ chức DB… Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp

Bảo trì : với các lớp được phân chia, các thành phần của một hệ thống dễ

dàng thay đổi nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp kế nó chứ không ảnh hưởng đến cả hệ thống

Mở rộng : việc thêm chức năng cho từng lớp dễ dàng hơn là phân chia

theo cách khác

Trang 8

 Servlet là trung tâm của công nghệ Web trong Java Servlet thay thế cho các ứng dụng CGI truyền thống Muốn hiểu rõ về lập trình Web trong java trước hết nên tìm hiểu rõ cơ chế hoạt động của servlet

3 JSP & HTML

JSP (viết tắt của tiếng Anh JavaServer Pages) còn được biết đến với một

cái tên khác là Java Scripting Preprocessor - tạm dịch là "Bộ tiền xử lý văn

lệnh Java" - là một công nghệ Java cho phép các nhà phát triển tạo nội

dung HTML, XML hay một số định dạng khác của trang webmột cách năng

Trang 9

động, trong khi hồi âm yêu cầu của trình khách Công nghệ này cho phép

người ta nhúng mã Java và một số hành động xử lý đã được định trước

(pre-defined actions) vào trong nội dung tĩnh của trang.

Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành động

JSP Những "hành động JSP" này được dùng để khởi động chức năng sẵn

có, là những chức năng đã được xây dựng trước Cộng thêm vào đó, công

nghệ còn cho phép chúng ta tạo ra các thư viện thẻ JSP (JSP tag libraries),

là những cái đóng vai trò vào việc mở rộng các thẻ HTML hay XML tiêu

chuẩn Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của

một máy chủ web trong khi những mở rộng đó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như hệ điều hành được dùng)

Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch

thành Servlet, dùng bộ biên dịch JSP (JSP compiler) Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước, rồi biên dịch mã nguồn ra tập tin class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã byte

codecho servlet từ trang JSP.

a HTML : là các tag của ngôn ngự HTML có thể viết trực tiếp vào trang JSP Khi web server dịch, các tag này được gửi về client

b Các chỉ thị: là các dòng dung để định nghĩa các trang

Ví dụ : <% @page contentType=”text/html: charser=UTF-8” %> : d9iainh nghịa cho ngôn ngự của trang là Unicode

c Các tag chuẩn của ngôn ngữ JSP: là các tag mà JSP hỗ trợ

E2 : Các thẻ xuất <%= %>: nội dung của thẻ này sẽ được in ra trong trang JSP

E3 : Khai báo phương thức và biến bằng thẻ <%! %>: nội dung trong thẻ này là các biến hoặc phương thức được các phương thức này có thể sử dụng trực tiếp trong trang JSP

Trang 10

4 Cơ sở dữ liệu MySQL trên PHP MyAdmin

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng,

có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS

X, Unix, FreeBSD,NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS, phpMyAdmin là một công cụ nguồn mở miễn phí được viết

bằng PHP dự định để xử lý quản trị của MySQL thông qua một trình duyệt web Nó có thể thực hiện nhiều tác vụ như tạo, sửa đổi hoặc xóa

bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện báo cáo SQL; hoặc quản lý người dùng và cấp phép

Trang 11

III GIỚI THIỆU WEBSITE ĐẤU TRƯỜNG 100

Đấu trường 100 là một trò chơi truyền hình được sản theo bản quyền của C.Ty Endemol N.V, Hà Lan

Đây là trò chơi ghi kỷ lục “trò chơi truyền hình đầu tiên có số người tham dự trực tiếp đông nhất tại Việt Nam” Bước sang năm thứ 9 (năm 2005-2014),

Đấu trường 100 thay đổi diện mạo mới – phiên bản mới Và dưới đây là luật

chơi mới của phiên bản năm thứ 9 này

NCC được quyền ra về giữa chừng với số tiền thưởng đang có, tại bất kỳ thờiđiểm nào của game (sau khi có tiền thưởng của cấp độ 1)

Gay cấn và kịch tính hơn khi những người cùng chơi có cơ hội được chia tiềnthưởng từ NCC, sau khi NCC loại được 50 người cùng chơi

03 quyền hỗ trợ hoàn toàn mới lạ, hấp dẫn NCC dù dùng quyền hỗ trợ nhưngvẫn phải khôn khéo vận dụng các quyền hỗ trợ này để có thể tiếp tục với câuhỏi kế tiếp

Thang điểm thưởng theo 10 cấp độ giá trị tiền thưởng từ thấp đến cao Mỗi cấp

độ tiền thưởng tương đương 10 người cùng chơi (mỗi khi NCC loại lần lượt ítnhất 10 người cùng chơi thì giá trị tiền thưởng tăng lên cấp độ kế tiếp, tươngứng với giá trị tiền thưởng cao hơn)

Thang điểm thưởng dự kiến:

Trang 12

2 Luật chơi:

a) Cấp độ tiền thưởng 1:

Nếu NCC loại 9 người cùng chơi đầu tiên: tiền thưởng vẫn là 0

Nếu NCC loại từ 10 - 19 người cùng chơi đầu tiên: đã vượt đến cấp độ 1 vàđược 500.000 đồng tiền thưởng tương ứng của cấp độ 1

Sau khi có tiền thưởng của cấp độ 1 (500.000 đồng), NCC được dừng cuộcchơi tại bất cứ thời điểm nào của game, trước khi bắt đầu câu hỏi kế tiếp, và ra

về với số tiền thưởng đang có

3 Tương tác cao giữa người chơi chính và người cùng chơi:

Trang 13

Hoàn toàn khác biệt so với phiên bản cũ, Đấu trường 100 phiên bản 2014 sẽ có

sự tương tác cao giữa người chơi chính (NCC) và những người cùng chơi, thể

hiện qua luật chơi mới: ‘chia tiền từ NCC’.

Khi NCC loại được 50 người cùng chơi, luật ‘chia tiền’ sẽ được áp dụng Từthời điểm này, nếu NCC trả lời sai bất cứ câu hỏi nào, số tiền thưởng đang có

sẽ được chia đều cho những người cùng chơi có câu trả lời đúng

NCC cũng sẽ phải chọn lựa 1 trong 2:

+ Dừng cuộc chơi và ra về với số tiền thưởng đang có

+ Hoặc mạo hiểm chơi tiếp để có cơ hội nâng cao số tiền thưởng

Đây chính là điểm hào hứng và kịch tính nhất của game: Những người cùngchơi luôn phản đối NCC ra về giữa cuộc chơi (đồng nghĩa những người cùngchơi sẽ không có cơ hội được chia tiền thưởng của NCC); vì vậy những ngườicùng chơi luôn yêu cầu NCC phải chơi tiếp (đồng nghĩa họ sẽ có cơ hội đượcchia tiền thưởng khi NCC trả lời sai)

4 03 Quyền trợ giúp

NCC có 03 quyền trợ giúp:

a) Thăm dò: Phân vân với phương án A, vídụ, NCC yêu cầu máy tính thống kê

có bao nhiêu người cùng chơi cùng chọn A Dựa vào số liệu này, NCC có thể quyết định hoặc chọn phương án A theo số liệu thống kê hoặc được chọn 1 trong 2 phương án còn lại

b) Hỏi dò: Máy tính chọn ngẫu nhiên 2 người cùng chơi (1 đúng, 1 sai) NCC/

MC giao lưu nhanh với 2 người chơi này, hỏi phương án và lý do họ chọn NCC quyết định lựa chọn phương án trả lời trong 2 phương án này

- Nếu tất cả các người cùng chơi có phương án trả lời giống nhau, 4 tình

huống:

+ NCC chọn cùng đáp án và đúng, game tiếp diễn

+ NCC chọn cùng đáp án và sai, game kết thúc, tất cả đều không có tiềnthưởng

+ NCC chọn khác đáp án và đúng, NCC chiến thắng với số tiền thưởng tối đa.+ NCC chọn khác đáp án và sai, NCC thua game, tiền thưởng đến thời điểm đó

sẽ được chia đều cho những người cùng chơi (nếu đáp án đó đúng)

c) Tin người cùng chơi: Máy tính thống kê phương án trả lời được các người cùng chơi chọn theo số đông Khi chọn quyền hỗ trợ này, được hiểu NCC buộc

Trang 14

phải tuân theo phương án trả lời được chọn của số đông, không được thay đổi phương án khác 2 tình huống phát sinh:

•Nếu 2 phương án trả lời được những người cùng chơi chọn ngang nhau và caohơn phương án còn lại, MC sẽ thông báo cho NCC biết điều này NCC sẽ tự quyết định chọn 1 trong 2 phương án được chọn ngang nhau theo số đông

•Nếu 3 phương án trả lời được những người cùng chơi chọn ngang nhau, MC

sẽ thông báo cho NCC biết điều này NCC sẽ tự quyết định chọn 1 trong 3 phương án được chọn ngang nhau theo số đông

Cách thức sử dụng 3 quyền trợ giúp:

+ NCC được sử dụng 3 quyền trợ giúp tại bất kỳ thời điểm nào trong game.+ NCC được sử dụng 2 hoặc 3 quyền trợ giúp liên tiếp cho 1 câu hỏi

+ NCC được sử dụng 3 quyền trợ giúp theo thứ tự bất kỳ

IV MÔ HÌNH CHỨC NĂNG VÀ XỬ LÍ

1 Cấu trúc chương trình sử dụng mô hình MVC

a Người chơi chính

Được hỗ trợ tất cả các quyền và chức năng:

- Có 60s để trả lời và trả lời câu hỏi sau 6s (thời gian dành cho người chơi phụ chọn đáp án)

- Có tiền thưởng

- Có 3 quyền trợ giúp được dành cho người chơi chính

- Có nút submit “Câu kế tiếp”

b Người chơi phụ

- Có 6s để trả lời câu hỏi sau (trả lời trước người chơi chính)

- Tiền thưởng có khi luật chơi tiền thưởng được áp dụng (Người chơi chính đánh bại được từ 50% số lượng người chơi trở lên)

- Không hỗ trợ 3 quyền trợ giúp

- Không có nút submit “Câu kế tiếp”

Trang 15

- Bước 4: Servlet Kiểm tra và trả về kết quả cho trang register.jsp.

Code xử lí Đăng kí trên controller:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

Model

Register.java Controller

Trang 16

String TenDN = request.getParameter( "TenDN" );

String MatKhau = request.getParameter( "MatKhau" );

String MatKhauMD5 = JavaMD5Hash.md5(request.getParameter("MatKhau" )); String re_MatKhau = request.getParameter( "re_MatKhau" );

String HoTen = request.getParameter( "HoTen" );

String GioiTinh = request.getParameter( "GioiTinh" );

String NgaySinh = request.getParameter( "NgaySinh" );

String DiaChi = request.getParameter( "DiaChi" );

String Email = request.getParameter( "Email" );

String SDT = request.getParameter( "SDT" );

String agree = request.getParameter( "agree" );

String ThangSinh = request.getParameter( "ThangSinh" );

String NamSinh = request.getParameter( "NamSinh" );

if ( "on" equals(agree) && MatKhau.equals(re_MatKhau)) {

String address;

DatabaseUtilities dbu = new DatabaseUtilities( "127.0.0.1" ,

"MYSQL" , "dautruong100" , "root" , "" );

boolean insertPlayterResult = dbu.insertPlayer(TenDN, MatKhauMD5, HoTen, GioiTinh, NgaySinh, ThangSinh, NamSinh, DiaChi, Email, SDT);

if (!insertPlayterResult) {

address= "/WEB-INF/messages/register-success.html" ; }

else

{

address= "/WEB-INF/messages/register-error.html" ; }

RequestDispatcher dispatcher = request.getRequestDispatcher(address);

dispatcher.forward(request, response);

} }

b Xử lí Đăng nhập

Lưu Fail

Success Success/Fail

T/F

Kiểm tra ĐN Tên ĐN + MK

thongtinnc (table) thongtindk (table)

Trang 17

thongtinnc) và chuyển sang trang index.jsp nếu đăng nhập thất bại.

Code xử lí Đăng nhập trên controller:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub //PlayersLimit pll=new PlayersLimit();

//int playersL=PlayersLimit.PLAYER_LIMITS;

String TenDN=request.getParameter( "TenDN" );

String plainMatKhau=request.getParameter( "MatKhau" );

String MatKhau=JavaMD5Hash.md5(plainMatKhau);

//Tao cookie luu username va password neu check ghi nho dn

String Remember = request.getParameter( "remember-me" );

String info_account=TenDN+ ":" +plainMatKhau;

Cookie c_login = new Cookie( "info_account" ,info_account);

if(Remember!=null && Remember.equals( "checked" )) {

//Tao session neu chua co

HttpSession session = request.getSession();

if((String)session.getAttribute( "tenDN" ) == null) {

session.setAttribute( "tenDN" , TenDN);

}

if(TenDN!=null && MatKhau!=null){

DatabaseUtilities dbu = new DatabaseUtilities();

String address;

if(dbu.CheckLogin(TenDN, MatKhau)) {

//int count=dbu.CountRow("thongtinnc","1");

Trang 18

if(dbu.CheckExistTenDN( "thongtinnc" , TenDN)==false){

AddPlayertoThongtinNC(dbu,TenDN, session); }

Player pl = dbu.getPlayer(TenDN);

request.setAttribute( "player" , pl);

request.setAttribute( "message" , "successful" );

address= "/WEB-INF/results/player.jsp" ; }

else

{

address= "./index.jsp" ; }

//them so luong nguoi choi hien tai

int slPlayer=dbu.CountRow( "thongtinnc" , "1" );

request.setAttribute( "Slplayer" , slPlayer);

RequestDispatcher dispatcher = request.getRequestDispatcher(address);

dispatcher.forward(request, response);

} }

c Xử lí Câu hỏi

Người cùng chơi Người chơi chính

Trang 19

Trong xử lí câu hỏi:

- Bước 1: Người dùng đang ở trang mainplay.jsp  Servlet truy xuất trong cơ sở

dữ liệu (bảng nguonch + phuonganlc)  Trả về nội dung câu hỏi với số thứ tự câu hỏi và các phương án lựa chọn  Servlet bật Timeout (6s với người cùng chơi và 60s đối với người chơi chính)

- Bước 2: Người chơi chọn đáp án và gửi đáp án từ mainplay.jsp lên servlet Play trong file Play.java

- Bước 3: Servlet nhận đáp án và lưu đáp án vào bảng traloi Nếu là người chơi

phụ thì chờ người chơi chính trả lời rồi mới kiểm tra đáp án có trùng với đáp án xuất ra từ cơ sở dữ liệu (bảng dapanch)

- Bước 4: Nếu đáp án trả lời đúng thì tiếp tục chuyển qua câu hỏi tiếp theo Nếu đáp án trả lời sai thì chuyển sang trang failure.jsp

Nếu trong quá trình chọn đáp án, người chơi có quyền chọn có 3 sự trợ giúp Servlet sẽ

xử lí thống kê rồi gửi kết quả về cho người chơi chính

Code xử lí Đăng nhập trên controller:

+ Xử lí lấy thông tin Tên đăng nhập, Mã người chơi và Mã loại người chơi từ bảng

Đáp án Câu hỏi

failure.jsp View

mainplay.jsp

dapanch (table) traloi (table) phuonganlc (table) nguonch (table)

Model Controller

Play.java View

Ngày đăng: 09/07/2014, 19:08

TỪ KHÓA LIÊN QUAN

w