Thêm bài viết

Một phần của tài liệu Xây dựng website tích hợp hệ thống xem điểm học tập tại trường trung học phổ thông Phạm Phú Thứ Tp. Đà Nẵng. (Trang 36)

Để thêm một bài viết mới trên website nukeviet ta thực hiện như sau.

Hình 1.5.5: Thêm một bài viết mới

Từ module “tin tức” ta duyên chuyển đí “Thêm bài mới” sau đó điền đầy đủ các thông tin.

 Tiêu đề: Tên tiêu đề của bài viết.

 Liêt kết tỉnh: Liên kết sẽ được “Get” sau khi chúng ta ghi xong tiêu đề. Đây là đường dẫn của bài viết.

 Chuyên mục của bài viết: Chọn các chuyên mục chúng ta đã thiết lập.

 Hình minh họa: Đây là hình ảnh minh họa cho bài viết.

 Giới thiệu ngắn gọn: Giới thiệu tóm tắt nội dung của bài viết

 Nội dung chi tiết: Nội dung của bài viết, nội dung của bài viết sẽ được hổ trợ định dạng văn bản, màu chữ, font chữ, kích thước, bảng, hình ảnh, video, link, đính kèm ....vv.

Ngoài ra chúng ta có thể chọn được thời gian xuất hiện bài viết, chọn các nhóm tin, thiết lập từ khóa để tìm ra bài viết.

[SVTH: Võ Quang Huy] Trang 37

Hình 1.5.6: Điền các thông tin cho bài viết

Sau khi điền đầy đủ thông tin ta có thể chọn:

 Lưu bài viết không đăng: Bài viết sẽ được lưu trong module

 Đăng bài viết: Bài viết sẽ được đăng ra ngoài website.

Sau khi bài viêt đã được lưu ta có thể tùy chọn “sửa” hoặc “xóa” bài viết.

[SVTH: Võ Quang Huy] Trang 38

CHƯƠNG II : PHÂN TÍCH VÀ THIẾT KẾ XÂY DỰNG WEBSITE VÀ HỆ THỐNG TRA CỨU ĐIỂM CHO TRƯỜNG

THPT PHẠM PHÚ THỨ TP. ĐÀ NẴNG 2.1.Giới thiệu về trường THPT Phạm Phú Thứ Tp. Đà Nẵng.

Tên trường: Trường THPT Phạm Phú Thứ Hiệu Trưởng: Nguyễn Bá Hảo.

Địa chỉ: Thôn An Ngãi Đông, Hòa Sơn, Hòa Vang, Đà Nẵng. Website: Chưa có.

Mail: C3PhamPhuThu.danang@moet.edu.vn Điện thoại: 0511.384.1460

Hình 2.1.1: Giới thiệu về trường THPT Phạm Phú thứ.

Trường THPT Phạm Phú Thứ ở An Ngãi Đông, xã Hòa Sơn, huyện Hòa Vang, TP Đà Nẵng cách trung tâm thành phố khoảng hơn 10 km về hướng Tây Bắc. Trên đường DT 602, đường lên khu du lịch Bà Nà, một địa danh nổi tiếng với nhiều kỉ lục quốc gia cũng như thế giới, nằm gần khu công nghệ cao Hòa Liên. Trường thành lập theo Quyết định số 125/QĐ – UBND ngày 21/8/2001 của Ủy ban nhân dân Thành phố Đà Nẵng. Ban đầu thành lập trường THPT Phạm Phú Thứ gồm

[SVTH: Võ Quang Huy] Trang 39

hai cấp học là THCS và THPT. Cấp THPT chỉ có 4 lớp 10 với gần 200 học sinh. Năm 2006, trường được tách ra thành 2 trường, đó là trường THPT Phạm Phú Thứ và trường THCS Trần Quang Khải.

Sau 14 năm hình thành và phát triển, so với những ngày đầu thành lập, cơ sở vật chất còn thiếu thốn cũng như nguồn nhân lực còn hạn chế, nay trường đã mang một diện mạo hoàn toàn mới mẽ gồm 34 lớp với hơn 1500 học sinh cùng với đa số đội ngũ giáo viên trẻ năng nổ và tâm huyết với nghề gồm 99 cán bộ công chức, viên chức trong đó có 12 thạc sĩ chuyên ngành và 1 thạc sĩ quản lý giáo dục. Với tâm huyết đào tạo nguồn nhân lực có đầy đủ cả chất và lượng cho tương lai thành phố cũng như đất nước, thầy trò trường THPT Phạm Phú Thứ đã và đang ra sức thi đua dạy tốt và học tốt. Nhờ vậy, trong nhiều năm qua, trường đã đạt được nhiều thành tích đáng kể . Nhiều em học sinh đạt giải trong kì thi học sinh Giỏi cấp Thành phố, tỉ lệ đậu Tốt nghiệp những năm gần đây luôn trên 98% cùng với tỉ lệ đậu Đai học, Cao đẳng ngày càng cao.

Trường THPT Phạm Phú Thứ ra đời với nhiệm vụ giáo dục học sinh 4 xã khó khăn vùng Tây Bắc huyện Hòa Vang của thành phố Đà Nẵng gồm Hòa Sơn, Hòa Liên, Hòa Bắc, Hòa Ninh. Trường THPT Phạm Phú Thứ cũng là đơn vị duy nhất đảm nhận nhiệm vụ giáo dục cho các em học sinh người dân tộc Cơtu. Nhằm tạo điều kiện tối đa cho các em tham gia học tập. ở mỗi khối lớp có một lớp dành riêng cho người dân tộc Cơtu cùng với nơi ăn chốn ở cho các em ở khu nội trú tại trường.

[SVTH: Võ Quang Huy] Trang 40

2.2. Cấu trúc chung của website trường THPT Phạm Phú Thứ. 2.2.1. Người sử dụng. 2.2.1. Người sử dụng.

Cấu trúc của website đối với người sử dụng (Giáo viên, học sinh, phụ huynh). Được thiết kế với các thành phần chính như sau.

Hình 2.2.1: Cấu trúc của website đội với người dùng

Ngoài ra còn có một số thành phần khác như: Liên hệ, thống kê, thăm dò ý kiến, quảng cáo.

2.2.2. Người quản trị.

[SVTH: Võ Quang Huy] Trang 41

2.3.Xây dựng mô-đun tra cứu điểm.

Mô-đun này xây dựng nhằm để đáp ứng nhu cầu tra cứu điểm học tập của học sinh, cũng như của phụ huynh đối với con em mình.

Mô-đun sẽ đáp ứng một số yêu cầu như: Tra cứu điểm học tập các môn của học sinh. Chỉnh sửa điểm của học sinh.

Để xây dựng mô-đun này ở đây đã dựa trên nền tảng cấu trúc của các mô-đun mặc định trong Nukeviet, và quy trình hệ thống của Nukeviet để xây dựng thử nghiệm mô-đun này.

2.3.1. Phân tích hệ thống. 2.3.1.1. Sơ đồ chứng năng. 2.3.1.1. Sơ đồ chứng năng.

[SVTH: Võ Quang Huy] Trang 42

Việc quản trị hệ thống module bao gồm những công việc sau:

- Quản lí danh sách học sinh: Cập nhật, sửa, xóa một thông tin của học sinh theo lớp.

- Quản lý năm học: Cập nhật, sửa, xóa năm học. - Quản lý môn học: Cập nhật, sửa, xóa môn học. - Quản lý lớp: Cập nhật sửa xóa lớp.

- Quản lý điểm: Cập nhật, sửa điểm miệng, điểm kiểm tra 15 phút, điểm kiểm tra 1 tiết, điểm thi học kỳ và điểm trung bình của học sinh.

2.3.1.2. Sơ đồ ngữ cảnh.

Hình 2.3.2: Sơ đồ ngữ cảnh. 2.3.2. Thiết kế cơ sở dữ liệu.

Khi tiến hành cài đặt Nukeviet, hệ thống sẽ tự động tạo ra cơ sở dữ liệu của mình vào MySQL. Các bảng có tiền tố là nv3_, tiếp theo là tên bảng cơ sở dữ liệu.

Trong trường hợp cơ sở dữ liệu của module nào đó thì tên module sẽ đứng sau tiền tố nv3_, và cuối cùng là tên của bảng

[SVTH: Võ Quang Huy] Trang 43

Trong đó mô-đum tra điểm sẽ bao gồm các cơ sở dữ liệu: - nv3_vi_tradiem_diem

- nv3_vi_tradiem_dshs - nv3_vi_tradiem_lop

- nv3_vi_tradiem_monhoc - nv3_vi_tradiem_namhoc

Các bảng dữ liệu trên đã chứa các thông tin môn học, danh sách học sinh, điểm, năm học, lớp học.

2.3.2.1. Thiết kế các bảng dữ liệu.

 Bảng dữ liệu môn học: nv3_vi_tradiem_monhoc Table: nv3_vi_tradiem_monhoc – Môn học

Tên Kiêu dữ liệu Khóa

chính Chú thích

monid int(2) PK Mã môn học

tenmon Varchar(20) Tên môn học

Bảng 2.3.1: Bảng dữ liệu môn học.

 Bảng dữ liệu năm học: nv3_vi_tradiem_namhoc Table: nv3_vi_tradiem_namhoc – Măm học

Tên Kiêu dữ liệu Khóa

chính Chú thích

manamhoc int(2) PK Mã năm học

tennamhoc Varchar(12) Tên năm học

[SVTH: Võ Quang Huy] Trang 44

 Bảng dữ liệu lớp học: nv3_vi_tradiem_lop Table: nv3_vi_tradiem_lop – Lớp học

Tên Kiêu dữ liệu Khóa

chính Chú thích

lopid int(2) PK Mã lớp học

tenlop Varchar(7) Tên lớp học

Bảng 2.3.3: Bảng dữ liệu lớp học.

 Bảng dữ liệu danh sách học sinh: nv3_vi_tradiem_dshs Table: nv3_vi_tradiem_dshs – danh sách học sinh

Tên Kiêu dữ liệu Khóa

chính Chú thích

mahs int(7) PK Mã học sinh

hoten varchar(30) Tên học sinh

phai int(1) Giới tính

ngaysinh varchar(10) Ngày sinh

noisinh varchar(40) Nơi sinh

manamhoc int(2) Mã năm học

lopid int(2) Mã lớp học

[SVTH: Võ Quang Huy] Trang 45

 Bảng dữ liệu điểm: nv3_vi_tradiem_diem Table: nv3_vi_tradiem_diem – Điểm

Tên Kiêu dữ liệu Khóa

chính Chú thích id int(20) PK Mã điểm

mahs varchar(30) Mã học sinh

manamhoc int(2) Mã năm học

mahocky int(1) Mã học kỳ

lopid int(2) Mã lớp

monid int(2) Mã môn học

m_1 varchar(5) Điểm miệng lần 1 m_2 varchar(5) Điểm miệng lần 2 m_3 varchar(5) Điểm miệng lần 3

15_1 varchar(5) Điểm 15 phút lần 1 15_2 varchar(5) Điểm 15 phút lần 2 15_3 varchar(5) Điểm 15 phút lần 3 45_1 varchar(5) Điểm 45 phút lần 1 45_2 varchar(5) Điểm 45 phút lần 2 45_3 varchar(5) Điểm 45 phút lần 3

Thi varchar(5) Điểm thi

tbm varchar(5) Điểm trung bình cộng Bảng 2.3.5: Bảng dữ liệu điểm

[SVTH: Võ Quang Huy] Trang 46

2.3.2.2. Sở đồ quan hệ.

Hình 2.3.3: Sơ đồ quan hệ dữ liệu. 2.3.3. Cài đặt

- Cấu trúc hệ thống mô-đun: Gồm có các thư mục và file .php

[SVTH: Võ Quang Huy] Trang 47

File version.php Có chức năng khai báo tiêu đề module, các funcs có khối, tác giả module, thông tin phiên bản, cấu trúc thư mục trong thư mục uploads.

File version.php có nội dung:

<?php

if ( ! defined( 'NV_ADMIN' ) or ! defined( 'NV_MAINFILE' ) ) die( 'Stop!!!' ); $module_version = array( "name" => "Tradiem", // "modfuncs" => "main", // "submenu" => "main", // "is_sysmod" => 0, // "virtual" => 1, // "version" => "1.0.0", // "date" => "", //

"author" => "Khóa luận tốt nghiệp (huykira@gmail.com)", // "note" => "", //

"uploads_dir" => array($module_name) );

?>

"modfuncs" => "main": Tên các funcs trong thư mục funcs có khối khi hoạt động bên ngoài site. Đối với các funcs không có khối ví dụ như để xử lý AJAX, gửi email (popup) thì không cần khai báo.

"is_sysmod" => 0, : Có phảo module hệ thông hay không 0: không 1: có. "virtual" => 1: Cho phép ảo hóa module không 0: không 1: có date,author, version: thông tin ngày, tác giả, phiên bản module. uploads_dir: Khai báo cấu trúc thư mục trong thư mục uploads. Với khai báo như trên thì khi kích hoạt module hệ thông sẽ

[SVTH: Võ Quang Huy] Trang 48

tạo một thư mục có tên là tên của module trong thư mục upload (biến $module_name được hiểu là tên module)

File admin.functions.php: tệp tin này thường chứa các function, hằng dùng trong admin.

File admin.functions.php có nội dung.

<?php

if ( ! defined( 'NV_ADMIN' ) or ! defined( 'NV_MAINFILE' ) or ! defined( 'NV_IS_MODADMIN' ) ) die( 'Stop!!!' ); $submenu['config'] = $lang_module['config']; $submenu['quanli_nam'] = $lang_module['quanli_nam']; $submenu['quanli_mon'] = $lang_module['quanli_mon']; $submenu['quanli_lop'] = $lang_module['quanli_lop']; $submenu['quanli_diem'] = $lang_module['quanli_diem']; $submenu['import'] = $lang_module['import']; $allow_func=array('config','addconfig','delconfig','main','quanli_nam','addnam','delnam','quanli_mon', 'addmon','delmon','quanli_lop','addlop','dellop','addhs','delhs','import','importgv','quanli_diem','adddiem','deldi em' , 'config', 'khoitaodl','khoitaoxl','change_ac');

define( 'NV_IS_FILE_ADMIN', true ); ?>

$submenu: Là menu con của module Tra điểm xuất hiện trong khu vực quản trị. Tương ứng như sau:

- $submenu['config'] = $lang_module['config'] : Cấu hình

[SVTH: Võ Quang Huy] Trang 49

- $submenu['quanli_mon'] = $lang_module['quanli_mon']: Quản lý môn học - $submenu['quanli_lop'] = $lang_module['quanli_lop']: Quản lý lớp

- $submenu['quanli_diem'] = $lang_module['quanli_diem']: Quản lý điểm - $submenu['import'] = $lang_module['import']: Inport dữ liệu

File action.php đây là file tạo lập cơ sở dữ liệu cho module.

Nội dung của file action.php

<?php

if ( ! defined( 'NV_IS_FILE_MODULES' ) ) die( 'Stop!!!' ); $sql_drop_module = array();

$sql_drop_module[] = "DROP TABLE IF EXISTS `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_diem`";

$sql_drop_module[] = "DROP TABLE IF EXISTS `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_dshs`";

$sql_drop_module[] = "DROP TABLE IF EXISTS `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_lop`";

$sql_drop_module[] = "DROP TABLE IF EXISTS `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_monhoc`";

$sql_drop_module[] = "DROP TABLE IF EXISTS `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_namhoc`";

$sql_drop_module[] = "DROP TABLE IF EXISTS `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_info`";

$sql_create_module = $sql_drop_module;

$sql_create_module[] = "CREATE TABLE `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_diem` (

`id` bigint(20) NOT NULL auto_increment, `mahs` varchar(15) NOT NULL,

[SVTH: Võ Quang Huy] Trang 50

`manamhoc` tinyint(2) NOT NULL, `mahocky` tinyint(1) NOT NULL, `monid` tinyint(2) NOT NULL, `m_1` varchar(5), `m_2` varchar(5), `m_3` varchar(5), `15_1` varchar(5), `15_2` varchar(5), `15_3` varchar(5), `45_1` varchar(5), `45_2` varchar(5), `45_3` varchar(5), `thi` varchar(5), `tbm` varchar(5),

`gvid` mediumint(3) DEFAULT '0' NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8";

$sql_create_module[] = "CREATE TABLE `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_dshs` (

`id` int(11) NOT NULL auto_increment, `mahs` varchar(15) NOT NULL, `manamhoc` tinyint(2) NOT NULL, `lopid` tinyint(3) NOT NULL, `hoten` varchar(40) NOT NULL,

[SVTH: Võ Quang Huy] Trang 51

`phai` tinyint(1) DEFAULT '1' NOT NULL, `ngaysinh` varchar(10) NOT NULL, `noisinh` varchar(40) NOT NULL, PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8";

$sql_create_module[] = "CREATE TABLE `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_lop` (

`lopid` tinyint(3) NOT NULL, `tenlop` varchar(50) NOT NULL,

`manamhoc` tinyint(2) DEFAULT '0' NOT NULL, `id` int(9) NOT NULL auto_increment,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8";

$sql_create_module[] = "CREATE TABLE `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_monhoc` (

`monid` tinyint(2) NOT NULL, `tenmon` varchar(50) NOT NULL, PRIMARY KEY (`monid`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8";

$sql_create_module[] = "CREATE TABLE `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_namhoc` (

`manamhoc` tinyint(2) NOT NULL, `tennamhoc` varchar(12) NOT NULL, PRIMARY KEY (`manamhoc`)

[SVTH: Võ Quang Huy] Trang 52

) ENGINE=MyISAM DEFAULT CHARSET=utf8";

$sql_create_module[] = "CREATE TABLE `" . $db_config['prefix'] . "_" . $lang . "_" . $module_data . "_info` (

`id` mediumint(3) NOT NULL, `info` varchar(255) NOT NULL, `ghichu` varchar(255),

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8"; ?>

Trong file là các câu lên SQL để tạo các bảng dữ liệu: Học sinh, điểm, môn học, năm học, lớp học, info.

File functions.php chứa các hàm dùng ngoài site. Nội dùng của file functions.php

<?php

if (! defined ( 'NV_SYSTEM' )) die ( 'Stop!!!' );

define ( 'NV_IS_MOD_TRADIEM', true ); function creat_config($str) {

if (! file_exists ( NV_ROOTDIR . '/' . NV_DATADIR . '/tradiem/' . $str . ".txt" )) { $f = fopen ( NV_ROOTDIR . '/' . NV_DATADIR . '/tradiem/' . $str . ".txt", "w" ); if ($str == 'config') {

[SVTH: Võ Quang Huy] Trang 53

fwrite ( $f, 'Hệ thống tra điểm của trường THPT Phạm Phú Thứ Đà Nẵng' );} fclose ( $f );}}

function is_admin($nickname) { global $module_data, $db;

$sql = "SELECT a.userid FROM " . NV_USERS_GLOBALTABLE . " a INNER JOIN " .

NV_AUTHORS_GLOBALTABLE . " b ON a.userid=b.admin_id WHERE a.username=" . $db->dbescape ( $nickname ) . "";

list ( $userid ) = $db->sql_fetchrow ( $db->sql_query ( $sql ) ); return ($userid) ? 1 : 0;

} ?>

Ngoài các file này còn có các thư mục như:

- Thư mục “admin”: Chứa tất cả các hàm chạy trong khu vực quản trị. - Thư mục “func”: Chứa tất cả các file chạy ngoài site.

- Thư mục “js”: Chứa các đoạn java sử dụng trong module.

- Thư mục “language”: Chứa các file ngôn ngữ trong admin và bên ngoài site cho module.

[SVTH: Võ Quang Huy] Trang 54

CHƯƠNG 3: THỬ NGHIỆM CHƯƠNG TRÌNH 3.1.Một số mô-đun quản trị

3.1.1. Mô-đun giới thiệu (About).

Hình 3.1.1: Mô-đun giới thiêu (about)

Mô-đun này có nhiệm vụ hiển thị thông tin giới thiệu ra ngoài trang chủ. Chỉ có một chức năng chính là thêm bài giới thiệu mới. Có chức năng quản lý bài viết như xóa và sửa.

Việc thêm bài gới thiệu mới hoàn toàn tương tự như thêm một bài viết mới bên mô-đun “Tin Tức”.

[SVTH: Võ Quang Huy] Trang 55

3.1.2. Mô-đun Tài nguyên (download).

Đây là mô-đun có nhiệm vụ cung cấp cho người dùng khả năng download tài nguyên mà người quản trị chia sẽ trên website.

mô-đun gồm có chức năng:

- Quản lý chủ đề: Các loại tài nguyên được quản trị chia theo các chủ đề đề người sử dụng dễ dàng trong việc download tài nguyên đó. Ta có thể thực hiện các công việc như: Thêm, xóa, sửa, kích hoạt hoặc tam dừng học động của chủ đề.

Hình 3.1.3: Quản lý chủ đề

- Cấu hình mô-đun: Chức năng này cho phép chúng ta quản lý các loại file có thể được đưa lên hệ thống, cho hay không các nhóm người dùng download tài nguyên.

[SVTH: Võ Quang Huy] Trang 56

- Thêm file mới (thêm tài nguyên): Đây là chức năng ta thêm tài nguyên mới.

Hình 3.1.5: Thêm file mới (thêm tài nguyên)

Để thêm một tài nguyên mới ta di chuyên đến phần “Thêm file mới” sau đó điền đầy đủ thông tin.

 Tiên file: Đây của tài nguyên mà chúng ta muốn upload.

 Thuộc chủ đề: Chọn chủ đề của tài nguyên.

 Tên tác gia: Tên tác giải cung cấp tài nguyên.

 Email tác giả: Email của tác giả cung cấp tài nguyên.

 File tải lên: Chọn file muốn tải lên.

 Mô tả: Miêu ta gắng ngọn nội dung của tài nguyên

Sau khi đã điền đầy đủ thông tin chọn “Thực hiện” để uplaod tài nguyên lên hệ thống và trở lại khu vực quản lý tài nguyên đã được upload, tại khu vực này chúng ta sẽ có các chức năng như: Sửa, xóa, thêm tài nguyên. Đồng thời có thể quan sát được lượt xem, lượt download, lượt bình luận của tài nguyên.

[SVTH: Võ Quang Huy] Trang 57

Hình 3.1.6: Quản lý tài nguyên 3.1.3. Mô-đun Công văn.

Hình 3.1.7: Mô-đun Công văn.

Module này có nhiệm vụ hiển thị các công văn, văn bản cho người dùng xem hoặc download. Mô-đun bao gồm:

 Quản lý loại văn bản: Ta ở chức năng này ta có thể “thêm”, “sửa”, “xóa” loại công văn.

[SVTH: Võ Quang Huy] Trang 58

 Quản lý phòng ban: Ta ở chức năng này ta có thể “thêm”, “sửa”, “xóa” phòng ban, nơi ban hành công văn.

 Quản lý lĩnh vực: Ta ở chức năng này ta có thể “thêm”, “sửa”, “xóa” lĩnh vực của công văn.

Để thêm một văn bản mới ta di chuyển đến Module công văn chọn “Thêm văn bản mới”, sau đó điền đầy đủ thông tin.

Hình 3.1.1: Thêm công văn mới

 Tên/số/ký hiệu: Tên của văn bản.

 Trích yếu: Chú thích cho văn bản.

 Thuộc: Chọn loại văn bản, chọn phòng ban, chọn lĩnh vực, chọn cơ quan.

Một phần của tài liệu Xây dựng website tích hợp hệ thống xem điểm học tập tại trường trung học phổ thông Phạm Phú Thứ Tp. Đà Nẵng. (Trang 36)

Tải bản đầy đủ (PDF)

(72 trang)