Khảo sát, phân tích và thiết kế Hệ thống quản lí kinh doanh cửa hàng sách bao gồm từ khâu nhập sách từ các nhà xuất bản schs và thanh toán với nhà xuất bản.
Trang 1MỤC LỤC
Trang
Phần I: Mục tiêu – Phạm vi đồ án
1 Mục tiêu của đồ án ……… 2
2 Phạm vi đồ án ……… ……… 2
Phần II: Phân tích – Thiết kế 3 Phân tích ……… 3
3.1 Phát hiện thực thể ……… 3
3.2 Mô hình ERD ……… 5
3.3 Mô tả thực thể ……… 6
3.4 Mô hình DFD ………10
3.5 Mô tả ô xử lý, kho dữ liệu ……….17
4 Thiết kế dữ liệu xử lý ……… 26
4.1 Mô hình dữ liệu mức logic ………26
4.2 Chuẩn hóa các quan hệ ……… 26
4.3 Giải thuật các ô xử lý ………27
4.4 Phát hiện các ràng buộc dữ liệu ……… 38
5 Thiết kế giao diện ………39
5.1 Thiết kế Menu ……… 39
5.2 Thiết kế Form ………46
5.3 Thiết kế Report ……… 52
Phần III: Đánh giá 6 Phân công ……… 54
7 Đánh giá ưu khuyết điểm ……… 54
7.1 Ưu điểm ……… 54
7.2 Khuyết điểm ……… 54
Trang 21 Mục tiêu:
Khảo sát, phân tích và thiết kế hệ thống quản lý kinh doanh cửa hàng sách bao
gồm từ khâu nhập sách từ các nhà xuất bản, bán sách và thanh toán với nhà xuất
bản Quản lý các hoạt động kiểm kê sổ sách và công nợ cuối mỗi tháng của cửa
hàng
2 Phạm vi đồ án:
_ Phạm vi thực hiện đồ án dựa trên những kiến thức thu được từ môn học Phân
tích thiết kế hệ thống thông tin do Thạc sĩ Nguyễn Gia Tuấn Anh giảng dạy
và tham khảo thêm một số tài liệu bên ngoài để bổ sung thêm kiến thức nhằm
hoàn thiện đồ án hơn, đáp ứng được mục tiêu đề án
_ Ứng dụng này khi được phát triển hoàn chỉnh (coding) có thể được áp dụng
trong thực tế, giúp tăng hiệu quả kinh doanh và tiết kiệm chi phí cho các cửa
hàng sách
Trang 3Phần II: Phân tích – Thiết kế
- Thực thể chứa thông tin về các thể lọai sách như: giáo khoa, tiểu
thuyết, văn học, khoa học …
- Các thuộc tính : MATL, TENTL
Trang 4- Thực thể tượng trưng cho cửa hàng mỗi khi cần nhập sách của một nhà
- Thực thể tượng trưng cho việc kiểm tra số lượng sách của cửa hàng để
nắm nhu cầu cho tháng tới
- Các thuộc tính: STTPKKE, NAMTHANG, SLTHEOSO, SLTHUCTE
- Thực thể tượng trưng cho công nợ đối với các nhà xuất bản để đánh
giá tình hình kinh doanh của cửa hàng
- Các thuộc tính: STTCN, NAMTHANG, NODK, NOCK, PHATSINH,
CHITRA
- Thực thể tượng trưng cho việc thanh tóan tiền cho các nhà xuất bản
dựa trên số tiền cửa hàng đang nợ của nhà xuất bản
- Các thuộc tính: SOPC,NGAYCHI,SOTIENCHI,LIDOCHI
Trang 53.2 Mô hình ERD:
Sau khi phân tích các mối kết hợp giữa các thực thể ta có mô hình dữ liệu mức
quan niệm (mô hình ERD) như sau :
Trang 63.3 Mô tả thực thể :
3.3.1 Thực thể HOADON :
Tên thực thể : HOADON
STTCTHD Số thứ tự chi tiết hóa đơn
Trang 7STTCTPN Số thứ tự chi tiết phiếu nhập
Trang 83.3.7 Thực thể KIEMKE :
Tên thực thể : KIEMKE
STTPKKE Số thứ tự phiếu kiểm kê
NAMTHANG Năm và tháng lập phiếu
SLTHEOSO Số lượng theo sổ
DIACHI Địa chỉ của nhà xuất bản
DIENTHOAI Điện thoại của nhà xuất bản
Trang 93.3.9 Thực thể PHIEUCHI :
Tên thực thể : PHIEUCHI
SOTIENCHI Số tiền chi
Trang 10• (1): Thông tin cung cấp từ nhân viên (phiếu nhập, hóa đơn …)
• (2): Thông báo đã thực hiện hoặc cập nhật thành công
• (3): Thông tin yêu cầu hóa đơn
• (4): Thông tin đáp trả yêu cầu của khách hàng
Hệ thống quản
lý kinh doanh cửa hàng sách
(1) (2) (3)
(4) (5) (6)
(7) (8)
NV
KH
CCH
NXB
Trang 11• (5): Yêu cầu báo cáo (doanh thu, công nợ …)
• (6): Thông tin báo cáo đáp trả
• (7): Yêu cầu thông tin phiếu nhập
Và cập nhật thông tin
1.2 Tính tổng tiền, tiền chiết khấu, đối chiếu
1.3 Lập phiếu nhập mới
TT vth lo
n ậ
T
về C T N
Nhân viên
NXB
Nhân viên
Trang 123.4.3 DFD của chức năng lập hóa dơn
Lập hóa đơn
Manager
2.1 Thống kê sách
và tính tổng tiền
SACH THELOAI
2.2 Lập hóa đơn mới
TT về chi tiết hóa đơn
Khách hàng
Trang 133.4.4 DFD của chức năng lập phiếu chi
Trang 143.4.5 DFD của chức năng lập phiếu kiểm kê
Lập phiếu kiểm kê
Manager
4.1 Thống kê sách
4.2 Lập phiếu kiểm kê
T
vềh
loại
Số lượng KK, Tựa sách, Thể loại
T
kiể
m k
Thông tin phiếu KK
In
CTHOADON
T c n ìm
Nhân viên Nhân viên
Trang 153.4.6 DFD của chức năng lập phiếu công nợ
Trang 163.4.7 DFD của chức năng tìm kiếm
Tìm kiếm
Manager
6.1 Tìm kiếm : Phiếu nhập, Hóa Đơn, Phiếu chi, Kiểm kê, Công nợ
6.2 Hiển thị tổng quát Các chi tiết cần tìm
6.3
In các kết quả (nếu cần)
Yêu cầu
Thông báo nếu
không tìm thấy
T c n ìm
TT cần tìm
T
tìm đ
ợc
T
tìm đ ợ
TT tìm
được
TT tìm được
TT tìm được
3.5 Mô tả ô xử lý, kho dữ liệu
Nhân viên,
Khách hàng
Nhân viên, Khách hàng
Trang 171 Ô xử lý Thống kê, kiểm tra và cập nhật sách mới
Tên ô xử lý: Thống kê, kiểm tra và cập nhật sách (Số 1.1)
DDL vào: Các thông tin của sách mới nhập
DDL ra:
+ Cập nhật sách, thể loại mới vào kho SACH
+ Thông báo cho người dung
Diễn giải ô xử lý: Thống kê các sách mới nhập, kiểm tra, đối chiếu với các số liệu của
+ Kiểm tra xem đã có thể loại mới nhập chưa, nếu chưa thì thêm thể
loại mới vào từ thông tin đầu vào về thể loại
+ Khi thể loại đã tồn tại thì mở kho SACH, kiểm tra xem tựa sách
mới đã có trong kho chưa
+ Nếu sách đã có trong kho thì cập nhật về số lượng, nếu chưa thì
thêm sách mới từ các thông tin đầu vào về sách
+ Đóng 2 kho PHIEUNHAP và SACH
Output: Thông báo đã cập nhật sách
2 Ô xử lý Tính tổng tiền, tiền chiết khấu
Tên ô xử lý: Tính tổng tiền, tiền chiết khấu (Số 1.3)
DDL vào: Thông tin về sách
DDL ra:
+ Các số liệu tính toán
+ Hiển thị cho người dung
Diễn giải ô xử lý: Tính tổng số tiền nhập sách và tiền chiết khấu
+ Tiền chiết khấu bằng tống tất cả các chiết khấu
Output: Các số liệu sau khi tính toán
Trang 183 Ô xử lý Lập phiếu nhập
Tên ô xử lý: Lập phiếu nhập (Số 1.4) DDL vào: Thông tin Nhà xuất bản, thời gian và thông tin sách nhập
DDL ra: Tờ phiếu nhập sách mới
Diễn giải ô xử lý: Lập phiếu nhập sách
Tóm tắt nội dung:
Input: Tên NXB, Tựa sách, Thể loại, Số lượng, Giá bìa
Xử lý:
+ Mở kho PHIEUNHAP
+ Tạo mã số phiếu nhập mới
+ Từ các dữ liệu ban đầu lập một phiếu nhập sách mới với mã số
vừa tạo
+ Đóng kho PHIEUNHAP
Output: Thông báo đã lập phiếu nhập mới cho người dùng
4 Ô xử lý Thống kê sách và tính tiền hóa đơn
Tên ô xử lý: Thống kê sách và tính tổng tiền hóa đơn (Số 2.1)
DDL vào: Thông tin về sách mua
DDL ra:
+ Thông tin về hóa đơn mới
+ Thông báo cho khách hàng
Diễn giải ô xử lý: Thống kê số lượng sách mua và tính tiền hóa đơn
Tóm tắt nội dung:
Input: Tên sách, số lượng, giá
Xử lý: Từ các dữ liệu về số lượng và giá cả tính số tiền thanh toán cho hóa đơn
Output: Số tiền khách hàng phải trả
Trang 195 Ô xử lý Lập hóa đơn mới
Tên ô xử lý: Lập hóa đơn mới (Số 2.2) DDL vào: Thông tin về khách hàng, thời gian và sách mua
DDL ra: Tờ hóa đơn mới
Diễn giải ô xử lý: Lập hóa đơn cho khách hang
+ Thông báo đã tạo ra hóa đơn mới
+ Hiển thị nội dung của hóa đơn
6 Ô xử lý Lập phiếu chi
Tên ô xử lý: Lập phiếu chi (Số 3.1) DDL vào: Thông tin nhà xuất bản, thời gian và thông tin về việc chi trả
DDL ra: Tờ phiếu chi mới
Diễn giải ô xử lý: Lập phiếu chi mới
Tóm tắt nội dung:
Input: Tên nhà xuất bản, lý do chi trả, số tiền chi và ngày lập phiếu
Xử lý: Từ các thông tin đầu vào, lập phiếu chi mới
Output:
+ Thông báo đã tạo phiếu chi mới
+ Hiển thị nội dung của phiếu chi
Trang 207 Ô xử lý Lập phiếu kiểm kê
Tên ô xử lý: Lập phiếu kiểm kê (Số 4.2) DDL vào: Các số liệu thống kê, thông tin nhà xuất bản và thời gian lập phiếu
DDL ra: Tờ phiếu kiểm kê mới
Diễn giải ô xử lý: Lập phiếu kiểm kê mới
Tóm tắt nội dung:
Input: Tựa sách, thể loại, số lượng theo sổ, số lượng KK, tên NXB, tháng năm
Xử lý: Từ các thông tin đầu vào, lập phiếu kiểm kê mới
Output:
+ Thông báo đã tạo phiếu kiểm kê mới
+ Hiển thị nội dung của phiếu kiểm kê
8 Ô xử lý Kiểm tra, tính toán công nợ
Tên ô xử lý: Kiểm tra tính toán nợ (Số 5.1) DDL vào: Phiếu nhập và phiếu chi
DDL ra: Các số liệu công nợ sau khi tính toán
Diễn giải ô xử lý: Từ các thông tin của phiếu nhập và phiếu chi tính toán số tiền cần
thanh toán cho các nhà xuất bản
Tóm tắt nội dung:
Input: Thông tin phiếu nhập, thông tin phiếu chi
Xử lý: Từ các số liệu trên phiếu nhập và phiếu chi, tính nợ đầu kỳ và nợ cuối kỳ đối
với các nhà xuất bản
Output:
+ Thông báo đã tạo phiếu kiểm kê mới
+ Hiển thị nội dung của phiếu kiểm kê
Trang 219 Ô xử lý Lập phiếu công nợ
Tên ô xử lý: Lập phiếu công nợ (Số 5.2) DDL vào: Thông tin nhà xuất bản, các số liệu công nợ đã có hoặc có được sau khi
tính toán
DDL ra: Tờ phiếu công nợ mới
Diễn giải ô xử lý: Lập phiếu công nợ cho các nhà xuất bản
Tóm tắt nội dung:
Input: Tên nhà xuất bản, nợ đầu kỳ, nợ cuối kỳ, phát sinh, chi trả
Xử lý: Lập phiếu công nợ mới từ các thông tin trên
Output:
+ Thông báo đã tạo phiếu công nợ mới
+ Hiển thị nội dung của phiếu
10 Ô xử lý Tìm kiếm hóa đơn, phiếu nhập, phiếu chi
Tên ô xử lý: Tìm kiếm Hóa đơn, phiếu chi, phiếu nhập (Số 6.1)
DDL vào: Thông tin về nội dung cần tìm kiếm (Hóa đơn, phiếu nhập hoặc phiếu chi)
DDL ra: Dữ liệu tìm kiếm được trong sơ sở dữ liệu nếu có
Diễn giải ô xử lý: Tìm kiếm các thông tin tương ứng trong khoảng thời gian mà người
dùng nhập vào
Tóm tắt nội dung:
Input: Ngày cận trên, ngày cận dưới
Xử lý:
+ Mở kho tương ứng với nội dung mà người dùng cần tìm kiếm
+ Lấy tất cả các dữ liệu thỏa mãn nằm trong khoảng thời gian mà người
dùng nhập vào
Output:
+ Thông báo kết quả tìm kiếm
+ Hiển thị tất cả các thông tin tìm được cho người dùng nếu tìm được
Trang 2211 Ô xử lý Tìm kiếm phiếu kiểm kê, công nợ
Tên ô xử lý: Tìm kiếm phiếu kiểm kê, công nợ (Số 6.1) DDL vào: Thông tin về nội dung cần tìm kiếm (Phiếu kiểm kê hoặc công nợ)
DDL ra: Dữ liệu tìm kiếm được trong sơ sở dữ liệu nếu có
Diễn giải ô xử lý: Tìm kiếm các thông tin tương ứng trong khoảng thời gian mà người
dung nhập vào
Tóm tắt nội dung:
Input: Tháng năm
Xử lý:
+ Mở kho tương ứng với nội dung mà người dùng cần tìm kiếm
+ Lấy tất cả các dữ liệu thỏa mãn nằm trong khoảng thời gian mà người
dùng nhập vào
Output:
+ Thông báo kết quả tìm kiếm
+ Hiển thị tất cả các thông tin tìm được cho người dùng nếu tìm được
12 Mô tả kho dữ liệu Phiếu nhập
Tên kho dữ liệu: Phiếu nhập sách Diễn giải: Lưu trữ thông tin về phiếu nhập sách
Cấu trúc dữ liệu:SOPN, NGAYNHAP
Chi tiết:
13 Mô tả kho dữ liệu Hóa đơn
Tên kho dữ liệu: Hóa đơn Diễn giải: Lưu trữ thông tin về hóa đơn mua sách
Cấu trúc dữ liệu: SOHD, NGAYHD, HOTENKH
Chi tiết:
Trang 2314.Mô tả kho dữ liệu Phiếu chi
Tên kho dữ liệu: Phiếu chi Diễn giải: Lưu trữ thông tin về phiếu chi
Cấu trúc dữ liệu: SOPC, NGAYCHI, SOTIENCHI, LIDOCHI
15 Mô tả kho dữ liệu Sách
Tên kho dữ liệu: Sách Diễn giải: Lưu trữ thông tin về sách
Cấu trúc dữ liệu: MASACH, TENSACH, GIABIA, TLCK
16 Mô tả kho dữ liệu Nhà xuất bản
Tên kho dữ liệu: Nhà xuất bản Diễn giải: Lưu trữ thông tin về nhà xuất bản
Cấu trúc dữ liệu: MANXB, TENNXB, DIACHI, DIENTHOAI
Trang 2417 Mô tả kho dữ liệu Thể loại
Tên kho dữ liệu: Thể loại Diễn giải: Lưu trữ thông tin về các thể loại sách
Cấu trúc dữ liệu: MATL, TENTL
18 Mô tả kho dữ liệu Phiếu kiểm kê
Tên kho dữ liệu: Phiếu kiểm kê
Diễn giải: Lưu trữ thông tin kiểm kê sách mỗi tháng
Cấu trúc dữ liệu: MSPKK, NAMTHANG
Chi tiết:
theo số Số lượng kiểm kê
19 Mô tả kho dữ liệu Công nợ
Tên kho dữ liệu: Công nợ Diễn giải: Lưu trữ thông tin về công nợ đối với các nhà xuất bản
Cấu trúc dữ liệu: STTCN, NAMTHANG, NODK, NOCK, PHATSINH, CHITRA
Trang 254 Thiết kế dữ liệu, xử lý
4.1 Mô hình dữ liệu mức logic
Phân rã thành các quan hệ từ mô hình ERD
• CT_HOADON(STTCTHD, SLBAN, GIABAN, SOHD, MASACH)
• SACH(MASACH, TENSACH, GIABIA, TLCK, MATL, MANXB)
• PHIEUCHI (SOPC, NGAYCHI, SOTIENCHI, LIDOCHI, MANXB
4.2 Chuẩn hóa các quan hệ
Trong quá trình thiết lập mô hình ERD, các quan hệ đã thỏa chuẩn III và chuẩn
BCNF nên không cần phải chuẩn hóa l
Trang 261 Ô xử lý 1.1
Giải thuật ô xử lý: 1.1
Thống kê và kiểm tra sách
Input: Tên sách, giá bìa, TLCK, thể loại
Output: Các thông tin về sách, thể loại
Thể loại: tl Tên sách: ts Giá bìa: gb TLCK: ck
Mở table THELOAI
Chưa hết dữ liệu
Đọc một dòng x
Nếu x.theloai = tl
Mở table SACH
Chưa hết dữ liệu
Đọc một dòng y
Nếu y.tensach = ts
y.soluong =y.soluong + soluong
Đóng 2 table THELOAI, SACH
Tạo mã số tl mới
Tạo dòng a:
a.theloai = tl
Hiển thị kết quả Thêm mã sách mới
Tạo dòng a:
a.Tensach = ts a.Giabia = gb a.TLCK = ck a.soluong =sl
Đ S
Trang 272 Ô xử lý 1.3
Giải thuật ô xử lý: 1.3
Tính tổng tiền, tiền chiết khấu, đối chiếu
Input: Giá bìa, tỷ lệ chiết khấu, số lượng
Output: Tổng tiền, chiết khấu
Tiền = sl * gb Chiết khấu = sl * gb * ck
Chưa hết
dữ liệu Chưa hết dữ liệu
Tiền = sl * gb Chiết khấu = sl * gb * ck
Tên sách: ts
Số lượng: sl Giá bìa: gb TLCK: ck
Tổng thành tiên = tổng tiền Tổng chiết khấu = tổng chiết khấu
Hiển thị kết quả
Trang 283 Ô xử lý 1.4
Giải thuật ô xử lý: 1.4
Lập phiếu nhập
Input: Tên NXB, ngày nhập, tựa sách, thể loại, số lượng, giá bìa
Output: Thông tin phiếu nhập
Thêm dòng y váo table CTPNHAP
Chưa hết dữ liệu Ban đầu
Hiển thị kết quả Đóng table CTPNHAP
S
Đ
Trang 29
Giá tiền = sl * g
Chưa hết dữ liệu Ban đầu
Tổng tiền = tổng giá tiền
Hiển thị kết quả
S
Đ
Trang 30
5 Ô xử lý 2.2
Giải thuật ô xử lý: 2.2
Lập hóa đơn mới
Input: Ten_KH, ngay_thang_nam, số lượng bán, gía bán
Output: thong tin về hóa đơn
Thêm dòng y vào table CTHOADON
Chưa hết dữ liệu ban đầu Đóng table CTHOADON Hiển thị kết quả
Mở table CTHOADON
S
Đ
Trang 316 Ô xử lý 3.1
Giải thuật ô xử lý: 3.1
Lập phiếu chi
Input: Tên NXB, số tiền chi, lý do chi, ngày tháng năm
Output: Thông tin phiếu chi
Mở table PHIEUCHI
Thêm dòng x vào table
Đóng table PHIEUCHI
Hiên thị kết quả
Trang 327 Ô xử lý 4.2
Giải thuật ô xử lý: 4.2
Lập phiếu kiểm kê
Input: Tựa sách, thể loại, số lượng theo sổ, số lượng KK, tháng năm, tên NXB
Output: Thông tin phiếu kiểm kê
Thêm dòng x vào table KIEMKE
Đóng table KIEMKE
Hiển thị kết quả
Trang 338 Ô xử lý 5.1
Giải thuật ô xử lý: 5.1
Kiểm tra tính toán nợ
Input: Thông tin phiếu nhập, thông tin phiếu chi
Output: Nợ đầu kì, nợ cuối kì
Tổng tiền nhập: tn Thanh toán đầu kỳ: đk Chi trả: ct
Nợ đk = tn - dk
Nợ CK = Nợ đk - ct
Hiên thị kết quả
Trang 349 Ô xử lý 5.2
Giải thuật ô xử lý: 5.2
Lập phiếu công nợ
Input: NXB, nợ đầu kỳ, nợ cuối kỳ, phát sinh, chi trả
Output: Thông tin phiếu công nợ
Thêm một dòng x vào table CONGNO
Đóng table CONGNO
Hiển thị kết quả
Trang 3510 Ô xử lý 6.1
Giải thuật ô xử lý: 6.1
Tìm kiếm Hóa đơn, Phiếu chi, Phiếu nhập
Input: Ngày cận trên, Ngày cận dưới
Output: Thông tin tìm được
Chọn nội dung muốn tìm kiếm
(PNHAP, PCHI, HOADON): X
S
Đ
S
Đ
Trang 374.4 Phát hiện ràng buộc dữ liệu:
• Khi nhập sách của nhà xuất bản cửa hàng sẽ kiểm tra, đối chiếu các số liệu của
nhà xuất bản với các số liệu kiểm kê của cửa hàng Nếu không khớp thì sẽ
thông báo cho nhà xuất bản
• Khi thanh toán với nhà xuất bản cửa hàng chỉ cần thanh toán số tiền là
Giá bìa – (Giá bìa)*TLCK
• Giá bán của cửa hàng không nhất thiết phải giống với giá nhập từ nhà xuất bản
• Khi thanh toán cho nhà xuất bản, số tiền chi ra phải nhỏ hơn số tiền cửa hàng
đang nợ nhà xuất bản
• Thực thể KIEMKE không cần thiết phải tách ra thành hai thực thể (bao gồm
phiếu kiểm kê và chi tiết phiếu) vì khi đó thực thể phiếu kiểm kê chỉ có đúng
một thuộc tính là tháng năm lập phiếu