1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng chương trình quản lý thư viện bằng .NET (52 trang chi tiết kèm Source code, cơ sở dữ liệu)

52 23 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 52
Dung lượng 7,5 MB
File đính kèm Source code.zip (13 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các chức năng trên giao diện: • Thêm: Cho phép người dùng thêm các thông tin vào CSDL • Cập nhật: sửa tất cả các mục trên form, trừ mã sách.. Các chức năng trên giao diện: • Thêm: Cho

Trang 1

TÊN ĐỀ TÀI:

XÂY DỰNG ỨNG DỤNG QUẢN LÝ THƯ VIỆN

BÀI TẬP LỚN MÔN: LẬP TRÌNH NET 1 + BTL

Trang 2

MỤC LỤC

PHẦN 1: THIẾT KẾ CƠ SỞ DỮ LIỆU 3

1 Cấu trúc bảng SACH 3

2 Cấu trúc bảng NXB 3

3 Cấu trúc bảng TACGIA 3

4 Cấu trúc bảng LOAI 4

5 Cấu trúc bảng PHIEUMUON 4

6 Cấu trúc bảng THEDOCGIA 4

7 Cấu trúc bảng KHOA 5

8 Cấu trúc bảng CHITIET_PM 5

9 Lược đồ quan hệ 5

PHẦN 2: SƠ ĐỒ PHÂN RÃ CHỨC NĂNG 7

PHẦN 3: GIAO DIỆN CỦA CÁC CHỨC NĂNG 8

1 Giao diện chương trình chính 8

2 Giao diện đăng nhập 8

3 Giao diện Đổi mật khẩu 9

4 Giao diện Sách 9

5 Giao diện Nhà xuất bản 10

6 Giao diện Thẻ độc giả 10

7 Giao diện Tác giả 11

8 Giao diện Quản trị viên 12

9 Giao diện Danh mục Sách 12

10 Giao diện Phiếu mượn 13

11 Giao diện Chi tiết phiếu mượn 13

12 Giao diện Thống kê độc giả 14

13 Giao diện Thống kê phiếu mượn 15

14 Giao diện Thống kê tổng quan 15

*Phân quyền tài khoản: 15

PHẦN 4: MÃ NGUỒN (SOURCE CODE) 18

1 Trang chủ 18

2 Đăng nhập 20

3 Đổi mật khẩu 22

4 Hiển thị danh mục sách 23

5 Sách 25

6 Thẻ độc giả 30

7 Nhà xuất bản 33

8 Tác giả 36

9 Quản trị viên 40

Trang 3

11 Chi tiết phiếu mượn 46

12 Thống kê độc giả 49

13 Thống kê phiếu mượn 50

14 Thống kê tổng quan 51

15 Class Thư viện 54

16 Class Database 54

Trang 4

PHẦN 1: THIẾT KẾ CƠ SỞ DỮ LIỆU

1 Cấu trúc bảng SACH

Thể hiện Sách, tài liệu Các cuốn sách, tài liệu phân biệt với nhau bởi mã sách.

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

sách tham chiếu đển bảng NXB

chiếu đển bảng TACGIA

2 Cấu trúc bảng NXB

Thể hiện Nhà xuất bản Các nhà xuất bản phân biệt với nhau bởi mã nhà xuất bản.

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

3 Cấu trúc bảng TACGIA

Thể hiện Tác giả Các tác giả phân biệt với nhau bởi mã tác gải

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

Trang 5

trị null

4 Cấu trúc bảng LOAI

Thể hiện Thể loại Các thể loại phân biệt với nhau bởi mã thể loại.

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

5 Cấu trúc bảng PHIEUMUON

Thể hiện Phiếu mượn Các phiếu mượn phân biệt với nhau bởi mã phiếu mượn.

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

chiếu đển bảng THEDOCGIA

mượn tham chiếu đển bảng QTV

Là một trong 3 giá trị: Chưa trả, Đã trả và Quá hạn trả

6 Cấu trúc bảng THEDOCGIA

Thể hiện Thẻ độc giả Các thẻ độc giả phân biệt với nhau bởi mã thẻ.

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

Trang 6

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

8 Cấu trúc bảng CHITIET_PM

Thể hiện Chi tiết các cuốn sách của Phiếu mượn Các chi tiết phân biệt với nhau bởi mã chi tiết

STT Tên thuộc tính Kiểu dữ liệu Khóa

chính Khóa ngoại Diễn giải

chiếu đển bảng PHIEUMUON

bảng SACH

9 Lược đồ quan hệ

Trang 7

PHẦN 2: SƠ ĐỒ PHÂN RÃ CHỨC NĂNG

Quản lý thư viện

Xem danh mục sách

Quản lý dữ liệu

Quản lý phiếu mượn

Quản lý chi tiét phiếu mượn

Thống kê

Thống kê độc giả

Thống kê phiếu mượn

Thống kê tổng quan

Thông tin

Thông tin liên lạc

Giới thiệu

Trang 8

PHẦN 3: GIAO DIỆN CỦA CÁC CHỨC NĂNG

1 Giao diện chương trình chính

Nếu chưa đăng nhập, người dùng chỉ có quyền xem Danh mục sách và Thông tin phần mềm, không được cấp quyền sử dụng các chức năng khác.

2 Giao diện đăng nhập

Chức năng này cho phép người dùng đăng nhập vào hệ thống với tên và mật khẩu

+ Hệ thống hiển thị form đăng nhập yêu cầu người dùng nhập “Tên đăng nhập” và “Mật khẩu” + Hệ thống sẽ kiểm tra tên và mật khẩu được nhập và cho phép người dùng đăng nhập vào hệ thống.

3 Giao diện Đổi mật khẩu

Trang 9

Giao diện này cho phép người dùng tiến hành đổi mật khẩu

Phải nhập đúng mật khẩu cũ; mật khẩu mới và mật khẩu nhập lại phải trùng nhau thì mới cập nhật thành công.

4 Giao diện Sách

Giao diện này cho phép người dùng có thể cập nhật thêm, sửa, xóa sách, tài liệu

Chúng ta có thể xem chi tiết về mã sách, tên sách, số trang, số lượng, mã nhà xuất bản, mã tác giả, mã thể loại, năm xuất bản của Sách

Các chức năng trên giao diện:

• Thêm: Cho phép người dùng thêm các thông tin vào CSDL

• Cập nhật: sửa tất cả các mục trên form, trừ mã sách

• Xóa: xóa một cuốn sách trong danh sách

Trang 10

• Xem chi tiết: Khi bấm vào dòng nào trong listview, thông tin của sách đó sẽ hiển thị lên các textbox.

• Tìm: Tìm các thông tin của cuốn sách dựa vào mã sách.

Nếu chưa có NXB hoặc tác giả nào trong CSDL phù hợp cới cuốn sách đó, QTV có quyền tạo Tạo mới NXB hoặc Tác giả.

5 Giao diện Nhà xuất bản

Giao diện này cho phép người dùng có thể cập nhật thêm, sửa, xóa Nhà xuất bản

Chúng ta có thể xem chi tiết về mã nhà xuất bản, tên nhà xuất bản, địa chỉ, email của NXB Các chức năng trên giao diện:

• Thêm: Cho phép người dùng thêm các thông tin vào CSDL

• Tìm kiếm: Tìm các thông tin của NXB dựa vào mã NXB.

• Cập nhật: sửa tất cả các mục trên form, trừ mã NXB

• Xóa: xóa NXB trong danh sách

• Xem chi tiết: Khi bấm vào dòng nào trong listview, thông tin của NXB đó sẽ hiển thị lên các textbox.

6 Giao diện Thẻ độc giả

Chúng ta có thể xem chi tiết về mã thẻ độc giả, họ tên độc giả, năm sinh, mã khoa, số điện thoại, ngày lập của Thẻ độc giả.

Các chức năng trên giao diện:

• Thêm: Cho phép người dùng thêm các thông tin vào CSDL

Trang 11

• Cập nhật: sửa tất cả các mục trên form, trừ mã thẻ độc giả

• Xóa: xóa thẻ độc giả trong danh sách

• Xem chi tiết: Khi bấm vào dòng nào trong listview, thông tin của Thẻ độc giả đó sẽ hiển thị lên các textbox.

7 Giao diện Tác giả

Chúng ta có thể xem chi tiết về mã tác giả, Họ tên tác giả, năm sinh, năm mất, số điện thoại của Tác giả

Các chức năng trên giao diện:

• Thêm: Cho phép người dùng thêm các thông tin vào CSDL

• Tìm: Tìm các thông tin của tác giả dựa vào mã thẻ độc giả.

• Cập nhật: sửa tất cả các mục trên form, trừ mã tác giả

• Xóa: xóa thẻ tác giả trong danh sách

• Xem chi tiết: Khi bấm vào dòng nào trong listview, thông tin của Tác giả đó sẽ hiển thị lên các textbox.

• Các nút di chuyển.

8 Giao diện Quản trị viên

Trang 12

Chúng ta có thể xem chi tiết về mã Quản trị viên, Họ tên, Năm sinh, SĐT, Địa chỉ, Vai trò của QTV.

Các chức năng trên giao diện:

• Thêm: Cho phép người dùng thêm các thông tin vào CSDL

• Cập nhật: sửa tất cả các mục trên form, trừ mã thẻ QTV và mật khẩu

• Xóa: xóa Quản trị viên đó trong danh sách

• Xem chi tiết: Khi bấm vào dòng nào trong listview, thông tin của QTV đó sẽ hiển thị lên các textbox.

9 Giao diện Danh mục Sách

Chúng ta có thể xem và tìm kiêm chi tiết về mã sách, tên sách, số trang, số lượng, mã nhà xuất bản, mã tác giả, mã thể loại, năm xuất bản của Sách

Các chức năng trên giao diện:

• Tìm: Tìm các thông tin của sách dựa tên sách, mã NXB, mã tác giảm, thể loại.

• Reset: Xoá thông tin ở các ô textbox

• Hiển thị số lượng kết quả tìm kiếm

• Tìm mã NXB, tác giả: Nếu không xác định chính xác mã NXB, mã tác giả thì có thể

mở form Tìm NXB, Tìm tác giả bằng cách bấm nút bên cạnh ô textbox.

Trang 13

10 Giao diện Phiếu mượn

Chúng ta có thể xem chi tiết về mã phiếu mượn, mã thẻ độc giả mượn sách, mã quản trị viên thực hiện, ngày mượn, hạn trả dự kiến, tình trạng của phiếu mượn

Các chức năng trên giao diện:

• Thêm: Cho phép người dùng thêm các thông tin vào CSDL

• Cập nhật: sửa tất cả các mục trên form, trừ mã thẻ phiếu mượn và ngày mượn

• Thay đổi tình trạng phiếu mượn: Chọn nút bấm “Qúa hạn” hoặc “Trả sách”, tình trạng sách sẽ được thay đổi.

• Tìm: Tìm các thông tin của sách dựa mã phiếu mượn

• Xem chi tiết: Khi bấm vào dòng nào trong listview, thông tin của Phiếu mượn đó sẽ hiển thị lên các textbox.

• Tìm mã Thẻ độc giả, QTV: Nếu không xác định chính xác mã thẻ độc giả, mã QTV thì có thể mở form Tìm Thẻ độc giả, Tìm QTV bằng cách bấm nút bên cạnh ô textbox.

11 Giao diện Chi tiết phiếu mượn

Chúng ta có thể xem chi tiết về mã chi tiết, mã sách, số lượng sách có trong Phiếu mượn.

Các chức năng trên giao diện:

• Chọn phiếu: Mở ra form Chọn phiếu, trả về mã phiếu mượn

Trang 14

• Chọn sách: Mở ra form Chọn sách, trả về mã sách.

• Thêm: Cho phép người dùng thêm các thông tin vào CSDL

• Sửa: sửa tất cả mã sách, số lượng sách

• Xóa: Xóa bỏ cuốn sách có trong phiếu mượn

• Hiển thị số lượng kết quả sách có trong phiếu mượn

• Xem chi tiết: Khi bấm vào dòng nào trong listview, thông tin của mã sách, số lượng

sẽ hiển thị lên các textbox

12 Giao diện Thống kê độc giả

Chúng ta có thể xem và tìm kiêm chi tiết về mã thẻ độc giả, họ tên độc giả, năm sinh, mã khoa,

số điện thoại, ngày lập thẻ của Thẻ độc giả.

Các chức năng trên giao diện:

• Tìm: Tìm các thông tin của sách dựa mã thẻ độc giả, tên, năm sinh, mã

• Reset: Xoá thông tin ở các ô textbox

• Hiển thị số lượng kết quả tìm kiếm

13 Giao diện Thống kê phiếu mượn

Chúng ta có thể xem và tìm kiêm chi tiết Phiếu mượn

Các chức năng trên giao diện:

• Tìm: Tìm các thông tin của sách dựa mã phiếu mượn, mã thẻ, tình trạng.

• Reset: Xoá thông tin ở các ô textbox

• Hiển thị số lượng kết quả tìm kiếm

Trang 15

14 Giao diện Thống kê tổng quan

Hiển thị các thống kê về dữ liệu có trong thư viện.

Xem: Mở form Hiển thị các phiếu mượn quá hạn.

*Phân quyền tài khoản:

• Người dùng bình thường, không có tài khoản chỉ có thể xem Danh mục sách.

• Quản trị viên có quyền truy cập các chức năng khác, ngoại trừ chức năng liên quan đến Quản trị viên

Trang 16

• Tổ trưởng thư viện: Được quyền truy cập vào tất cả các chức năng.

Trang 17

PHẦN 4: MÃ NGUỒN (SOURCE CODE)

Trang 19

private void menuNXB_Click(object sender, EventArgs e)

Trang 20

string connectionString = @"Data Source=DESKTOP-A20PBA5\

SQLEXPRESS;Initial Catalog=Quanlythuvien-BTL;Integrated Security=True";

formMain f = new formMain();

formMain f2 = new formMain();

Trang 21

private void boxPassword_KeyDown(object sender, KeyEventArgs e) {

Trang 22

string Sql = "UPDATE QTV SET matkhau = '"+ boxXacnhanMatkhau.Text + "' WHERE matkhau = '"+ boxMatkhauCu.Text +"' and maqtv = '"+ boxMaqtv.Text +"'";

Trang 23

// TODO: This line of code loads data into the

'_Quanlythuvien_BTLDataSet6.LOAI' table You can move, or remove it, as needed

this.lOAITableAdapter.Fill(this._Quanlythuvien_BTLDataSet6.LOAI);

DataView dv = new DataView(dt);

//Nạp dữ liệu vào DataView

//bă;t đấcu lọc dữ liệu

string tensach, manxb, matg, matheloai;

int namxb;

if (boxTensach.Text == "") tensach = "*"; else tensach =

boxTensach.Text.ToString();

if (boxMaNXB.Text == "") manxb = ""; else manxb = boxMaNXB.Text.ToString();

if (boxMatacgia.Text == "") matg = "*"; else matg =

Trang 25

string Sql = "SELECT tenloai FROM LOAI where maloai ='" + maloai + "'";

cmdSelect = new SqlCommand(Sql, cn);

Trang 26

" '" + comboBoxTheloai.SelectedValue + "', '" + boxNamXb.Text + "')";

cmdInsert = new SqlCommand(sql, cn);

cmdInsert.ExecuteNonQuery();

Trang 27

MessageBox.Show("Đã lưu thành công");

LoadListView(); //Nạp lại dữ liệu mới vào listView1

string Sql = "UPDATE SACH SET tensach = '" + boxTensach.Text + "', sotrang = '" +

boxSotrang.Text + "', soluong = '" + boxSoluong.Text + "'," +

" manxb = '" + boxNXB.Text + "', matg = '" + boxTacgia.Text + "', matheloai = '" +

comboBoxTheloai.SelectedValue + "', namxb = '" + boxNamXb.Text + "'" +

" WHERE masach = '" + boxMasach.Text + "'";

cmdSelect = new SqlCommand(Sql, cn);

string Sql = "delete from SACH where masach ='" + boxMasach.Text + "'";

cmdXoa = new SqlCommand(Sql, cn);

Trang 28

string masach = dr["masach"].ToString();

string tensach = dr["tensach"].ToString();

string sotrang = dr["sotrang"].ToString();

string soluong = dr["soluong"].ToString();

string manxb = dr["manxb"].ToString();

string matg = dr["matg"].ToString();

string namxb = dr["namxb"].ToString();

string maloai = dr["matheloai"].ToString();

Trang 29

string connectionString = @"Data Source=DESKTOP-A20PBA5\

SQLEXPRESS;Initial Catalog=Quanlythuvien-BTL;Integrated Security=True";

cn = new SqlConnection(connectionString);

cn.Open();

Trang 32

DialogResult dl = MessageBox.Show("Nhập thống tin mã theG chính xác", "Thốngbáo", MessageBoxButtons.YesNo);

Trang 33

string connectionString = @"Data Source=DESKTOP-A20PBA5\

SQLEXPRESS;Initial Catalog=Quanlythuvien-BTL;Integrated Security=True";

Trang 34

private void btnThem_Click(object sender, EventArgs e)

string manxb = boxMaNXB.Text;

string tennxb = boxTenNXB.Text;

string diachi = boxDiachi.Text;

string email = boxEmail.Text;

string sql = "select * from NXB where manxb='" + boxMaNXB.Text + "'";

cmdSelect = new SqlCommand(sql, cn);

Trang 35

MessageBox.Show("Khống tốcn tại mã NXB " + boxMaNXB.Text);

string Sql = "UPDATE NXB SET manxb = '"+ boxMaNXB.Text+ "', tennxb = '"

+ boxTenNXB.Text + "', diachi = '" + boxDiachi.Text + "', email = '" + boxEmail.Text +

"' WHERE manxb = '" + boxMaNXB.Text + "'";

cmdXoa = new SqlCommand(Sql, cn);

Trang 36

string connectionString = @"Data Source=DESKTOP-A20PBA5\

SQLEXPRESS;Initial Catalog=Quanlythuvien-BTL;Integrated Security=True";

Trang 37

string tentg = boxTentg.Text;

string namsinh = boxNamsinh.Text;

string nammat = boxNammat.Text;

Trang 39

private void Moketnoi()

string connectionString = @"Data Source=DESKTOP-A20PBA5\

SQLEXPRESS;Initial Catalog=Quanlythuvien-BTL;Integrated Security=True";

Trang 42

if (boxTinhtrang.Text == "DA TRA")

// TODO: This line of code loads data into the

'_Quanlythuvien_BTLDataSet4.PHIEUMUON' table You can move, or remove it, as needed

try

{

string connectionString = @"Data Source=DESKTOP-A20PBA5\

SQLEXPRESS;Initial Catalog=Quanlythuvien-BTL;Integrated Security=True";

LoadListView(); //hien thi listview

boxTinhtrang.Text = "CHUA TRA";

Trang 44

boxTinhtrang.Text = "QUA HAN TRA";

string mapm = dr["mapm"].ToString();

string mathedg = dr["mathe"].ToString();

string maqtv = dr["maqtv"].ToString();

string hantra = dr["hantra"].ToString();

string tinhtrang = dr["tinhtrang"].ToString();

Trang 45

{

if (boxMapm.Text != "") {

Moketnoi(); cmd = new SqlCommand("select * from CHITIET_PM where mapm = '" + boxMapm.Text + "' ", cn); SqlDataReader r = cmd.ExecuteReader(); listView1.Items.Clear(); // Xóa tấ;t caG dữ liệu trong listView1 if (r.HasRows) {

while (r.Read()) {

string[] st = new string[4]; st[0] = r["machitiet"].ToString(); st[1] = r["masach"].ToString();

st[2] = r["soluong"].ToString(); ListViewItem lv = new ListViewItem(st); listView1.Items.Add(lv); boxSoluong.Text = "1"; boxTongsosach.Text = listView1.Items.Count.ToString(); }

r.Close(); }

cmd.Dispose();

}

}

private void formChitietPhieumuon_Load(object sender, EventArgs e) {

try {

string connectionString = @"Data Source=DESKTOP-A20PBA5\ SQLEXPRESS;Initial Catalog=Quanlythuvien-BTL;Integrated Security=True"; cn = new SqlConnection(connectionString); cn.Open(); }

catch //(Exception loi) {

MessageBox.Show("Khống thếG kế;t nố;i được"); }

LoadListView(); //hien thi listview }

private void btnChonpm_Click(object sender, EventArgs e) {

formChonPhieumuon f = new formChonPhieumuon(); f.ShowDialog(); if (classThuvien.mapm != "") {

boxMapm.Text = classThuvien.mapm.ToString(); LoadListView(); }

}

private void button2_Click(object sender, EventArgs e) {

formChonsach f = new formChonsach(); f.ShowDialog(); if (classThuvien.masach != "") {

boxMasach.Text = classThuvien.masach.ToString(); }

LoadListView(); }

private void btnThem_Click(object sender, EventArgs e)

Ngày đăng: 14/02/2022, 17:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w