You are on page 1of 20

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH JAVA

ĐỀ TÀI: Quản lý thư viện sách

Sinh viên thực hiện : MAI TRUNG DŨNG


NGUYỄN ĐỨC QUANG
PHẠM HOÀNG TRUNG SƠN
HOÀNG XUÂN HIẾU

Giảng viên hướng : NGUYỄN MẠNH HÙNG


dẫn
Ngành : CÔNG NGHỆ THÔNG TIN

Chuyên ngành : CÔNG NGHỆ PHẦN MỀM

Lớp : D16CNPM7

Hà Nội, ………/năm 2022

1
PHIẾU CHẤM ĐIỂM

STT Họ và tên sinh viên Điểm Chữ ký

1 Mai Trung Dũng

2 Nguyễn Đức Quang

3 Phạm Hoàng Trung Sơn

4 Hoàng Xuân Hiếu

Họ và tên giảng viên Chữ ký Ghi chú

Giảng viên chấm 1:

Giảng viên chấm 2:

2
MỤC LỤC
MỤC LỤC 3
LỜI MỞ ĐẦU 4
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 5
1.Ngôn ngữ Java 5
1.1. Giới thiệu Java 5
1.2. Đặc điểm của Java 6
1.3. Ứng dụng của Java 7
2. MySQL 10
2.1. Các thành phần của MySQL 10
2.2. Tính năng 11
2.3. Ưu và nhược điểm 11
*Nhược điểm 11
CHƯƠNG II. PHÂN TÍCH HỆ THỐNG QUẢN LÝ THƯ VIỆN SÁCH 12
3. Tổng quan 12
3.1. Giới thiệu đề tài 12
3.2. Các kiến thức sử dụng trong bài 12
4. Nội dung 13
4.1. Phân tích và thiết kế hệ thống. 13
4.2. Giao diện chương trình 17
KẾT LUẬN 19

3
LỜI MỞ ĐẦU
Trong thời đại trí thức ngày nay việc nâng cao chất lượng giáo dục là nhiệm vụ
quan trọng hàng đầu của nước ta. Song song với việc đào tạo, việc quản lý cơ sở
vật chất cũng rất quan trọng, đặc biệt là việc quản lý sách trong các thư viện.
Hằng ngày một số lượng lớn sách trong thư viện được sử dụng. Nhu cầu của
bạn đọc ngày càng tăng, dẫn đến việc quản lý sách vốn đã khó khăn, nay càng
khó khăn hơn.
Từ trước đến nay, các thư viện dù lớn hay nhỏ đều chỉ hoạt động dựa theo cách
thủ công do con người phụ trách. Nhưng xu thế hiện nay, khi sự phát triển mạnh
mẽ của ngành công nghệ thông tin dẫn đến việc đòi hỏi ra đời các hệ thống để
giúp con người trong việc quản lý.
Thêm vào đó, chúng em muốn thể hiện đầy đủ thông tin để việc tìm kiếm, tra
cứu thông tin về sách, sinh viên,.. được đầy đủ hơn nhằm tiết kiệm thời gian. Vì
vậy, nhóm chúng em chọn đề tài “ Quản lý thư viện sách ”. Tuy được sự
hướng dẫn tận tình của thầy Cù Việt Dũng nhưng do thời gian và năng lực có
hạn nên kết quả còn nhiều thiếu sót. Mong được sự góp ý của thầy cô.

4
CHƯƠNG I: CƠ SỞ LÝ THUYẾT

1.Ngôn ngữ Java

1.1. Giới thiệu Java


Java là một Ngôn ngữ lập trình và là một Platform.

Ngôn ngữ lập trình: Java là một ngôn ngữ lập trình bậc cao, hướng đối tượng,
bảo mật và mạnh mẽ.

Platform: Bất cứ môi trường phần cứng hoặc phần mềm nào mà trong đó có
một chương trình chạy, thì được hiểu như là một Platform. Với môi trường
runtime riêng cho mình (JRE) và API, Java được gọi là Platform.

Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do
Joames Gosling khởi xướng và phát hành vào năm 1995. Phiên bản mới nhất
của Java Standard Edition là Java SE 8. Với sự tiến bộ của Java và sự phổ biến
rộng rãi của nó, nhiều cấu hình đã được xây dựng để phù hợp với nhiều loại
nền tảng khác nhau. Ví dụ: J2EE cho các ứng dụng doanh nghiệp, J2ME cho
các ứng dụng di động.

Các phiên bản J2 mới đã được đổi tên thành Java SE, Java EE và Java ME.
Phương châm của java là "Write Once, Run Anywhere" - viết một lần chạy
nhiều nơi, nghĩa là bạn chỉ cần viết một lần trên window chẳng hạn, sau đó vẫn
chương trình đó bạn có thể chạy trên Linux, Android, các thiết bị J2ME...

5
1.2. Đặc điểm của Java

● Hướng đối tượng: Trong Java, mọi thứ đều là một Object. Java có thể dễ
dàng mở rộng và bảo trì vì nó được xây dựng dựa trên mô hình Object.
● Nền tảng độc lập: Không giống nhiều ngôn ngữ lập trình khác bao gồm
cả C và C ++, khi Java được biên dịch, nó không được biên dịch thành
ngôn ngữ máy nền tảng cụ thể, thay vào mã byte - nền tảng độc lập. Mã
byte này được thông dịch bởi máy ảo (JVM) trên nền tảng nào đó mà nó
đang chạy.
● Đơn giản: Java được thiết kế để dễ học. Nếu bạn hiểu khái niệm cơ bản
về OOP Java, sẽ rất dễ để trở thành master về java.
● Bảo mật: Với tính năng an toàn của Java, nó cho phép phát triển các hệ
thống không có virus, giả mạo. Các kỹ thuật xác thực dựa trên mã hóa
khóa công khai.
● Kiến trúc - trung lập : Trình biên dịch Java tạo ra định dạng tệp đối
tượng kiến trúc trung lập, làm cho mã biên dịch được thực thi trên nhiều
bộ vi xử lý, với sự hiện diện của hệ điều hành Java.
● Portable: Là kiến trúc tập trung và không có khía cạnh thực hiện phụ
thuộc của đặc tả này làm cho Java khả chuyển. Trình biên dịch trong Java
được viết bằng ANSI C, đó là một tập con POSIX.

6
● Mạnh mẽ: Java làm nỗ lực để loại trừ các tình huống dễ bị lỗi bằng cách
kiểm tra lỗi tại thời gian biên dịch và kiểm tra lỗi tại runtime.
● Đa luồng: Với tính năng đa luồng của Java có thể viết các chương trình
có thể thực hiện nhiều tác vụ đồng thời. Tính năng thiết kế này cho phép
các nhà phát triển xây dựng các ứng dụng tương tác có thể chạy trơn tru
hơn.
● Thông dịch: Mã byte Java được dịch trực tiếp tới các máy tính gốc và
không được lưu trữ ở bất cứ đâu.
● Hiệu năng cao: Với việc sử dụng trình biên dịch Just-In-Time, Java cho
phép thực hiện hiệu năng cao.
● Phân tán: Java được thiết kế cho môi trường phân tán của Internet.
● Năng động: Java là năng động hơn C hoặc C++ vì nó được thiết kế để
thích nghi với môi trường đang phát triển. Các chương trình Java có thể
mang một lượng lớn thông tin tại runtime mà có thể được sử dụng để xác
minh và giải quyết các truy cập vào các đối tượng tại runtime.

1.3. Ứng dụng của Java

Bạn có thể bắt gặp Java ở rất nhiều nơi, từ những trang web thương mại
điện tử đến ứng dụng Android, từ ứng dụng khoa học đến ứng dụng tài chính
như hệ thống giao dịch điện tử, trò chơi như Minecrafr đến các ứng dụng trên
máy tính như Eclipse, Netbeans, IntelliJ,...

Ứng dụng Android

Nếu muốn nhìn thấy một sản phẩm được tạo ra từ Java thì thật đơn giản, hãy mở
điện thoại Android lên và bất kỳ ứng dụng nào bạn nhìn thấy cũng chính là một
sản phẩm như vậy, được viết bằng ngôn ngữ lập trình Java, với Android API
của Google, tương tự như JDK. Với sự phát triển của Android ngày nay, hầu hết

7
lập trình viên Java đều là những người viết app cho Android. Android sử dụng
JVM và cách đóng gói khác nhau, nhưng code thì vẫn được viết bằng Java.

Các ứng dụng máy chủ dùng trong dịch vụ tài chính

Trong ngành dịch vụ tài chính Java chiếm một vị trí khá lớn. Nhiều ngân hàng
đầu tư toàn cầu như Goldman Sachs, Citigroup, Barclays, Standard Charted và
các ngân hàng khác sử dụng Java để viết hệ thống giao dịch điện tử front office
và back office, viết hệ thống giải quyết và xác nhận, dự án xử lý dữ liệu,... Java
chủ yếu được sử dụng để viết ứng dụng cho máy chủ, không có front end, nhận
dữ liệu từ một máy chủ khác, xử lý nó và gửi đến một tiến trình tiếp theo.

Ứng dụng Web

Java cũng chiếm được một thị phần khá lớn trong lĩnh vực thương mại điện tử
và ứng dụng web. Có rất nhiều dịch vụ RESTfull được tạo bằng cách sử dụng
Spring MVC, Struts 2.0 và những framework tương tự. Thậm chí những ứng
dụng web đơn giản như Servlet, JSP và Struts cũng rất phổ biến trong các dự án
khác nhau của chính phủ. Nhiều cơ quan chính phủ, y tế, bảo hiểm, giáo dục,
quốc phòng và những bộ phận khác có ứng dụng web được xây dựng bằng Java.

Công cụ phần mềm

Nhiều phần mềm hữu ích và công cụ phát triển được viết và triển khai trong
Java, ví dụ như Eclipse, InetelliJ Idea và Netbans IDE. Rất nhiều phần mềm trên
máy tính để bàn cũng được viết bằng Java.

Công nghệ Big Data

Hadoop và các công nghệ dữ liệu lớn khác cũng đang sử dụng Java theo cách
này hay cách khác. Apache của Java dựa trên HBase và Accumulo (mã nguồn
mở), ElasticSearch cũng vậy. Tuy Java không phải kẻ thống trị trong lĩnh vực
này, vì có những công nghệ như MongoDB được viết bằng C ++, nhưng Java có

8
tiềm năng để đạt được thị phần ngày càng tăng nếu Hadoop hoặc ElasticSearch
lớn mạnh.

Ứng dụng khoa học

Java thường được lựa chọn mặc định cho các ứng dụng khoa học, bao gồm xử
lý ngôn ngữ tự nhiên. Lý do chính là vì Java an toàn hơn, portable, duy trì và đi
kèm với những công cụ cấp cao tương đương C++ hay những ngôn ngữ lập
trình khác.

Vào những năm 1990, Java đã chiếm một phần lớn trên Internet nhờ Applet,
nhưng dần dần, Applet mất đi sự nổi tiếng, chủ yếu do các vấn đề bảo mật trên
mô hình sand-box. Hiện tại, Applets gần như đã "chết". Java thì trở thành ngôn
ngữ lập trình ứng dụng được nhiều lập trình viên yêu thích, được ứng dụng rộng
rãi trong phát triển ứng dụng, dịch vụ tài chính, ngân hàng đầu tư, thương mại
điện tử. Bất kỳ ai học Java đều có thể có một tương lai không tệ. Java 8 đã tiếp
tục tăng cường niềm tin rằng Java sẽ chi phối lĩnh vực phát triển phần mềm
trong những năm tới.

9
2. MySQL

Công ty công nghệ Mỹ Sun Microsystem sau đó giữ quyền sở hữu MySQL sau
khi mua lại MySQL vào năm 2008. Năm 2010, gã khổng lồ Oracle mua Sun
Microsystems và MySQL thuộc quyền sở hữu của Oracle từ đó.

Quay lại với khái niệm chính, MySQL là một hệ thống quản trị cơ sở dữ liệu mã
nguồn mở (Relational Database Management System, viết tắt là RDBMS) hoạt
động theo mô hình client-server. RDBMS là một phần mềm hay dịch vụ dùng
để tạo và quản lý các cơ sở dữ liệu (Database) theo hình thức quản lý các mối
liên hệ giữa chúng.

MySQL là một trong số các phần mềm RDBMS. RDBMS và MySQL thường
được cho là một vì độ phổ biến quá lớn của MySQL. Các ứng dụng web lớn
nhất như Facebook, Twitter, YouTube, Google, và Yahoo! đều dùng MySQL
cho mục đích lưu trữ dữ liệu. Kể cả khi ban đầu nó chỉ được dùng rất hạn chế
nhưng giờ nó đã tương thích với nhiều hạ tầng máy tính quan trọng như Linux,
macOS, Microsoft Windows, và Ubuntu.

2.1. Các thành phần của Sql Server

Do hoạt động theo mô hình Client – Server nên nó được chia làm hai thành
phần chính.

● Workstation: Được cài trên các thiết bị vận hành, nó là các phần mềm

tương tác với máy chủ server. Ví dụ: SSMS, SSCM, Profiler, BIDS,
SQLEM
● Server: Được cài trên máy chủ chính (máy chủ tập trung). Đó là các dịch

vụ như: SQL Server, SQL Server Agent, SSIS, SSAS, SSRS, SQL
Browser, SQL Full Text Search

10
Bạn có thể cài nhiều phiên bản của MySQL trên cùng một máy chủ, điều này
giúp tiết kiệm chi phí mua Server nếu hệ thống bạn hoạt động cần nhiều phiên
bản khác nhau, bảo mật cũng tách biệt hoàn toàn giúp hệ thống an toàn hơn.

2.2. Tính năng

● Cho phép tạo nhiều cơ sở dữ liệu

● Duy trì lưu trữ bền vững

● Bảo mật cao

● MySQL hỗ trợ ngôn ngữ truy vấn SQL – ngôn ngữ tựa Tiếng Anh nên rất

dễ sử dụng.
● Phân tích dữ liệu bằng SSAS – SQL Server Analysis Services

● Tạo được báo cáo bằng SSRS – SQL Server Reporting Services

● Thực hiện quá trình ETL (Extract-Transform-Load) bằng SSIS – SQL

Server Integration Services.

2.3. Ưu và nhược điểm

*Ưu điểm

● Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và

hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện
ích rất mạnh.
● Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập
CSDL trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là
ở cấp cao.
● Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ
từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp.

11
● Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu
và hơn thế nữa nó có thể được mở rộng nếu cần thiết.
● Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm
việc rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi.

*Nhược điểm

● Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi

kèm với các hạn chế về chức năng mà một vào ứng dụng có thể cần.
● Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (ví dụ tài

liệu tham khảo, các giao dịch, kiểm toán,…) làm cho nó kém tin cậy hơn
so với một số hệ quản trị cơ sở dữ liệu quan hệ khác.
● Dung lượng hạn chế: Nếu số bản ghi của bạn lớn dần lên thì việc truy

xuất dữ liệu của bạn là khá khó khăn, khi đó chúng ta sẽ phải áp dụng
nhiều biện pháp để tăng tốc độ truy xuất dữ liệu như là chia tải database
này ra nhiều server, hoặc tạo cache MySQL

12
CHƯƠNG II. PHÂN TÍCH HỆ THỐNG QUẢN LÝ
THƯ VIỆN SÁCH

3. Tổng quan

3.1. Giới thiệu đề tài

Phần mềm quản lý điểm sinh viên để quản lý thông tin sinh viên và điểm của

sinh viên các môn tương ứng. Giúp cho người quản lý dễ dàng xem và cập nhật

điểm của sinh viên theo môn học

3.2. Các kiến thức sử dụng trong bài

3.2.1. Cơ sở dữ liệu

- Đã biết cách cài đặt và cấu hình MySQL

- Biết cách tạo bảng và liên kết giữa các bảng trong MySQL.

- Biết sử dụng các câu lệnh truy vấn căn bản như:

● Select : Để lấy dữ liệu từ cơ sở dữ liệu


● Insert: Để ghi dữ liệu vào cơ sở dữ liệu
● Update: Để cập nhật thông tin một bản ghi trong cơ sở dữ liệu
● Delete: Để xóa một bản ghi trong cơ sở dữ liệu
● Câu lệnh select sử dụng thêm các điều kiện where để lọc dữ liệu

3.2.2. Ngôn ngữ lập trình

- Biết cách sử dụng thư viện để kết nối với MySQL.

13
- Biết cách thiết kế giao diện chương trình.

- Biết cách khai báo biến, sử dụng các biến và thực hiện được các chức năng
như:

● Hiển thị dữ liệu trong cơ sở dữ liệu lên table trong Java


● Thêm dữ liệu từ giao diện vào cơ sở dữ liệu từ code Java
● Cập nhật thông tin của bản ghi trong cơ sở dữ liệu từ code Java
● Xóa một bản ghi trong cơ sở dữ liệu từ code Java

4. Nội dung

4.1. Phân tích và thiết kế hệ thống.

4.1.1. Phân tích chương trình

Phần mềm quản lý điểm sinh viên gồm các chức năng:

- Quản lý khách hàng

- Quản lý nhân viên

- Quản lý nhà xuất bản

- Quản lý thẻ thư viện

- Quản lý sách

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

- Quản lý người dùng"

14
4.1.2. Thiết kế cơ sở dữ liệu

* Diagram cơ sở dữ liệu:

* Thiết kế chi tiết cơ sở dữ liệu:

Bảng khách hàng – khach_hang

Tên trường Kiểu dữ liệu Mô tả

Ma_Khach_hang VARCHAR(50) Mã khách hàng

Ten_Khach_hang VARCHAR(50) Tên khách hàng

Phone VARCHAR(50) Số điện thoại

Email VARCHAR(50) Địa chỉ email

Bảng nhân viên – nhan_vien

15
Tên trường Kiểu dữ liệu Mô tả

Ma_Nhan_vien VARCHAR(50) Mã nhân viên

Ho_ten VARCHAR(50) Tên nhân viên

Ngay_sinh DATE Ngày sinh

SDT VARCHAR(50) Số điện thoại

Bảng nhà xuất bản – nha_xb

Tên trường Kiểu dữ liệu Mô tả

Ma_nxb VARCHAR(50) Mã nhà xuất bản

Ten_nxb VARCHAR(50) Tên nhà xuất bản

Dia_chi VARCHAR(50) Địa chỉ

Email VARCHAR(50) Địa chỉ email

Bảng thẻ thư viện – the_thu_vien

Tên trường Kiểu dữ liệu Mô tả

Ma_the VARCHAR(50) Mã thẻ

Ngay_cap DATE Ngày cấp thẻ

Ngay_het_han DATE Ngày hết hạn thẻ

Ma_Khach_hang VARCHAR(50) Mã khách hàng

Bảng sách - sach

16
Tên trường Kiểu dữ liệu Mô tả

Ma_Sach VARCHAR(50) Mã sách

Ten_Sach VARCHAR(50) Tên sách

Ten_Tac_gia VARCHAR(50) Tên tác giả

Nha_xb VARCHAR(50) Nhà xuất bản

So_luong INT Số lượng

Bảng phiếu mượn – phieu_muon

Tên trường Kiểu dữ liệu Mô tả

Ma_Phieu_muon VARCHAR(50) Mã phiếu mượn

Ma_Khach_hang VARCHAR(50) Mã khách hàng

Ma_Sach VARCHAR(50) Mã sách

Ngay_muon DATE Ngày mượn

Ngay_tra DATE Ngày trả

So_luong INT Số lượng

Bảng người dùng – quan_tri

Tên trường Kiểu dữ liệu Mô tả

Ma_Admin VARCHAR(50) Tài khoản

Password VARCHAR(50) Mật khẩu

17
4.2. Giao diện chương trình

* Đăng nhập :

*Quản lý đọc giả :

18
*Quản lý sách :

*Giao diện phiếu mượn :

19
KẾT LUẬN

Với tốc độ phát triển ngày càng tăng của mạng máy tính, việc ứng
dụng thương mại điện tử vào cuộc sống hằng ngày là một sự lựa chọn hết
sức phù hợp. Chính vì vậy qua quá trình tìm hiểu, khảo sát, em đã chọn và
xây dựng hệ thống Quản lý thư viện sách.
Với kiến thức nền tảng cộng thêm sự giảng dạy trên lớp tận tình của
thầy Nguyễn Mạnh Hùng, nhóm em đã hoàn thành đề tài và đã phần nào
hiểu được quy trình, cách thức xây dựng một ứng dụng. Nhóm đã hiểu hơn
về các ngôn ngữ SQL, Java,… biết cách sử dụng các công cụ hỗ trợ để xây
dựng ứng dụng nhằm tiết kiệm thời gian, công sức thiết kế.
Mặc dù hệ thống quản lý đã hoàn thành, nhưng nó vẫn còn rất nhiều
mặt hạn chế và vấn đề thiếu xót. Như là, mô tả các chức năng chưa đầy đủ,
thiếu chính xác, thiết kế giao diện sơ xài và chưa được chuẩn hóa, chưa thực
sự hoàn thiện,... Nhóm rất mong nhận được sự đóng góp của thầy giáo và các
bạn để trong thời gian tới thì nhóm em sẽ cố gắng khắc phục các hạn chế,
những vấn đề chưa được tốt, và bổ sung thêm những chức năng mới cho hệ
thống.
Chúng em xin chân thành cảm ơn!

20

You might also like