TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------
BÁO CÁO BÀI TẬP LỚN
MƠN: LẬP TRÌNH JAVA
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG QUẢN LÝ CÁN BỘ
GVHD:
Nhóm thực hiện:
Lớp: Khóa:
Hà Nội – Năm 2021
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
---------------------------------------
BÁO CÁO BÀI TẬP LỚN
MƠN: LẬP TRÌNH JAVA
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG QUẢN LÝ CÁN BỘ
GVHD:
Nhóm thực hiện:
Lớp: Khóa:
Thành viên:
Hà Nội – Năm 2021
2
MỤC LỤC
Mục lục........................................................................................................... 1
Lời nói đầu.....................................................................................................3
Danh mục hình ảnh.........................................................................................4
CHƯƠNG 1. Tổng quan về đề tài..................................................................5
1.1. Yêu cầu bài toán..................................................................................5
1.2. Yêu cầu chức năng và yêu cầu phi chức năng.....................................5
1.3. Phân cơng nhiệm vụ............................................................................6
CHƯƠNG 2. Mơ tả và phân tích chương trình..............................................7
2.1. Use case Đăng nhập............................................................................7
2.1.1. Mơ tả use case..............................................................................7
2.1.2. Phân tích use case.........................................................................8
2.2. Use case quản lý nhân sự phía người quản trị.....................................8
2.2.1. Mơ tả use case..............................................................................8
2.2.2. Phân tích use case.......................................................................10
2.3. Use case tìm kiếm..............................................................................12
2.3.1. Mơ tả use case............................................................................12
2.3.2. Phân tích use case.......................................................................14
CHƯƠNG 3. Xây dựng chương trình...........................................................15
3.1. Xây dựng giao diện với Java Swing..................................................15
3.1.1. Giao diện phía người quản trị (Nguyễn Thị Yến).......................15
3.1.2. Giao diện hiển thị phía người dùng (An Thị Thanh Thảo).........27
3.2. Thiết kế cơ sở dữ liệu MySQL và JDBC (Hà Quốc Tuấn).................35
3.3. Xây dựng các chức năng của bài toán...............................................38
3.3.1. Tương tác dữ liệu và các phương thức chính (Hà Quốc Tuấn).. .38
3.3.2. Đăng nhập và phân chia quyền khi đăng nhập (Hà Quốc Tuấn).39
3.3.3. Hiển thị dữ liệu phía người dùng (An Thị Thanh Thảo).............42
3.3.4. Tìm kiếm (An Thị Thanh Thảo).................................................42
3.3.5. Thay đổi thơng tin – phía người dùng (An Thị Thanh Thảo)......46
3.3.6. Hiển thị dữ liệu phía người quản trị (Nguyễn Thị Yến)..............49
3.3.7. Thêm nhân sự (Nguyễn Thị Yến)...............................................50
3.3.8. Thay đổi thơng tin phía người quản trị (Nguyễn Thị Yến).........53
3.3.9. Xóa cán bộ (Hà Quốc Tuấn).......................................................56
3.3.10. Sắp xếp cán bộ (Hà Quốc Tuấn)...............................................59
CHƯƠNG 4. Kết quả đạt được.....................................................................62
LỜI NÓI ĐẦU
Dựa trên thực tế của xã hội, các cơng ty, tổ chức khi mở rộng phát triển
vì vậy số lượng nhân viên, cán bộ trong tổ chức từ đó mà tăng lên, địi hỏi
việc quản lý hồ sơ cần nhanh gọn, trực quan đáp ứng đủ về số lượng và chất
lượng. Việc lưu trữ thông tin thủ công trên hồ sơ giấy tờ với số lượng lớn trở
lên khó khăn.
Hệ thống quản lý cán bộ là hệ thống giúp cho nhóm, cơng ty dễ dàng
trong việc quản lý hồ sơ cán bộ, giảm thiểu công việc liên quan đến giấy tờ,
đẩy nhanh tiến độ cơng việc. Chương trình là công cụ hữu dụng giúp cho
người quản lý cũng như nhân viên có thể quản lý, quan sát rõ thông tin. Giao
diện đơn giản, dễ sử dụng nhưng vẫn đầy đủ chức năng cho người dung.
Nhóm sinh viên thực hiện.
DANH MỤC HÌNH ẢNH
Hình 3-1: Giao diện chính phía người quản trị............................................16
Hình 3-2: Menu phía người quản trị............................................................19
Hình 3-3: Menu quản lý nhân sự phía người quản trị..................................19
Hình 3-4: Menu Help phía người quản trị...................................................20
Hình 3-5: Giao diện thêm nhân sự...............................................................22
Hình 3-6: Giao diện thay đổi thơng tin phía người quản trị.........................24
Hình 3-7: Giao diện menu chính của hệ thống quản lý nhân sự (user)........28
Hình 3-8: Giao diện "Menu" trên thanh cơng cụ.........................................31
Hình 3-9: Message của từng item trong menu.............................................31
Hình 3-10: Dialog đăng xuất.......................................................................31
Hình 3-11: Dialog xác nhận thốt chương trình...........................................32
Hình 3-12: Dialog “Help” - "Hướng dẫn sử dụng phím tắt"........................32
Hình 3-13: Tìm kiếm...................................................................................33
Hình 3-14: Giao diện thay đổi thơng tin phía người dùng...........................34
Hình 3-15: Tạo database và bảng lưu trữ dữ liệu.........................................37
Hình 3-16: Bảng dữ liệu ban đầu.................................................................38
Hình 3-17: Kết nối database với JDBC.......................................................38
Hình 3-18: Ghi tệp tài khoản.......................................................................39
Hình 3-19: Giao diện đăng nhập..................................................................40
Hình 3-20: Hàm isAdmin()..........................................................................41
Hình 3-21: Hàm isUser().............................................................................42
Hình 3-22: Hàm showAllList()....................................................................43
Hình 3-23: Hàm search().............................................................................44
Hình 3-24: Hàm searchNhanVien().............................................................45
Hình 3-25: Hàm searchCongNhan()............................................................46
Hình 3-26: Hàm updateCanBo()..................................................................48
Hình 3-27: Xử lý sự kiện xóa ở giao diện chính..........................................59
Hình 3-28: Hàm sắp xếp theo năm sinh.......................................................61
Hình 3-29: Hàm sắp xếp theo họ tên...........................................................62
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1. Yêu cầu bài tốn
Bài tốn quản lý nhân sự gồm có cơng nhân, kỹ sư và nhân viên. Mỗi
cán bộ cần quản lý lý các thuộc tính: Họ tên, năm sinh, giới tính, địa chỉ.
- Các công nhân cần quản lý: Bậc (công nhân bậc 3/7, bậc 4/7 ...)
- Các kỹ sư cần quản lý: Ngành đào tạo
- Các nhân viên phục vụ cần quản lý thông tin: công việc
Đối tượng sử dụng: Người quản lý nhân sự, nhân sự.
1.2. Yêu cầu chức năng và yêu cầu phi chức năng
Yêu cầu chức năng:
- Đăng nhập
- Thêm cán bộ mới phía quản trị.
- Thay đổi thơng tin cán bộ phía người dung và phía người quản
-
trị.
Xóa cán bộ phía quản trị.
Tìm kiếm cán bộ
Xem thông tin chi tiết của cán bộ
Sắp xếp danh sách cán bộ theo năm và theo tuổi.
Hiển thị danh sách cán bộ đang quản lý phía người dùng và phía
người quản trị.
- Chương trình có hai chế độ quản lý: người quản trị và người
dùng
Yêu cầu phi chức năng:
- Phần mềm dễ sử dụng với người mới tiếp cận, có ít kinh nghiệm
về công nghệ thông tin.
- Giao diện dễ hiểu, rõ ràng, bố cục rõ ràng với khả năng truy cập
nhanh.
- Có hệ thống hướng dẫn phím tắt khi sử dụng.
- Giao diện đầy đủ các hộp thoại theo yêu cầu, phím tắt, phím tăng
tốc.
- Tệp chứa tài khoản, sử dụng cơ sở dữ liệu MySQL với JDBC
chứa dữ liệu
1.3. Phân công nhiệm vụ
STT Người thực hiện
1
An Thị Thanh Thảo
2
3
Nhiệm vụ, nội dung công việc
Thiểt kế giao diện của
người dùng, sử dụng Swing.
Tìm kiếm thơng tin cán bộ.
Thay đổi thơng tin cán bộ
(phía người dung - user).
Hiển thị danh sách cán bộ
phía người dùng.
Hà Quốc Tuấn
Thiết kế cơ sở dữ liệu
MySQL với JDBC, phân chia chế
độ quản trị và người dùng.
Xử lý kết nối database lấy
dữ liệu ở tầng DAO.
Xóa cán bộ phía quản trị.
Sắp xếp cán bộ theo năm
sinh và họ tên.
Nguyễn Thị Yến
Thiết kế giao diện của
người quản trị, sử dụng Swing
Thêm các bộ mới phía quản
trị.
Thay đổi thơng tin cán bộ
phía quản trị.
Hiển thị danh sách cán bộ
phía quản trị.
Bảng 1-1 Bảng phân công nhiệm vụ
Các công việc cần được thực hiện có trình tự và móc nối với nhau. Cần
xây dựng database song song với việc xây dựng giao diện để tối ưu thời gian
làm dự án.
Cần xây dựng phương thức kết nối database sớm để kịp thời xây dựng
các phương thức khác đáp ứng nhu cầu bài toán.
CHƯƠNG 2. MƠ TẢ VÀ PHÂN TÍCH CHƯƠNG TRÌNH
2.1. Use case Đăng nhập
2.1.1. Mô tả use case
Tên use case
Đăng Nhập.
Mô tả chi tiết use case:
Use case này cho phép người dùng đăng nhập vào hệ thống.
Luồng sự kiện:
o Luồng cơ bản:
1. Use case bắt đầu khi người dùng chạy chương trình. Hệ
thống hiển thị màn hình đăng nhập.
2. Người dùng nhập tên đăng nhập, mật khẩu và kích nút
“Đăng nhập”. Hệ thống kiểm tra thơng tin đăng nhập, nếu
hợp lệ cho phép người dùng truy cập vào hệ thống.
Use case kết thúc.
o Luồng rẽ nhánh:
1. Tại bước 2 luồng cơ bản, nếu người dùng nhập thông tin
không hợp lệ. Hệ thống hiển thị thông báo yêu cầu người
dùng nhập lại.
2. Tại bất kì thời điểm nào trong q trình thực hiện use case
nếu khơng kết nối với cơ sở dữ liệu thì hệ thống sẽ hiển thị
một thông báo lỗi và use kết thúc.
Các yêu cầu đặc biệt:
Khơng có.
Tiền điều kiện:
Khơng có.
Hậu điều kiện:
Khơng có.
Điểm mở rộng:
Khơng có.
2.1.2. Phân tích use case
Biểu đồ trình tự
2.2. Use case quản lý nhân sự phía người quản trị
2.2.1. Mơ tả use case
Use case này cho phép người quản trị quản lý nhân viên trong hệ
thống quản lý nhân sự
Luồng sự kiện
Luồng cơ bản :
(1) Use case này bắt đầu khi người quản trị kích vào mục
“Quản lý nhân sự” trên thanh menu. Hệ thống sẽ lấy thông
tin các nhân sự bao gồm: IDCanbo, họ tên, năm sinh, giới
tính, địa chỉ, chức vụ, mơ tả, username, password,isadmin
từ bảng CanBo và hiển thị lên màn hình
(2) Thêm nhân sự
Người quản trị nhập thông tin cho nhân sự mới và kích
nút “Thêm mới” .Hệ thống sẽ thêm một bản ghi mới vào bảng
Canbo sau đó lấy thơng tin về các nhân sự bao gồm
:IDCanbo,họ tên,năm sinh, giới tính, địa chỉ, chức vụ, mơ tả,
username, password, isadmin từ bảng CanBo và hiển thị ra
màn hình
(3) Thay đổi thơng tin
Người quản trị kích vào một dịng thơng tin của bất kì
một nhân sự nào trong danh sách các nhân sự và chọn thay
đổi thông tin hoặc chọn thay đổi thông tin trên thanh menu.
Hệ thống lấy thông tin nhân sự bao gồm: ID,username, họ
tên, năm sinh, giới tính, địa chỉ, chức vụ cũ của nhân sự được
chọn từ bảng cán bộ và hiển thị lên màn hình trong hộp
Textbox
Người quản trị sửa thơng tin cần sửa sau đó kich vào
nút “Cập nhật”. Hệ thống cập nhật thông tin nhân sự vào bảng
CanBo sau đó lấy thơng tin về các cán bộ và hiển thị lên màn
hình
(4) Xố nhân viên
Người quản trị kích vào một dịng nhân sự trong danh
sách nhân sự đã hiển thị và click “xoá nhân viên”
Người quản trị kích nút “Xố” ,hệ thống hiển thị thơng
báo xác nhận có muốn xố hay khơng.Chọn “ Yes” để xoá. Hệ
thống xoá nhân sự đã được chọn ở bảng Canbo sau đó lấy
thơng tin các nhân sự và hiển thị lên màn hình
(5) Use case kết thúc
Luồng rẽ nhánh:
1) Tại bất kỳ thời điểm nào trong quá trình thực hiện use case
nếu không kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển
thị một thơng báo lỗi và use case kết thúc.
2) Tại bước 1 trong luồng cơ bản nếu khơng tìm thấy bản ghi
nào trong bảng CanBo hệ thống sẽ hiển thị thơng báo “Khơng
có bản ghi nào!” và use case kết thúc
3) Tại bước 2a và 3b trong luồng cơ bản khi người quản trị nhập
thông tin nhân sự không hợp lệ, hệ thống sẽ hiển thị một
thông báo lỗi yêu cầu nhập lại. Người quản trị có thể chọn
“Yes” để tiếp tục hoặc kích vào nút “No” để kết thúc.
4) Tại bước 4b trong luồng cơ bản nếu khơng thể xóa được sinh
viên hệ thống sẽ hiển thị một thông báo lỗi và use case kết
thúc.
Các yêu cầu đặc biệt:
Cần kiểm soát quyền thực hiện use case này để đảm bảo
tính an tồn và bảo mật
Tiền điều kiện:
Người quản trị cần đăng nhập với quyền quản trị trước khi
thực hiện use case.
Hậu điều kiện:
Sau khi use case kết thúc thành cơng thì các thông tin về
nhân sự được cập nhập vào bảng CanBo
Điểm mở rộng: Khơng có
2.2.2. Phân tích use case
Biểu đồ lớp phân tích tổng quan
Admin
Csdl
(from Use Case Vi ew)
(from Use Case View)
1 ICsdl
1
QuanlynhansuUI
*
1
QuanlynhansuController
1
*
CanBo
Biểu đồ trình tự
Biểu đồ VOPC
<<entity>>
CanBo
IDCanBo
HoTen
NamSinh
GioiTinh
DiaChi
ChucVu
MoTA
Username
Password
isAdmin
<<boundary>>
ICsdl
<<boundary>>
QuanlynhansuUI
kich nut "Quan ly nhan su"()
kich nut"Them nhan su"()
hien thi man hình nhap thong tin nhan su()
kich nut"Them moi"()
hien thi danh sach nhan su()
kich nut"Thay doi thong tin "()
hien thi man hinh cap nhap thong tin() 1
kich nut"cap nhap"()
kich nut "xoa nhan su"()
hien thi man hinh xac nhan xoa()
kich nut"xoa"()
cap nhap bang CanBo()
1
*
<<control>>
QuanlynhansuController
1
1
Sinh ra IDCanBo()
Tao can bo moi()
lay thong tin cua nhan su duoc chon()
sua thong tin nhan su()
xoa nhan su duoc chon()
*
getIDCanBo()
setIDCanBo()
getHoTen()
setHoTen()
getNamSinh()
setNamSinh()
getGioiTinh()
setGioiTinh()
getDiaChi()
setDiaChi()
getChucVu()
setChucVu()
getMoTa()
setMoTA()
getUsername()
setUsername()
getPassword()
setPassword()
getisAdmin()
setisAdmin()
getCanBo()
createCanBo()
getCanBoByID()
setCanBoByID()
deleteCanBoByID()
2.3. Use case tìm kiếm
2.3.1. Mơ tả use case
Use case này cho phép khách hàng nhập từ khóa để tìm kiếm
hàng mong muốn.
Luồng sự kiện:
Luồng cơ bản:
1) Use case này bắt đầu khi khách hàng kích vào biểu tượng kính
lúp trên màn hình trang chủ. Hệ thống hiển thị một textbox cho
phép khách hàng nhập ký tự vào.
2) Khách hàng nhập tên sản phẩm vào textbox hộp thoại tìm kiếm
sau đó kích vào nút “Search”. Hệ thống sẽ lấy ảnh và tên sản
phẩm từ bảng SANPHAM dựa theo tên sản phẩm nhập vào và
hiển thị lên màn hình.
3) Use case kết thúc.
Luồng rẽ nhánh:
1) Tại bất kỳ thời điểm nào trong quá trình thực hiện use case, nếu
khơng kết nối được với cơ sở dữ liệu thì hệ thống sẽ hiển thị một
thông báo lỗi và use case kết thúc.
2) Tại bước 2 trong luồng cơ bản, nếu hệ thống khơng tìm thấy sản
phẩm nào theo tên khách hàng nhập vào thì hệ thống sẽ hiển thị
một thơng báo “Khơng tìm thấy sản phẩm nào” và use case kết
thúc.
Các yêu cầu đặc biệt:
Khơng có.
Tiền điều kiện:
Khơng có.
Hậu điều kiện:
Khơng có.
Điểm mở rộng:
Khơng có.
2.3.2. Phân tích use case
2.3.3.
CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH
3.1. Xây dựng giao diện với Java Swing
3.1.1. Giao diện phía người quản trị ()
Hình 3-1: Giao diện chính phía người quản trị
Phần title “DANH SÁCH NHÂN SỰ - ADMIN: Hà Quốc Tuấn”,
“Hà Quốc Tuấn“ là 1 label được setText là họ tên của tài khoản
đăng nhập của admin.
Để làm được điều này đầu tiên ta phải tạo 1 biến USERNAME
và gán giá trị cho nó., txtusername là tên đăng nhập
Tạo hàm getUserLogin, lấy thơng tin tài khoản đăng nhập
Tại class MainMenuView_Admin, khai báo biến static Admin
gán giá trị cho nó là kết quả trả về của hàm getUserLogin()
Đoạn chương trình thể hiện chức năng tạo phím tắt và hiển thị
message khi di chuột vào menu.
Sử dụng phương thức setMnemonic() để phím tắt cho menu, sử
dụng Alt + ký tự gạch chân để mở. Tham số truyền vào trong phương
thức thức này là KeyEvent.VK_” ký tự muốn đánh dấu”
Sử dụng phương thức setToolTiptext() và truyền vào 1 chuỗi cần
hiển thị để hiển thị message khi di chuột vào menu.
Chương trình set title, tạo nội dung cho bảng
-
“Model” hiển thị danh sách kỹ sư
“model2” hiển thị danh sách công nhân
“model3” hiển thị danh sách nhân viên phục vụ”
Sử dụng phương thức setColumnIdentifiers(new Object[] {})
để set tiêu đề cho các trường thông tin của bảng
3.1.1.1. Giao diện menu
Thanh tab menu gồm 3 menu là: “Menu”, “Quản lý nhân sự”, “Help”
“Menu” gổm 2 menuItem con là:
“Đăng xuất”: cho phép người quản trị (admin) đóng cửa sổ
menu chính, trở về màn hình login ban đầu. Có thể dùng tổ
hợp phím Alt + n để thực hiện chức năng này
“Thoát”: cho phép người quản trị đóng tồn bộ các cửa sổ
giao diện. Có thể dùng tổ hợp phím Alt + T để thốt chương
trình
Hình 3-2: Menu phía người quản trị
“Quản lý nhân sự” gồm 3 menuItem con là
“Thêm nhân sự” : cho phép người quản trị thêm mới nhân sự.
“Thay đổi thông tin”: cho phép người quản trị thay đổi thông
tin của nhân sự.
“ Xoá nhân sự": cho phép người quản trị nhập ID của nhân sự
muốn xoá và thực hiện xoá nhân sự đó.
Hình 3-3: Menu quản lý nhân sự phía người quản trị
“ Help” gồm menuItem con là “Hướng dẫn sử dụng phím tắt”.
Có thể dùng tổ hợp phím Alt+H để mở “ Help” và “Alt+G” để mở
MessageDialog hướng dẫn sử dụng phím tắt
Hình 3-4: Menu Help phía người quản trị
Khi người quản trị di chuột vào 1 menu trên thanh tab menu thì
sẽ hiển thị message ở ngay dưới
Khi người quản trị chọn chức năng “Đăng xuất” hệ thống sẽ hiển
thị thơng báo xác nhận, nếu chọn “Yes” thì đóng cửa sổ hiện tại và trở
về màn hình login
Khi người quản trị chọn chức năng “Thoát,hệ thống sẽ hiển thị
thơng báo xác nhận ,nếu chọn “ Yes” thì đóng tồn bộ chương trình
Các chức năng chính có trong giao diện
-
Chức năng thêm nhân viên
Chức năng Xoá nhân viên
Chức năng Thay đổi thơng tin
Chức năng tìm kiếm
Chức năng sắp xếp danh sách nhân viên theo năm sinh hoặc
theo họ tên
3 bảng chứa thông tin nhân sự gồm:
- Danh sách kỹ sư
- Danh sách công nhân
- Danh sách nhân viên phục vụ
Mỗi bảng gồm các trường: STT, Họ tên, Năm sinh, Giới tính, Địa
chỉ, Chức vụ, Mơ tả
3.1.1.2. Giao diện thêm nhân sự
Hình 3-5: Giao diện thêm nhân sự
Gồm:
- Label :UserName, Password, Họ tên, Năm sinh, Giới tính, Địa
chỉ, Chức vụ, Bậc(*Công nhân), Nhành đào tạo(* Kỹ sư), Công
việc (*Nhân viên phục vụ), Cấp quyền admin.
- Các ô texbox để nhập thông tin : UserName, Password,Họ
tên,Địa chỉ ,Bậc,Nhành đào tạo, Công việc được tạo bởi
jTextField.
- 1 ComboBox để chọn năm sinh được tạo bởi jComboBox.
- Các ơ RadioButton để chọn giới tính và chức vụ được tạo bởi
jRadioButton.
- Ô checkbox để chọn quyền admin được tạo bởi jCheckBox.
- Button “Thốt” khi kích nút sẽ trở về màn hình chính.
- Button “Thêm mới” sau khi “click”,các dữ liệu được nhập ở
bảng này sẽ đươc thêm vào bảng dữ liệu và hiển thị thông
báo”Thêm mới thành công” và hiển thị thơng báo “Bạn có muốn
tiếp tục” ,chọn “Yes” để tiếp tục thêm, “No” để trở về màn hình
chính.
3.1.1.3. Giao diện thay đổi thơng tin phía người quản trị
Hình 3-6: Giao diện thay đổi thơng tin phía người quản trị
Gồm:
- JtxtID : được set giá trị sẵn,giá trị truyền vào đó là ID người
dùng nhập ban đầu khi đăng nhập
- Label :UserName, Họ tên, Năm sinh, Giới tính, Địa chỉ, Chức
vụ, Bậc(*Công nhân), Nhành đào tạo(* Kỹ sư), Công việc
(*Nhân viên phục vụ)
- Các ô texbox để nhập các thông tin cần sửa như : UserName,
Họ tên,Địa chỉ ,Bậc,Nhành đào tạo, Công việc được tạo bởi
jTextField
- 1 ComboBox để chọn năm sinh được tạo bởi jComboBox
- Các ô RadioButton để chọn giới tính và chức vụ được tạo bởi
jRadioButton
- Button “Thốt” khi kích nút sẽ trở về màn hình chính
- Button “Cập nhập”
Các sự kiện
Khi click “ Cập nhật”
- Nếu nhâp đủ thơng tin thì hiển thị Dialog
- Nếu chọn “ Yes” thì thơng báo,ấn “Ok” để trở về giao diện
chính