Yêu cầu hiệu quả STT YÊU CẦU MÔ TẢ CHI TIẾT GHI CHÚ 1 Lập thẻ độc giả 100 thẻ / 1 giờ Hẹn ngày cấp thẻ độc giả 2 Nhận sách mới 100 sách / 1 giờ 3 Tra cứu sách Xử lý ngay thiết trả sách
Trang 1Khoa Công Nghệ Thông Tin
000
Đồ án môn học Xây Dựng Phần Mềm Hướng Đối Tượng
PHẦN MỀM QUẢN LÝ THƯ VIỆN
Trang 2Chương 1: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU
số tự động, bắt đầu từ 1,2,3,…) Mỗi đầu sách có thể có nhiều bản sao (cuonsach) ứng với đầu sách đó Mỗi tựa sách của một tác giả (tacgia) và có một bản tóm tắt nội dung
(tomtat) của sách (có thể là một câu hay vài trang) Khi bạn đọc muốn biết nội dung của cuốn sách nào, thì thủ thư sẽ xem phần tóm tắt của tựa sách đó và trả lời bạn đọc
Để trở thành đọc giả (docgia)của thư viện, thì bạn đọc phải đăng ký và cung cấp thông tin cá nhân cũng như địa chỉ và điện thoại của mình Thủ thư sẽ cung cấp cho bạn đọc một thẻ điện tử, trên đó có mã số thẻ chính là mã số bạn đọc để phân biệt các bạn đọc khác (Mã số được đánh số tự động, bẳt đầu từ 1,2,3,…) Thẻ này có giá trị trong 6 tháng
kể từ ngày đăng ký Một tháng trước ngày hết hạn thẻ, thủ thư sẽ thông báo cho bạn đọc biết để đến gia hạn thêm
Có 2 loại đọc giả (X,Y) Tưổi đọc giả từ 18 đến 55
Đăng ký:
Nếu bạn đọc muốn mượn một cuốn sách, nhưng cuốn này đang được một bạn đọc khác đang mượn, thì người này có thể đăng ký chờ Khi cuốn sách đó được trả về thì thủ thư sẽ thông báo đến người đăng ký trước nhất đến mượn
Phát sinh báo cáo thống kê:
Có bao nhiêu phiếu mượn sách trong năm qua?
Tỷ lệ một độc giả mượn ít nhất một cuốn sách?
Số lượng sách nhiều nhất mà một người đã mượn?
Tỷ lệ sách được mượn ít nhất một lần năm ngoái?
Tỷ lệ những phiếu mượn nào trả sách quá hạn?
Thời gian trung bình mượn một cuốn sách là bao nhiêu?
Bạn đọc mượn sách nhiều nhất lúc mấy giờ?
Các quy định hoạt động của hệ thống:
QĐ1: Thay đổi tuổi tối thiểu, tuổi tối đa, thời hạn có giá trị của thẻ
QĐ2: Thay đổi số lượng và tên các thể loại Thay đổi khoảng cách năm xuất bản
QĐ4: Thay đổi số lượng sách mượn tối đa, số ngày mượn tối đa
QĐ-1: Mã tựa sách là số thứ tự của các tựa sách có trong hệ thống bắt đầu từ 1 Khi thêm mới phải kiểm tra có những số thứ tự bị xoá thì bổ sung vào những số thứ tự bị trống này
Trang 3Nếu không có (nghĩa là những số thứ tự liên tục với nhau) thì thêm với số tự nhiên tiếp theo Trong trường hợp xoá thì không phải chỉnh sửa lại số thứ tự của các tựa sách ở phía sau
QĐ-2: Mã độc giả là số thứ tự của các độc giả có trong hệ thống bắt đầu từ 1 Khi thêm mới phải kiểm tra có những số thứ tự bị xoá thì bổ sung vào những số thứ tự bị trống này Nếu không có (nghĩa là những số thứ tự liên tục với nhau) thì thêm với số tự nhiên tiếp theo Trong trường hợp xoá thì không phải chỉnh sửa lại số thứ tự của các tựa sách ở phía sau
QĐ-3: Nếu độc giả mượn những đầu sách không còn trong thư viện thì hệ thống sẽ chuyển qua bảng dữ liệu đăng ký
QĐ-4: Nếu độc giả trả sách thì thông tin mượn sẽ chuyển sang quá trình mượn
Trang 41 Yêu cầu chức năng
Danh sách các yêu cầu nghiệp vụ:
STT TÊN YÊU CẦU BIỂU MẪU QUY ĐỊNH GHI CHÚ
Trang 5Danh sách các quy định:
STT MÃ SỐ TÊN QUY ĐỊNH MÔ TẢ CHI TIẾT GHI CHÚ
1 QĐ1 Quy định thẻ độc giả -Có 2 loại độc giả (Người
-Mỗi độc giả mượn tối đa 5 quyển sách trong 4 ngày
các quy định sau:
- QĐ1: Thay đổi tuổi tối thiểu, tuổi tối đa, thời hạn
có giá trị của thẻ
- QĐ2: Thay đổi số lượng
và tên các thể loại Thay đổi khoảng cách năm xuất bản
- QĐ4: Thay đổi số lượng sách tối đa, số ngày mượn tối đa
Trang 6Yêu cầu hiệu quả
STT YÊU CẦU MÔ TẢ CHI TIẾT GHI CHÚ
1 Lập thẻ độc giả 100 thẻ / 1 giờ Hẹn ngày cấp thẻ
độc giả
2 Nhận sách mới 100 sách / 1 giờ
3 Tra cứu sách Xử lý ngay
thiết
trả sách quá hạn
6 Thay đổi quy định Xử lý ngay Độc giả không có
quyền thay đổi quy định
7 Số phiếu mượn sách trong
11 Giờ mượn sách nhiều nhất Xử lý ngay
thiết khi gia hạn
có quyền đăng nhập vào hệ thống
Độc giả chỉ có quyền tra cứu sách
Trang 7Bảng trách nhiệm yêu cầu nghiệp vụ:
STT YÊU CẦU NGƯỜI DÙNG PHẦN MỀM GHI CHÚ
1 Lập thẻ độc giả Cung cấp thông tin
theo BM1
Kiểm tra QĐ1 và ghi nhận
2 Nhận sách mới Cung cấp thông tin
theo BM2
Kiểm tra QĐ2 và ghi nhận
3 Tra cứu sách Cung cấp tên sách hay
thể loại sách Tìm và xuất theo BM3
4 Lập phiếu mượn Cung cấp thông tin
theo BM4
Kiểm tra QĐ4 và ghi nhận
5 Nhận trả sách Cung cấp mã số sách
trả
Ghi nhận sách đã trả
6 Thay đổi quy
định
Thay đổi các quy định theo QĐ6
Cập nhật quy định
10 Thời gian trung
bình mượn sách Tính trung bình mượn thời gian
12 Gia hạn thẻ Cung cấp thông tin độc
giả, thẻ đọc giả
Kiểm tra và ghi nhận
13 Đăng nhập Nhập tên và mật khẩu
đăng nhập Kiểm tra quyền đăng nhập
2 Yêu cầu chất lượng:
Trang 8Danh sách các biểu mẫu:
Trang 9Chương 2: PHÂN TÍCH
Trang 10Bước 4: Kiểm tra loại độc giả có thuộc danh sách các loại độc giả không
Bước 5: Kiểm tra tuổi
Bước 6: Nếu thoả các quy định thì :
Tính ngày hết hạn của thẻ
Lưu D3 xuống CSDL Bước 7: Đóng kết nối CSDL
Nhận sách mới:
Thuật toán:
Bước 1: Thủ thư chọn chức năng nhận sách mới
Nhập thông tin sách cần nhập
Bước 2: Kiểm tra các thông tin của sách có hợp lệ không dựa vào QĐ2
Bước 3: Nếu hợp lệ thì nhập thông tin của sách và lưu xuống CSDL
Bước 4: Nếu không hợp lệ thì không nhận sách và thông báo không thành công
Trang 11Tra cứu sách:
Thuật toán:
Bước 1: Người sử dụng chọn chức năng tra cứu sách
Bước 2: Nhập các thông tin cần tra cứu
Bước 3: Có thể tra cứu chính xác hoặc gần đúng
Bước 4: Nếu người sử dụng là thủ thư thì có thêm quyền cập nhật sách
Bước 5: Xuất kết quả tra cứu cho người sử dụng xem
Lập phiếu mượn:
Thuật toán:
Bước 1: Thủ thư chọn chức năng lập phiếu mượn
Bước 2: Kiểm tra thẻ độc giả có còn hạn sử dụng
Bước 3: Kiểm tra sách có còn được cho mượn không
Bước 4: Nếu thỏa thì lập phiếu mượn cho độc giả, ghi xuống CSDL
Bước 5: Nếu không thì có các thông báo cần thiết, không cho độc giả mượn sách
Trang 12Nhận trả sách:
Thuật toán:
Bước 1: Thủ thư chọn chức năng nhận trả sách
Bước 2: Kiểm tra sách được mượn có quá hạn hay không
Bước 3: Nếu sách quá hạn, tính tiền phạt, thông báo cho độc giả
Bước 4: Ghi nhận việc trả sách, lưu xuống CSDL
Bước 5: Kiểm tra thẻ độc giả có hết hạn sử dụng chưa, thông báo cần thiết
Bước 6: Đóng CSDL
Thay đổi quy định:
Thuật toán:
Bước 1: Thủ thư chọn chức năng thay đổi quy định
Bước 2: Nhập các quy định cần thay đổi
Bước 3: Kiểm tra các quy đinh cần thay đổi có thỏa các quy đinh của thư viện hay không Bước 4: Nếu thỏa thì ghi xuống CSDL và thông báo thay đổi thành công
Bước 5: Nếu không thỏa thì thông báo thay đổi không thành công
Trang 13Số phiếu mượn sách trong năm:
Thuật toán:
Bước 1: Người sử dụng chọn chức năng tính số phiếu mượn sách trong năm
Bước 2: Chọn năm cần tính số phiếu mượn sách
Bước 3: Mở CSDL ứng với năm truyền vào
Bước 4: Tính số phiếu mượn sách
Bước 5: Xuất kết quả của việc tính toán ra bên ngoài
Bước 2: Chọn năm cần thống kê
Bước 3: Mở CSDL ứng với năm truyền vào
Bước 4: Duyệt CSDL tìm số lượng sách nhiều nhất mà một người đã mượn
Bước 5: Xuất ra kết quả thống kê
Bước 6: Đóng CSDL
Trang 14Tỷ lệ những phiếu mượn trả quá hạn:
Thuật toán:
Bước 1: Người sử dụng chọn chức năng tính toán tỷ lệ những phiếu mượn trả quá hạn Bước 2: Chọn năm cần tính toán
Bước 3: Mở kết nối CSDL ứng với năm truyền vào
Bước 4: Tính toán tỷ lệ những phiếu mượn trả quá hạn
Bước 5: Xuất kết quả tính toán
Bước 3: Mở kết nối CSDL ứng với năm truyền vào
Bước 4: Tính toán thời gian trung bình mượn sách của một độc giả
Bước 5: Xuất kết quả tính toán
Bước 6: Đóng kết nối CSDL
Trang 15Giờ bạn đọc mượn sách nhiều nhất:
Thuật toán:
Bước 1: Người sử dụng chọn chức năng thống kê giờ bạn đọc mượn sách nhiều nhất Bước 2: Chọn năm thống kê
Bước 3: Mở kết nối CSDL ứng với năm truyền vào
Bước 4: Duyệt CSDL thống kê được giờ bạn đọc mượn sách nhiều nhất
Bước 5: Xuất kết quả thống kê được
Bước 6: Đóng kết nối CSDL
Đăng nhập:
Thuật toán:
Bước 1: Thủ thư chọn chức năng đăng nhập hệ thống
Bước 2: Nhập các thông tin đăng nhập
Bước 3: Mở kết nối CSDL
Bước 4: Kiểm tra thông tin đăng nhập
Bước 5: Nếu đăng nhập thành công, cho vào hệ thống
Bước 6: Nếu đăng nhập thất bại, thông báo đăng nhập thất bại
Bước 7: Đóng kết nối CSDL
Trang 16Gia hạn thẻ:
Thuật toán:
Bước 1: Người sử dụng chọn chức năng gia hạn thẻ
Bước 2: Nhập các thông tin gia hạn thẻ
Bước 3: Mở kết nối CSDL
Bước 4: Kiểm tra việc gia hạn thẻ
Bước 5: Nếu gia hạn thành công, thông báo, cập nhật lại CSDL
Bước 6: Nếu gia hạn không thành công, thông báo
Bước 7: Đóng kết nối CSDL
Trang 172 Sơ đồ lớp
Sơ đồ lớp ở mức phân tích - vẽ sơ đồ:
Trang 18Danh sách các lớp đối tượng:
1 Tựa sách Các đầu sách có cùng tựa gọi là tựa sách nếu chúng
được dịch ra nhiều ngôn ngữ khác nhau
2 Đầu sách Thủ thư gọi sách là đầu sách
3 Cuốn sách Cuốn sách là các bản sao của đầu sách
5 Quá trình mượn Bảng ghi nhận việc mượn trả sách của độc giả, chỉ
được ghi khi độc giả trả sách
6 Ngôn ngữ Là nhiều thứ tiếng khác nhau khi dịch 1 đầu sách
thành các tựa sách khác nhau
8 Nhà xuất bản Nhà in sách
9 Thể loại
10 Đăng ký Độc giả mượn không có sách có thể đăng ký để khi
nào cuốn sách được trả thì độc giả được ưu tiên cho mượn trước
11 Mượn Cho biết độc giả mượn sách nào vào ngày nào
Record này sẽ bị xoá khi độc giả này trả sách và dữ liệu này sẽ được ghi vào bảng quá trình mượn
12 Người lớn Một loại độc giả
Trang 19Mô tả từng lớp đối tượng:
STT TÊN LỚP DANH SÁCH CÁC THÔNG TIN TRÁCH NHIỆM
Tác giả Năm xuất bản Nhà xuất bản Thể loại Tóm tắc
Chứa các thong tin
về sách (tựa,tác giả, năm xuất bản, nhà xuất bản, thể loại, tóm tắc)
2 Đầu sách Mã tựa sách
Ngôn ngữ Bìa Trạng thái
Mỗi đầu sách có một trạng thái cho biết sách đó đã được mượn hay chưa
3 Cuốn sách Mã cuốn sách
Tình trạng
Một đầu sách được nhân thành nhiều cuốn khác nhau gọi
là cuốn sách để có thể cho nhiều độc giả khác nhau mượn cùng một đầu sách.Tình trạng của sách cho biết sách đã được mượn hay chưa
Tên lót Tên
Người thực hiện chức năng đi mượn sách
Độc giả Ngày mượn Ngày hết hạn Ngày trả Tiền phạt Tiền đã trả Tiền đặt cọc Ghi chú
Lưu tất cả thông tin mượn sách của độc giả
6 Ngôn ngữ Tên ngôn ngữ
Trang 20giả muốn mượn trước sẽ được ưu tiên nếu cuốn sách
đó được trả
11 Mượn Sách
Độc giả Ngày mượn Ngày hết hạn
Chỉ là bảng lưu thông tin tạm thời khi độc giả mượn sách Thông tin này sẽ xoá đi khi độc giả trả sách
12 Người lớn Số nhà
Đường Quận Điện thoại Hạn sử dụng
Một người lớn có thể bảo lãnh tối đa
2 trẻ em
13 Trẻ em Độc giả người lớn
Ngày sinh
Trang 21Phần 3: THIẾT KẾ
Trang 221 Thiết kế dữ liệu
Sơ đồ logic
Danh sách các bảng dữ liệu
STT TÊN LỚP DANH SÁCH CÁC THÔNG TIN TRÁCH NHIỆM
1 Sach Ma_tuasach smallint khóa chính
Isbn smallint khóa chính Ma_cuonsach smallint khóa chính Tuasach char(63)
Tacgia char(10) khóa ngoại Tomtat char(100)
Ngonngu char(10) khóa ngoại Theloai char (10) khóa ngoại Nxb char(10) khóa ngoại Bia char(10) khóa ngoại Trangthai char(1)
-Các đầu sách có cùng tựa phân biệt bởi bìa và ngôn ngữ
-Cho biết sách có thể cho bạn đọc hay không
Trang 23Ma_dgnl char(10) khóa ngoại Loaidg char(10) khóa ngoại
3 Tacgia Ma_tacgia char(10) khóa chính
Ten_tacgia char(50)
-Là sách cho độc giả mượn
-Cho biết sách có thể cho bạn đọc hay không
4 Nxb Ma_nxb char(10) khóa chính
Ten_nxb char(50)
-Người đọc và mượn sách ở thư viện
5 Ngonngu Ma_ngonngu char(10) khóa chính
Ten_ngonngu char(50)
-Cho biết ngày mượn
và trả sách của độc giả -Cho biết tiền phạt nếu trả sách trể hạn
6 Theloai Ma_theloai char(10) khóa chính
Ten_theloai char(50)
7 muon isbn smallint khóa chính
ma_cuonsach smallint khóa chính ma_docgia char(10) khóa ngoại ngay_muon datetime
ngay_hethan datetime
-Cho biết tác giả của cuốn sách nào
8 Qtrinhmuon Isbn smallint khóa chính
Ma_cuonsach smallint khóa chính Ma_docgia char(10) khóa ngoại Ngay_hethan datetime
Ngay_tra datetime Tien_muon money Tien_datra money Tien_datcoc money Ghichu char(255)
-Cho biết nhà xuất bản của cuốn sách nào
9 Dangky Isbn int khóa chính
Ma_docgia char(10) khóa chính Ngay_dk datetime
Ghichu char(255)
-Một thể loại của sách
10 Dangnhap User char(20) khóa chính
Pass char(8) -Một thể loại của sách
11 Thaydoiquydin
h Soloaidg char(2) Tuoitoithieu char(2)
Tuoitoida char(2) Thoihanthe char(2) Soloaitheloai char(2) Kcnamxuatban char(2) Sosachmuontoida char(2) Songaymuontoida char(2)
-Một thể loại của sách
12 Bia Mabia char(10) khóa chính -Một thể loại của sách
Trang 242 Thiết kế giao diện
Nếu không trùng thì thông báo
Nếu trùng thì cho hiển các nút enable=true
Biến cố 1:
Khi người dùng chọn nút lập thẻ độc giả
Mở form lập thẻ độc giả
Biến cố 2:
Khi người dùng chọn nút lập phiếu mượn
Mở form Lập phiếu mượn sách
Biến cố 3:
Khi người dùng chọn nút tra cứu sách
Mở form tra cứu sách
78
9
10
Trang 25Mở form thay đổi quy định
Biến cố 6:
Khi người dùngl chọn nút nhập sách mới
Mở form nhập sách mới
Biến cố 7:
Khi người dùng chọn nút đăng ký giữ chỗ
Mở form đăng ký giữ chỗ
Biến cố 8:
Khi người dùng chọn nút xin gia hạn
Mở form xin gia hạn thẻ
Biến cố 9:
Khi người dùng chọn nút thoát
Thoát khỏi chương trình quản lý thư viện
Màn hình lập thẻ độc giả:
Biến cố 0:
Khi màn hình sắp được hiển thị
Lấy ngày hiện hành gán vào textbox ngày lập thẻ
Tính ngày hết hạn của thẻ dựa trên ngày lập thẻ và đưa vào textbox ngày hết hạn
Enable = false các textbox ngày lập thẻ, ngày hết hạn, mã độc giả, mã đgnl
Tự phát sinh mã độc giả tự động
Biến cố 1:
Khi người dùng chọn nút lưu
Kiểm tra các thông tin đã nhập đầy đủ chưa, nếu chưa thông báo lỗi
Trang 26Biến cố 2:
Khi người dùng chọn nút bỏ
Reset lại màn hình: xóa các textbox
Đưa con trỏ về textbox họ độc giả
Nếu không hợp lệ thì cho nhập lại
Nếu hợp lệ thì kiểm tra xem độc giả là loại độc giả nào
Nếu là độc giả trẻ em thì enable = true textbox mã đgnl
Khi người dùng nhập xong số điện thoại, kiểm tra có phải là số hay không
Nếu không thì báo lỗi
Màn hình nhập sách mới:
0
10 9
8
123456
Trang 27Biến cố 0:
Khi màn hình chuẩn bị hiển thị
Lấy dữ liệu đưa vào các combobox: nhà xuất bản, thể loại, ngôn ngữ, tác giả, bìa Lấy ngày hiện hành đưa vào textbox ngày nhập
Biến cố 1:
Khi người dùng chọn chọn nút Thêm NXB
Mở form Thêm nhà xuất bản
Biến cố 2:
Khi người dùng chọn nút Thêm Thể loại
Mở form Thêm thể loại
Biến cố 3:
Khi người dùng chọn nút Thêm Ngôn ngữ
Mở form Thêm ngôn ngữ
Biến cố 4:
Khi người dùng chọn nút Thêm tác giả
Mở form Thêm tác giả
Biến cố 5:
Khi người dùng chọn nút Thêm bìa
Mở form Thêm màu bìa
Biến cố 6:
Khi người dùng nhập vào năm xuất bản
Khi lostfocus thì chương trình sẽ kiểm tra xem năm nhập vào có thỏa quy định 3 hay không
Nếu không thỏa thì phải nhập lại
Biến cố 7:
Người dùng có thể nhập hoặc chọn ngày lập thẻ
Biến cố 8:
Khi người dùng chọn nút lưu
Nếu thông tin nhập chưa đầy đủ sẽ thông báo cho người dùng biết
Lưu kết quả xuống cơ sở dữ liệu nếu đã nhập đầy đủ
Reset lại màn hình: cho các textbox rỗng và các combobox rỗng