1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn học phần lập trình net Đề tài 6 xây dựng Ứng dụng quản lý thư viện

111 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 111
Dung lượng 1,53 MB

Nội dung

b Xác định Đối tượng sử dụng hệ thống Qua khảo sát chúng em đã xác định được 2 đối tượng sử dụng đó là Quản lý: Quản lý nhân viên và kiểm tra doanh thu Nhân viên : Bán hàng và quản lý c

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

BÀI TẬP LỚN HỌC PHẦN: LẬP TRÌNH NET

Đề tài 6: Xây dựng ứng dụng quản lý thư viện

Trang 2

2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

BÀI TẬP LỚN HỌC PHẦN: LẬP TRÌNH NET

Nhóm: 3

Đề tài 6: Xây dựng ứng dụng quản lý thư viện

STT Sinh viên thực hiện Mã sinh

viên Điểm bằng số Điểm bằng chữ

Trang 3

MỤC LỤC

DANH MỤC CÁC TỪ VIẾT TẮT 4

Chương 1 Giới thiệu về đề tài 5

1.1.Giới thiệu về đề tài .5

1.2 Kế hoạch làm đề tài .5

1.3 Các công nghệ sử dụng 11

Chương 2 Mô hình hệ thống 14

2.1 Các chức năng của hệ thống 14

2.2 Các giao diện có trong hệ thống 18

2.3 Mô hình lớp 28

2.4 Mô hình cơ sở dữ liệu 29

2.5 Các tiện ích 34

Chương 3 Phát triển hệ thống 35

3.1 Lớp GUI 35

3.2 Lớp DAL 106

3.3 Các Procedured 107

Kết luận 110

Kết quả thu được 110

Hạn chế và hướng phát triển của đề tài 1101

Danh mục sách tham khảo 111

Trang 4

cho phép truy xuất đọc-ghi ngẫu nhiên đến bất kỳ vị trí nào trong bộ nhớ dựa theo địa chỉ bộ nhớ

trung, được phát triển bởi Dennis M

tính phổ biến để tạo, sửa,

và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan

hệ

Trang 5

Chương 1 Giới thiệu về đề tài 1.1.Giới thiệu về đề tài

Theo tổng kết của Cục Xuất bản, In và Phát hành, năm qua toàn ngành xuất

bản trên 33.000 cuốn sách (năm 2018 đạt gần 32.000 cuốn) Lượng bản sách trên

400 triệu bản (năm 2018 đạt 390 triệu bản) Hiện nay, việc trao đổi mượn sách tại

thư viện là rất bất tiện Và việc thống kê được tất cả các đầu sách ra vào của thư

viện cũng rất khó khăn Khi khoa học công nghệ thông tin ngày càng phát triển, nó

được ứng dụng rộng rãi trong tất cả các lĩnh vực Cùng với đó nhu cầu tìm kiếm

thông tin trên sách,vở của con người ngày càng nhiều Hình thức trao đổi tìm kiếm

sách cũng ngày càng phát triển và đa dạng hơn Việc ứng dụng công nghệ thông

tin vào trao đổi sách mang lại nhiều lợi ích cho các thư viện Các thư viện giảm

đáng kể thời gian cho quản lý sách của mình Việc tìm kiếm cũng sẽ chở nên đơn

giản hơn rất nhiều Giúp độc giả có thể dễ dàng lựa chọn được những loại sách

mình đang cần một cách nhanh chóng và thuận tiện nhất

1.2 Kế hoạch làm đề tài

1.2.1 Khởi tạo dự án

a) Các hoạt động

Đội ngũ ban đầu hệ thống:

Chức vụ Tên thành viên đội ngũ hệ

Trang 6

Trần Công Anh Tuyến Nguyễn Phú Quang Hưng

Test

Đàm Đức Minh Hoàng Hữu Thành

Kiểm thử phần mềm

Nguyên tắc quản lý trong dự án:

-Có vai trò và trách nhiệm nhóm rõ ràng: Khi thành viên không biết vai trò của họ là gì hoặc vai trò đó liên quan như thế nào với những người khác trong nhóm, ranh giới sẽ bị vượt qua và nảy sinh những xung đột không cần thiết Xác định rõ vai trò của từng thành viên trong nhóm để giúp mọi người làm việc tốt cùng nhau

-Tạo một chiến lược để bắt đầu và thực hiện: Đây là lúc chia sẻ tầm nhìn và

kế hoạch cho dự án, giao nhiệm vụ cho các thành viên trong nhóm và cử mọi người lên đường hoàn thành công việc

-Xác định các ưu tiên và các mốc quan trọng trước thời hạn: Xác định các

mốc quan trọng trong giai đoạn lập kế hoạch dự án sẽ giúp bạn biết liệu bạn có đang đi đúng hướng và đúng tiến độ hay không

-Minh bạch: tạo ra một hệ thống trong đó tất cả các thành viên trong nhóm có

thể truy cập tất cả thông tin liên quan về dự án một cách dễ dàng và hiệu quả

-Theo dõi và đo lường tiến độ: Kiểm tra KPI để có thể nắm bắt các vấn đề và

sửa chữa nhanh chóng

-Đánh giá rủi do: Đánh giá rủi do có thể xảy ra giúp bạn tránh thất bại trong dự

án

Trang 7

Kế hoạch đối với toàn bộ dự án như thời gian bắt đầu và các giai đoạn dự kiến hoàn

thiện

Giai đoạn Tên công việc Người thực hiện Thời gian

bắt đầu

Thời gian kết thúc

2.6 Thiết kế giao diện quản lý nhà xuất bản

2.7 Thiết kế giao diện quản lý thể loại

2.8 Thiết kế giao diện quản lý gửi

Trang 8

2.9Thiết kế giao diện quên mật khẩu

2.10 Thiết kế giao diện quản lý phiếu trả

2.11 Thiết kế giao diện quản lý phiếu mượn

2.12 Thiết kế giao diện quản lý người dùng

Trang 9

b) Xác định Đối tượng sử dụng hệ thống

Qua khảo sát chúng em đã xác định được 2 đối tượng sử dụng đó là

Quản lý: Quản lý nhân viên và kiểm tra doanh thu Nhân viên : Bán hàng và quản lý các đơn hàng

c) Phương pháp phát triển phần mềm

Lý do mà một dự án có thể được triển khai theo phương pháp Waterfall có thể bao

gồm:

Trang 10

1 Yêu cầu rõ ràng từ đầu: Khi yêu cầu của dự án được xác định và thay đổi ít, Waterfall có thể phù hợp Nếu yêu cầu không thay đổi nhiều trong quá trình phát triển, việc theo dõi và hoàn thành từng giai đoạn một theo Waterfall sẽ dễ dàng hơn

4 Phù hợp với nguồn lực và thời gian: Waterfall thường cho phép việc ước lượng thời gian và nguồn lực một cách rõ ràng từ đầu Nếu việc ước lượng này quan trọng trong dự án và có sẵn nguồn lực đủ để thực hiện từng giai đoạn một, Waterfall có thể được lựa chọn

d) Đánh giá tính khả thi của dự án

- Tiết kiệm sức người và nhanh chóng khi tìm kiếm sách: Phần mềm cho phép tìm kiếm tên sách giúp tiết kiệm công sức nhân viên khi tìm kiếm sách cũng như

vị trí sách nhanh hơn trước đây phải tìm qua sổ sách thủ công

-Kiểm soát số lượng tốt hơn,linh hoạt hơn sổ sách thủ công: Phần mềm sẽ đưa

ra thông báo khi 1 loại sách gần hết để người dùng phần mềm có thể bổ sung thêm tránh trường hợp người thiếu sách khi người mua cần loại sách đó

-Dễ quản lý hơn sổ sách thủ công: Tất cả dữ liệu được lưu trong CSDL dễ dàng truy xuất bằng phần mềm qua các chức năng quản lý

-Tiện lợi: Thay vì phải đến của hàng mua sách thì người mua có thể đặt mua sách tại nhà

Phù hợp với tình hình dịch bệnh hiện nay

Trang 11

1.3 Các công nghệ sử dụng

1.3.1 Ngôn ngữ lập trình c#

Ngôn ngữ C# là một ngôn ngữ lập trình hiện đại, mạnh mẽ và được thiết kế để đơn giản hóa quá trình phát triển phần mềm Nó được Microsoft phát triển như là một phần của nền tảng NET C# được sử dụng rộng rãi trong phát triển ứng dụng máy tính để bàn, web, di động và nhiều loại ứng dụng khác

Dưới đây là một số khía cạnh chính của C# và cách sử dụng C# trên Visual Studio:

Đặc điểm chính của C#

1 Cú pháp dễ hiểu: C# có cú pháp tương tự như C, C++, và Java, giúp lập trình viên

dễ dàng học và sử dụng

2 Quản lý bộ nhớ: C# sử dụng một cơ chế gọi là "garbage collection" để tự động quản

lý bộ nhớ, giảm nguy cơ lỗi bộ nhớ

3 Hỗ trợ lập trình hướng đối tượng (OOP): C# hỗ trợ các khái niệm OOP như kế thừa,

đa hình, và đóng gói, giúp tổ chức mã nguồn một cách logic và dễ quản lý

4 Tích hợp mạnh mẽ với NET Framework: C# có thể tận dụng toàn bộ thư viện và công cụ của NET, từ đó mở rộng khả năng phát triển phần mềm

1.3.2 Sử dụng ngôn ngữ c# trên Visual studio

Visual Studio là một môi trường phát triển tích hợp (IDE) mạnh mẽ được sử dụng rộng rãi để

phát triển ứng dụng C# Dưới đây là các bước cơ bản để bắt đầu với C# trong Visual Studio:

1 Cài đặt Visual Studio

• Tải và cài đặt Visual Studio từ trang web chính thức của Microsoft

• Chọn các thành phần cần thiết cho phát triển C# và NET khi cài đặt, chẳng hạn như NET desktop development, ASP.NET and web development, v.v

2 Tạo dự án C#

• Mở Visual Studio và chọn Create a new project

• Chọn loại dự án mà bạn muốn tạo, chẳng hạn như Console App, WPF App,

ASP.NET CoreWeb Application, v.v

• Đặt tên cho dự án và chọn vị trí lưu trữ, sau đó nhấn Create

3 Viết mã C#

Trang 12

• Mở tệp Program.cs (hoặc tương tự tùy thuộc vào loại dự án) để viết mã nguồn C#

Trang 13

Chương 2 Mô hình hệ thống (tối thiểu 15 trang)

Chức năng đăng nhập cần tính bảo mật cao, khi điền đầy đủ các thông tin thì hệ thống sẽ chấp nhận cho bạn đăng nhập và ngược lại nếu các thông tin không chính xác thì hệ thống sẽ báo lỗi và yêu cầu nhập lại

Trang 14

Quản lý

Trang 15

5 Quản lý tác giả, thể loại, nhà xuất bản

Nhân viên

Quản lý, nhân viên sử dụng các chức năng và theo dõi thông tin dữ liệu của chức năng Quản lý

Trang 17

2.2 Các giao diện có trong hệ thống

-Giao diện đăng nhập:

STT Tên đối tượng Kiểu Ý nghĩa

Ghi chú

2 Lblogin Label Hiển thị dòng chữ login

5 Btlogin Button Nút ấn để đăng nhập

6 Btloginotp Label Đăng nhập bằng otp

7 Tb1 Texbox Để nhập tài khoản

8 Tb2 Texbox Để nhập mật khẩu

Trang 18

-Giao diện đổi mật khẩu

STT Tên đối tượng Kiểu Ý nghĩa Ghi chú

5 Btldoimk Button Nút ấn để đổi mật khẩu

6 Tbnhaplaimk Textbox Nhập lại mật khẩu

Trang 19

- Giao diện quên mật khẩu:

STT Tên đối tượng Kiểu Ý nghĩa

Ghi chú

2 Lblquenmk Label

Hiển thị dòng chữ quên

3 Tbgmail Textbox Nhập gmail

4 Tbotp Textbox Nhập otp

Trang 20

-Giao diện quản lý sách:

STT Tên đối tượng Kiểu Ý nghĩa Ghi chú

1 Frmnguoidung Form là form chính

5 Btthem Button ấn để thêm thông tin

6 Btsua Button ấn để sửa thông tin

7 Btthoat Button ấn để xóa thông tin

8 Btxoa Button ấn để thoát

Trang 21

-Giao diện quản lý sách:

STT Tên đối tượng Kiểu Ý nghĩa Ghi chú

5 Btthem Button ấn để thêm thông tin

6 Btsua Button ấn để sửa thông tin

7 Btthoat Button ấn để xóa thông tin

8 Btxoa Button ấn để thoát

Trang 22

-Giao diện hóa đơn mượn

STT Tên đối tượng Kiểu Ý nghĩa Ghi chú

5 Btthem Button ấn để thêm thông tin

6 Btsua Button ấn để sửa thông tin

7 Btthoat Button ấn để xóa thông tin

8 Btxoa Button ấn để thoát

Trang 23

-Giao diện hóa đơn trả

STT Tên đối tượng Kiểu Ý nghĩa

Ghi chú

5 Btthem Button ấn để thêm thông tin

6 Btsua Button ấn để sửa thông tin

7 Btthoat Button ấn để xóa thông tin

Trang 24

-Giao diện tác giả

STT Tên đối tượng Kiểu Ý nghĩa Ghi chú

2 Lbltacgia Label Hiển thị dòng chữ tác giả

5 Btthem Button ấn để thêm thông tin

6 Btsua Button ấn để sửa thông tin

7 Btthoat Button ấn để xóa thông tin

Trang 25

-Giao diện admin

STT Tên đối tượng Kiểu Ý nghĩa Ghi chú

6 Btdoimk Button ấn để đổi mk

7 Bttdx Button ấn để xóa thông tin

Trang 26

-Giao diện thể loại:

STT Tên đối tượng Kiểu Ý nghĩa Ghi chú

2 Lbltheloai Label Hiển thị dòng chữ thể loại

5 Btthem Button ấn để thêm thông tin

6 Btsua Button ấn để sửa thông tin

7 Btthoat Button ấn để xóa thông tin

Trang 27

2.3 Mô hình lớp

Trang 28

2.4 Mô hình cơ sở dữ liệu

-Chi tiết Database

Trang 29

MATL VARCHAR(10) PK X Mã Thể Loại

- Bảng TACGIA

buộc

-Bảng NHAXUATBAN

buộc

Trang 30

-Bảng SACH

-Bảng SACHCHITIET

-Bảng PHIEUMUON

Trang 31

MAMUON VARCHAR(10) PK X Mã Phiếu Mượn

-Bảng PHIEUMUONCT

Thuộc tính Kiểu dữ liệu Ràng

buộc

Not null Mô tả

-Bảng PHIEUTRA

Trang 32

-Bảng PHIEUTRACT

Thuộc tính Kiểu dữ liệu Ràng

buộc

Not null Mô tả

Trang 33

2.5 Các tiện ích

-Các Class Method

Trang 34

Chương 3 Phát triển hệ thống 3.1 Lớp GUI

-Các Giao diện của lớp GUI:

Trang 35

- Code của giao diện đổi mật khẩu

NguoidungRepos _repos = new NguoidungRepos();

string username, pass;

public DoiMK(string tk, string mk)

DialogResult result = MessageBox.Show("Bạn có muốn đổi mật khẩu không?",

"Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

var b = _repos.GetAll().FirstOrDefault(x => x.Mand ==

username && x.Chucdanh == false);

Trang 36

NguoidungRepos _ng = new NguoidungRepos();

var a = _ng.GetAll().FirstOrDefault(x => (x.Mand == username || x.Email

== username) && x.Matkhau == pass && x.Chucdanh == false);

Trang 39

string username = textBox1.Text;

string password = textBox3.Text;

if (username != "" && password != "")

Trang 41

NguoidungRepos _repos = new NguoidungRepos();

string username, password;

public Nguoidung(string tk, string mk)

{

Trang 42

username = tk;

InitializeComponent();

LoadData(_repos.GetAll());

dateTimePicker1.Format = DateTimePickerFormat.Custom; dateTimePicker1.CustomFormat = "dd/MM/yyyy";

dataGridView1.Columns[5].Name = "Ngày sinh";

dataGridView1.Columns[6].Name = "Số điện thoại";

dataGridView1.Columns[7].Name = "Email";

Trang 44

}

else if (!textBox7.Text.EndsWith("@gmail.com"))

{

MessageBox.Show("Email không hợp lệ! Email phải có định dạng

@gmail.com.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);

Trang 45

MessageBox.Show("Năm sinh không hợp lệ! Năm sinh phải lớn hơn 2006 và nhỏ hơn 1964.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);

Trang 47

}

}

public void ClearData()

{

textBox1.Text = textBox2.Text = textBox5.Text = textBox6.Text =

textBox7.Text = textBox8.Text = textBox9.Text = textBox11.Text = "";

radioButton1.Checked = radioButton2.Checked = false;

int index = e.RowIndex;

var selected = dataGridView1.Rows[index];

Trang 48

radioButton2.Checked = true;

}

textBox5.Text = selected.Cells[4].Value.ToString();

dateTimePicker1.Value = (DateTime)selected.Cells[5].Value; textBox6.Text = selected.Cells[6].Value.ToString();

Trang 49

}

else if (!textBox7.Text.EndsWith("@gmail.com"))

{

MessageBox.Show("Email không hợp lệ! Email phải có định dạng

@gmail.com.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);

isValid = false;

}

Trang 52

MessageBox.Show("Xóa tài khoản thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

Trang 53

}

private void button4_Click(object sender, EventArgs e)

{

NguoidungRepos _ng = new NguoidungRepos();

var a = _ng.GetAll().FirstOrDefault(x => (x.Mand == username || x.Email == username) && x.Matkhau == password && x.Chucdanh == false);

Trang 54

string username; string pass;

NguoidungRepos _repos = new NguoidungRepos();

public ThongTinCaNha(string username, string pass)

Trang 55

NguoidungRepos _ng = new NguoidungRepos();

var a = _ng.GetAll().FirstOrDefault(x => (x.Mand == username || x.Email

== username) && x.Matkhau == pass && x.Chucdanh == false);

Trang 56

private void ThongTinCaNha_Load(object sender, EventArgs e) {

Trang 58

ViewSach.Rows.Add(stt++, x.Masach, x.Tensach, x.Soluong);

}

}

private void ViewSach_CellClick(object sender, DataGridViewCellEventArgs e) {

int index = e.RowIndex;

var selected = ViewSach.Rows[index];

ViewHD.Columns[1].Name = "ID";

ViewHD.Columns[2].Name = "Mã nhân viên";

ViewHD.Columns[3].Name = "Tên nhân viên";

Trang 59

int index = e.RowIndex;

var selected = ViewHD.Rows[index];

PhieuMuonRepos _repos = new PhieuMuonRepos();

if (e.ColumnIndex == ViewHD.Columns[""].Index && e.RowIndex >= 0) {

Trang 60

var result = MessageBox.Show("Bạn có chắc muốn xóa thông tin này?",

"Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

ViewCT.Columns[0].Name = "STT";

ViewCT.Columns[1].Name = "ID"; ViewCT.Columns[1].Visible = false;

Trang 61

ViewCT.Columns[2].Name = "Mã mượn"; ViewCT.Columns[2].Visible = false; ViewCT.Columns[3].Name = "Mã sách"; ViewCT.Columns[3].Visible = false; ViewCT.Columns[4].Name = "Tên sách";

PhieuMuonCTRepos _repos = new PhieuMuonCTRepos();

foreach (var x in _repos.GetByPhieumuonCT(id))

Ngày đăng: 05/12/2024, 09:45

w