1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng phần mềm quản lý thư viện

39 10 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 39
Dung lượng 357,21 KB

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

Nội dung

Xây dựng phần mềm quản lý thư việnHì nh 4: Mô hì nh hệ thố ng quả n lý thư việ n SELECT nm.. CREATE PROC Prd_Thongke_Sach AS BEGIN DECLARE @TongQH INT SELECT @TongQH= SELECT COUNTMaNMFRO

Trang 1

1download by : skknchat@gmail.com

Trang 2

Xây dựng phần mềm quản lý thư viện

nế u chỉ là m trê n giấ y tờ thì rấ t khó khă(n trong việ c quả n lý , sử

a đổ i dữ liệ u và dễ) gâ y mấ t má t, bả o mậ t thô ng tin Chí nh vì thế đò i hỏ i cầ n phả i có mộ t hệ thố ng chặ( t chẽ , hợ p lý mớ i đả

m bả o đượ c việ c quả n lý dễ)dà ng đá p ứ ng đượ c nhu cầ u cầ n thiế t hiệ n nay

Thế kỷ XXI là thế kỷ bù ng nổ mạ nh mẽ củ a ngà nh khoa họ c kỹ thuậ

t nó i chung và ngà nh CNTT nó i riê ng Ngà y nay, việ c ứ ng dụ ng tin họ c trong cô ng tá c quả n lý phá t triể n rấ t mạ nh, ứ ng dụ ng tin họ c giú p cho

cô ng tá c quả n lý ngà y cà ng hiệ u quả hơn, gó p phầ n nâ ng cao hiệ u quả trong cô ng việ c, đưa ra cá c bá o cá o, số liệ u thố ng kê , Đồ ng thờ

i, trong cô ng việ c củ a nhà quả n lý tiế t kiệ m đượ c nhiề u thờ i gian, cô ng

sứ c, việ c quả n lý dễ)dà ng và bả o mậ t hơn.

Nhờ có sự phá t triể n củ a CNTT mà hiệ n nay đã có nhiề u phầ

n mề m ứ ng dụ ng quả n lý đượ c ra đờ i ví dụ như: Quả n lý nhâ n sự , quả n lý khá ch sạ n, quả n lý ngâ n hà ng, Vậ y tạ i sao ta khô ng thể kế t hợ p tin họ c trong việ c quả n lý thư việ n để khiế n cho việ cquả n lý trở nê n dễ)dà ng hơn

Vớ i nhữ ng lý do trê n nhó m đã quyế t đị nh chọ n đề tà i “ ” vớ i

mong muố n tì m hiể u về lĩ nh vự c quả n lý nó i chung mà mụ cQu n ả đí

chlýchí nhth vi n ư ệ là quả n lý sá ch củ a thư việ n Đạ i họ c Thủ y Lợ i nó i

riê ng để đá p ứ ng đượ c nhu cầ u thự c tế củ a con ngườ i Mụ c tiê u củ

a bà i bá o cá o là nê u rõ cá c đặ( c tả yê u cầ u củ a hệ thố ng, phâ n tí

ch, thiế t kế để xâ y dự ng đượ c phầ n mề m quả n lý thư việ n trê n phụ

c vụ cho việ c quả n lý hoà n toà n tự độ ng trê n má y tí nh

Trang 3

2download by : skknchat@gmail.com

Trang 4

Xây dựng phần mềm quản lý thư viện

Trang 5

3download by : skknchat@gmail.com

Trang 6

Xây dựng phần mềm quản lý thư viện

CH ƯƠ NG I: BÀI TOÁN Đ T RA VÀ YÊU C U C A H TH NG Ặ Ầ Ủ Ệ Ố

n lớ n như thư việ n trườ ng Đạ i họ c Thủ y Lợ i thì số lượ ng sá ch là rấ

t nhiề u đồ ng thờ i để quả n lý đượ c số sá ch đó cũ ng cầ n số lượ ng nhâ n viê n nhiề u Đặ( c biệ t nhữ ng thá ng đầ u kỳ họ c thì số lượ ngsinh viê n đế n để mượ n giá o trì nh rấ t đô ng Vì vậ y yê u cầ u đặ( t

ra là : Ph i ả làm sao đ ti t ki m đ ể ế ệ ượ c th i gian, ngu n nhân l c, thông tin ờ ồ ự

Tì m1.3Cáchhiể u th c ứ quytắAcgi i ả nghiệ pquy t ế vụ ,bàicá ctoán:yê u cầ

u đặ( t ra củ a đề bà i Cá c ngô n ngữ lậ p trì nh và cơ sở dữ liệ u.BắAt tay và o xâ y dự ng ứ ng dụ ng Tiế n hà nh kiể m tra và chạ ythử Thay đổ i

1.4 Phát bi u nghi p v c a ể ệ ụ ủ Khibàingườ itoán:mượ n (sinh viê n) đế n mượ n sá ch Nế u

thô ng

tin khô ngQu n ả đá plý ứ ngm ượ yê utr : n, ả cầ u đượ c mượ n (chưa đó ng tiề n) thì đưa

ra thô ng bá o từ chố i, nế u đá p ứ ng đượ c thì lậ p phiế u mượ n cho ngườ i mượ n (sinh viê n) Khi ngườ i mượ n trả sá ch, phiế u trả sẽ đượ c lậ p cho ngườ i mượ n dự

a trê n sự so khớ p.

Sinh viê n đang họ c tạ i trườ ng sẽ đượ c lưu thô

ng tin ở trê n hệ thố ngQu n ả Đồ nglýđ c ộ thờ igi : ả hệ thố ng sẽ sẽ quả

n lý cá c giao dị ch thô ng tin liê n quan tớ i độ c giả

Nhậ p mớ i thô ng tin sá ch, sử a chữ a thô ng

tin, xó a bỏ nhữ ng sá ch khô ngQu n ả cò nlýsách:đượ c sử dụ ng.

tin nhâ nQu n viê nlý nhân viên: Admin có quyề n thao tá c quả n lý thê m, sử a, xó a

thô ng

Trang 7

4download by : skknchat@gmail.com

Trang 8

Xây dựng phần mềm quản lý thư Lấ y viện thô ng tin từ cá c bả ng cầ n thiế t trong giao dị ch

để đưa raQu n ả số liệ u:lý thôngTổ ngđộ ck : ế giả , số đọ c giả đang mượ n, số độ

c giả quá hạ n trả , số độ c giả chưa đó ng phí , sá ch đang mượ n, sá ch tồ n, sá

quyề n Qtruy n ả cậ plý và o(admin):tấ tcả cá c chứ c nă(ng củ a hệ thố

ng, bao gồ m quả n lý nhâ n viê n, quả n lý cá c đầ u sá ch, thố ng kê sốlượ ng sinh viê n đế n mượ n sá ch, cậ p nhậ t bổ xung, sử a đổ i hoặ( c

xó a khi cầ n thiế t

Trang 9

Nhâ n viê n sẽ tiế p nhậ n thô ng tin yê u cầ u mượ n sá ch củ a sinh

viê n, hướ ngNhân dẫ)nviên:cho sinh viê n sử dụ ng phầ n mề m củ a hệ thố ng, tì m kiế

m sá ch khi

5download by : skknchat@gmail.com

Trang 10

có Xâyyê udựngcầ u,phầnghimềmnợ quảnvà xuấ tlýthưfileviệnexcel danh sá ch củ a nhữ ng sá ch đã mượ n, trả

và cò n

cm ượ n):cấ p sẵIn, xem trự c tiế p trạ ng thá i củ a mì nh đang mượ n bao nhiê

u quấ n sá ch và cò n nợ bao nhiê u.

CH ƯƠ NG 3: XÂY D NG MÔ HÌNH LIÊN K T TH C TH Ự Ế Ự Ể tblSach

Id_S, NgayM, NgayT, GhiChuM, ChiChuT,tblLichSuId_NM, Id_LichSu)

3.2 Xây d ng mô hình ER: ự

Trang 11

tblLichSu

tblSach

Trang 12

download by : skknchat@gmail.com

Trang 13

Xây dựng phần mềm quản lý thư viện

Trang 14

Xây dựng phần mềm quản lý thư viện

Hì nh 4: Mô hì nh hệ thố ng quả n lý thư việ n

SELECT nm Id , nm MaNM , nm TenNM ,

nm NgaySinh , CASE WHEN nm GioiTinh = 1 THEN

N'Nam'

WHEN nm.GioiTinh=0 THEN N'Nữ ' END AS

GioiTinh,Khoa,DiaChi, CASE WHEN Dp=1 THEN N'Đã Đó

Trang 15

8download by : skknchat@gmail.com

Trang 16

Xây dựng phần mềm quản lý thư viện

2 Thố ng kê cá c sá ch đang đượ c mượ n bở i 1 sinh viê n nà o đó

CREATE PROCEDURE [dbo] [Prd_tracudocgia]

EXEC dbo.Prd_tracudocgia @MaNM = N'SV06' nvarchar(50)

3 Thô ng kê tổ ng số sá ch cò n lạ i, số lượ ng sá ch đang mượ n và

số lượ ng sá ch quá hạ n

CREATE PROC Prd_Thongke_Sach

AS BEGIN

DECLARE @TongQH INT

SELECT @TongQH= (SELECT COUNT(MaNM)FROM dbo.tblQuaHan1)

SELECT dbo.Fun_TongSoSach () AS

END

Chạ y thử :

9

Trang 17

download by : skknchat@gmail.com

Trang 18

4Xây Th dựngt cphầntìmềmkiếmquảnsáchlýtưm tviện quy n sách nào ó.

CREATE PROC Prd_TK_SelectMaS

, dbo tblLoaiSach SELECT s MaS AS ls , ls WHERE MaL , TenSls MaL , NXB =, NamXBs MaL AND(, GiaSachMaS FROM LIKE

@MaSdbo tblSach + '%' OR AS TenSs

END END

Ch y th :

EXEC Prd_TK_SelectMaS 'S01'

5.Th ng kêdanh sách sinh viên m n sách trong m t ngày

b t kì CREATE PROC sinhvien_ms

@thang int

AS

DECLARE cur_ct cursor

SCROLL FOR

SELECT Id_NM, TenNM

FROM dbo.tblHDMuon, dbo.tblNM

WHERE (month (NgayM) = @thang) AND

(dbo.tblHDMuon.Id_NM=dbo.tblNM.Id) OPEN cur_ct

fetch first from cur_ct WHILE

@@fetch_status =0 BEGIN

fetch next from cur_ct END

CLOSE cur_ctDEALLOCATE

cur_ct Ch y th :

10

Trang 19

download by : skknchat@gmail.com

Trang 20

EXECXâydựngsinhvienpầnmềm_msquản'10'lý thư viện

6.Thủ tụ c tự cậ p nhậ t mã số hó a đơn khi thê m mộ

t hó a đơn mớ i create PROCEDURE Prd_MaSoHD

AS BEGIN

DECLARE @Dem INT

INT

SELECT @Dem = COUNT(SoHDMuon) FROM

dbo.tblHDMuon SELECT @Dem1 =

COUNT(SoHDMuon ) FROM dbo.tblLichSu IF

SELECT 1 AS SoHD

ELSE BEGIN

IF @Dem=0 AND @Dem1 !=0

SELECT MAX(SoHDMuon)+1 AS SoHD FROM

dbo.tblLichSu IF @Dem!=0 AND @Dem1 =0

SELECT MAX(SoHDMuon)+1 AS SoHD FROM

dbo.tblHDMuon IF @Dem!=0 AND @Dem1 !=0

IF ( SELECT MAX ( SoHDMuon ) AS SoHD FROM

dbo tblLichSu )>=( SELECT MAX ( SoHDMuon ) AS SoHD FROM

dbo tblHDMuon )

SELECT MAX(SoHDMuon)+ 1 AS SoHD FROM dbo.tblLichSu

ELSE SELECT MAX(SoHDMuon)+1 AS SoHD FROM dbo.tblHDMuon

Trang 21

11download by : skknchat@gmail.com

Trang 22

Xây dựng phần mềm quản lý thư viện

nào óc a m t sinh viên nào ó

CREATE function Fun_Soluongloaisach(@MaS

nvarchar(50),@Id int ) RETURNS int

as

begin declare @tong int

select @tong =(select COUNT( MaS)

FROM

dbo.tblSach,dbo.tblLoaiSach,dbo.tblLichSu

WHERE dbo.tblSach.MaS=@MaS AND

dbo.tblSach.MaL=tblLoaiSach.MaL AND Id =dbo.tblLichSu.Id_S AND

declare @tong int

select @tong =(select COUNT(id_S) from

Ch y th :

SELECT dbo.Fun_TongSoSachChoMuon()

3 Hàm tr vềgiátr tính t ng s sách còn l i trong kho

Trang 23

12download by : skknchat@gmail.com

Trang 24

Xây dựng phần mềm quản lý thư viện

create function Fun_TongSoSach()

returns int

as

begin declare @tong int

select @tong=(select COUNT

Ch y th :

SELECT dbo.Fun_TongSoSach ()

4 Hàm tr vềb ng tính s l ng sách theo t ng lo i sách

CREATE FUNCTION SLSACHTHEOLOAI()

RETURNS @kq TABLE ( MaL nvarchar(50), SLSach int)

AS BEGIN

INSERT INTO @kq SELECT MaL, COUNT(MaS) FROM

dbo.tblSach GROUP BY MaL

1 T o view li t kêthông tin các c gi m n sách quáh n

CREATE VIEW tblQuaHan1

AS SELECT dbo.tblNM.MaNM, dbo.tblNM.TenNM, dbo.tblNM.NgaySinh,

dbo.tblNM.Khoa, dbo.tblNM.DiaChi, dbo.tblNM.DongPhi, dbo.tblNM.GhiChu

dbo.tblSach ON dbo

Trang 25

download by : skknchat@gmail.com

Trang 26

Xây dựng phầndbomềm.tblChiTietHDMuonquảnlýthưviện ON dbo.tblSach.Id =

dbo ON dbo tblChiTietHDMuon tblNM Id = dbo tblHDMuonId_S INNER Id JOIN _NMdbo ON tblNM INNER JOIN

dbo tblHDMuon

dbo.tblChiTietHDMuon.SoHD_Muon = dbo tblHDMuon.SoHDMuon

WHERE (DATEDIFF(dd, dbo.tblHDMuon.NgayM, GETDATE()) > 120Chạ y thử :

SELECT * FROM dbo.tblQuaHan1

2 Tạ o vew chứ a thô ng tin sá ch đang đượ c mượ n

bở i sinh viê n CREATE VIEW dbo.DGM

AS SELECT nm.Id, nm.MaNM, nm.TenNM, s.MaS, ls.MaL, ls.TenS,

ls.NXB, ls.NamXB, ls.GiaSach

FROMdbo.tblNM AS nm INNER JOINdbo.tblHDMuon AS m ON nm.Id =

m.Id_NM INNER JOIN dbo tblChiTietHDMuon AS ctm ON

m.SoHDMuon = ctm SoHD_Muon INNER JOIN dbo.tblSach AS s ON

ctm.Id_S = s.Id INNER JOIN dbo.tblLoaiSach AS ls ON s.MaL = ls.MaLChạ y thử :

SELECT * FROM dbo.DGM

3 Tạ o view chứ a thô ng tin cơ bả n về giao đị ch mượ n củ a sinh viê n

CREATE VIEW

SELECT MaNM, TenNM, MaNV,TenNV, NgayM

FROM dbo.tblNV,dbo.tblNM, dbo.tblChiTietHDMuon, dbo.tblHDMuon

14

Trang 27

download by : skknchat@gmail.com

Trang 28

WHERE Xâydựng phần ( dbo mềm tblNV quản Id lý =

dbo thưviện tblHDMuon Id_NV ) AND

( dbo tblNM id = dbo tblHDMuon Id_NM )

AND

(dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon)

Ch y th :

SELECT * FROM THONGTINS_M

14.4TRIGGERTrigger không cho phép thêm phiếu m n nếu ngày m n

l n h n ngày hi n t i ng c l i chèn 1 b n ghi m i vào b ng HDMuon

CREATE TRIGGER Them_HDM

ON dbo.tblHDMuon

FOR INSERT AS

DECLARE @Id_NM INT

DECLARE @Id_NV INT

DECLARE @SoDMuon INT

DECLARE @NgayM DATE

DECLARE @GhiChu NVARCHAR(50)

SELECT @NgayM= NgayM FROM dbo.tblHDMuon

WHERE SoHDMuon IN ( SELECT SoHDMuon FROM Inserted)

IF(@NgayM >GETDATE())

BEGIN

PRINT N'D li u nh p vào không úng-Vui lòng ki m tra l i'

ROLLBACK TRAN END

ELSE IF (NOT EXISTS (SELECT SoHDMuon FROM

BEGIN

INSERT INTO dbo.tblHDMuon

( Id_NM, Id_NV, SoHDMuon, NgayM, GhiChu )

15

Trang 29

download by : skknchat@gmail.com

Trang 30

VALUESXâydựngphần(@Idmềm_NMquản, lýIdthư_NMviện- int

@Id_NV, Id_NV - int

@SoDMuon@NgayM, ,NgayM SoHDMuon-date - int

@GhiChu GhiChu - nvarchar(200)

DECLARE @tong int

UPDATE dbo.tblSach

SET @tong = dbo.SLSACHTHEOLOIAI()

FROM dbo.tblSach

WHERE MaS= (SELECT MaS FROM inserted)

3 TRIGGERS t c p nh t thông tin vào b ng l ch s sau khi cógiao d ch

mu n - tr di )n ra

CREATE TRIGGER dbo.Add_tblLichsu

ON tblTra FOR INSERT

AS BEGIN

DECLARE @dem INT

SELECT @dem=COUNT (Id_S) FROM

dbo.tblChiTietHDMuon WHERE Id_S =(SELECT Id_S

FROM Inserted)

IF @dem!=0

BEGIN

DECLARE @Id_NM INT

DECLARE @Id_NV_T INT

DECLARE @Id_NV_M INT

DECLARE @SoHDMuon INT DECLARE @Id_S INT DECLARE @NgayM

DATE

Trang 31

16download by : skknchat@gmail.com

Trang 32

DECLARE Xâydựngphần @NgayT mềmquản DATE lýthư DECLARE viện @GhiChuM NVARCHAR ( 500 )

DECLARE @GhiChuT NVARCHAR(500)

SELECT @Id_NV_T = Id_NV FROM Inserted

SELECT @Id_NV_M = Id_NV FROM dbo.tblHDMuon ,dbo.tblChiTietHDMuon

WHERE (dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon AND

dbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))

SELECT @SoHDMuon = SoHD_Muon FROM dbo.tblChiTietHDMuon WHERE Id_S=(SELECT Id_S FROM Inserted)

SELECT @Id_S = Id_S FROM Inserted

SELECT @NgayM = NgayM FROM dbo.tblHDMuon,dbo.tblChiTietHDMuon

WHERE (dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon AND

dbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))

SELECT @NgayT = NgayT FROM Inserted

SELECT @GhiChuM =GhiChu FROM dbo.tblHDMuon,dbo.tblChiTietHDMuon

WHERE (dbo.tblHDMuon.SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon AND

dbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))

SELECT @GhiChuT = GhiChu FROM Inserted

SELECT @Id_NM = Id_NM FROM dbo.tblHDMuon,dbo.tblChiTietHDMuon

WHERE (dbo.tblHDMuon SoHDMuon=dbo.tblChiTietHDMuon.SoHD_Muon

ANDdbo.tblChiTietHDMuon.Id_S = (SELECT Id_S FROM Inserted))

INSERT dbo.tblLichSu

( Id_NV_M , Id_NV_T , SoHDMuon , Id_S , NgayM , NgayT , GhiChuM , GhiChuT , Id_NM ) VALUES

( @Id_NV_M , @Id_NV_T , @SoHDMuon , @Id_S , @NgayM , @NgayT @GhiChuM , @GhiChuT , @Id_NM )

DELETE dbo.tblTra WHERE Id_S = (SELECT Id_S FROM Inserted)

DELETE dbo.tblChiTietHDMuon WHERE Id_S = ( SELECT Id_S FROM

Inserted) DECLARE @Index INT

SELECT @Index = COUNT(SoHD_Muon) FROM dbo.tblChiTietHDMuon WHERE

IF(@Index=0)

DELETE dbo.tblHDMuon WHERE SoHDMuon=@SoHDMuon

17download by : skknchat@gmail.com

Trang 33

ENDXâydựngELSEphần mềm quản lý thư viện

ROLLBACK TRAN END GO

ph i vào Roles,

ch nB1: new - > new Database Roles Add các Roles: ADMIN,

NHANVIEN t ng ng

B2: Gán quyền cho Roles:

- Roles ADMIN: cócác quyền db_accessadmin, db_backupoperator, db_datareader, db_datawriter, db_owner, db_securityadmin,

db_ddladmin

- Roles NHANVIEN cócác quyền db_datareader, db_datawriter,

db_owner B3: Viết Query phân quyền, thêm login, xóa quyền

c a roles

CREATE PROC [dbo] [phanquyen]

@manv nvarchar(10), @hoten nvarchar(50), @sdt

numeric(18, 0), @passnv nvarchar(3), @diachi

nvarchar(100 ), @quyen nvarchar(50)As begin

insert into tblNV(MaNV,TenNV, SDT, PassNV, DiaChi,

Quyen) values (@manv,@hoten,@sdt,

@passnv,@diachi,@quyen)

@manv,@manv if(@quyen)='ADMIN'

begin exec sp_addrolemember

end begin exec sp_addrolemember

[them_login]

@manv nvarchar(10),@pass nvarchar(50)

Trang 34

a begin transaction

declare @themlog nvarchar(300)

set @themlog ='create login ['+@manv+'] with password=

'''+ @pass+''+',default_database=[QLTHUVIEN]' exec (@themlog)

declare @themuser nvarchar(300)

18download by : skknchat@gmail.com

Trang 35

setXây dựng@themuserphầnmềm= 'createquảnlýthưuserviện['+@manv+']

GRANT ALL ON tblHDMuon TO ADMIN

GRANT ALL ON tblChiTietHDMuon TO ADMIN

GRANT ALL ON tblTra TO ADMIN

GRANTGRANT ALLALL ONON tblSachtblLoaiSachTOADMINTOADMINGRANTGRANT ALLALL ONON tblNMLichSu TOTO ADMINADMIN

GRANTGRANT ALLALL ONON tblNVtblHDMuonTOADMINTONHANVIEN

GRANTGRANT ALLALL ONON tblCHitTietMuontblTra TO NHANVIEN TO NHANVIEN

GRANTGRANT ALLALL ONON tblSachtblLoaiSachTONHANVIENTONHANVIEN

GRANT ALL ON tblNM TO NHANVIEN

GRANT select, INSERT ON tblHDMuon TO NHANVIEN

GRANT SELECT ON tblLoaiSach TO NHANVIEN

19download by : skknchat@gmail.com

Trang 36

Xây dựng phần mềm quản lý thư viện

Sau thờ i gian phâ n tí ch, thiế t kế và lậ p trì nh, nhó m đã hoà n thà nh cơ bả n hệ

gó p ý củ a cô để nhó m chú ng em có thể phá t triể n hệ thố ng nà y hoà n thiệ n

Demo giao di n ệ

- Trong tương lai, nhó m muố n phá t triể n hệ thố ng nà y thê m mộ t số chứ c

5.3 H ướ ng phát tri n ể

nă(ng để đá p ứ ng yê u cầ u thự c tế như: quả n lý việ c nhậ p

xuấ t suấ t, cho sinh viê n tự đă(ng nhậ p và o hệ thố ng để

xem thô ng tin, xâ y dự ng website cho phé p sinh viê n có thể

xem và tì m hiể u trướ c khi đế n mượ n sá ch,… đưa hệ thố ng

và o triể n khai thự c tế tạ i thư việ n

Trang 37

20download by : skknchat@gmail.com

Trang 38

Xây dựng phần mềm quản lý thư viện

CH ƯƠ NG 6: TÀI LI U THAM KH O Ệ Ả

n Hù ng

https://www.youtube.com/watch?v=7_UE_iC1-9c&feature=youtu.be&list=PLIbobkdH1ftS5_L858q3BXfsexe-HWprG

2 Lậ p trì nh mô hì nh 3 lớ p từ cơ bả n đế n nâ ng

cao Đạ i Phi Lê https://www.youtube.com/watch?

Trang 39

21download by : skknchat@gmail.com

Ngày đăng: 15/04/2022, 05:46

TỪ KHÓA LIÊN QUAN

w