1. Trang chủ
  2. » Tài Chính - Ngân Hàng

Thiet ke so so du lieu quan ly ky tuc xa

21 1 0

Đ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

Định dạng
Số trang 21
Dung lượng 890,9 KB

Nội dung

tạo các quan hệ ứng với các kiểu thực thể mạnh: - Hợp đồng mã hợp đồng, ngày lập, ngày bắt đầu, ngày kết thúc - Sinh viên Mã sinh viên, họ tên, ngày sinh, giới tình, số CMND, số điện t[r]

(1)LỜI MỞ ĐẦU Ngày nay, ngành công nghệ thông tin phát triển vô cùng mạnh mẽ Nó đă chứng tỏ sức mạnh mình lĩnh vực sống Ngành tin học nước ta đă và khẳng định vai trò, vị trí lớn mình lĩnh vực kinh tế, xă hội Rất nhiều quan công sở, xí nghiệp, trường học, bệnh viện đă đưa tin học vào ứng dụng Trong đó việc quản lư thông tin là ứng dụng cần thiết và mang lại nhiều lợi ích Nó giúp cho các công ty, xí nghiệp, trường học tiết kiệm thời gian, tiền bạc, nhân công và có độ chính xác cao Tại các trường đại học vấn đề quản lý chỗ sinh viên là vấn đề cần thiết và cấp bách Một sinh viên muốn đạt thành cao hoc tập phải có môi trường sống và học tập tốt Thực tế các trường đại học việc quản lý chỗ hầu hết quản lý trên giấy tờ,sổ sách Vì việc áp dụng tin học, đưa máy tính vào trợ giúp quản lý ký túc xá sinh viên là cần thiết, nó giúp cho người quản lý thu hẹp không gian lưu trữ, tránh thất lạc liệu, xử lý nhanh khối lượng lớn thông tin, tra cứu tìm kiếm cách nhanh chóng với độ chính xác cao, tiết kiệm nhiều thời gian và công sức không người quản lý mà c ̣òn người thân, bạn bè hay chính thân sinh viên Xuất phát từ nhận thức trên, với mong muốn áp dụng công nghệ thông tin vào quản lý, dựa trên hoạt động thực tiễn em xin tìm hiểu và thực đề tài “Thiết kế sở liệu quản lý ký túc xá sinh viên trường Đại học Bách Khoa”, với các chức lưu trữ, xử lý thông tin sinh viên và tình hình kí túc xá Trong quá trình thực đề tài, em còn nhiều thiếu sót, mong nhận góp ý thầy cô và các bạn (2) I Bài toán thực tế: Quản lý hợp đồng Vào đầu các năm học, có nhu cầu tạm trú ký túc xá, sinh viên phải thực thủ tục đăng ký với phận quản lý ký túc xá Bộ phận quản lý kiểm tra và xem xét hồ sơ các sinh viên, Nếu hồ sơ đáp ứng đủ các yêu cầu đăng ký thì phận quản lý tiếp nhận và làm thủ tục hợp đồng đăng ký cho sinh viên vào ký túc xá Mỗi sinh viên có hợp đồng và lưu trữ, sử dụng suốt thời gian tạm trú ký túc xá Trong suốt năm học, xảy các trường hợp: sinh viên vi phạm nội qui, bị buộc khỏi ký túc xá, khu ký túc xá còn phòng và có sinh viên có nguyện vọng muốn vào ký túc xá,… thì ban quản lý thực hủy hợp đồng, làm thủ tục cho sinh viên vào ký túc xá Quản lý sinh viên Trong thời gian sinh viên tạm trú ký túc xá, phận quản lý sinh viên tiếp nhận và lưu trữ toàn thông tin sinh viên, bao gồm: mã sinh viên, họ tên, ngày sinh, giới tính, lớp - khóa, số điện thoại, số CMND, mô tả khác… Quản lý phòng Ban quản lý cập nhật thường xuyên các thông tin phòng nhà ký túc xá, bao gồm: số phòng, khu nhà, tình trạng phòng, trang vật tư thiết bị, số lượng sinh viên, mô tả khác… Nếu phòng có xảy cố, cháy nổ, hỏng hóc trang thiết bị vật tư ký túc xá, thì sinh viên phải báo với ban quản lý ký túc xá có bổ sung thêm các trang thiết bị mới, thì ban quản lý báo với trưởng phòng các phòng xuống nhận nơi qui định Quản lý nhân viên Mỗi ký túc xá các trường đại học có các nhân viên quản lý, với nhiệm vụ và chức quản lý riêng mình Mỗi cán nhân viên quản lý với các thông tin: mã nhân viên, tên nhân viên, số điện thoại, giới tính, ngày sinh, địa chỉ, mô tả khác (3) Khi có nhân viên nghỉ (ốm, nghỉ sinh, có việc bận,…) các trường hợp: hết hợp đồng, bị sa thải, làm hợp đồng mới,… cần thông báo cho giám đốc các cán nhân viên chuyên trách để xử lý kịp thời Quản lý điện nước Hàng tháng, phận quản lý có trách nhiệm lập hóa đơn điện nước phòng, kiểm tra công tơ điện, nước và thực tiện tính toán thành tiền Hóa đơn bao gồm các thông tin: số hóa đơn, số phòng, khu nhà, ngày lập, tổng tiền Thông tin điện nước gồm: mã công tơ điện, mã công tơ nước, số phòng, khu nhà, tháng ghi sổ, số đầu và cuối (với riêng công tơ điện và công tơ nước) Ngoài ra, có thay đổi giá điện nước, thì phận quản lý thực chỉnh sửa và thay đổi thông tin điện nước Báo cáo thống kê Các phận quản lý tổng hợp thông tin, thống kê số lượng hợp đồng, số lượng sinh viên, tình trạng các phòng, các khu nhà, lập báo cáo đưa lên ban quản lý và giám đốc ký túc xá II Các chức chương trình ứng dụng Quản lý hợp đồng - Kiểm tra hồ sơ sinh viên - Nhập hợp đồng - Sửa hợp đồng đã có - Xóa hợp đồng hết hạn Quản lý sinh viên - Nhập thông tin sinh viên - Sửa thông tin sinh viên - Xóa thông tin sinh viên Quản lý phòng - Nhập thông tin phòng - Sửa thông tin phòng - Xóa thông tin phòng (4) quản lý nhân viên - Nhập thông tin nhân viên - Sửa thông tin nhân viên - Xóa thông tin nhân viên Quản lý điện nước - Nhập thông tin điện nước - Sửa thông tin điện nước - Xóa thông tin điện nước - Lập báo cáo hóa đơn Báo cáo thống kê - Báo cáo doanh thu - Thống kê số hợp đồng - Thống kê tình trạng phòng, khu nhà III Thiết kế sở liệu Các kiểu thực thể và thuộc tính tương ứng CSDL - Kiểu thực thể hợp đồng: mã hợp đồng (khóa), ngày lập ngày bắt đầu, ngày kết thúc - Kiểu thực thể sinh viên: Mã sinh viên (khóa), họ tên sinh viên, ngày sinh, giới tính, số điện thoại, số CMND, lớp - khóa, - Kiểu thực thể phòng: số phòng (khóa), khu nhà (khóa), tình trạng phòng, số lượng sinh viên, mô tả khác (trang thiết bị, vật tự, …) - Kiểu thực thể nhân viên: Mã nhân viên (khóa), họ tên nhân viên, số điên thoại, giới tính, ngày sinh, chức vụ, địa chỉ, mô tả khác - Kiểu thực thể hóa đơn: Số hóa đơn (khóa), ngày lập, tổng tiền tháng ghi sổ + Điện: mã công tơ điện , số đầu, số cuối + Nước: mã công tơ nước, số đầu, số cuối (5) Mô hình thực thể liên kết: Ngày bắt đầu Ngày kết thúc Mã nhân viên Ngày sinh Mã hợp đồng N Hợp đồng Lập Họ tên Giới tính Địa Nhân viên Chức vụ Ngày lập Số điện thoại Quản lý N Có N 1 Số phòng Tình trạng phòng Có Lập Khu nhà N Số lượng sinh viên Phòng Mô tả khác 1 Có N Mã sinh viên Số CMND Ngày sinh Họ tên Số điện thoại Sinh viên Giới tính Lớp khóa Ngày lập Số hóa đơn Tổng tiền Tháng ghi sổ Hóa đơn Chí số nước đầu Chỉ số điện đầu Chỉ số điện cuói Mã công tơ điện Mã công tơ nước Chí số nước cuối (6) Ánh xạ mô hình thực thể liên kết sang mô hình liệu quan hệ B1 tạo các quan hệ ứng với các kiểu thực thể mạnh: - Hợp đồng ( mã hợp đồng, ngày lập, ngày bắt đầu, ngày kết thúc) - Sinh viên ( Mã sinh viên, họ tên, ngày sinh, giới tình, số CMND, số điện thoại, lớp – khóa) - Phòng ( số phòng, khu nhà, số lượng sinh viên, tình trạng phòng, mô tả khác) - Nhân viên ( Mã nhân viên, họ tên, ngày sinh, giới tính, địa chỉ, chức vụ, số điện thoại) - Hóa đơn (số hóa đơn, ngày lập, tổng tiền, mã công tơ điện, số điện đầu, số điện cuối, mã công tơ nước, số nước đầu, số nước cuối, tháng ghi sổ) B2 Xét các liên kết 1-1 - Liên kết Sinh viên <có> Hợp đồng: sinh viên có hợp đồng đắng ký vào ký túc, và hợp đồng lập cho sinh viên, nên ta lấy khóa (mã sinh viên) quan hệ Sinh viên làm khóa ngoại lai cho quan hệ Hợp đồng ta không hợp quan hệ để tránh tạo quan hệ có quá nhiều thuộc tính và cồng kềnh B3 Xét các liên kết 1-N - Liên kết Nhân viên <lập> Hợp đồng: nhân viên có thể lập nhiều hợp đồng, hợp đồng cs thể nhận viên lập, nên ta lấy khóa (mã nhân viên) quan hệ nhân viên làm khóa ngoại lai cho quan hệ hợp đồng - Liên kết Hợp đồng <có> Phòng: phòng có thể có nhiều hợp đồng đắng ký, hợp đồng đăng ký vào phòng, nên ta lấy khóa (số phòng, khu nhà) quan hệ Phòng làm khóa ngoại lai cho quan hệ hợp đồng - Liên kết Nhân viên <quản lý> Phòng: nhân viên có thể quản lý nhiều phòng, phòng có thể nhân viên (7) quản lý, nên ta lấy khóa (mã nhân viên) quan hệ nhân viên làm khóa ngoại lai cho quan hệ Phòng - Liên kết Nhân viên <lập> hóa đơn: nhân viên có thể lập nhiều hóa đơn, hóa đơn nhân viên lập, nên ta lấy khóa (mã nhân viên) quan hệ nhân viên làm khóa ngoại lai cho quan hệ hóa đơn - Liên kết Phòng <có> hóa đơn: phòng có thể có nhiều hóa đơn, hóa đơn lập cho phòng, nên ta lấy khóa (số phòng, khu nhà) quan hệ Phòng làm khóa ngoại lai cho quan hệ hóa đơn Ta có kết là mô hình liệu quan hệ: - Hợp đồng ( mã hợp đồng, mã sinh viên, mã nhân viên, số phòng, khu nhà, ngày lập, ngày bắt đầu, ngày kết thúc, ) - Sinh viên ( Mã sinh viên, họ tên, ngày sinh, giới tình, số CMND, số điện thoại, lớp – khóa) - Phòng ( số phòng, khu nhà, mã nhân viên, số lượng sinh viên, tình trạng phòng, mô tả khác) - Nhân viên ( Mã nhân viên, họ tên, ngày sinh, giới tính, địa chỉ, chức vụ, số điện thoại) - Hóa đơn (số hóa đơn, mã nhân viên,số phòng, khu nhà, ngày lập, tổng tiền, mã công tơ điện, số điện đầu, số điện cuối, mã công tơ nước, số nước đầu, số nước cuối, tháng ghi sổ IV, Truy vấn liệu sở liệu 1.1 quan hệ các bảng (8) 1.2 bảng hóa đơn 1.2 Bảng hợp đồng 1.3 Bảng nhân viên (9) 1.4 Bảng phòng 1.5 Bảng sinh viên 1.6 Bảng hóa đơn (10) câu hỏi truy vấn và kết câu 1: cho biết họ tên, ngày sinh, giới tính, lớp – khóa sinh viên có mã sinh viên là bk 1001 SQL: select [họ tên], [ngày sinh], [giới tính], [lớp - khóa] from [Sinh viên] where ([mã sinh viên] = "bk1001"); Đại số: Sinh viên (mã sinh viên = bk1001) [họ tên, ngày sinh, giới tính, lớp – khóa] Đáp án: câu 2: cho biết mã sinh viên, họ tên, lớp – khóa các sinh viên phòng 105, nhà b6 SQL: SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [Sinh viên] [lớp – khóa] FROM [Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên] WHERE ((([hợp đồng].[số phòng])="105") AND (([hợp đồng].[khu nhà])="b6")); Đại số: (Sinh viên * Hợp đồng) (số phòng = ‘105’ ^ khu nhà = ‘b6’) [sinh viên.mã sinh viên, họ tên, lớp – khóa] (11) Kết quả: Câu 3: liệt kê danh sách các phòng còn trống SQL: SELECT Phòng.[số phòng], Phòng.[khu nhà] FROM Phòng WHERE (((Phòng.[số lượng sinh viên])<10)); Đại số: Phòng (số lượng sinh viên < 10) [số phòng, khu nhà] Kết quả: Câu 4: cho biết mã số sinh viên, họ tên, ngày sinh, lớp các sinh viên tạm trú khu nhà b9 SQL: SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [Sinh viên] [ngày sinh], [Sinh viên].[lớp - khóa] FROM [Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên] WHERE ((([hợp đồng].[khu nhà])="b9")); Đại số: (Sinh viên * Hợp đồng) (khu nhà = ‘b9) [Sinh viên.mã sinh viên, họ tên, ngày sinh, lớp – khóa] Kết quả: (12) Câu 5: cho biết số phòng, khu nhà có sinh viên lớp toán tin2, k55 tạm trú, cho biết mã sinh viên, họ tên các sinh viên đó SQL: SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [hợp đồng] [số phòng], [hợp đồng].[khu nhà] FROM [Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên] WHERE ((([Sinh viên].[lớp - khóa])="toán tin 2, k55")); Đại số: (Sinh viên * Hợp đồng) (lớp – khóa = ‘toán tin 2, k55’) [Sinh viên.mã sinh viên, họ tên, số phòng, khu nhà] Kết quả: Câu 6: cho biết mã sinh viên, họ tên, ngày sinh, số phòng, khu nhà các sinh viên sinh năm 1992 SQL: SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [Sinh viên] [ngày sinh], [hợp đồng].[số phòng], [hợp đồng].[khu nhà] FROM [Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên] WHERE ((([Sinh viên].[ngày sinh]) Between #1/1/1992# And #12/31/1992#)); Đại số: (13) (Sinh viên * Hợp đồng) (ngày sinh >=1-1-1992 ^ ngày sinh <=31-121992) [Sinh viên.mã sinh viên, họ tên, ngày sinh, số phòng, khu nhà] Kết quả: Câu 7: cho biết danh sách các sinh viên (mã sinh viên, họ tên, ngày sinh, giới tính) họ Nguyễn tạm trú khu nhà b7 SQL: SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [Sinh viên] [ngày sinh], [Sinh viên].[giới tính], [Sinh viên].[khu nhà] FROM [Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên] WHERE ((([Sinh viên].[họ tên]) Like "nguyễn*") AND (([hợp đồng] [khu nhà])="b7")); Đại số: (Sinh viên * Hợp đồng) (khu nhà = ‘b7’ ^ họ tên = ‘nguyễn*’) [Sinh viên.mã sinh viên, họ tên, ngày sinh, giới tính, khu nhà] Kết quả: Câu 8: cho biết số hóa đơn, số phòng, khu nhà, ngày lập các hóa đơn lập nhân viên lương thu huyền SQL: SELECT [Hóa đơn].[số hóa đơn], [Hóa đơn].[số phòng], [Hóa đơn] [khu nhà], [Hóa đơn].[ngày lập] FROM [Nhân viên] INNER JOIN [Hóa đơn] ON [Nhân viên].[Mã nhân viên] = [Hóa đơn].[mã nhân viên] (14) WHERE ((([Nhân viên].[họ tên])="lương thu huyền")); Đại số: (Nhân viên * Hóa đơn) ( họ tên = ‘lương thu huyền’) [số hóa đơn, số phòng, khu nhà, ngày lập] Kết quả: Câu 9: cho biết họ tên, ngày sinh, địa nhân viên quản lý phòng 105 nhà b7 SQL: SELECT [Nhân viên].[họ tên], [Nhân viên].[ngày sinh], [Nhân viên] [địa chỉ]; FROM [Nhân viên] INNER JOIN [hợp đồng] ON [Nhân viên].[Mã nhân viên] = [hợp đồng].[mã nhân viên] WHERE ((([hợp đồng].[số phòng])="105") AND (([hợp đồng].[khu nhà])="b7")); Đại số: (Nhân viên * Hợp đồng) (số phòng = ‘105’ ^ khu nhà = ‘b7’) [họ tên, ngày sinh, địa chỉ] Kết quả: Câu 10: cho biết mã sinh viên, họ tên, ngày sinh, số CMND các sinh viên tạm trú phòng 414 ký túc xá SQL: (15) SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [Sinh viên] [ngày sinh], [Sinh viên].[số CMND] FROM [Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên] WHERE ((([hợp đồng].[số phòng])="414")); Đại số: (Sinh viên * Hợp đồng) (số phòng = ‘414’) [Sinh viên.mã sinh viên, họ tên, ngày sinh, số CMND] Kết quả: Câu 11: cho biết tổng tiền điện nước khu nhà b9 tháng 10 SQL: SELECT sum([Hóa đơn].[tổng tiền]) as [tong tien] from [Hóa đơn] WHERE [Hóa đơn].[khu nhà] = 'b9' GROUP BY [khu nhà] Kết quả: câu 12: cho biết tổng tiền điện nước khu nhà ký túc xá SQL: SELECT [Hóa đơn].[khu nhà], sum([Hóa đơn].[tổng tiền]) as [tong tien] FROM [Hóa đơn] (16) GROUP BY [khu nhà]; Kết quả: câu 13: cho biết số tiền điện nước phải trả là lớn khu nhà SQL: SELECT [Hóa đơn].[khu nhà], max([Hóa đơn].[tổng tiền]) as [max] FROM [Hóa đơn] GROUP BY [khu nhà]; Kết quả: câu 14: cho biết số tiền điện nước phải trả là nhỏ khu nhà SQL: SELECT [Hóa đơn].[khu nhà], min([Hóa đơn].[tổng tiền]) as [min] FROM [Hóa đơn] GROUP BY [khu nhà]; Kết quả: câu 15: cho biết mã sinh viên, họ tên, giới tính, lớp – khóa các sinh viên sinh năm 1992 tạm trú nhà b9 SQL: SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [Sinh viên] [ngày sinh], [Sinh viên].[lớp - khóa], [hợp đồng].[khu nhà] (17) FROM [Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên] WHERE ((([Sinh viên].[ngày sinh]) Between #1/1/1992# And #12/31/1992#) AND (([hợp đồng].[khu nhà])="b9")); Đại số: (Sinh viên * Hợp đồng) (khu nhà = ‘b9’ ^ ngày sinh >= 1-1-1992 ^ ngày sinh <= 31-12-1992) [Sinh viên.mã sinh viên, họ tên, ngày sinh, lớp – khóa, khu nhà] Kết quả: Câu 16: cho biết danh sách các phòng dùng 1300 số điện SQL: SELECT [Hóa đơn].[số phòng], [Hóa đơn].[khu nhà], [Hóa đơn].[chỉ số điện cuối] FROM [Hóa đơn] WHERE ((([Hóa đơn].[chỉ số điện cuối])<1300)); Đại số: Hóa đơn (chỉ số điện cuối < 1300) [số phòng, khu nhà, số điện cuối] Kết quả: Câu 17 lập danh sách các phòng dung trên 200 mét khối nước SQL: (18) SELECT [Hóa đơn].[số phòng], [Hóa đơn].[khu nhà], [Hóa đơn].[chỉ số nước cuối] FROM [Hóa đơn] WHERE ((([Hóa đơn].[chỉ số nước cuối])>200)); Đại số: Hóa đơn(chỉ số nước cuối>200) [số phòng, khu nhà, số nước cuối] Kết quả: Câu 18: danh sách các hợp đồng lập sau ngày 1-9-2012 SQL: SELECT [hợp đồng].[mã hợp đồng], [hợp đồng].[mã sinh viên], [hợp đồng].[mã nhân viên], [hợp đồng].[số phòng], [hợp đồng].[khu nhà], [hợp đồng].[ngày lập] FROM [hợp đồng] WHERE ((([hợp đồng].[ngày lập])>#1/9/2012#)); Đại số: Hợp đồng (ngày lập > 1-9-2012)[mã hợp đồng, mã sinh viên, mã nhân viên, số phòng, khu nhà, ngày lập] Kết quả: Câu 19: liệt kê các hóa đơn đã lập nhân viên bùi thị duyên (19) SQL: SELECT [Hóa đơn].[số hóa đơn], [Hóa đơn].[số phòng], [Hóa đơn] [khu nhà], [Hóa đơn].[ngày lập], [Hóa đơn].[tổng tiền], [Nhân viên].[họ tên] FROM [Nhân viên] INNER JOIN [Hóa đơn] ON [Nhân viên].[Mã nhân viên] = [Hóa đơn].[mã nhân viên] WHERE ((([Nhân viên].[họ tên])="bùi thị duyên")); Đại số: (Nhân viên * Hóa đơn) (Nhân viên.họ tên = ‘bùi thị duyên’) [số hóa đơn, số phòng, khu nhà, ngày lập, tổng tiền, họ tên] Kết quả: Câu 20: liệt kê các sinh viên nhân viên nguyễn mai hoa làm thủ tục hợp đồng vào ký túc xá SQL: SELECT [Sinh viên].[mã sinh viên], [Sinh viên].[họ tên], [Sinh viên] [ngày sinh], [Sinh viên].[giới tính], [Nhân viên].[họ tên] FROM [Nhân viên] INNER JOIN ([Sinh viên] INNER JOIN [hợp đồng] ON [Sinh viên].[mã sinh viên] = [hợp đồng].[mã sinh viên]) ON [Nhân viên].[Mã nhân viên] = [hợp đồng].[mã nhân viên] WHERE ((([Nhân viên].[họ tên])="nguyễn mai hoa")); Đại số: (Nhân viên * Sinh viên *Hợp đồng) (Nhân viên.họ tên = ‘nguyễn mai hoa’) [Sinh viên.mã sinh viên, Sinh viên.họ tên, Sinh viên.ngày sinh, Sinh viên.giới tính] Kết quả: (20) (21) Mục lục Lời mở đầu I bài toán thực tế II, các chức chương trình ứng dụng III, Thiết kế sở liệu IV, truy vấn liệu (22)

Ngày đăng: 12/06/2021, 18:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w