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

tiểu luận dự án mẫuquản lý thư viện pnlib thư viện phương nam pnlib

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 (3.59 MB, 31 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>DỰ ÁN MẪUQUẢN LÝ THƯ VIỆN – PNLIB</b>

<b>GIẢNG VIÊN: LÊ HỒNG DUYSINH VIÊN: ĐỖ MINH HIỂULỚP: MD18305 - MOB2041</b>

SEPTEMBER 20, 2023PHƯƠNG NAM LIBRARY

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>1.GIỚI THIỆU DỰ ÁN1.1 GIỚI THIỆU PNLIB</b>

- Thư viện Phương Nam (PNLib) là một thư viện nhỏ, chuyên cho thuê các loại sách phục vụ cho các bạn đọc như “Kinh tế”, “Ngoại Ngữ”, “Công nghệ thông tin”, “Ẩm thực”, “Sức Khoẻ” …

<b>1.2 YÊU CẦU CỦA PNLIB</b>

- Việc quản lý các đầu sách, các phiếu mượn sách, thành viên hiện đang được thư viện quản lý trên sổ sách bằng tay. Việc này gây khó khăn cho thư viện, tốn thời gian ghi chép, và sai sót nhiều trong thống kê. Vì vậy, PNLIB mong muốn xây dựng một phần mềm chạy trên thiết bị di động cá nhân để hỗ trợ giải quyết các khó khăn trên.

<b>1.3 LẬP KẾ HOẠCH DỰ ÁN</b>

<b>Phân tích yêu cầu khách hàng</b>

Vẽ sơ đồ use casesĐặc tả yêu cầu hệ thống

Sơ đồ triển khai và yêu cầu hệ thống

Tạo giao diện

Tạo cơ sở dữ liệu với SQLITE

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Lập trình CSDLLập trình chức năng

<b>Kiểm thử</b>

Xây dựng kịch bản kiểm thử

<b>Đóng gói & triển khai</b>

Đóng gói sản phẩm

<b>2.PHÂN TÍCH U CẦU KHÁCH HÀNG</b>

<b>2.1 SƠ ĐỒ USE CASE</b>

a.Sơ đồ use case tổng

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

b.Sơ đồ use case dành cho nhân viên

c. Sơ đồ dành cho quản lý

<b>2.3 ĐẶC TẢ YÊU CẦU HỆ THỐNG2.3.1 QUẢN LÝ THÀNH VIÊN</b>

<b>Mô tả chức năng:</b>

<b>Too long to read onyour phone? Save</b>

to read later onyour computer

Save to a Studylist

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

-Chức năng quản lý thành viên được sử dụng để quản lý thông tin thành viên, chức năng này là liệt kê danh sách thành viên, xem thông tin chi tiết yêu cầu của mỗi thành viên, thêm thành viên mới, cập nhật thông tin hoặc xóa thành viên đã tồn tại.

<b>Dữ liệu liên quan</b>

-Thông tin của mỗi thành viên gồm: mã thành viên, họ tên thành viên, năm sinh thành viên.

<b>Dữ liệu liên quan</b>

-Thông tin của mỗi loại sách gồm: mã thể loại, tên thể loại.

<b>Dữ liệu liên quan</b>

-Thông tin của mỗi loại sách gồm: mã sách, tên sách, mã loại sách, giá thuê.

<b>Đối tượng sử dụng</b>

-Sau khi đăng nhập thì tất cả người dùng có thể sử dụng chức năng này.

<b>2.3.4 QUẢN LÝ PHIẾU MƯỢN</b>

<b>Mô tả chức năng:</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

-Chức năng quản lý phiếu mượn được sử dụng để quản lý phiếu mượn, chức năng này là liệt kê danhsách phiếu mượn, thêm phiếu mượn, cập nhật thông tin hoặc xóa phiếu mượn đã tồn tại.

<b>Dữ liệu liên quan</b>

-Thơng tin của mỗi phiếu mượn gồm: mã phiếu mượn, mã sách, mã thành viên, mã thủ thư, tiền thuê, ngày thuê, ngày trả

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>3.2.2 CHI TIẾT THỰC THỂ</b>

<b>3.2.2.1 Thực thể thủ thư</b>

MATT String Mã thủ thư

HoTen String Họ và tên thủ thư

<b>3.2.2.2 Thực thể phiếu mượn</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Thuộc tínhKiểu dữ liệuMơ tả</b>

MAPM INTEGER Mã phiếu mượnMATV INTEGER Mã thành viênMASACH INTEGER Mã sách

MATT String Mã thủ thưTIENTHUE INTEGER Tiền thuê

TRASACH INTEGER Ngày trả

<b>3.2.2.3 Thực thể thành viên</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>Thuộc tínhKiểu dữ liệuMơ tả</b>

MATV INTEGER Mã thành viênHOTEN String Họ và tên thành viênNAMSINH String Năm sinh thành viên

<b>3.2.2.4 Thực thể loại sách</b>

MALOAI INTEGER Mã loạiTENLOAI String Tên loại

<b>3.2.2.5 Thực thể sách</b>

MASACH INTEGER Mã sáchMALOAI INTEGER Mã loại

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

TENSACH String Tên sáchGIATHUE INTEGER Giá bán

<b>3.3 GIAO DIỆN</b>

<b>3.3.1 SƠ ĐỒ TỔ CHỨC GIAO DIỆN</b>

<b>3.3.1.1 CHỨC NĂNG TỔ CHỨC GIAO DIỆN CỦA THỦ THƯ</b>

<b>3.3.1.1 CHỨC NĂNG TỔ CHỨC GIAO DIỆN CỦA QUẢN LÝ</b>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>3.3.2 MÔ TẢ SƠ ĐỒ</b>

<b>3.3.2.1 CHỨC NĂNG ĐĂNG NHẬP</b>

*Đăng nhập tài khoản nhân sự

Nội dungNhân sự đăng nhập bằng mật khẩu và tên đăng nhập quản lý đã cung cấp

Điều kiệnQuản lý đã cung cấp mật khẩuInputTên đăng nhập, Mật khẩu

OutputTruy cập vào hệ thống dành cho nhân viên.

*Đăng nhập tài khoản quản lý

Nội dungQuản lý đăng nhập vào hệ thống bằng tài khoản được nhóm phát triển cung cấp

Điều kiệnQuản lý đã được cấp tài khoảnInputTên đăng nhập, Mật khẩu

OutputTruy cập vào hệ thống dành cho quản lý

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>3.3.2.2 CHỨC NĂNG MÀN HÌNH CHÍNH</b>

Nội dungHiện thị các chức năng của Quản lý phiếu mượnĐiều kiệnQuản lý và thủ thư đã được cấp tài khoản

<b>3.3.2.4 CHỨC NĂNG ĐỔI MẬT KHẨU</b>

*Chức năng đổi mật khẩu bên thủ thư và quản lý

Nội dungHiển thị chức năng đổi mật khẩu

Điều kiệnĐã đăng nhập vào hệ thống với quyền quản lý và thủ thư, nhân sựđã tồn tại trong bảng danh sách thủ thư

InputThông tin:+ Nhập mật khẩu cũ+ Nhập mật khẩy mới+ Nhập lại mật khẩu mới

OutputCập nhật mật khẩu của tài khoản quản lý và thủ thư

<b>3.3.2.5 CHỨC NĂNG QUẢN LÝ LOẠI SÁCH</b>

*Chức năng quản lý loại sách bên thủ thư và quản lýNội dungHiển thị thông tin loại sách

Điều kiệnĐã đăng nhập vào hệ thống với quyền quản lý và thủ thưInputMã thể loại, tên thể loại

OutputThông tin chi tiết về thể loại sách

<b>3.3.2.6 CHỨC NĂNG QUẢN LÝ SÁCH</b>

*Chức năng quản lý loại sách bên thủ thư và quản lý

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Nội dungHiển thị thông tin sách

Điều kiệnĐã đăng nhập vào hệ thống với quyền quản lý và thủ thưInputMã sách, tên sách, mã loại sách, giá bán, số trang.OutputThông tin chi tiết về sách

<b>3.3.2.7 CHỨC NĂNG QUẢN LÝ THÀNH VIÊN</b>

*Chức năng quản lý loại sách bên thủ thư và quản lý

Nội dungHiển thị thông tin thành viên

Điều kiệnĐã đăng nhập vào hệ thống với quyền quản lý và thủ thưInputMã thành viên, họ tên thành viên, năm sinh thành

OutputThông tin chi tiết về thành viên

<b>3.3.2.8 CHỨC NĂNG QUẢN LÝ PHIẾU MƯỢN</b>

*Chức năng quản lý loại sách bên thủ thư và quản lý

Nội dungHiển thị thông tin phiếu mượn

Điều kiệnĐã đăng nhập vào hệ thống với quyền quản lý và thủ thưInputMã phiếu mượn, tên phiếu mượn, họ tên thành viên,

mã sách, ngày mượn.

OutputThông tin chi tiết về thành viên

<b>3.3.2.9 CHỨC NĂNG THỐNG KÊ</b>

*Chức năng quản lý loại sách bên thủ thư và quản lý

Nội dungHiển thị thông tin 10 sách được mượn nhiều nhất và doanh thu Điều kiệnĐã đăng nhập vào hệ thống với quyền quản lý và thủ thư

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

InputSố phiếu mượn

OutputThông tin 10 sách được mượn nhiều nhất và doanh thu

<b>3.3.2.10 CHỨC NĂNG TẠO TÀI KHOẢN</b>

*Chức năng tạo tài khoản bên quản lý

Nội dungCó thể tạo tài khoản mới cho thủ thư

Điều kiệnĐã đăng nhập vào hệ thống với quyền quản lý InputThông tin tạo tài khoản:

+Họ và tên thủ thư+Tên tài khoản+Mật khẩu+Nhập lại mật khẩuOutputTài khoản mới cho thủ thư

<b>4. THỰC HIỆN DỰ ÁN4.1 TẠO GIAO DIỆN</b>

<b>4.1.1 MÀN HÌNH CHÍNH (MAINACTIVITY)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>4.1.2 CÁC MÀN HÌNH QUẢN LÝ4.1.2.1 MÀN HÌNH QUẢN LÝ PHIẾU MƯỢN(fragment_phieu_muon)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>4.1.2.2 MÀN HÌNH QUẢN LÝ LOẠI SÁCH(fragment_loai_sach)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>4.1.2.3 MÀN HÌNH QUẢN LÝ SÁCH(fragment_sach)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>4.1.2.4 MÀN HÌNH QUẢN LÝ THÀNH VIÊN(fragment_thanh_vien)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<b>4.1.3 MÀN HÌNH THỐNG KÊ TOP 10(fragment_top)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>4.1.4 MÀN HÌNH THỐNG KÊ DOANH THU(fragment_DOANH_THU)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<b>4.1.5 CÁC GIAO DIỆN HỖ TRỢ KHÁC</b>

<b>4.1.5.1 MÀN HÌNH CHÀO(fragment_plash_screen)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<b>4.1.5.2 MÀN HÌNH ĐĂNG NHẬP(fragment_login)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>4.1.5.3 MÀN HÌNH THÊM THỦ THƯ(fragment_add_user)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>4.1.5.4 MÀN HÌNH ĐỔI MẬT KHẨU(fragment_change_pass)</b>

<b>GIAO DIỆN</b>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

<b>4.2 TẠO CSDL VỚI SQLITE4.2.1 SƠ ĐỒ QUAN HỆ4.2.2 CHI TIẾT CÁC BẢNG4.2.2.1 Bảng ThuThu</b>

<b>CẤU TRÚC BẢNG</b>

<b>T<small>ÊNCỘT</small>K<small>IỂUDỮLIỆU</small>R<small>ÀNGBUỘC</small>M<small>ÔTẢ</small></b>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

MaTT TEXT PK Mã thủ thưMatKha

TEXT NOT NULL Mật khẩu

HoTen TEXT NOT NULL Họ và tên

<b>MÃ LỆNH TẠO BẢNG</b>

<b>CÂU LỆNH CƠ BẢN CỦA SQLITE</b>

<b><small>db</small></b><small>.insert(</small><b><small>"ThuThu"</small></b><small>, </small><b><small>null</small></b><small>, values);</small>

<b><small>db</small></b><small>.update(</small><b><small>"ThuThu"</small></b><small>, values, </small><b><small>"maTT=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maTT</small></b><small>});</small>

<b><small>db</small></b><small>.delete(</small><b><small>"ThuThu" "maTT=?"</small></b><small>, , </small><b><small>new </small></b><small>String[]{id});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>ThuThu </small></b>WHERE <b><small>maTT=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maTT</small></b><small>});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>ThuThu”</small></b><small>);</small>

<b>4.2.2.2 Bảng ThanhVien</b>

<b>CẤU TRÚC BẢNG</b>

maTV INTEGER PK Mã thành viênhoTen TEXT NOT NULL Họ và tênnamSin

TEXT NOT NULL Năm sinh

<b>MÃ LỆNH TẠO BẢNG</b>

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>CÂU LỆNH CƠ BẢN CỦA SQLITE</b>

<b><small>db</small></b><small>.insert(</small><b><small>"ThanhVien"</small></b><small>, </small><b><small>null</small></b><small>, values);</small>

<b><small>db</small></b><small>.update(</small><b><small>"ThanhVien "</small></b><small>, values, </small><b><small>"maTV=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maTV</small></b><small>});</small>

<b><small>db</small></b><small>.delete(</small><b><small>"ThanhVien "</small></b><small>, </small><b><small>"maTV=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{id});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>ThanhVien</small></b> WHERE <b><small>maTV=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maTV</small></b><small>});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>ThanhVien”</small></b><small>);</small>

<b>4.2.2.3 Bảng LoaiSach</b>

<b>CẤU TRÚC BẢNG</b>

maLoai INTEGER PK Mã loại sáchtenLoai TEXT NOT NULL Tên loại sách

<b>MÃ LỆNH TẠO BẢNG</b>

<b>CÂU LỆNH CƠ BẢN CỦA SQLITE</b>

<b><small>db</small></b><small>.insert(</small><b><small>"LoaiSach"</small></b><small>, </small><b><small>null</small></b><small>, values);</small>

<b><small>db</small></b><small>.update(</small><b><small>"LoaiSach "</small></b><small>, values, </small><b><small>"maLoai=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maLoai</small></b><small>});</small>

<b><small>db</small></b><small>.delete(</small><b><small>"LoaiSach " " maLoai =?"</small></b><small>, , </small><b><small>new </small></b><small>String[]{id});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>LoaiSach</small></b> WHERE <b><small>maLoai =?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maLoai</small></b><small>});</small>

<b><small>db</small></b> SELECT FROM* <b><small>LoaiSach”</small></b>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b>4.2.2.4 Bảng Sach</b>

<b>CẤU TRÚC BẢNG</b>

maSach INTEGER PK Mã sáchtenSach TEXT NOT NULL Tên sáchgiaThue INTEGER NOT NULL Giá thuêmaLoai INTEGER FK Mã loại sách

<b>MÃ LỆNH TẠO BẢNG</b>

<b>CÂU LỆNH CƠ BẢN CỦA SQLITE</b>

<b><small>db</small></b><small>.insert(</small><b><small>"Sach"</small></b><small>, </small><b><small>null</small></b><small>, values);</small>

<b><small>db</small></b><small>.update(</small><b><small>"Sach "</small></b><small>, values, </small><b><small>"maSach=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maSach</small></b><small>});</small>

<b><small>db</small></b><small>.delete(</small><b><small>"Sach " " maSach =?"</small></b><small>, , </small><b><small>new </small></b><small>String[]{id});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>Sach</small></b> WHERE <b><small>maSach =?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maSach</small></b><small>});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>Sach”</small></b><small>);</small>

<b>4.2.2.5 Bảng PhieuMuon</b>

<b>CẤU TRÚC BẢNG</b>

maPM INTEGER PK Mã phiếu mượnmaSach INTEGER FK Mã sách

maTV INTEGER FK Mã thành viên

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

MaTT TEXT FK Mã thủ thưtienThu

INTEGER NOT NULL Tiền thuê

Ngay DATE NOT NULL Ngày mượntraSach INTEGER NOT NULL Ngày trả

<b>MÃ LỆNH TẠO BẢNG</b>

<b>CÂU LỆNH CƠ BẢN CỦA SQLITE</b>

<b><small>db</small></b><small>.insert(</small><b><small>"PhieuMuon"</small></b><small>, </small><b><small>null</small></b><small>, values);</small>

<b><small>db</small></b><small>.update(</small><b><small>"PhieuMuon "</small></b><small>, values, </small><b><small>"maPM=?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maPM</small></b><small>});</small>

<b><small>db</small></b><small>.delete(</small><b><small>"PhieuMuon " " maPM =?"</small></b><small>, , </small><b><small>new </small></b><small>String[]{id});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>PhieuMuon</small></b> WHERE <b><small>maPM =?"</small></b><small>, </small><b><small>new </small></b><small>String[]{obj.</small><b><small>maPM</small></b><small>});</small>

<b><small>db</small></b><small>.execSQL(“</small>SELECT FROM* <b><small>PhieuMuon”</small></b><small>);</small>

</div>

×