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 1● tieuluanmoi123docz net
TRƯỜ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
Trang 2● tieuluanmoi123docz net
Bắc Ninh , tháng … năm 2022
Trang 3● tieuluanmoi123docz net
Trang 4● tieuluanmoi123docz net
DANH MỤC VÀ BẢNG BIỂU SƠ ĐỒ
1 Danh mục
Số hiệu Tên Trang
Trang 5● tieuluanmoi123docz net
Mục lục
Trang 6● tieuluanmoi123docz net
Kết quả 30
Nhận xét của giáo viên
………
………
………
………
………
………
………
………
………
………
………
………
Trang 7● tieuluanmoi123docz net
………
………
………
………
………
………
………
………
………
CHƯƠ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ững nguồn tri thức vô tận để mở mang đầu óc, tư duy để từ đó họ có thể phát triển bản thân mì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áo mạ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ũng chí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ồn kiế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 1 cuố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 2 lầ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ải
Trang 8● tieuluanmoi123docz net
quyế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
CHƯƠ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
Trang 9● tieuluanmoi123docz net
a My SQL Server
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (RelationalDatabase Management System, viết tắt là RDBMS) hoạt động theo mô hìnhclient-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ối liên hệ giữachú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 ưu hóacho 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ạn nhưtrình soạn thảo mã với chức năng đánh dấu cú pháp mạnh mẽ, tự động hoànthà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 Python khác
là tính năng “khám phá biến” của Spyder cho phép hiển thị dữ liệu bằng cá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ọngà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ý
Trang 10● tieuluanmoi123docz net
c Visual Studio
Visual 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ể thaythế đượ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ực tiếp
từ Microsoft Từ khi ra đời đến nay, Visual Studio đã có rất nhiều các phiênbản sử dụng khác nhau Điều đó, giúp cho người dùng có thể lựa chọn đượcphiê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ụngphù 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ựa giaodiệ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 ứng dụng
Trang 11● tieuluanmoi123docz net
CHƯƠ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ínhquả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ôngbá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ùngthô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 đó
Trang 12● tieuluanmoi123docz net
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]
Hình 1: Biểu đồ DFD mức 0
Trang 13● tieuluanmoi123docz net
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ầu ngườidùng Đây là công việc bắt buộc để đảm bảo chất lượng phần mềm Đôi khi việcxá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
Trang 14● tieuluanmoi123docz net
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à so sánhcâ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)
Trang 15● tieuluanmoi123docz net
- 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)
• ví dụ: P {a, b} = {{}, {a}, {b}, {a, b}}
một số kiểu dữ liệu cơ bản đã được định
Trang 16● tieuluanmoi123docz net
Trang 17● tieuluanmoi123docz net
▪ 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ến
Thao tác có thể có các tham số vào và ra
Trang 18● tieuluanmoi123docz net
▪ 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 19● tieuluanmoi123docz net
▪ Đặ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 20● tieuluanmoi123docz net
CHƯƠ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êncầ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ý
Trang 21● tieuluanmoi123docz net
- Use case sách: use case này giúp sinh viên biết được thư viện có những loạisá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ảnlý
- Use case nhập dữ liệu: là use case mà sau khi đăng ký thẻ mượn sách cho sinhviê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
Trang 22● tieuluanmoi123docz net
Hình 6: Biểu đồ use case chức năng quản lý sách
Trang 23● tieuluanmoi123docz net
2 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á
TenSV Tên sinh viên Nvarchar 30
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
Tên thuộc tính Diễn giải Kiểu dữ liệu Độ dài Null khoá
Trang 24● tieuluanmoi123docz net
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
Tê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ính TenNQL 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á
TenSV Tên sinh viên Nvarchar 30
Ngaydangky Ngày đăng ký Datetime
Ngayhethan Ngày hết hạn Datetime
MaNQL Mã người quản lý Char 20 Khoá ngoại
Trang 25● tieuluanmoi123docz net
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
Cá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
Trang 26● tieuluanmoi123docz net
Hình 7: Mối quan hệ giữa các bảng
Trang 27● tieuluanmoi123docz net
c 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 :
Trang 28● tieuluanmoi123docz net
Hình 9: Giao diện thông báo
Khi đăng nhập chúng ta có 3 lựa chọn là bảng Sinh Viên (Giao diện chính) , bảngSách , bảng Người Quản Lý :
- Bảng Sinh Viên
Tại đây người quản lý có thể thêm – xoá – sửa – tìm kiếm thông tin của sinh viên 1cách dễ dàng và dễ dàng tìm kiếm được thông tin của sinh viên một các nhanh nhất,tuy nhiên do MaSv là khoá chính cho nên 2 sinh viên không thể trùng 1 MaSV vàkhông thể sửa được MaSV
Trang 29● tieuluanmoi123docz net
Hình 10: Giao diện quản lý sinh viên