Professional Documents
Culture Documents
2
CHƯƠNG I : TỔNG QUAN LẬP TRÌNH JAVA
1. Ngôn ngữ lập trình Java
Java được phát triển bởi Sun Microsystem, giới thiệu vào tháng 6 năm 1995. Từ đó, nó đã
trở thành một công cụ lập trình của các lập trình viên chuyên nghiệp. Java được xây dựng
trên nền tảng của C và C++, do đó, nó sử dụng các cú pháp của C cũng như các đặc trưng
hướng đối tượng của C++.
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.
Các đặc trưng cơ bản của ngôn ngữ Java:
Đơn giản: Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học và quen
thuộc với đa số lập trình viên. Do đó, Java được loại bỏ các đặc trưng phức tạp của C và
C++ như thao tác con trỏ, thao tác nạp đè (overload),... Java không sử dụng lệnh "goto"
cũng như file header(.h). Cấu trúc "struct" và "union" cũng được loại bỏ khỏi 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.
Độc lập phần cứng và hệ điều hành: Nhờ đặc trưng này, giúp một chương trình được
viết tại một máy nhưng có thể được chạy ở bất kì đâu.
Mạnh mẽ: Java yêu cầu chặt chẽ về kiểu dữ liệu và phải mô tả rõ ràng khi viết chương
trình. Chúng sẽ được kiểm tra lúc biên dịch và cả trong thời gian thông dịch. Vì vậy,
Java loại bỏ được các kiểu dữ liệu dễ gây ra lỗi.
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ó
virut, giả mạo. Các kỹ thuật xác thực dựa trên mã hoá khóa công khai.
Phân tán: Java có thể dùng để xây dựng các ứng dụng có thể làm việc trên nhiều phần
cứng, hệ điều hành và giao diện đồ họa. Java được thiết kế cho các ứng dụng chạy trên
mạng. Vì vậy chúng được sử dụng rộng rãi trên Internet, nơi sử dụng nhiều nền tảng
khác nhau.
3
Đa luồng: Chương trình Java sử dụng kỹ thuật đa tiến trình (Multithread) để thực thi các
công việc đồng thời. Chúng cũng cung cấp giải pháp đồng bộ giữa các tiến trình. Đặc
tính hỗ trợ đa tiến trình này cho phép xây dựng các ứng dụng trên mạng chạy uyển
chuyển.
Động: Java được thiết kế như một ngôn ngữ động để đáp ứng cho những môi trường
mở. Các chương trình Java bổ sung các thông tin cho các đối tượng tại thời gian thực
thi. Điều này cho phép khả năng liên kết động các mã.
2. Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (Database Management System) có thể hiểu là hệ thống được
thiết kế để quản lí một khối lượng dữ liệu nhất định một cách tự động và có trật tự. Các hành
động quản lý này bao gồm chỉnh sửa, xóa, lưu thông tin và tìm kiếm (truy xuất thông tin)
trong một nhóm dữ liệu nhất định.
Nói một cách dễ hiểu hơn, hệ quản trị cơ sở dữ liệu là hệ thống tự động giúp người dùng
có thể kiểm soát các thông tin, tạo, cập nhật và duy trì các CSDL. Trong đó, hai thành phần
chính trong một hệ quản trị cơ sở dữ liệu là: Bộ xử lí truy vấn (bộ xử lí yêu cầu) và bộ quản lí
dữ liệu.
Các hệ quản trị cơ sở dữ liệu phổ biến hiện nay : MySQL, Oracle, SQlite, MongoDB,
PostgreSql, Redis,.........
4
CHƯƠNG II : PHÂN TÍCH VÀ THIẾT KẾ PHẦN MỀM
1. Chức năng của phần mềm
5
create database QuanLyThuVien
use QuanLyThuVien
6
create table TheLoai(
MaTheLoai int identity(1,1) not null ,
TenTheLoai nvarchar(50) not null unique,
CONSTRAINT pk5 PRIMARY KEY (MaTheLoai),
)
go
create table NgonNgu(
MaNgonNgu int identity(1,1) not null ,
TenNgonNgu nvarchar(50) not null unique,
CONSTRAINT pk6 PRIMARY KEY (MaNgonNgu),
)
go
create table Sach(
MaSach int identity(1,1) not null ,
TenSach nvarchar(200) not null,
MaNXB int not null,
MaTacGia int not null,
MaTheLoai int not null,
TomTat ntext not null,
NgayXB date not null,
SoTrang int not null,
MaNgonNgu int not null,
Bia Image not null,
GiaBan int not null,
Soluong int not null,
SoMat int not null default 0,
Tang nvarchar(10) not null,
Phong nvarchar(10) not null,
Gia nvarchar(10) not null,
Ke nvarchar(10) not null,
Trangthai tinyint not null default 1,
CONSTRAINT pk8 PRIMARY KEY (MaSach),
CONSTRAINT fk1 FOREIGN KEY (MaTacGia) REFERENCES TacGia(MaTacGia),
CONSTRAINT fk2 FOREIGN KEY (MaNXB) REFERENCES NhaXB(MaNXB),
CONSTRAINT fk3 FOREIGN KEY (MaTheLoai) REFERENCES TheLoai(MaTheLoai),
CONSTRAINT fk4 FOREIGN KEY (MaNgonNgu) REFERENCES NgonNgu(MaNgonNgu),
)
go
create table PhieuMuon(
MaPhieuMuon int identity(1,1) not null ,
MaNhanVien int not null,
MaBanDoc int not null,
NgayMuon date not null,
NgayTra date,
HanTra date not null,
TienPhat int DEFAULT 0,
TrangThai tinyint DEFAULT 1,
CONSTRAINT pk9 PRIMARY KEY (MaPhieuMuon),
CONSTRAINT fk5 FOREIGN KEY (MaNhanVien) REFERENCES NhanVien(MaNhanVien),
CONSTRAINT fk6 FOREIGN KEY (MaBanDoc) REFERENCES BanDoc(MaBanDoc),
)
go
create table ChiTietPhieuMuon(
MaPhieuMuon int not null,
7
MaSach int not null,
SoLuong int default 1,
TrangThaiSach tinyint DEFAULT 1,
CONSTRAINT fk7 FOREIGN KEY (MaPhieuMuon) REFERENCES
PhieuMuon(MaPhieuMuon),
CONSTRAINT fk8 FOREIGN KEY (MaSach) REFERENCES Sach(MaSach),
)
8
CHƯƠNG III : CHƯƠNG TRÌNH THỬ NGHIỆM
1. Giao diện
Đăng nhập vào hệ thống
9
Trang chủ Bạn đọc
10
Giao diện Thêm nhân viên
public PanelMainAdmin() {
initComponents();
if (Run.nv.getPhanQuyen() == 0) {
quanlyNV.setEnabled(false);
}
home = new PanelTrangChu();
jpLayout.add(home);
jpLayout.updateUI();
sw = new SetWallpaper();
sw.SetWallpaper920x635(wallMainAdmin);
TenNV.setText("Xin chào: " + Run.nv.getHoTen());
11
Clock clock = new Clock();
clock.start();
}
public Clock() {
}
@Override
public void run() {
while (true) {
Calendar calendar = Calendar.getInstance();
String str;
str = sdf.format(calendar.getTime());
Time.setText("Thời gian: " + str);
try {
sleep(1000);
} catch (Exception e) {
System.out.println(e);
}
}
}
}
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(920, 635));
setUndecorated(true);
setResizable(false);
setSize(new java.awt.Dimension(920, 635));
getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
mini.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/mini-blue.png"))); //
NOI18N
mini.setToolTipText("Thu nhỏ");
mini.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
mini.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
miniMouseClicked(evt);
}
});
16
getContentPane().add(mini, new org.netbeans.lib.awtextra.AbsoluteConstraints(870,
5, 22, 22));
close.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/close-blue.png"))); //
NOI18N
close.setToolTipText("Thoát");
close.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
close.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
closeMouseClicked(evt);
}
});
getContentPane().add(close, new org.netbeans.lib.awtextra.AbsoluteConstraints(896,
5, 22, 22));
17
jLabel2.setForeground(new java.awt.Color(255, 255, 255));
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/thoat.png"))); // NOI18N
jLabel2.setText("Đăng xuất");
jLabel2.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jLabel2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabel2MouseClicked(evt);
}
});
getContentPane().add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(795, 32, 110, 40));
trangchu.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/trangchu.png"))); //
NOI18N
trangchu.setText("Trang Chủ");
18
trangchu.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
trangchu.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
trangchu.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
trangchuActionPerformed(evt);
}
});
getContentPane().add(trangchu, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 75, 200, 45));
quanlysach.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/books-icon-512.png"))); //
NOI18N
quanlysach.setText("Quản Lý Sách");
quanlysach.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlysach.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlysach.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlysachActionPerformed(evt);
}
});
getContentPane().add(quanlysach, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 125, 200, 45));
quanlyPM.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/phieumuon.png"))); //
NOI18N
quanlyPM.setText("Quản Lý Phiếu Mượn");
quanlyPM.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyPM.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyPM.setMargin(new java.awt.Insets(2, 14, 2, 2));
quanlyPM.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyPMActionPerformed(evt);
19
}
});
getContentPane().add(quanlyPM, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 175, 200, 45));
quanlyTG.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/tacgia.png"))); // NOI18N
quanlyTG.setText("Quản Lý Tác Giả");
quanlyTG.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyTG.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyTG.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyTGActionPerformed(evt);
}
});
getContentPane().add(quanlyTG, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 225, 200, 45));
quanlyNXB.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/nha-may.png"))); //
NOI18N
quanlyNXB.setText("Quản Lý NXB");
quanlyNXB.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyNXB.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyNXB.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyNXBActionPerformed(evt);
}
});
getContentPane().add(quanlyNXB, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 275, 200, 45));
20
quanlyTL.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/phanloai.png"))); //
NOI18N
quanlyTL.setText("Quản Lý Danh Mục");
quanlyTL.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyTL.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyTL.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyTLActionPerformed(evt);
}
});
getContentPane().add(quanlyTL, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 325, 200, 45));
quanlyNN.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/ngongnu.png"))); //
NOI18N
quanlyNN.setText("Quản Lý Ngôn Ngữ");
quanlyNN.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyNN.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyNN.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyNNActionPerformed(evt);
}
});
getContentPane().add(quanlyNN, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 375, 200, 45));
quanlyBD.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/people.png"))); // NOI18N
quanlyBD.setText("Quản Lý Bạn Đọc");
quanlyBD.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyBD.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyBD.addActionListener(new java.awt.event.ActionListener() {
21
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyBDActionPerformed(evt);
}
});
getContentPane().add(quanlyBD, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 425, 200, 45));
baocaothongke.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/baocao.png"))); // NOI18N
baocaothongke.setText("Báo Cáo - Thống Kê");
baocaothongke.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
baocaothongke.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
baocaothongke.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
baocaothongkeActionPerformed(evt);
}
});
getContentPane().add(baocaothongke, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 475, 200, 45));
quanlyNV.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/nam.png"))); // NOI18N
quanlyNV.setText("Quản Lý Nhân Viên");
quanlyNV.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyNV.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyNV.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyNVActionPerformed(evt);
}
});
getContentPane().add(quanlyNV, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 525, 200, 45));
22
quanlyHT.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Icon/hethong.png"))); // NOI18N
quanlyHT.setText("Quản Lý Hệ Thống");
quanlyHT.setFont(new java.awt.Font("Times New Roman", 1, 14)); // NOI18N
quanlyHT.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
quanlyHT.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
quanlyHTActionPerformed(evt);
}
});
getContentPane().add(quanlyHT, new
org.netbeans.lib.awtextra.AbsoluteConstraints(10, 575, 200, 45));
jpLayout.setLayout(new java.awt.BorderLayout());
getContentPane().add(jpLayout, new
org.netbeans.lib.awtextra.AbsoluteConstraints(210, 75, 700, 545));
wallMainAdmin.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Images/Screen/gray-4.png"))); //
NOI18N
getContentPane().add(wallMainAdmin, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 920, 635));
jLabel4.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
jLabel4MouseDragged(evt);
}
});
jLabel4.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
jLabel4MousePressed(evt);
}
});
23
getContentPane().add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(0,
0, 920, 30));
pack();
setLocationRelativeTo(null);
}
24
private void trangchuActionPerformed(java.awt.event.ActionEvent evt) {
reloadPanel(1);
}
25
private void baocaothongkeActionPerformed(java.awt.event.ActionEvent evt) {
reloadPanel(9);
}
26
KẾT LUẬN
Trên đây là nội dung đồ án lập trình Java với đề tài Quản lý thư viện của em. Do thời gian
và trình độ còn hạn chế nên chương trình còn chưa được hoàn thiện. Em rất mong nhận được
ý kiến đóng góp của thầy cô để em có thể hiểu hơn và hoàn thiện hơn cho các đồ án sau.
27