PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
MỤC LỤC
Lời mở đầu 3
PHẦN I: Phân tích đề tài 4
I. Yêu cầu của đềà bài.
II. Khảo sát thực tế nghiệp vụ quản lý tra cứu và nhập sách của thư viện.
4
1. Khảo sát thực tế. 4
2. Nghiệp vụ quản lý. 5
3. Yêu cầu của chương trình. 6
PHẦN II: Thiết kế chương trình 6
I. Phân tích đề tài. 6
1. Liệt kê các chức năng. 6
2. Biểu đồ phân cấp chức năng. 7
3. Biểu đồ luồng dữ liệu. 8
II. Thiết kế cơ sở dữ liệu.
1. Các bảng cần có trong CSDL. 13
2. Mối quan hệ giữa các bảng. 15
III. Đặc tả chức năng. 15
PHẦN III: Thiết kế giao diện và xử lý cho các form 16
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
1
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
Hưng Yên : Ngày …… Tháng … Năm ……
Giáo viên hướng dẫn: Nguyễn Minh Quý
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
2
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
LỜI MỞ ĐẦU
Máy tính ngày nay ngày càng phát triển và giữ vai trò quan trọng trong các
ngành khoa học kó thuật cũng như đời sống con người. Máy tính ngày nay đa dạng
các thế hệ máy tính đời mới ra đời cho phép sử dụng những phần mềm, ứng dụng
hơn và làm nhiều công việc một lúc. Nếu sự phát triển mạnh mẽ và ứng dụng sâu
của khoa công nghệ thông tin là một đặc điểm nổi bật của cuộc cách mạng khoa
học và công nghệ, việc đưa tin học vào trong trường phổ thông để cải tiến phương
pháp dạy và học nhằm nâng cao chấp lượng giáo dục.Việc làm này sẽ đáp ứng
những yêu cầu của thực tiễn trong kỷ nguyên của công nghệ thông tin.
Những yếu tố của tin học có thể khai thác để phát triển ở học sinh năng lực
và trí tuệ, ví dụ như năng lực phân tích, tổng hợp, khái quát hoá và trừu tượng
hoá. Chúng ta có thể có được năng lực tư duy như vậy là do chúng ta đã được học
môn “Phân tích và thiết kế hệ thống thông tin”. Môn này sẽ giúp chúng ta có
được những phân tích chính xác trong quá trình xây dựng các phần mềm ứng
dụng. Phần mềm “Tra cứu và nhập sách trong thư viện” của chúng em ra đời đã
đáp ứng phần nào nhu cầu của độc giả và thủ thư trong quá trình tra cứu sách.
Nhưng do kinh nghiệm và trình độ còn hạn chúng em chỉ có thể phân tích một
cách tổng quan về hệ thống tra cứu và nhập sách trong thư viện, môi trường đi
thực tế còn ít. Vì vậy nhóm thực hành chúng em rất mong nhận được sự góp ý để
cho chương trình của chúng em có thể hoàn thiện hơn.
Chúng em chân thành cảm ơn sự hướng dẫn tận tình của thày: Nguyễn
Minh Quý đã giúp chúng em hoàn thành chương trình này.
Hưng Yên : Ngày 10 - 5 – 2007
Sinh viên thực hiện: Nguyễn Văn Đònh
Nguyễn Thò Bông
Trần Thò Minh Hải
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
3
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
PHẦN I
PHÂN TÍCH ĐỀ TÀI
I. Yêu cầu của đề bài
Xây dựng phần mền tra cứu và nhập sách của thư viện
Chương trình có khả năng tra cứu các thông tin về sách và nhập sách. Qua đó làm
cho công việc quản lý sách trở lên đơn giản hơn.
Dùng ngôn ngữ lập trình C# thiết kế môi trường quản lý việc“ tra cứu và
nhập sách của thư viện”. Yêu cầu đưa ra :
- Thiết kế cơ sở dữ liệu cho chương trình.
- Thiết kế chương trình nhập danh mục các loại sách.
- Giúp cho thủ thư và độc giả có thể tra cứu sách.
- Thống kê và báo cáo sách theo yêu cầu của thủ thư và độc giả.
II. Khảo sát thực tế nghiệp vụ quản lý tra cứu và nhập sách của thư
viện.
1. Khảo sát thực tế
Bằng phỏng vấn và quan sát thực tế chúng em thấy trong trường việc quản
lý sách chủ yếu bằng thủ công, công việc đăng nhập và lưu trữ vào sổ sách là chủ
yếu. Ngoài ra việc quản lý sách có thể được thực hiện trên môi trường Excel. Qua
phương thức hoạt động của thư viện ta thấy công việc hàng ngày của thư viện
chia làm nhiều giai đoạn, khối lượng công việc lớn xảy ra liên tục. Đặc biệt trong
việc mượn và trả sách. Để quản lý tốt cần phải sử dụng nhiều biểu mẫu, sổ sách,
việc lưu lại các hồ sơ chứng từ được lặp đi lặp lại và kiểm tra qua nhiều khâu sẽ
rất tốn thời gian và nhân lực, nhưng cũng không tránh khỏi sai sót dữ liệu.
Nếu có sai sót thì việc tìm kiếm để khắc phục dữ liệu sẽ rất khó khăn, gây
tốn thời gian và mất mát, cũng như không phục vụ tốt cho công việc quản lý thư
viện.
Vì vậy việc đưa máy tính vào quản lý tại thư viện là rất cần thiết. Bằng
những công cụ phần mềm quản trò cơ sở dữ liệu có thể khắc phục được những
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
4
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
nhược điểm nói trên đồng thời nó có thể xử lý dữ liệu một cách chính xác nhanh
gọn.
Chính vì vậy cần phải đưa mạng máy tính vào mới có thể giải quyết được
những yếu điểm nêu trên.
Thông thường khi bạn mượn sách ở thư viện bạn cần đưa thông tin cho thủ
thư, dựa vào thông tin của cuốn sách thủ thư có nhiệm vụ tìm sách để đáp ứng nhu
cầu của bạn. Như vậy sẽ mất rất nhiều thời gian và đôi khi bạn không thể mượn
được sách mặc dù trong thư viện vẫn còn sách mà bạn cần.
Qua khảo sát cứu thực tế chúng em đã đưa ra giải pháp để khắc phục những
nhược điểm trên. Vì vậy chúng em đã nghiên cứu và đưa ra phần mềm “Tra cứu
và nhập sách”, nó đã đáp ứng phần nào công việc của thủ thư và độc giả. Theo
đó quá trình tìm kiếm sách sẽ diễn ra như sau : Độc giả khi muốn mượn một cuốn
sách sẽ đưa thông tin cho thủ thư ( tên sách, tác giả, nhà xuất bản, thể loại … ), thủ
thư dựa vào phần mềm này để tra cứu theo những thông tin đó, phần mềm trả ra
kết quả là cuốn sách đó nằm ở giá sách nào, số lượng còn lại bao nhiêu…
Nếu độïc giả không có nhiều thông tin về cuốn sách thì có thể sử dụng phần
mềm này như là một tiện ích để tra cứu.
2. Nghiệp vụ quản lý
Công việc quản lý thư viện chính là việc quản lý kho sách
( quản lý theo tên sách, quản lý theo mã sách, quản lý theo tác giả…). Khi thư
viện nhập sách về thủ thư làm nhiệm vụ thống kê sách (xem các loại sách nhập
về gồm các loại sách gì (sách thuộc những môn nào), của những tác giả nào (tác
giả là tập thể hay cá nhân), của nhà xuất bản nào, năm xuất bản, số trang, khổ cỡ,
nội dung, tình trạng). Sau công việc thống kê sách thì thủ thư làm công việc lưu
trữ. Dựa vào các thông tin của sách mà thủ thư tìm hiểu ở trên thì mọi nội dung
của sách (tên sách, mã sách, tên tác giả, nhà xuất bản, số trang, khổ cỡ, nội dung,
tình trạng…) sẽ được lưu trữ vào sổ sách hay máy tính. Cuối cùng là thủ thư sẽ sắp
xếp sách vào kho đó là công việc lưu trữ sách vào kho, công việc lưu trữ sách vào
kho sẽ được sắp xếp theo giá, theo tác giả, theo nhà xuất bản, theo tình trạng,
theo nội dung…
3. yêu cầu của chương trình
Để đáp ứng được mục tiêu như trên và mong muốn của người sử dụng.
Chương trình cần đáp ứng một số yêu cầu sau:
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
5
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
- Giao diện đơn giản, dễ sử dụng.
- Các nút lệnh rõ ràng.
- Chương trình phù hợp với quản lý thực tế.
PHẦN II
THIẾT KẾ CHƯƠNG TRÌNH
I. Phân tích đề tài
Trong một thư viện dữ liệu bao gồm: Sách
1. Liệt kê các chức năng
Ngành tin học có ứng dụng rất lớn trong cuộc sống của con người, nó đã góp
phần rất lớn trong việc quản lý nhân sự trong một tổ chức cơ quan nào đó, hay
quản lý một cơ sở sản xuất… Mỗi khi thực hiện tạo ra một chương trình quản lý
nào đó mà người ta không thể bỏ qua bước phân tích thiết kế hệ thống. Vì trước
khi viết một phần mềm nào đó lập trình viên phải hình thành cấu trúc và phương
án giải quyết chương trình thuận tiện cho người sử dụng. Đồng thời giảm thiểu tối
đa sức lao động của con người. Đối với chúng em cũng vậy, tuy chưa phải là một
nhà lập trình viên nhưng cũng không thể bỏ qua các bước cơ sở đó. Khi nhận được
đề tài và để đáp ứng được nhu cầu của đề tài chúng em đã hình thành nên các
chức năng của chương trình:
a. Cập nhật sách
b. Tra cứu sách
c. Báo cáo – In ấn
Việc quản lý sách sẽ dựa vào các trường như sau:
Tên sách (nhan dề chính và phụ), mã sách (mã phân loại), tên tác giả (tập thể, cá
nhân), năm xuất bản (NXB), nhà xuất bản (nhaXB), số trang, tóm tắt nội dung,
khổ, cỡ, tình trạng sách (sách mới, cũ), từ khoá (theo từng môn học).
2. Biểu đồ phân cấp chức năng
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
6
BIỂU ĐỒ PHÂN CẤP CHỨC NĂNG
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Nhìn vào biểu đồ phân cấp chức năng chúng ta có thể thấược toàn bộ công
việc của chương trình. Trong các sơ đồ trên đều có các sơ đồ luồng mức dùi
đỉnh.
3. Biểu đồ luồng dữ liệu
a. Mức ngữ cảnh
Chức năng tổng quát của hệ thống là tra cứu và nhập sách trong thư viện. Đối
tượng của hệ thống là sách. Người sử dụng ở đây là độc giả và thủ thư.
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
Tra cứu và nhập sách
QL Người dùng
Đăng nhập
Tra cứu
Cập nhật
Bổ sung
Sửa đổi
Xố
Báo cáo – in ấn
BC tất cả sách
BC theo ngành
BC theo thời gian nhập
BC theo thể loại
TC theo mã
TC theo tên sách
TC theo tác giả
TC theo NXB
7
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
b. Mức đỉnh
Chức năng ngữ cảnh có thể phân rã thành 4 chức năng con là: quản lý người
dùng, tra cứu, cập nhật và báo cáo in ấn. Ngoài những luồng dữ liệu vào/ra chức
năng ngữ cảnh được bảo toàn, ta thấy luồng thông tin trao đổi giữa các chức năng
là không trực tiếp, mà phải thông qua một kho dữ liệu (sách). Nên ta có sơ đồ sau.
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
Tra cứu và nhập
sách
Thủ thư
Thơng tin đăng nhập
Thơng tin cập nhật
KQ tra cứu
Y/c báo cáo
Y/c tra cứu
Độc giả
KQ báo cáo
KQ tra cứu
Y/c báo cáo
Y/c tra cứu
KQ báo cáo
8
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
c. Mức dưới dỉnh
Chức năng này được phân rã thành một chức năng là đăng nhập. Chỉ có thủ thư
mới có chức năng đăng nhập để có thể cập nhật sách. Độc giả thì không cần đăng
nhập vẫn có thể tra cứu các thông tin sách.
Biểu đồ luồng dữ liệu giải thích chức năng 1. Quản lý người dùng
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
Độc giả
Thủ thư
1
QL người dùng
3
Cập nhật
4
Báo cáo – in ấn
Danh sách user
2
Tra cứu
Sách
t/t người dùng
t/t sách
KQ báo cáoKQ báo cáo
Y/c tra cứu
Y/c tra cứu
t/t tra cứu
t/t tra cứu
1.1
Đăng nhập
Thủ thư
Danh sách user
T/t đăng nhập
9
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Biểu đồ luồng dữ liệu giải thích chức năng 2. Tra cứu
Chức năng tra cứu được phân rã thành 4 chức năng: TC theo mã, TC theo tên
sách , TC theo tên tác giả, TC theo NXB.
Biểu đồ luồng dữ liệu giải thích chức năng 3. Cập nhật
Chức năng cập nhật cũng được phân rã thành 3 chức năng : Bổ sung, sửa, xoá.
Các chức năng này chỉ có thủ thư mới có quyền sử dụng. Độc giả không được
phép sử dụng.
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
Độc giả
Thủ thư
2.1
TC theo mã
2.2
TC theo tên sách
2 3
TC theo tác giả
Sách
2.4
TC theo NXB
Sách
T/t mã sách T/t mã sách
T/t ngành T/t ngành
T/t thể loại T/t thể loại
KQ tra cứuKQ tra cứu
Thơng tin NXB
Thơng tin NXB
KQ tra cứu
KQ tra cứu
Sách
KQ tra cứu
KQ tra cứu
KQ tra cứu
KQ tra cứu
10
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Biểu đồ luồng dữ liệu giải thích chức năng 4. Báo cáo – in ấn
Chức năng này cũng được phân rã thành 4 chức năng: Báo cáo tất cả sách, báo
cáo theo ngành, báo cáo theo thể loại, báo cáo theo thời gian nhập. Với các chức
năng này thì cả thủ thư và độc giả đều có quyền sử dụng.
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
3.2
Sửa
3.3
Xoá
Thủ thư
t/t cần sửa
t/t cần xoá
3.1
Bổ sung
t/t cần bổ sung
s
á
c
h
11
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
d. Biểu đồ thực thể liên kết
Biểu đồ thể hiện mối quan hệ giữa 3 thực thể đó là thủ thư, độc giả và sách. Thực
thể sách có 4 thuộc tính: Mã sách, tên sách, tác giả, NXB, trong đó có thuộc tính
Mã sách là thuộc tính khoá.
Xét 2 thực thể độc giả và sách ta thấy 1 độc giả có thể tra cứu nhiều sách, và 1
sách cũng có thể được tra cứu bởi nhiều độc giả. Vậy quan hệ giữa độc giả và
sách là quan hệ nhiều-nhiều.
Xét 2 thực thể thủ thư và sách ta thấy 1 thủ thư có thể tra cứu nhiều sách, và 1
sách cũng có thể được tra cứu bởi nhiều thủ thư. Vậy quan hệ giữa thủ thư và sách
là quan hệ nhiều-nhiều. Quan hệ giữa thủ thư và sách thông qua 2 quan hệ tra cứu
và cập nhật.
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
Độc giả
Thủ thư
4.1 Báo cáo tất
cả sách
4.2 Báo cáo theo
ngành
4.3 Báo cáo theo
thể loại
Sách
4.4 Báo cáo
theo thời gian
nhập
Sách
Y/c báo cáo
Y/c báo cáo
t/t ngành t/t ngành
t/t thể loại T/t thể loại
KQ báo cáoKQ báo cáo
Thời gian nhập
Thời gian nhập
KQ báo cáo
KQ báo cáo
Sách
KQ báo cáo
KQ báo cáo
KQ báo cáo
KQ báo cáo
12
sáchĐộc giả
sáchThủ thư
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
II. Thiết kế CSDL
1. Các bảng cần có trong cơ sở dữ liệu
Với lưu ý : Các từ được gạch chân đều là khoá chính của bảng
• Bảng tác giả:
Bảng này đưa ra thông tin về tác giả của cuốn sách TblTacGia(MaTG,
TenTG)
tblTacGia
Tên cột Mơ tả kiểu dữ liệu
MaTG Mã tác giả Varchar
TenTG Tên tác giả Varchar
• Bảng sách:
Bảng này đưa ra các thông tin về sách
TblSach(MaSach, TenSach, SoTrang, MaTG, NamXB, TuKhoa, NXB)
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
Độc giả Thủ thư
Tra
cứu
sách
Mã sách
Tên
sách
NXB
Tác
giả
Cập
nhật
*
*
*
*
*
13
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
TblSach
Tên cột Mơ tả kiểu dữ liệu
MaSach Mã số sách Varchar
TenSach Tựa đề sách Varchar
SoTrang Số trang smallint
MaTG Mã tác giả Varchar
NamXB Năm xuất bản int
TuKhoa
Từ khoá mô tả sách
Varchar
NXB Nhà xuất bản Varchar
• Bảng thể loại :
Bảng này đưa ra các thông tin về thể loại
Tbltheloai (MaLoai, TheLoai)
tblTheLoai
Tên cột Mơ tả kiểu dữ liệu
MaLoai Mã thể loại Varchar
TheLoai Tên thể loại Varchar
• Bảng NXB
Bảng này đưa ra các thông tin về nhà xuất bản
tblNXB (MaNXB, TenNXB)
tblNXB
Tên cột Mơ tả kiểu dữ liệu
MaNXB Mã nhà xuất bản Varchar
TenNXB Tên nhà xuất bản Varchar
• Bảng tblSachTG
Bảng này đưa ra thông tin về sách tác giả
tblSachTG (MaSach, MaTG)
TblSachTG
Tên cột Mơ tả kiểu dữ liệu
MaSach Mã số sách Varchar
MaTG Mã tác giả Varchar
2. Mối quan hệ giữa các bảng
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
14
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
a, Mối quan hệ giữa tblSach – tblTheLoai
Ứng với 1 thể loại có nhiều sách khác hoặc giống nhau, nhưng mỗi quyển
sách chỉ tương ứng với 1 thể loại nào đó. Vậy mối quan hệ ở đây là một - nhiều
MaLoai MaSach
b, Mối quan hệ giữa tblSach – tblTacGia
Ứng với 1 tác giả sẽ có rất nhiều cuốn sách, nhưng xét mỗi cuốn sách thì
chỉ thuộc về một tác giả. Vậy mối quan hệ ở đây là mối quan hệ một – nhiều.
MaTG MaSach
c, Mối quan hệ giữa tblSach – tblNXB
Ta thấy rằng 1 nhà xuất bản có thể xuất bản rất là nhiều sách khác nhau.
Nhưng xét cuốn sách cụ thể thì nó chỉ thuộc vào một nhà xuất bản. Vậy mối quan
hệ ở đây là mối quan hệ một – nhiều
MaNXB MaSach
III. Đặc tả chức năng
Đầu đề: Tên chức năng: Tra cứu sách
Đầu vào: Mã sách
Tên sách
Tên NXB
Thể loại
Tên tác giả
Năm XB
Đầu ra: Thơng tin sách
phần thân :
tra cứu sách đáp ứng u cầu của độc giả và thủ thư
lặp:
Với thơng tin sách được đưa vào
Chúng ta sẽ tiến hành tra cứu từng cuốn sách trong kho sách, xem có
cuốn sách nào thoả mãn với yêu cầu đầu vào.
Nếu thoả mãn thì sẽ trả ra thông tin sách cần tìm.
Nếu thơng tin sách đầu vào không thoả mãn thì tra cứu khơng thành
cơng, cần nhập lại thơng tin sách.
Đến khi : hết sách trong kho.
PHẦN III: Thiết kế giao diện và xử lý form:
1 Giao diện của form tra cứu
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
15
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Hình 1 : Form tra cứu sách
1.1 Tra cứu các thông tin theo mã sách
Trong thư viện đồ sộ các thông tin về sách, bạn muốn chọn tùy ý một đầu
sách theo ý mình thì yêu cầu tra sách để tìm kiếm nhanh. Đáp ứng được yêu cầu
này phần mềm có phần tra cứu theo mã sách để đáp ứng cho độc giả và thủ thư.
Từ menu ngang bạn click chọn tra cứu, form của tra cứu sẽ hiện ra để bạn tìm đầu
sách mà mình cần, bạn hãy nhập thông tin của mã sách mà bạn cần tìm vào hộp
text. Sau khi nhập xong thông tin về mã sách bạn click chọn nút Search. Khi đó sẽ
có một bảng hiện các thông tin liên quan đến cuốn sách mà bạn cần tìm như: Mã
sách, tên sách, tên tác giả tên nhà xuất bản…. Còn nếu thông tin mà bạn nhập về
mã sách không có thì nó sẽ trả ra kết quả là không tin thấy.
1.1 Tra cứu theo tên sách
Đây là cách tra cứu rất tiện và nhanh. Độc giả chỉ cần biết tên cuốn sách
mà mình cần tìm là gì và tìm theo tên đó bạn sẽ có được các thông tin về sách mà
bạn mong muốn. Từ menu ngang bạn click chọn tra cứu, form của tra cứu sẽ hiện
ra và bạn hãy nhập vào đó thông tin về tên của cuốn sách vào trong hộp text. Sau
đó click chọn nút Search. Khi đó bạn có thể biết các thông tin về sách bạn cần :
Tên sách, nhà xuất bản, tác giả…
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
16
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1.3 Tra cứu theo tên tác giả
Nếu bạn quan tâm đến tác giả của cuốn sách mà bạn cần tìm, thì khi tra cứu
sách trong thư viện bạn hãy tra cứu theo tên tác giả. Từ menu ngang bạn click
chọn tra cứu, hộp thoại tra cứu hiện ra, bạn hãy nhập thông tin về tác giả vào hộp
text. Khi đó đầu sách mà tác giả đó viết sẽ hiện ra và chi tiết hơn bạn có thể biết
thêm các thông tin về: Tên sách, tên tác giả, mã sách, chủ đề… Vì vậy khi vào thư
viện bạn hãy nhớ tên tác giả mà mình cần quan tâm.
1.4 Tra cứu theo NXB
Nhiều khi bạn không nhớ được các thông tin chi tiết về cuốn sách, nếu bạn
nhớ được tên của NXB, bạn cũng có thể tra theo tên của NXB. Từ menu ngang
bạn click chọn tra cứu, khi đó hộp thoại tra cứu hiện ra, bạn hãy nhập thông tin về
NXB và click chọn nút Search, khi đó các thông tin liên quan sẽ hiện ra.
1.5 Tra cứu tổng hợp theo điều kiện bất kì
Đôi khi bạn muốn tra sách và đưa ra các điều kiện nào đó: Theo chủ đề, tác
giả, tên sách… thì chương trình có phần tra cứu tổng hợp. Từ menu ngang ban click
chọn tra cứu, khi đó hộp thoại tra cứu sẽ hiện ra, bạn hãy nhập vào hộp text các
thông tin như : mã sách, tên NXB, tác giả và các đầu sách mà bạn quan tâm, sau
đó sẽ click chọn nút Search, các thông tin liên quan sẽ hiện ra để bạn chọn theo ý
mình.
Đây là code của form tra cứu:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace thuvien
{
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
17
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
public partial class frmsearch : Form
{
public frmsearch()
{
InitializeComponent();
}
private void cmdsearch_Click(object sender, EventArgs e)
{
string tensach = "'%" + txttensach.Text + "%'";
string tacgia = "'%" + txttacgia.Text + "%'";
string theloai = "'%" + txttheloai.Text + "%'";
string nxb = "'%" + txtNXB.Text + "%'";
string nam = "'%" + txtnamXB.Text + "%'";
string command="Select * from viewsearch where tensach like
"+tensach+" and tacgia like "+tacgia+" and theloai like "+theloai+" and tenNXB
like "+nxb+" and namxb like "+nam;
SqlDataAdapter da=new SqlDataAdapter(command,Connection.cn);
DataSet ds = new DataSet();
da.Fill(ds,"viewsearch");
dgvketqua.DataSource = ds.Tables["viewsearch"].DefaultView;
}
private void cmdclear_Click(object sender, EventArgs e)
{
txttensach.Text = "";
txttheloai.Text = "";
txttacgia.Text = "";
txtNXB.Text = "";
txtnamXB.Text = "";
}
private void frmsearch_Load(object sender, EventArgs e)
{
}
}
}
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
18
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Hình 2 : Form nhập thêm sách
Khi chúng ta mới mua sách về mỗi cuốn sách sẽ được cô thủ thư dán cho nó
một mã số, nó được gọi là Mã sách. Từ menu ngang bạn click chọn nhập thêm
sách, khi đó hộp thoại nhập thêm sách sẽ hiện ra, bạn hãy nhập vào hộp text đầy
đủ các thông tin liên quan như: Mã sách, mã NXB, mã loại, tên sách, tác giả, năm
xb, số lượng. Sau khi nhập xong thông tin và bạn click OK. Vậy là việc thêm sách
đã hoàn tất.
Đây là code của form thêm sách
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace thuvien
{
public partial class frmnhap : Form
{
public frmnhap()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string command = "insert into tblsach values('" + txtmasach.Text +
"','" + txtmanxb.Text + "','" + txtmaloai.Text + "','" + txttensach.Text + "','"
+ txttacgia.Text + "','" + txtnamxb.Text + "'," + txtsotrang.Text + ")";
SqlCommand cm = new SqlCommand(command,Connection.cn);
try
{
cm.ExecuteNonQuery();
thongb.Text = "Du lieu duoc cap nhat thanh cong !";
label.Text = "Ma sach :"+txtmasach.Text+", ma
NXB :"+txtmanxb.Text+", ma loai :"+txtmaloai.Text+", ten
sach :"+txttensach.Text+", tac gia :"+txttacgia.Text+", nam
XB :"+txtnamxb.Text+", so luong:"+txtsotrang.Text;
}
catch (Exception loi)
{
thongb.Text = "Khong the cap nhat, ban hay kiem tra lai du lieu
nhap vao !";
label.Text = loi.Message;
}
}
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
19
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
private void tabPage1_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
string command = "insert into tblnxb values('" + txtmanxb.Text +
"','" + txttennxb.Text + "')";
SqlCommand cm = new SqlCommand(command, Connection.cn);
try
{
cm.ExecuteNonQuery();
tb1.Text = "Du lieu duoc cap nhat thanh cong !";
tb2.Text = "Ma NXB :" + txtmanxb1.Text + " - Ten NXB :" +
txttennxb.Text;
}
catch (Exception loi)
{
tb1.Text = "Khong the cap nhat, ban hay kiem tra lai du lieu
nhap vao !";
tb2.Text = loi.Message;
}
}
private void groupBox2_Enter(object sender, EventArgs e)
{
}
private void button5_Click(object sender, EventArgs e)
{
string command = "insert into tblloai values('" + txtmaloai1.Text +
"','" + txttheloai.Text + "')";
SqlCommand cm = new SqlCommand(command, Connection.cn);
try
{
cm.ExecuteNonQuery();
tb1.Text = "Du lieu duoc cap nhat thanh cong !";
tb2.Text = "Mã Loại :" + txtmaloai1.Text + " - Thể loại :" +
txttheloai.Text;
}
catch (Exception loi)
{
tb1.Text = "Khong the cap nhat, ban hay kiem tra lai du lieu
nhap vao !";
tb2.Text = loi.Message;
}
}
private void button6_Click(object sender, EventArgs e)
{
txtmaloai1.Text = "";
txttheloai.Text = "";
}
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
20
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
private void button4_Click(object sender, EventArgs e)
{
txtmanxb1.Text = "";
txttennxb.Text = "";
}
private void button2_Click(object sender, EventArgs e)
{
txtmaloai.Text = "";
txtmanxb.Text = "";
txtmasach.Text = "";
txtnamxb.Text = "";
txtsotrang.Text = "";
txttacgia.Text = "";
}
private void frmnhap_Load(object sender, EventArgs e)
{
}
}
}
Hình 3 : Form sửa thông tin sách
Trong quá trình cập nhật đôi khi có những thông tin nhập sai, hoặc trong quản lý
sách có những thay đổi về số lượng của sách, hay các thông tin khác… Do vậy cần
có sự thay đổi. Từ menu ngang bạn click chọn sửa thông tin sách khi đó hộp thoại
hiện ra, bạn hãy nhập vào các thông tin cần sửa và click vào nút Update. Vậy là
quá trình cập nhật đã thành công.
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
21
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Đây là code xử lý form cập nhật: Có chức năng sửa thông tin sách
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace thuvien
{
public partial class frmsua : Form
{
public frmsua()
{
InitializeComponent();
}
public void data(DataGridView g, string obj)
{
string command = "select * from "+obj;
SqlDataAdapter da = new SqlDataAdapter(command, Connection.cn);
DataSet ds = new DataSet();
da.Fill(ds, obj);
g.DataSource = ds.Tables[obj].DefaultView;
}
private void frmsua_Load(object sender, EventArgs e)
{
data(dataGridView1,"tblsach");
data(dataGridView2,"tblnxb");
data(dataGridView3,"tblloai");
}
private void button1_Click(object sender, EventArgs e)
{
string command = "update tblsach set masach='"+txtmasach.Text+"',
maNXB='"+txtmanxb.Text+"', maloai='"+txtmaloai.Text+"', tensach='
"+txttensach.Text+"', tacgia='"+txttacgia.Text+"', namxb='"+txtnamxb.Text+"',
soluong='"+txtsoluong.Text+"' where masach='"+txtmasach.Text+"'";
SqlCommand cm = new SqlCommand(command,Connection.cn);
cm.ExecuteNonQuery();
data(dataGridView1, "tblsach");
cm.Dispose();
}
private void tabPage1_Click(object sender, EventArgs e)
{
}
private void cmdOK_Click(object sender, EventArgs e)
{
cmdupdate.Enabled = true;
txtmanxb.Enabled = true;
txtmaloai.Enabled = true;
txttensach.Enabled = true;
txttacgia.Enabled = true;
txtnamxb.Enabled = true;
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
22
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
txtsoluong.Enabled = true;
SqlCommand cm = new SqlCommand("Select * from tblsach where
masach='"+txtmasach.Text+"'",Connection.cn);
SqlDataReader re = cm.ExecuteReader();
while (re.Read())
{
txtmanxb.Text = re.GetString(1);
txtmaloai.Text = re.GetString(2);
txttensach.Text = re.GetString(3);
txttacgia.Text = re.GetString(4);
txtnamxb.Text = re.GetString(5);
txtsoluong.Text = re.GetValue(6).ToString();
}
re.Dispose();
}
private void txtmanxb_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e)
{
button2.Enabled = true;
txttennxb.Enabled = true;
SqlCommand cm = new SqlCommand("Select * from tblnxb where manxb='"
+ txtmnxb.Text + "'", Connection.cn);
SqlDataReader re = cm.ExecuteReader();
while(re.Read())
{
txttennxb.Text = re.GetString(1);
}
}
private void button2_Click(object sender, EventArgs e)
{
string command = "update tblnxb set manxb='" + txtmnxb.Text + "',
tennxb=' " + txttennxb.Text + "' where manxb='" + txtmnxb.Text + "'";
SqlCommand cm = new SqlCommand(command, Connection.cn);
cm.ExecuteNonQuery();
data(dataGridView2, "tblnxb");
}
private void button3_Click(object sender, EventArgs e)
{
button4.Enabled = true;
txttheloai.Enabled = true;
SqlCommand cm = new SqlCommand("Select * from tblloai where
maloai='" + txtmloai.Text + "'", Connection.cn);
SqlDataReader re = cm.ExecuteReader();
while (re.Read())
{
txttheloai.Text = re.GetString(1);
}
}
private void button4_Click(object sender, EventArgs e)
{
string command = "update tblloai set maloai='" + txtmloai.Text + "',
theloai=' " + txttheloai.Text + "' where maloai='" + txtmloai.Text + "'";
SqlCommand cm = new SqlCommand(command, Connection.cn);
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
23
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
cm.ExecuteNonQuery();
data(dataGridView3, "tblloai");
}
}
}
TÀI LIỆU THAM KHẢO
1. Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba
2. Lập trình cơ sở dữ liệu với C# - Phạm Hữu Khang
3. Lập trình form với C# - Phạm Hữu Khang
4. Tài liệu tham khảo trên Internet
NGUYỄN ĐỊNH – NGUYỄN BÔNG – MINH HẢI _TK3
(1)
24