Phát biểu bài toán Để dễ dàng trong việc quản lý thì mỗi sinh viên muốn mượn sách tại thư viện thì cầnphải gặp người quản lý để đăng ký cho mình thẻ mượn sách của thư viện, thời gianduy
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
Sinh viên thực hiện Khóa Lớp Mã SV
Phạm Lê Ngọc Sơn K10 IT1 197480201201
Bắc Ninh , tháng … năm 2022
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẦN: QUẢN LÝ DỰ ÁN
TÊN (BÀI TẬP LỚN): QUẢN LÝ THƯ VIỆN TRƯỜNG
ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
STT Sinh viên thực hiện Điểm bằng số Điểm bằng chữ Ký tên
Trang 3DANH MỤC VÀ BẢNG BIỂU SƠ ĐỒ
1 Danh mục
Hình 5 Biểu đồ use case chức năng quản lý sinh viên 17
Trang 4Mục lục
CHƯƠNG 1: MỞ ĐẦU 7
1 Lý do chọn đề tài 7
2 Phát biểu bài toán 7
3 Yêu cầu của hệ thống 7
4 Tính hữu dụng của bài toán 8
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 8
1 Các phần mềm hỗ trợ viết chương trình 8
a My SQL Server 8
b Spyder 8
c Visual Studio 9
CHƯƠNG 3: ĐẶC TẢ YÊU CẦU 10
1 Đặc tả trang thái máy hữu hạn 10
2 Đặc tả trừu tượng 10
3 Đặc tả trước – sau 12
4 Đặc tả Z 12
CHƯƠNG 4: THIẾT KẾ HỆ THỐNG 17
1 Mô hình thực thể use case 17
2 Thiết kế cơ sở dữ liệu 19
a Chi tiết các bảng trong cơ sở dữ liệu 19
b Mô hình quan hệ giữa các bảng 21
c Giao diện phần mềm quản lý 22
Kết quả 30
Trang 5Nhận xét của giáo viên
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 6CHƯƠNG 1: MỞ ĐẦU
1 Lý do chọn đề tài
Đối với xã hội hiện đại, tiên tiến ngày nay con người luôn hướng bản thân đến nhữngnguồn tri thức vô tận để mở mang đầu óc, tư duy để từ đó họ có thể phát triển bản thânmình một cách tốt hơn Người ta có thể tìm kiếm nguồn tri thức ấy qua các trang báomạng, tivi, các trang mạng điện tử, … Nhưng có những người thích sự yên tĩnh để dễdàng tiếp thu những kiến thức ấy thì thư viện quả là một sự lựa chọn sáng suốt, cũngchính vì lý do đó mà thư viện ngày càng được mọi người tìm tới, nhất là học sinh vàsinh viên Để phục vụ cho việc học sinh, sinh viên có thể dễ dàng tiếp thu nhiều nguồnkiến thức mới thì hầu hết các trường học đều xây dựng cho mình một thư viện, nhất làcác trường cao đẳng và đại học Thế nhưng thư viện thì đã có nhưng việc quản lý thưviện còn chưa được sát sao, chưa được chặt chẽ Ví dụ như một sinh viên A mượn 1cuốn sách sau đó lại mượn thêm một cuốn nữa thì khi ghi chép lại sẽ mất 2 dòng cho 2lần mượn sách, gây trùng lặp dữ liệu của sinh viên A dẫn đến gây tốn dữ liệu Cho nên
có một yêu cầu đặt ra cho vấn đề này là cần thiết một phần mềm ứng dụng có thể giảiquyết được bài toán làm thế nào để có thể dễ dàng hơn trong việc quản lý thư viện màlại tiết kiệm được dữ liệu Cũng chính vì lí do này mà em có một ý tưởng đó là lập nênmột phần mềm:” Quản lý sinh viên đăng ký thẻ mượn sách thư viện theo tháng “để cóthể khắc phục được những nhược điểm trên
2 Phát biểu bài toán
Để dễ dàng trong việc quản lý thì mỗi sinh viên muốn mượn sách tại thư viện thì cầnphải gặp người quản lý để đăng ký cho mình thẻ mượn sách của thư viện, thời gianduy trì thẻ do sinh viên tự chọn (ít nhất là 1 tháng – nhiều nhất là 1 năm) Thẻ do thưviện cung cấp bao gồm mã thẻ thư viện, tên chủ sở hữu, ngày hết hạn Khi dùng mãthẻ để tra có thể biết được số thông tin đăng ký của sinh viên, sách đã mượn, ngàyđăng ký thẻ, ngày hết hạn thẻ
3 Yêu cầu của hệ thống
Để đáp ứng được nhu cầu trên của bài toán thì ứng dụng được tạo ra cần đáp ứngđược:
- Tạo cho sinh viên một tài khoản lưu trữ thông tin cá nhân cần thiết để có thể dễ
dàng quản lý
- Truy – Xuất thông tin sinh viên đăng ký một các nhanh chóng
- Có thể sửa chữa, lưu thông tin sinh viên nhanh chóng, không giới hạn
- Tránh trùng lặp gây lãng phí data
- Chi phí quản lý thấp
4 Tính hữu dụng của bài toán
- Nắm bắt được thông tin của sinh viên đăng ký
- Quản lý số lượng sách trong thư viện, sách đã cho mượn
- Quản lý được ngày đăng ký, ngày hết hạn
Trang 7CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
1 Các phần mềm hỗ trợ viết chương trình
Để tạo ra được một phần mềm quản lý sinh viên đăng ký thẻ mượn sách theotháng cần sử dụng những phần mềm lập trình như: my SQL Server, Spyder,Visual Studio
a My SQL Server
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở(Relational Database Management System, viết tắt là RDBMS) hoạt độngtheo mô hình client-server RDBMS là một phần mềm hay dịch vụ dùng đểtạo và quản lý các cơ sở dữ liệu (Database) theo hình thức quản lý các mốiliên hệ giữa chúng
MySQL là một trong số các phần mềm RDBMS RDBMS và MySQLthường được cho là một vì độ phổ biến quá lớn của MySQL Các ứng dụngweb lớn nhất như Facebook, Twitter, YouTube, Google, và Yahoo! đều dùngMySQL cho mục đích lưu trữ dữ liệu Kể cả khi ban đầu nó chỉ được dùngrất hạn chế nhưng giờ nó đã tương thích với nhiều hạ tầng máy tính quantrọng như Linux, macOS, Microsoft Windows, và Ubuntu
b Spyder
Spyder là một môi trường phát triển Python mã nguồn mở được tối ưuhóa cho các bài toán liên quan đến khoa học dữ liệu Spyder đi kèm với phânphối quản lý gói Anaconda Spyder là công cụ thường dùng của các nhà khoahọc dữ liệu sử dụng Python Spyder tích hợp tốt với các thư viện khoa học dữliệu Python phổ biến như SciPy, NumPy và Matplotlib
Spyder có hầu hết các tính năng của một “IDE phổ biến”, chẳng hạnnhư trình soạn thảo mã với chức năng đánh dấu cú pháp mạnh mẽ, tự độnghoàn thành mã và thậm chí là trình duyệt tài liệu được tích hợp
Một tính năng đặc biệt không có trong các môi trường phát triển Pythonkhác là tính năng “khám phá biến” của Spyder cho phép hiển thị dữ liệu bằngcách sử dụng bố cục bảng ngay bên trong IDE Điều này làm nó nó trông khágọn gàng Nếu bạn thường xuyên làm các bài toán khoa học dữ liệu làm việcbằng cách sử dụng Python, thì đây là một tính năng độc đáo Việc tích hợpIPython/Jupyter là một đặc điểm nổi bật khác
Đây là phần mềm chính dùng để viết code cho ứng dụng quản lý
c Visual Studio
Trang 8Visual studio là một trong những công cụ hỗ trợ lập trình website rất
nổi tiếng nhất hiện nay của Microsoft và chưa có một phần mềm nào có thểthay thế được nó Visual Studio được viết bằng 2 ngôn ngữ đó chính là C# vàVB+ Đây là 2 ngôn ngữ lập trình giúp người dùng có thể lập trình được hệthống một các dễ dàng và nhanh chóng nhất thông qua Visual Studio
Visual Studio là một phần mềm lập trình hệ thống được sản xuất trựctiếp từ Microsoft Từ khi ra đời đến nay, Visual Studio đã có rất nhiều cácphiên bản sử dụng khác nhau Điều đó, giúp cho người dùng có thể lựa chọnđược phiên bản tương thích với dòng máy của mình cũng như cấu hình sửdụng phù hợp nhất
Bên cạnh đó, Visual Studio còn cho phép người dùng có thể tự chọn lựagiao diện chính cho máy của mình tùy thuộc vào nhu cầu sử dụng
Phần mềm này tạo nên window form, tạo nên giao diện chính cho ứngdụng
Trang 9CHƯƠNG 3: ĐẶC TẢ YÊU CẦU
1 Đặc tả trang thái máy hữu hạn
Để sử dụng được phần mềm quản lý thì trước tiên ta cần mở phần mềm lên, saukhi đã mở Phần mềm sẽ hiện lên một giao diện đăng nhập với các ô để nhập tài khoản
và mật khẩu, một nút đăng nhập để vào được phần mềm Ngoài ra có các chức năngcon như báo cáo, quên mật khẩu, thoát giúp cho người dùng có thể thuận tiện hơntrong việc sử dụng Khi người dùng điền tài khoản và mật khẩu rồi nhấn đăng nhập thìphần mềm hiểu rằng người dùng đang đưa ra yêu cầu đăng nhập, nó sẽ kiểm tra trong
cơ sở dữ liệu người dùng đã đăng ký có tồn tại tài khoản mật khẩu vừa ghi hay không:
- Nếu tồn tại tài khoản mật khẩu trên thì sẽ đưa người dùng vào giao diện chính
quản lý, tiếp theo người dùng sẽ tiến hành them sửa xóa tìm kiếm theo nhu cầu.Việc của phần mềm là theo dõi các tương tác của người dùng rồi kiểm tra cơ sở
dữ liệu, truy xuất dữ liệu theo yêu cầu
- Nếu tồn tại tài khoản nhưng không tồn tại mật khẩu, phần mềm sẽ đưa ra thông
báo mật khẩu sai đưa ra cho người dùng lựa chọn đăng nhập lại hoặc là quênmật khẩu
- Nếu không tồn tại tài khoản và mật khẩu, phần mềm đưa ra cho người dùng
thông báo tài khoản của bạn không tồn tại và tiếp theo sẽ đưa ra cho ngườidùng 2 lựa chọn đăng nhập lại, hoặc tạo tài khoản mới
Mục đích của giai đoạn phân tích là xác định rõ các yêu cầu của phần mềm cần pháttriển Tài liệu yêu cầu nên dễ hiểu với người dùng, đồng thời phải chặt chẽ để làm cơ
sở cho hợp đồng và để cho người phát triển dựa vào đó để xây dựng phần mềm Do đóyêu cầu thường được mô tả ở nhiều mức chi tiết khác nhau phục vụ cho các đối tượngđọc khác nhau
Biểu đồ luồng dữ liệu có thể được dùng để biểu diễn cho một hệ thống hay phần mềm
ở bất kì mức trừu tượng nào Trong thực tế, DFD có thể được phân hoạch thành nhiềumức biểu diễn cho chi tiết chức năng và luồng thông tin ngày càng tăng Do đóphương pháp dùng DFD còn được gọi là phân tích có cấu trúc Một DFD mức 0, cũngcòn được gọi là biểu đồ nền tảng hay biẻu đồ ngữ cảnh hệ thống, biểu diễn cho toàn
bộ phần tử phần mềm như một hình tròn với dữ liệu vào và ra được chỉ ra bởi các mũitên tới và đi tương ứng Một DFD mức 1 cụ thể hóa của DFD mức 0 và có thể chứanhiều hình tròn (chức năng) với các mũi tên (luồng dữ liệu) nối lẫn nhau Mỗi mộttrong các tiến trình được biểu diễn ở mức 1 đều là chức năng con của toàn bộ hệ thốngđược mô tả trong biểu đồ ngữ cảnh [1]
Trang 10Hình 1: Biểu đồ DFD mức 0
Hình 2: Biểu đồ DFD mức 1
3 Đặc tả trước – sau
Các tài liệu yêu cầu cần được thẩm định để đảm bảo thỏa mãn nhu cầungười dùng Đây là công việc bắt buộc để đảm bảo chất lượng phần mềm Đôi
Trang 11khi việc xác định đầy đủ yêu cầu trước khi phát triển hệ thống là không thực tế
và khi đó việc xây dựng các bản mẫu để nắm bắt yêu cầu là cần thiết
Hình 3: Biểu đồ hình thành các yêu cầu
Sau đó người phân tích phải định ra một vài giải pháp có thể (sơ bộ) và sosánh cân nhắc các điểm tốt và không tốt của các giải pháp đó (như tính năng của
hệ thống, giá cả cài đặt, bảo trì, việc đào tạo người sử dụng ) Đó là việc tìm ramột điểm cân bằng giữa nhu cầu và khả năng đáp ứng Mọi dự án đều khả thi khinguồn tài nguyên vô hạn và thời gian vô hạn Nhưng việc xây dựng hệ thống lạiphải làm với sự hạn hẹp về tài nguyên và khó (nếu không phải là không hiệnthực) bảo đảm đúng ngày bàn giao Phân tích khả thi và rủi ro có liên quan vớinhau theo nhiều cách Nếu rủi ro của dự án là lớn thì tính khả thi của việc chế tạophần mềm có chất lượng sẽ bị giảm đi [2]
4 Đặc tả Z
a Giới thiệu
- Được đề xuất bởi Jean René ở đại học Oxford
- Ngôn ngữ đặc tả hình thức được sử dụng rộng dãi nhất
- Dựa trên lý thuyết tập hợp
- Ký hiệu toán học
- Sử dụng các sơ đồ (schema)
- Gồm 4 thành phần cơ bản
+ Các kiểu dữ liệu (Types)
+ Các sơ đồ trạng thái (state schemas)
+ Các sơ đồ thao tác (Operation schemas)
+ Các toán tử sơ đồ (Schema operations)
Trang 12• ví dụ: P {a, b} = {{}, {a}, {b}, {a, b}}
một số kiểu dữ liệu cơ bản đã được định
Trang 13• red: {red, blue, green}
Trang 14 các biến trạng thái
khởi gán biến
các thao tác trên các biến
biến trạng thái có thể có các bất biến
• điều kiện mà luôn đúng, biểu diễn bởi các vị từ
Khởi gán biến
Khai báo thao tác trên biến
kí hiệu ∆ biểu diễn biến trạng thái bị thay đổi bởi thao tác
kí hiệu (dấu nháy đơn) biểu diễn giá trị mới của biếnThao tác có thể có các tham số vào và ra
tên tham số vào kết thúc bởi kí tự “?”
tên tham số ra kết thúc bởi kí tự “!”
e đặc tả hệ thống ghi nhận các nhân viên vào/ra hệ thống quản lý
Kiểu dữ liệu [Staff] là kiểu cơ bản mới của hệ thống
Trạng thái của hệ thống bao gồm
• tập hợp các người sử dụng hệ thống user
• tập hợp các nhân viên đang vào in
• tập hợp các nhân viên đang ra out
Đặc tả thao tác ghi nhận một nhân viên vào
Đặc tả thao tác ghi nhận một nhân viên ra
Trang 15 Đặc tả thao tác kiểm tra một nhân viên vào hay ra
• Thao tác này cho kết quả là phần tử của kiểu QueryReply == is_in | is_out
• đặc tả thao tác
Khởi tạo hệ thống
[3]
Trang 16CHƯƠNG 4: THIẾT KẾ HỆ THỐNG
1 Mô hình thực thể use case
Hình 4: Biểu đồ use case tổng quan
Mô tả các use case
- Use case Người quản lý: trung gian để sinh viên tương tác với hệ thống cụ thể
là khi sinh viên đăng ký thẻ mượn sách thì người quản lý có nhiệm vụ nhập các
dữ liệu của sinh viên đó lên hệ thống,
- Use case sinh viên: là người mượn sách, muốn mượn được sách thì sinh viên
cần phải đăng ký với người quản lý
- Use case hệ thống: là người quản lý toàn bộ thông tin của sinh viên đăng ký thẻ
thư viện, thông tin của người quản lý
- Use case sách: use case này giúp sinh viên biết được thư viện có những loại
sách nào và loại sachs mình tìm kiếm có còn không và số lượng còn là baonhiêu
- Use case thẻ mượn sách: giúp sinh viên có thể mượn sách thư viện cũng như có
quyền truy cập vào hệ thống để xem thông tin sách cũng như toàn bộ thông tinđăng ký ở thẻ
- Use case đăng ký: giúp sinh viên đăng ký thẻ mượn sách thông qua người quản
lý
Trang 17- Use case nhập dữ liệu: là use case mà sau khi đăng ký thẻ mượn sách cho sinh
viên thì người quản lí cần phải nhập dữ liệu vừa đăng ký lên hệ thống
Biểu đồ use case chức năng quản lý sinh viên
Hình 5: Biểu đồ use case chức năng quản lý sinh viên
Biểu đồ use case chức năng quản lý sách
Hình 6: Biểu đồ use case chức năng quản lý sách
Trang 182 Thiết kế cơ sở dữ liệu
a Chi tiết các bảng trong cơ sở dữ liệu
Bảng 1 Sinh Viên: Bảng Sinh Viên giúp người quản lý nắm bắt được
thông tin của sinh viên để phục vụ nhập dữ liệu lên hệ thống cũng như việcquản lý sinh viên hiệu quả hơn
Tên thuộc
tính Diễn giải Kiểu dữ liệu dài Độ Null Khoá
MaSV Mã sinh viên Char 20 Khoá chínhTenSV Tên sinh viên Nvarchar 30
SDT Số điện thoại int
MaLop Mã lớp Char 20
Bảng 2 Sách: Bảng Sách giúp người quản lý nhập – xuất sách, giúp người
quản lý biết được tổng số sách và sách hiện còn là bao nhiêu
MaSach Mã sách Char 20 Khoá chínhTeSach Tên sách Nvarchar 30
SoLuong Sô lượng Int
HienCon Hiện còn Int
Bảng 3 Người Quản Lý: Bảng Người Quản Lý giúp người quản lý biết được
lịch làm việc của mình
Trang 19Tên thuộc
tính Diễn giải Kiểu dữ liệu dài Độ null khoá
MaNQL Mã người quản lý Char 15 Khoá chínhTenNQL Tên người quản lý Nvarchar 30
Calamviec Ca làm việc Nvarchar 10
Ngay Ngày làm việc datetime
Bảng 4 Hệ thống: Sau khi sinh viên đăng ký thẻ thì mọi thông tin của sinh viên
đó sẽ được nhập lên hệ thống và sẽ được lưu trữ để phục vụ cho việc quản lý
Tên thuộc
tính Diễn giải Kiểu dữ liệu dài Độ Null khoá
MaSV Mã sinh viên Char 20 Khoá ngoạiTenSV Tên sinh viên Nvarchar 30
SDT Số điện thoại Int
MaLop Mã lớp Char 20
MaThe Mã thẻ Char 20 Khoá chínhNgaydangky Ngày đăng ký Datetime
Ngayhethan Ngày hết hạn Datetime
MaSach Mã sách Char 20 Khoá ngoạiMaNQL Mã người quản lý Char 20 Khoá ngoại
b Mô hình quan hệ giữa các bảng
Đây là mô hình liên kết các khoá giữa các bảng trong 1 CSDL với nhau
MaSV là khoá chính ở bảng SinhVien và là khoá phụ ở bảng HeThong
MaSach là khoá chính ở bảng Sach và là khoá phụ ở bảng HeThong
MaNQL là khoá chính ở bảng NguoiQuanLy và là khoá phụ ở bảng HeThongMaThe là khoá chính trong bảng HeThong
Trang 20Các khoá dược liên kết với nhau để dữ liệu ở bảng này thay đổi cũng sẽ dẫnđến việc thay đổi dữ liệu ở bảng khác và ngược lại.
Hình 7: Mối quan hệ giữa các bảng
Trang 21c Giao diện phần mềm quản lý
- Tại giao diện quản lý này người quản lý cần đăng nhập tài khoản mật khẩu
được cung cấp từ trước, mỗi người sẽ được cung cấp một tài khoản và mậtkhẩu riêng và không có quyền được tạo bất kì một tài khoản nào khác Ngoài ra
để hỗ trợ người quản lý thì tại giao diện chính sẽ có một số chức năng khácnhư: Quên mật khẩu, Báo cáo lỗi và Thoát
Hình 8: Giao diện đăng nhập
Khi đăng nhập sai sẽ hiện ra một bảng thông báo yêu cầu đăng nhập lại :
Hình 9: Giao diện thông báo