GIỚI THIỆU DỰ ÁN
MỤC ĐÍCH LẬP TRÌNH ỨNG DỤNG
Để đáp ứng nhu cầu quản lý kho nông sản hiệu quả, cần giải quyết các khó khăn liên quan đến việc lưu trữ thông tin về khách hàng, sản phẩm, nhân viên, nhà cung cấp, cũng như quản lý quy trình nhập, xuất hàng hóa, doanh thu và các chương trình ưu đãi, giảm giá.
Xây dụng phần mềm đáp ứng các khó khăn quản lý trên
Yêu cầu chức năng nghiệp vụ
Quản lý nhân viên và người mua là rất quan trọng trong việc điều phối các nông sản, đồng thời cần quản lý hiệu quả các phiếu nhập và phiếu xuất Ngoài ra, việc quản lý nhà cung cấp cũng đóng vai trò then chốt trong quá trình này Cuối cùng, thống kê doanh thu và theo dõi sản phẩm giảm giá giúp tối ưu hóa hoạt động kinh doanh.
Yêu cầu về bảo mật
Tất cả thành viên cần đăng nhập để sử dụng phần mềm Chủ Kho Nông Sản, cho phép thực hiện đầy đủ các chức năng Nhân viên không có quyền xóa dữ liệu trong bảng nhân viên và không được phép xem thông tin doanh thu.
Ứng dụng cần phải được phát triển với công nghệ Swing và JDBC, đảm bảo khả năng hoạt động trên tất cả các hệ điều hành, yêu cầu môi trường JDK tối thiểu phiên bản 1.8.
Hệ quản trị CSDL SQL Server 2008 trở lên.
Dự án có thể thực hiện được.
PHÂN TÍCH YÊU CẦU CUNG ỨNG
ĐẶC TẢ YÊU CẦU HỆ THỐNG (SRS)
Chức năng quản lý nhân viên cho phép quản lý thông tin nhân viên hiệu quả, bao gồm việc liệt kê danh sách nhân viên, xem chi tiết thông tin từng nhân viên, thêm nhân viên mới, cập nhật thông tin hiện tại và xóa nhân viên không còn làm việc.
Dữ liệu nhân viên bao gồm mã nhân viên, họ và tên, mật khẩu đăng nhập, cùng với vai trò của từng nhân viên, phân chia thành trưởng phòng và nhân viên bình thường.
Chức năng này có thể được sử dụng bởi tất cả nhân viên sau khi đăng nhập, tuy nhiên, quyền xóa chỉ dành riêng cho trưởng phòng.
Chức năng quản lý chuyên đề cho phép người dùng quản lý các chuyên đề một cách hiệu quả Chức năng này bao gồm việc liệt kê danh sách chuyên đề, xem chi tiết thông tin của từng chuyên đề, thêm mới chuyên đề, cập nhật thông tin hiện có và xóa những chuyên đề không còn tồn tại.
Dữ liệu liên quan: Thông tin của mỗi chuyên đề gồm: mã chuyên đề, tên chuyên đề, học phí, thời lượng (tính theo giờ), hình logo, mô tả.
Sau khi đăng nhập, tất cả nhân viên đều có quyền sử dụng hệ thống, ngoại trừ chức năng xóa, chỉ có trưởng phòng mới được phép thực hiện.
Chức năng quản lý người học cho phép quản lý thông tin chi tiết của học viên một cách hiệu quả Chức năng này bao gồm việc liệt kê danh sách người học, xem thông tin cụ thể của từng người, thêm mới, cập nhật hoặc xóa thông tin của người học đã tồn tại, cũng như điều hướng giữa các học viên.
Dữ liệu liên quan: Thông tin của mỗi người học gồm: mã người học, họ và tên, ngày sinh, giới tính, số điện thoại, email, ghi chú.
Chức năng này có thể được sử dụng bởi tất cả nhân viên sau khi đăng nhập, tuy nhiên quyền xóa chỉ được cấp cho trưởng phòng.
Chức năng quản lý khóa học cho phép quản lý thông tin chi tiết về các khóa học, bao gồm việc liệt kê danh sách khóa học, xem thông tin cụ thể của từng khóa học, thêm mới, cập nhật hoặc xóa các khóa học đã tồn tại, và điều hướng giữa các khóa học.
Dữ liệu liên quan: Thông tin của mỗi khóa học gồm: mã khóa học, mã chuyên đề, học phí, thời lượng, ngày khai giảng, ghi chú.
Chức năng này có thể được sử dụng bởi tất cả nhân viên sau khi đăng nhập, tuy nhiên, quyền xóa chỉ dành riêng cho trưởng phòng.
Chức năng quản lý học viên cho phép quản lý thông tin của học viên một cách hiệu quả Chức năng này bao gồm việc liệt kê danh sách học viên trong khóa học, xem chi tiết thông tin của từng học viên, thêm học viên mới vào khóa học, cập nhật thông tin hiện có và xóa học viên không còn tham gia.
Dữ liệu liên quan: Thông tin của mỗi học viên gồm: mã học viên (số bao danh), mã khóa học, mã người học, điểm trung binh.
Chức năng này có thể được sử dụng bởi tất cả nhân viên sau khi đăng nhập, tuy nhiên, quyền xóa chỉ dành riêng cho trưởng phòng.
2.6 QUẢN LÝ TỔNG HỢP - THỐNG KÊ
Chức năng quản lý thống kê giúp quản lý thông tin thống kê một cách hiệu quả, bao gồm việc thống kê số lượng học viên theo năm, bảng điểm của từng học viên theo khóa học, tổng hợp điểm theo chuyên đề, và thống kê doanh thu theo từng chuyên đề hàng năm.
Dữ liệu liên quan: Thông tin là tập hợp các dữ liệu của các chức năng trên.
Chức năng này có thể được sử dụng bởi tất cả nhân viên sau khi đăng nhập, tuy nhiên, chỉ trưởng phòng mới có quyền xem doanh thu.
Chức năng đăng nhập cho phép trưởng phòng và nhân viên truy cập vào hệ thống, đồng thời yêu cầu phân loại người dùng khi thực hiện đăng nhập.
Dữ liệu liên quan: Thông tin bao gồm: tên đăng nhập và mật khẩu của người dùng.
Đối tượng sử dụng: Trưởng phòng và nhân viên đều phải đăng nhập để sử dụng hệ thống.
Chức năng đổi mật khẩu cho phép trưởng phòng hoặc nhân viên thay đổi mật khẩu tài khoản của mình Yêu cầu chính của chức năng này là thực hiện việc thay đổi mật khẩu để đảm bảo an toàn cho tài khoản.
Dữ liệu liên quan: Thông tin bao gồm: tên đăng nhập và mật khẩu của người dùng, mật khẩu mới.
Đối tượng sử dụng: Trưởng phòng và nhân viên đều có thể sử dụng.
SƠ ĐỒ TRIỂN KHAI VÀ YÊU CẦU HỆ THỐNG
Ứng dụng phần mềm được xây dựng để phục vụ cho nhiều người dùng nhưng cơ sở dữ liệu thì lưu trữ tập trung.
Cần một máy cài SQL Server 2008+ Máy này cần hệ điều hành window xp trở lên.
Các máy nhân viên phòng đào tạo cài phần mềm edusys Các máy nhân viên cần JDK 1.8+ với hệ điều hành bất ký.
Ứng dụng phải được thực với công nghệ Swing và JDBC chạy trên mọi hệ điều hành với môi trường JDK tối thiểu 1.8.
Hệ quản trị CSDL SQL Server 2008 trở lên
THIẾT KẾ ỨNG DỤNG
MÔ HÌNH CÔNG NGHỆ ỨNG DỤNG
Cần một máy cài SQL Server 2008+ Máy này cần hệ điều hành window xp trở lên.
Các máy nhân viên phòng đào tạo cài phần mềm edusys Các máy nhân viên cần JDK 1.8+ với hệ điều hành bất ký.
THỰC THỂ
2.1 SƠ ĐỒ QUAN HỆ THỰC THỂ (ERD)
Yêu cầu ràng buộc quan hệ:
Tất cả các relationship đều là CASCADE (cập nhật dây chuyền)
Tất cả các relationship đều là NO ACTION ngoại trừ KhoaHoc-HocVien là CASCADE
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaNV String PK, NOT NULL Mã nhân viên
HoTen String NOT NULL Họ và tên nhân viên
VaiTro Boolean DEFAULT 0 Vai trò gồm trưởng phòng và nhân viên bình thường
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaCD String PK, NOT NULL Mã chuyên đề
TenCD String NOT NULL Tên chuyên đề
HocPhi Float NOT NULL Học phí
ThoiLuong Int NOT NULL Thời lượng
Hinh String NOT NULL Hình ảnh
MoTa String NOT NULL Mô tả
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaNH String PK, NOT NULL Mã người học
HoTen String NOT NULL Họ và tên
NgaySinh Date NOT NULL Ngày sinh
DienThoai String NOT NULL Điện thoại
Email String NOT NULL Email
GhiChu String NULL Ghi chú
MaNV String FK, NOT NULL Mã nhân viên
NgayDk Date Default getDate() Ngày đăng ký của người học
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaKH Int PK, tự tăng Mã khóa học
MaCD String FK, NOT NULL Mã chuyên đề
HocPhi Float NOT NULL Học phí
ThoiLuong Int NOT NULL Thời lượng (giờ)
NgayKG Date NOT NULL Ngày khai giảng
GhiChu String Null Ghi chú
MaNV String FK, NOT NULL Mã nhân viên
NgayTao Date Default getDate() Ngày tạo khóa học
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaHV Int PK, tự tăng Mã học viên
MaKH Int FK, NOT NULL Mã khóa học
MaNH String FK, NOT NULL Mã người học
Diem Float Default -1 Điểm của học viên
Chú ý: (MaKH và MaNH) là duy nhất
GIAO DIỆN
3.1 SƠ ĐỒ TỔ CHỨC GIAO DIỆN
Khi khởi chạy chương trình, màn hình chào sẽ hiển thị đầu tiên, sau đó là màn hình đăng nhập Sau khi người dùng đăng nhập thành công, giao diện màn hình chính sẽ xuất hiện, cung cấp các chức năng phù hợp với tài khoản của người dùng.
3.2 GIAO DIỆN CỬA SỔ CHÍNH
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ Initialize Đưa cửa sổ ra giữa màn hình
2 [Đăng xuất] Click Đăng xuất và hiển thị DangNhapJDialog
3 [Đổi mật khẩu] Click Hiển thị DoiMatKhauJDialog
4 [Chuyên đề] Click Hiển thị ChuyenDeJDialog
5 [Kết thúc] Click Thoát chương trình
6 [Đăng nhập] Click Hiển thị màn hình đăng nhập
7 [Khóa học] Click Hiển thị quản lý khóa học
8 [Người học] Click Hiển thị quản lý người học
10 [Nhân viên] Click Hiển thị quản lý nhân viên
11 [Bảng điểm] Click Hiển thị thống kê bảng điểm
12 [Lượng người học] Click Hiển thị thống kê lượng người học
13 [Điểm chuyên đề] Click Hiển thị thống kê điểm theo chuyên đề
14 [Doanh thu] Click Hiển thị thống kê doanh thu
15 [Hướng dẫn sử dụng] Click Hiển thị trang Web hướng dẫn sử dụng
16 [Giới thiệu sản phẩm] Click Hiển thị giới thiệu sản phẩm
3.3.1 Cửa sổ quản lý nhân viên
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ cập nhật Initialize Hiển thị tất cả thông tin nhân viên lên bảng
2 [Thêm] Click Validation, Thêm vào CSDL một nhân viên mới với dữ liệu nhập từ form
3 [Sửa] Click Validation, Cập nhật thông tin nhân viên đang xem trên form vào CSDL
4 [Xóa] Click Xóa nhân viên có mã đang xem trên form
5 [Mới] Click Xóa trắng form
6 Bảng Click Hiển thị thông tin của nhân viên trên hàng được chọn của bảng lên form để xem
7 [||] Click Hiển thị thông tin của nhân viên của hàng cuối cùng của bảng lên form để xem
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ cập nhật Initialize Hiển thị tất cả thông tin chuyên đề lên bảng
2 [Thêm] Click Validation, Thêm vào CSDL một chuyên đề mới với dữ liệu nhập từ form
3 [Sửa] Click Validation, Cập nhật thông tin chuyên đề đang xem trên form vào CSDL
6 Bảng Click Hiển thị thông tin của chuyên đề trên hàng được chọn của bảng lên form để xem
7 [||] Click Hiển thị thông tin của chuyên đề của hàng cuối cùng của bảng lên form để xem
3.3.3 Cửa sổ quản lý người học
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ cập nhật Initialize Hiển thị tất cả thông tin người học lên bảng
2 [Thêm] Click Validation, Thêm vào CSDL một người học mới với dữ liệu nhập từ form
3 [Sửa] Click Validation, Cập nhật thông tin người học đang xem
4 [Xóa] Click Xóa người học có mã đang xem trên form
5 [Mới] Click Xóa trắng form
6 Bảng Click Hiển thị thông tin của người học trên hàng được chọn của bảng lên form để xem
7 [||] Click Hiển thị thông tin của người học của hàng cuối cùng của bảng lên form để xem
3.3.4 Cửa sổ quản lý khóa học
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ cập nhật Initialize Hiển thị tất cả thông tin khóa học lên bảng
2 [Thêm] Click Validation, Thêm vào CSDL một khóa học mới với dữ liệu nhập từ form
3 [Sửa] Click Validation, Cập nhật thông tin khóa học đang xem trên form vào CSDL
4 [Xóa] Click Xóa khóa học có mã đang xem trên form
5 [Mới] Click Xóa trắng form
6 Bảng Click Hiển thị thông tin của khóa học trên hàng được chọn của bảng lên form để xem
7 [||] Click Hiển thị thông tin của khóa học của hàng cuối cùng của bảng lên form để xem
3.3.5 Cửa sổ quản lý học viên
TT Đ IỀU KHIỂN S Ự M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ Initialize Hiển thị tất cả thông tin học viên trong khóa lên bảng
2 [Thêm] Click Validation, Thêm vào CSDL một học viên mới với dữ liệu nhập từ form
3 [Tất cả] Click Hiện thị tất cả học viên lên bảng
4 [Đã nhập điểm] Click Hiển thị tất cả học viên đã nhập điểm lên bảng
5 [Chưa nhập điểm] Click Hiểm thị tất cả học viên chưa nhập điểm lên bảng
6 [Sửa] Click Cập nhật điểm của học viên
7 [Xóa] Click Xóa học viên được chon ra khỏi khóa học
3.3.6 Cửa sổ quản lý thống kê
TT Đ IỀU KHIỂN S Ự M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ người học Initialize Hiển thị tất cả thông tin người học theo năm lên bảng
2 Cửa sổ bảng điểm Click Hiểm thị tất cả thông tin điểm của người học lên bảng
3 Cửa sổ tổng hợp Click Hiện thị tất cả thông tin điểm theo chuyên đề điểm
4 Cửa sổ doanh thu Click Hiển thị tất cả thông tin doanh thu theo chuyên đề
3.4 CÁC GIAO DIỆN HỖ TRỢ KHÁC
Mô tả hoạt động: Tự động hiển thị khi người dùng chạy ứng dụng.
TT Đ IỀU KHIỂN S Ự M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ Initialize Hiển thị Icon
2 [Đăng nhập] Click Kiểm tra dữ liệu và đăng nhập vào hệ thống
3 [Kết thúc] Click Thoát chương trình
3.4.3 Cửa sổ đổi mật khẩu
TT Đ IỀU KHIỂN S Ự KIỆN M Ô TẢ HOẠT ĐỘNG
1 Cửa sổ Initialize Hiển thị Icon
2 [Xác nhận] Click Kiểm tra dữ liệu và thay đổi mật khẩu của người dùng
3 [Thoát] Click Thoát cửa sổ
Mô tả hoạt động: Hiển thị hình ảnh và nội dung giới thiệu
Mô tả hoạt động: Hiển thị hình ảnh, nội dung hướng dẫn sử dụng hệ thống.
THỰC HIỆN DỰ ÁN
TẠO GIAO DIỆN VỚI SWING
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
1 JF RAME NAME E DU S YS JF RAME
TITLE HỆ THỐNG QUẢN LÝ
I CON I MAGE FPT - LOGO PNG
2 JM ENU B AR NAME MENU B AR
2.1 JM ENU NAME MNU H E T HONG
2.1.1 JM ENU I TEM NAME MNI D ANG N HAP
TEXT Đ ĂNG NHẬPICON KEY PNG
ACCELERATOR CTRL+L 2.1.2 JM ENU I TEM NAME mniDangXuat
2.1.3 JM ENU I TEM NAME mniDoiMatKhau
TEXT Text: Đổi mật khẩu
2.1.4 JM ENU I TEM NAME mniKetThuc
2.2 JM ENU NAME MNU Q UAN L Y
2.2.1 JM ENU I TEM NAME MNI C HUYEN D E
TEXT C HUYÊN ĐỀ ICON CHUYEN - DE PNG ACCELERATOR CTRL+F1 2.2.2 JM ENU I TEM NAME mniQLNguoiHoc
2.2.3 JM ENU I TEM NAME mniQLNhanVien
2.2.4 JM ENU I TEM NAME mniQLKhoaHoc
2.3.1 JM ENU I TEM NAME mniTKNguoiHoc
TEXT Text: Người học từng năm
2.3.2 JM ENU I TEM NAME mniTKBangDem
TEXT Text: Bảng điểm khóa…
2.3.3 JM ENU I TEM NAME mniTKKhoaHoc
TEXT Text: Điểm từng khóa
2.3.4 JM ENU I TEM NAME mniTKDoanhThu
TEXT Text: Doanh thu từng chuyên đề…
2.4.1 JM ENU I TEM NAME mniHuongDan
TEXT Text: Hướng dẫn sử dụng
2.4.2 JM ENU I TEM NAME mniGioiThieu
TEXT Text: Giới thiệu sản phẩm
Icon: Alarm.pngText:10:55 PM
1.2 CÁC CỬA SỔ QUẢN LÝ
1.2.1 Cửa sổ quản lý nhân viên
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
TITLE Title: QUẢN LÝ NHÂN VIÊN defaultCloseOperation: DISPONSE
T EXT Text: QUẢN LÝ NHÂN VIÊN QUẢN TRỊ
T AB TITLE Tab Title: DANH SÁCH
T EXT Text: Mã nhân viên
T EXT Text: Xác nhận mật khẩu
T EXT Text: Họ và tên
TEXT Text: Nhân viên buttonGroup: bgrVaiTro
1.2.2 Cửa sổ quản lý chuyên đề
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
TITLE Title: QUẢN LÝ CHUYÊN ĐỀ defaultCloseOperation: DISPONSE
T EXT Text: QUẢN LÝ CHUYÊN ĐỀ
T AB TITLE Tab Title: CẬP NHẬT
T EXT Text: Mã chuyên đề
T EXT Text: Tên chuyên đề
T EXT Text: Mô tả chuyên đề
27 JFileChooser NAME fileChooser dialogTitle: Chọn logo chuyên đề
1.2.3 Cửa sổ quản lý người học
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
TITLE Title: QUẢN LÝ NGƯỜI HỌC defaultCloseOperation: DISPONSE
T EXT Text: QUẢN LÝ NGƯỜI HỌC
T AB TITLE Tab Title: CẬP NHẬT
T AB TITLE Tab Title: DANH SÁCH
T EXT Text: Mã người học
T EXT Text: Họ và tên
Border: TitledBorder (Title: Tìm Kiếm)
1.2.4 Cửa sổ quản lý khóa học
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
TITLE Title: QUẢN LÝ KHÓA HỌC defaultCloseOperation: DISPONSE
T EXT Text: QUẢN LÝ KHÓA HỌC
T AB TITLE Tab Title: CẬP NHẬT
T AB TITLE Tab Title: DANH SÁCH
T EXT Text: Ngày khai giảng
T EXT Text: Thời lượng (giờ)
T EXT Text: Nhân viên tạo
1.2.5 Cửa sổ quản lý học viên
Đặt tên các điều khiển:
TT Điều khiển Tên Giá trị
1 JFrame Name HocVienJFrame title Title: QUẢN LÝ HỌC VIÊN KHÓA
Title Text: HỌC VIÊN KHÁC
Title HỌC VIÊN CỦA KHÓA HỌC
1.3 CÁC CỬA SỔ TỔNG HỢP THỐNG KÊ
Đặt tên các điều khiển:
TT Điều khiển Tên Giá trị
1 JFrame Name ThongKeJFrame title Title: TỔNG HỢP THỐNG KÊ defaultCloseOperation: DISPONSE
Text Text: TỔNG HỢP – THỐNG KÊ
4 JPanel Name pnlNguoiHoc title Tab Title: NGƯỜI HỌC
6 JPanel Name pnlBangDiem title Tab Title: BẢNG ĐIỂM
Layout: BorderLayout Layout.Direction: first
Editable: false Layout.Direction: center
Layout.Direction: center Model: như hình
11 JPanel Name Tab Title: TỔNG HỢP
Model: như hình Height: 25 Layout.Direction: center
13 JPanel Name pnlDoanhThu title Tab Title: DOANH THU
Layout: BorderLayout Layout.Direction: first
Editable: false Layout.Direction: center
Model: như hình Height: 25 Layout.Direction: center
1.4 CÁC GIAO DIỆN HỖ TRỢ KHÁC
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
1 JDialog N AME ChaoJDialog undecorated: true Layout: BorderLayout preferredSize: [514, 350]
Icon: logo.png Layout.Derection: center
Layout.Derection: last stringPainted: true
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
Undecorated: True preferredSize: [512, 505] alwaysOnTop: True Layout: BorderLayout
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
T ITLE title: HỆ THỐNG QUẢN LÝ ĐÀO TẠO
Layout: BorderLayout defaultCloseOperation:DO_NOTHING
TEXT Text: Tên đăng nhập
1.4.4 Cửa sổ đổi mật khẩu
Đặt tên các điều khiển:
TT Đ IỀU KHIỂN T ÊN G IÁ TRỊ
T ITLE title: HỆ THỐNG QUẢN LÝ ĐÀO TẠO
Layout: BorderLayout defaultCloseOperation:DO_NOTHING
T EXT Text: ĐỔI MẬT KHẨU
TEXT Text: Tên đăng nhập
TEXT Text: Mật khẩu mới
TEXT Text: Xác nhận mật khẩu
TẠO CSDL VỚI SQL SERVER
Ràng buộc: o ChuyenDe – KhoaHoc: 1 – N, ON UPDATE CASCADE, ON DELETE
NO ACTION o KhoaHoc – ChuyenDe: 1 – 1 o NhanVien – KhoaHoc: 1 – N, ON UPDATE CASCADE, ON DELETE
NO ACTION o KhoaHoc – NhanVien: 1 – 1 o NhanVien – NguoiHoc: 1 – N o NguoiHoc – NhanVien: 1 – 1 o NguoiHoc – KhoaHoc: N – N o NguoiHoc – HocVien: 1 – N, ON UPDATE CASCADE, ON DELETE
NO ACTION o KhoaHoc – Hoc Vien: 1 – N, ON UPDATE CASCADE, ON DELETE CASCADE
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaNV NVARCHAR(20) PK, NOT NULL Mã nhân viên
MatKhau NVARCHAR(50) NOT NULL Mật khẩu
HoTen NVARCHAR(50) NOT NULL Họ và tên nhân viên
VaiTro BIT DEFAULT 0 Vai trò 1 là trưởng phòng, 0 là nhân viên
VaiTro bit NOT NULL DEFAULT
Câu lệnh SQL cơ bản:
INSERT INTO NhanVien (MaNV, MatKhau, HoTen, VaiTro) VALUES (?, ?, ?, ?)
UPDATE NhanVien SET MatKhau=?, HoTen=?, VaiTro=? WHERE MaNV=?
DELETE FROM NhanVien WHERE MaNV=?
SELECT * FROM NhanVien WHERE MaNV=?
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaCD Nchar (5) PK, NOT NULL Mã chuyên đề
TenCD Nvarchar (50) NOT NULL Tên chuyên đề
HocPhi Float NOT NULL Học phí
ThoiLuong Int NOT NULL Thời lượng
Hinh Nvarchar (50) NOT NULL Hình ảnh
HocPhi float NOT NULL DEFAULT 0,
ThoiLuong int NOT NULL DEFAULT 30,
Hinh nvarchar(50) NOT NULL DEFAULT 'chuyen- de.png', MoTa nvarchar(255) NOT NULL,
Câu lệnh SQL cơ bản:
INSERT INTO ChuyenDe (MaCD, TenCD, HocPhi, ThoiLuong, Hinh, MoTa) VALUES (?, ?,
UPDATE ChuyenDe SET TenCD=?, HocPhi=?, ThoiLuong=?, Hinh=?, MoTa=? WHERE MaCD=?
DELETE FROM ChuyenDe WHERE MaCD=?
SELECT * FROM ChuyenDe WHERE MaCD=?
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaNH Nchar (7) PK, NOT NULL Mã người học
HoTen Nvarchar (50) NOT NULL Họ và tên
GioiTinh Bit Default 1 Giới tính
NgaySinh Date NOT NULL Ngày sinh
DienThoai Nvarchar (24) NOT NULL Điện thoại
Email Nvarchar (50) NOT NULL Email
GhiChu Nvarchar (225) NULL Ghi chú
MaNV Nvarchar (20) FK, NOT NULL Mã nhân viên
NgayDk Date Default getDate() Ngày đăng ký của người học
GioiTinh bit NOT NULL DEFAULT 0,
NgayDK date NOT NULL DEFAULT getdate(),
Câu lệnh SQL cơ bản:
INSERT INTO NguoiHoc (MaNH, HoTen, NgaySinh, GioiTinh, DienThoai, Email,
UPDATE NguoiHoc SET HoTen=?, NgaySinh=?, GioiTinh=?, DienThoai=?, Email=?,
GhiChu=?, MaNV=?, NgayDK=? WHERE MaNH=?
DELETE FROM NguoiHoc WHERE MaNH=?
SELECT * FROM NguoiHoc WHERE MaNH=?
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaKH Int PK, tự tăng Mã khóa học
MaCD Nvarchar (5) FK, NOT NULL Mã chuyên đề
HocPhi Float NOT NULL Học phí
ThoiLuong Int NOT NULL Thời lượng (giờ)
NgayKG Date NOT NULL Ngày khai giảng
GhiChu Nvarchar (255) Null Ghi chú
MaNV Nvarchar (225) FK, NOT NULL Mã nhân viên
NgayTao Date Default getDate() Ngày tạo khóa học
MaKH int IDENTITY(1,1) NOT NULL,
HocPhi float NOT NULL DEFAULT 0,
ThoiLuong int NOT NULL DEFAULT 0,
NgayTao date NOT NULL DEFAULT getdate(),
FOREIGN KEY (MaCD) REFERENCES ChuyenDe(MaCD) ON UPDATE
CASCADE, FOREIGN KEY (MaNV) REFERENCES NhanVien(MaNV) ON
Câu lệnh SQL cơ bản:
INSERT INTO KhoaHoc (MaCD, HocPhi, ThoiLuong, NgayKG, GhiChu, MaNV, NgayTao)
UPDATE KhoaHoc SET MaCD=?, HocPhi=?, ThoiLuong=?, NgayKG=?, GhiChu=?, MaNV=?,
DELETE FROM KhoaHoc WHERE MaKH=?
SELECT * FROM KhoaHoc WHERE MaKH=?
T HUỘC TÍNH K IỂU DỮ LIỆU R ÀNG BUỘC M Ô TẢ
MaHV Int PK, tự tăng Mã học viên
MaKH Int FK, NOT NULL Mã khóa học
MaNH Nchar (7) FK, NOT NULL Mã người học
Diem Float Default -1 Điểm của học viên
MaHV int IDENTITY(1,1) NOT NULL,
FOREIGN KEY (MaKH) REFERENCES KhoaHoc(MaKH) ON DELETE
CASCADE, FOREIGN KEY (MaNH) REFERENCES NguoiHoc(MaNH) ON
Câu lệnh SQL cơ bản:
INSERT INTO HocVien (MaKH, MaNH, Diem) VALUES (?, ?, ?)
UPDATE HocVien SET MaKH=?, MaNH=?, Diem=? WHERE MaHV=?
DELETE FROM HocVien WHERE MaHV=?
SELECT * FROM HocVien WHERE MaHV=?
Mã nguồn CREATE PROC sp_BangDiem(@MaKH INT)
AS BEGINSELECT nh.MaNH,nh.HoTen,hv.DiemFROM HocVien hv
ORDER BY hv.Diem DESC END
Mô tả Dùng để lấy danh sách điểm của học viên trong khóa học
Tham số @MaKH là mã khóa học cần truy vấn
Kết quả [MaNH, HoTen, Diem]
2.3.2 Thủ tục “Doanh thu theo chuyên đề”
Mã nguồn CREATE PROC sp_ThongKeDoanhThu(@Year INT)
AS BEGIN SELECT TenCD ChuyenDe, COUNT(DISTINCT kh.MaKH) SoKH, COUNT(hv.MaHV) SoHV,
SUM(kh.HocPhi) DoanhThu, MIN(kh.HocPhi) ThapNhat, MAX(kh.HocPhi) CaoNhat, AVG(kh.HocPhi) TrungBinh FROM KhoaHoc kh
JOIN HocVien hv ON kh.MaKH=hv.MaKH JOIN ChuyenDe cd ON cd.MaCD=kh.MaCD WHERE YEAR(NgayKG) = @Year
Mô tả Dùng để lấy danh sách doanh thu theo từng chuyên đề theo từng năm
Tham số @Year là năm cần truy vấn
Kết quả [ChuyenDe, SoHV, DoanhThu, ThapNhat, CaoNhat,
2.3.3 Thủ tục “Số người học từng năm”
Mã nguồn CREATE PROC sp_ThongKeNguoiHoc
AS BEGIN SELECT YEAR(NgayDK) Nam, COUNT(*) SoLuong, MIN(NgayDK) DauTien, MAX(NgayDK) CuoiCung FROM NguoiHoc
GROUP BY YEAR(NgayDK) END
Mô tả Dùng để lấy danh sách số người học theo năm
Tham số Không có tham số
Kết quả [Nam, SoLuong, DauTien, CuoiCung]
2.3.4 Thủ tục “Học viên theo chuyên đề”
The SQL query retrieves data on courses, counting the number of students enrolled, and calculating the minimum, maximum, and average scores for each course type It joins the course table with the student table and the course type table, grouping the results by the course type name The output includes the course type, total students, lowest score, highest score, and average score for each course category.
Mô tả Dùng để lấy danh sách số học viên theo chuyên đề
Tham số Không có tham số
Kết quả [ChuyenDe, SoHV, ThapNhat, CaoNhat, TrungBinh]
3.1 MÔ HÌNH TỔ CHỨC LẬP TRÌNH CSDL
UI: các thành phần giao diện
DB: cơ sở dữ liệu
Jdbc: là lớp tiện ích cung cấp các hàm tiện ích làm việc với CSDL thông qua câu lệnh sql hoặc lời gọi thủ tục lưu
Model: là các lớp mô tả dữ liệu theo cấu trúc các bảng trong CSDL
DAO: là các lớp thao tác và truy vấn dữ liệu Nó có nhiệm vụ chuyển đổi
Model sang SQL và ngược lại.
Theo mô hình này, lập trình giao diện tương tác với cơ sở dữ liệu (CSDL) thông qua các lớp model, đóng vai trò như một gói dữ liệu để giao tiếp giữa giao diện và các thành phần DAO DAO thực hiện chức năng chính của lập trình CSDL, nhận model từ giao diện, chuyển đổi thành câu lệnh SQL và sử dụng Jdbc để thực hiện các thao tác dữ liệu Ngược lại, khi truy vấn dữ liệu từ CSDL, DAO sẽ chuyển đổi dữ liệu thành model để hiển thị trên các thành phần giao diện.
Việc tách thành các phần riêng biết giúp quản lý dự án tốt hơn, dễ bảo trì nâng cấp hơn
JdbcHelper là lớp mô tả tiện ích hỗ trợ lập trình JDBC Lớp này gồm 3 phương thức được mô tả trong phần hướng dẫn sử dụng sau đây.
The method XJdbc.query(String sql, Object args) is used to query data from a database The sql parameter is a SELECT statement that includes placeholders represented by '?' The args parameter provides the values for these placeholders in the SQL query The result of this method is a ResultSet containing the queried data.
The `XJdbc.update(String sql, Object args)` method performs database operations such as INSERT, UPDATE, and DELETE The `sql` parameter contains the SQL command with placeholders represented by `?` The `args` parameter provides the values for these placeholders The method returns the number of records affected by the operation.
XJdbc.value(String sql, Object…args) là phương thức dùng để truy vấn một giá trị từ cơ sở dữ liệu Tham số sql là câu lệnh SELECT có chứa dấu hỏi chấm (?) Tham số args là các giá trị được cung cấp cho các dấu hỏi trong câu lệnh SQL Kết quả trả về là một đối tượng chứa giá trị được truy vấn.
EduSysDAO là lớp trừu tượng tổng quát, định nghĩa những hành động truy xuất cơ sở dữ liệu (CSDL) cơ bản mà bất kỳ lớp DAO cụ thể nào cũng cần có Các phương thức để thực hiện truy xuất CSDL được mô tả chi tiết trong lớp này.
T P HƯƠNG THỨC M Ô TẢ HOẠT ĐỘNG
1 insert(E) Thêm mới một bản ghi với dữ liệu là entity E
2 update(E) Cập nhật một bản ghi với dữ liệu là entity E
3 delete(K) Xóa một bản ghi với mã K
4 selectById(K): E Truy vấn một bản ghi với mã là K
5 selectAll(): List Truy vấn tất cả các bản ghi
6 selectBySql (String, Truy vấn các bản ghi tùy vào sql và args
Trong một lớp DAO cụ thể, các DAO con sẽ triển khai mã cho các phương thức truy xuất cơ bản từ CSDL, với E đại diện cho lớp Entity và K là kiểu khóa chính Đồng thời, các DAO này cũng có thể bổ sung các hoạt động truy xuất đặc thù cần thiết cho từng trường hợp cụ thể.
NhanVien Là lớp thực thể mô tả dữ liệu nhân viên
NhanVienDAO Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
E được cụ thể hóa là NhanVien
K được cụ thể hóa là String
SQL là các câu lệnh thao tác dữ liệu trên bảng NhanVien
ChuyenDe Là lớp thực thể mô tả dữ liệu chuyên đề
ChuyenDeDA Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
E được cụ thể hóa là ChuyenDe
K được cụ thể hóa là String
SQL là các câu lệnh thao tác dữ liệu trên bảng ChuyenDe
NguoiHoc Là lớp thực thể mô tả dữ liệu chuyên đề
NguoiHocDA Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
E được cụ thể hóa là NguoiHoc
K được cụ thể hóa là String
SQL là các câu lệnh thao tác dữ liệu trên bảng NguoiHoc
KhoaHoc Là lớp thực thể mô tả dữ liệu chuyên đề
KhoaHocDA Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
E được cụ thể hóa là KhoaHoc
K được cụ thể hóa là int
SQL là các câu lệnh thao tác dữ liệu trên bảng KhoaHoc
HocVien Là lớp thực thể mô tả dữ liệu chuyên đề
HocVienDA Là lớp DAO cụ thể hóa các hoạt động truy xuất CSDL với bảng
E được cụ thể hóa là HocVien
K được cụ thể hóa là int
SQL là các câu lệnh thao tác dữ liệu trên bảng HocVien
ThongKeDAO Là lớp DAO cụ thể hóa các hoạt động truy xuất các thủ tục lưu trữ ở lớp JdbcHelper
THƯ VIỆN TIỆN ÍCH
DateHelper là một lớp tiện ích trong Java, hỗ trợ lập trình viên làm việc với ngày tháng Lớp này bao gồm 6 phương thức, được trình bày chi tiết trong hướng dẫn sử dụng dưới đây.
The DateHelper.toDate(String date, String pattern) method converts a date from string format to Date format The 'date' parameter represents the date in string form, while the 'pattern' parameter is an array of date formats The result of this method is a Date object.
Hàm DateHelper.toString(Date date, String pattern) cho phép chuyển đổi ngày từ kiểu Date sang chuỗi Tham số đầu vào bao gồm date, đại diện cho ngày ở dạng Date, và pattern, là mảng định dạng ngày Kết quả trả về là một chuỗi String, giúp lấy ngày giờ hiện tại với kết quả trả về là kiểu Date.
DateHelper.addDays(Date date, int days) là một phương thức dùng để bổ sung số ngày vào một ngày cụ thể Tham số đầu vào là date, kiểu Date, và days, là số ngày muốn thêm vào Kết quả trả về sẽ là một đối tượng Date mới.
DateHelper add(int days): Date o Bổ sung ngày vào thời gian hiện tại o Tham số days: là số ngày bổ sung vào o Kết quả: Date
ShareHelper là lớp mô tả tiện ích hổ trợ lập trình về Image Lớp này gồm 2 phương thức được mô tả trong phần hướng dẫn sau đây.
ShareHelper.saveLogo(File file): boolean o Lưu ảnh vào thư mục logos o Tham số file: là file ảnh cần lưu o Kết quả: boolean
ShareHelper.readLogo(String fileName): ImageIcon o Đọc ảnh từ thư mục logos o Tham số fileName: là tên file file ảnh cần đọc o Kết quả: ImageIcon
AutherHelper là một lớp tiện ích hỗ trợ lập trình, giúp lưu trữ thông tin người dùng đăng nhập vào hệ thống Lớp này bao gồm hai phương thức, được trình bày chi tiết trong hướng dẫn bên dưới.
AutherHelper.logOut(): void o Xóa phiên đăng nhập hiện tại o Kết quả: void
AutherHelper.authenticated(): boolean o Kiểm tra có người đăng nhập hay không o Kết quả: boolean
DialogHelper là lớp mô tả tiện ích hỗ trợ lập trình thông báo Lớp này gồm 3 phương thức được mô tả trong phần hướng dẫn dưới đây.
DialogHelper.alert(Component parent, String message): void o Hiển thị thông báo Alert o Kết quả: void
DialogHelper.aconfirm(Component parent, String message): void o Hiển thị thông báo cần xác nhận o Kết quả: void
DialogHelper.prompt(Component parent, String message): void o Hiển thị thông báo lấy thông tin o Kết quả: void
LẬP TRÌNH NGHIỆP VỤ
1 init() Mở cửa sổ chào
Mở cửa sổ đăng nhập Bắt đầu hiển thị đồng hồ hệ thống
2 openDoiMatKhau() Mở cửa sổ đổi mật khẩu
3 Login() Mở cửa sổ đăng nhập
4 LogOut() Đăng xuất chương trình và mở cửa sổ đăng nhập
5 Exit() Kết thúc chương trình
6 openChuyenDe() Mở cửa sổ chuyên đề
7 openNguoiHoc() Mở cửa sổ người học
8 openHocVien() Mở cửa sổ học viên
9 openKhoaHoc() Mở cửa sổ khóa học
10 openNhanVien() Mở cửa sổ nhân viên
11 openThongKe(1) Mở cứa sổ thống kê người học từng năm
12 openThongKe(2) Mở cửa sổ thống kê bảng điểm từng khóa
13 openThongKe(3) Mở cửa sổ thống kê điểm từng khóa
14 openThongKe(4) Mở cửa sổ thống kê tdoanh thu từng chuyên đề
15 openAbout() Mở cửa sổ giới thiệu
16 openTutorial() Mở website hướng dẫn
5.2 CÁC CỬA SỔ HỔ TRỢ TỔ CHỨC
1 init() Hiển thị cửa sổ ở giữa màn hình
Tăng giá trị ProgressBar, đóng cửa sổ khi giá trị bằng max
1 init() Hiển thị cửa sổ ở giữa màn hình
2 logIn() Đăng nhập vào hệ thống
Hiện thị thông báo tương ứng
3 Exit() Kết thúc chương trình
5.2.3 Cửa sổ đổi mật khẩu
1 init() Hiển thị cửa sổ ở giữa màn hình
Hiển thị thông báo tương ứng
Hiển thị cửa sổ ở giữa màn hình Đóng cửa sổ
5.3 CÁC CỬA SỔ CHỨC NĂNG QUẢN LÝ
5.3.1 Cửa sổ quản lý nhân viên
1 init() Được gọi khi cửa sổ được khởi tạo
Dùng để khởi tạo các lớp cần thiết, loadIcon app, định cửa sổ ở giữa
2 Insert() Được gọi khi người dùng nhấn thêm nhân viên
Dụng để thêm nhân viên vào hệ thông, cập nhật bảng, xóa form
3 Update() Được gọi khi người dùng nhấn cập nhật nhân viên
Dùng đề cập nhật nhân viên, cập nhật bảng, xóa form
4 Delete() Được gọi khi người dùng nhân xóa nhân viên
Dùng đề xóa sinh viên ra khỏi hệ thống
5 getForm() Được gọi khi thực hiện các chức năng thêm, cập nhật nhân viên
Dùng để lấy thông tin nhân viên từ cửa sổ nhập
6 setForm() Được gọi khi thực hiện chức năng hiển thị nhân viên khi chọn, điều hướng Dùng để hiển thị thông tin nhân viên lên form
7 clearForm() Dược gọi sau khi thực hiện các chức năng thêm, sửa, xóa Và khi nhấn Thêm mới Dùng để xóa trắng thông tin trên form
8 Edit() Được gọi sau nhấn các nút điều hướng
Dùng để lấy mã nhân viên trên bảng và hiển thị lên form
9 fillTable() Được gọi khi cửa sổ được khởi tạo và khi cập nhật bảng
Dùng để hiển thị danh sách nhân viên lên bảng
10 updateStatus() Được gọi khi thực hiện các chức năng trên
Dùng để khóa mở khóa các button trên cửa sổ
Dùng để lấy nhân viên đầu bảng
12 Prev() Được gọi khi người dùng nhấn
Dùng để lấy nhân viên tiếp theo
14 Last() Được gọi khi người dùng nhấn >|
Dùng để lấy nhân viên cuối cùng
5.3.2 Cửa sổ quản lý chuyên đề
1 init() Được gọi khi cửa sổ khởi tạo
Dùng để khởi tạo lớp DAO, index, định chính giữa, …
2 Insert() Được gọi khi nhấn Thêm chuyên đề
Dùng để thêm chuyên đề vào hệ thống
3 Update() Được gọi khi nhấn sửa chuyên đề
Dùng để cập nhật chuyên đề đang chọn
4 Delete() Được gọi khi nhấn xóa chuyên đề
Dùng để xóa chuyên đề đang chọn
5 getForm() Được gọi khi thêm, sửa chuyên đề
Dùng để lấy chuyên đề trên form
6 setForm() Được gọi khi load bảng, hiển thị chuyên đề
Dùng để hiển thị chuyên đề lên form
7 clearForm() Được gọi khi xóa, thêm mới form
Dùng để xóa trắng form trên cửa sổ
8 Edit() Được gọi khi điều hướng chuyên đề
Dùng để lấy mã, hiển thị chuyên đề và cập nhật các button
9 fillTable() Được gọi khi cửa sổ hiển thị
Dùng để đổ dữ liệu vào bảng
Dùng để cập nhật trạng thái các button
11 First() Được gọi khi nhấn First
Dùng để chuyển đến chuyên đề đầu tiên
12 Prev() Được gọi khi nhấn Prev
Dùng để quay lại chuyên đề trước đó
13 Next() Được gọi khi nhấn Next
Dùng để chuyển đến chuyên đề tiếp theo
14 Last() Được gọi khi nhấn Last
Dùng để chuyển đến chuyên đề cuối cùng
15 selectImage() Được gọi khi người dùng nhấn label hình
Dùng đẻ chọn hình, lưu và hiển thị lên cửa sổ
5.3.3 Cửa sổ quản lý người học
1 init() Được gọi khi cửa sổ khởi tạo
Dùng để khởi tạo lớp DAO, index, định chính giữa, …
2 Insert() Được gọi khi nhấn Thêm người học
Dùng để thêm người học vào hệ thống
3 Update() Được gọi khi nhấn sửa người học
Dùng để cập nhật người học đang chọn
4 Delete() Được gọi khi nhấn xóa người học
Dùng để xóa người học đang chọn
5 getForm() Được gọi khi thêm, sửa người học
Dùng để lấy người học trên form
6 setForm() Được gọi khi load bảng, hiển thị người học
Dùng để hiển thị người học lên form
7 clearForm() Được gọi khi xóa, thêm mới form
Dùng để xóa trắng form trên cửa sổ
Dùng để lấy mã, hiển thị người học và cập nhật các button
9 fillTable() Được gọi khi cửa sổ hiển thị
Dùng để đổ dữ liệu vào bảng hoặc theo người dùng tìm kiêm
10 updateStatus() Được gọi sau khi nhấn các button
Dùng để cập nhật trạng thái các button
11 First() Được gọi khi nhấn First
Dùng để chuyển đến người học đầu tiên
12 Prev() Được gọi khi nhấn Prev
Dùng để quay lại người học trước đó
13 Next() Được gọi khi nhấn Next
Dùng để chuyển đến người học tiếp theo
14 Last() Được gọi khi nhấn Last
Dùng để chuyển đến người học cuối cùng
5.3.4 Cửa sổ quản lý khóa học
1 init() Được gọi khi cửa sổ khởi tạo
Dùng để khởi tạo lớp DAO, index, định chính giữa, …
2 Insert() Được gọi khi nhấn Thêm khóa học
Dùng để thêm khóa học vào hệ thống
3 Update() Được gọi khi nhấn sửa khóa học
Dùng để cập nhật khóa học đang chọn
4 Delete() Được gọi khi nhấn xóa khóa học
Dùng để xóa khóa học đang chọn
5 getForm() Được gọi khi thêm, sửa khóa học
Dùng để lấy khóa học trên form
6 setForm() Được gọi khi load bảng, hiển thị khóa học
Dùng để hiển thị khóa học lên form
Dùng để xóa trắng form trên cửa sổ
8 Edit() Được gọi khi điều hướng khóa học
Dùng để lấy mã, hiển thị khóa học và cập nhật các button
9 fillTable() Được gọi khi cửa sổ hiển thị
Dùng để đổ dữ liệu vào bảng
10 updateStatus() Được gọi sau khi nhấn các button
Dùng để cập nhật trạng thái các button
11 First() Được gọi khi nhấn First
Dùng để chuyển đến khóa học đầu tiên
12 Prev() Được gọi khi nhấn Prev
Dùng để quay lại khóa học trước đó
13 Next() Được gọi khi nhấn Next
Dùng để chuyển đến khóa học tiếp theo
14 Last() Được gọi khi nhấn Last
Dùng để chuyển đến khóa học cuối cùng
15 fillComboBox Được gọi khi cửa sổ khởi tạo
Dùng đề hiển thị danh sách khóa học lên combobox
16 openStudent() Được gọi khi nhấn học viên
Dùng để mở cứa sổ quản lý học viên theo mã khóa học
5.3.5 Cửa sổ quản lý học viên
1 init() Được gọi khi cửa sổ khởi tạo
Dùng để định cửa sổ chính giữa, set icon app
2 Insert() Được gọi khi nhấn thêm học viên
Dùng để thêm học viên vào khóa học
3 Update() Được gọi khi nhấn cập nhật
Dùng để cập nhật điểm, xóa học viên trong khóa học
Dùng để đổ người học vào combobox
5 fillTable() Được gọi khi mở cửa sổ, sau khi thêm, cập nhật học viên
Dùng để đổ danh sách học viên của khóa học vào bảng
1 init() Được gọi khi cửa sổ khởi tạo
Dùng để định cửa sổ chính giữa, set icon app
2 fillComboBoxCourse( Được gọi khi cửa sổ khởi tạo
) Dùng để đổ danh sách khóa học vào combobox khóa học
3 fillComboBoxyear() Được gọi khi cửa sổ khởi tạo
Dùng để đổ danh sách năm của khóa học
4 fillLearner() Được gọi khi cửa sổ khởi tạo
Dùng để đổ danh sách thống kê người học vào bảng
5 FillMark() Được gọi khi cửa sổ khởi tạo, sau khi chọn khóa học
Dùng để đổ danh sách thống kê điểm theo khóa học vào bảng
6 fillTotalMark() Được gọi khi cửa sổ khởi tạo
Dùng để đổ danh sách thống kê điểm theo chuyên đề vào bảng
7 fillMoney() Được gọi khi cửa sổ khởi tạo, sau khi chọn năm
Dùng để đổ danh sách thống kê doanh thu theo năm vào bảng
KIỂM THỬ PHẦN MỀM VÀ SỬA LỖI
Đăng nhập
T M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG F IX
2 Đăng nhập sai tên Duong123, 123 Sai tên đăng nhập OK
3 Đăng nhập sai mật khẩu DuongNH, 123 Sai mật khẩu OK
4 Đăng nhập đúng DuongNH, 123 Đóng cửa sổ
Đổi mật khẩu
T M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG F IX
1 Để trống các trường Yêu cầu nhập OK
2 Nhập sai tài khoản, mật khẩu Duong123, 123 Sai tài khoản OK
3 Nhập sai mật khẩu mới DuongNH, 123 Sai mật khẩu mới OK
4 Nhập đúng thông tin DuongNH, 123 Đóng cửa sổ OK
T M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG F IX
1 Để trống các trường Yêu cầu nhập OK
2 Nhập trùng mã nhân viên DuongNH Mã nhân viên đã tồn OK tại
3 Nhập mật khẩu ít hơn 3 ký tự Ab Mật khẩu phải từ 3 OK ký tự
4 Nhập xác nhận mật khẩu không Ab, ba Xác nhận mật khẩu OK khớp không đúng
5 Nhập họ tên chưa ký tự sô Ngô Văn 3 Họ tên không được OK chứa ký tự số
6 Nhập đúng thông tin ThaiNV, 123, Thêm thành công OK
7 Xóa với quyên Quản lý DuongNH Xóa thành công OK
8 Xóa với quyền nhân viên ToanNV Bạn không được xóa OK
9 Xóa chính bản thân DuongNH Bạn không được xóa OK chính bạn
10 Làm mới form Các form được xóa OK
11 Nhấn điều hướng |< Đưa về nhân viên đầu OK tiên
12 Nhấn điều hướng > Chuyển đến nhân OK viên tiếp theo
14 Nhấn điều hướng >| Chuyển đến nhân OK viên cuối cùng
T M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG F IX
1 Để trống các trường Yêu cầu nhập OK
2 Nhập trùng mã chuyên đề JAVA1 Mã chuyên đề đã tồn OK tại
3 Nhập tên chuyên đề chứa ký tự số Lập trình JAVA Tên chuyên đề không OK được chứa ký tự số
4 Nhập thời lượng là số âm -20 Thời lượng phải lớn OK hơn 0
5 Nhập học phí là số âm -400 Học phí phải lớn hơn OK
6 Chưa chọn hình Bạn chưa chọn hình OK
7 Nhập đúng thông tin JAVA1, Lập trình Thêm thành công OK
8 Xóa với quyền nhân viên ToanNV Bạn không được xóa OK
9 Xóa với quyền quản lý DuongNH Xóa thành công OK
10 Làm mới form Các form được xóa OK trắng
11 Nhấn điều hướng |< Đưa về chuyên đề OK đầu tiên
12 Nhấn điều hướng | Chuyển đến chuyên đề cuối cùng
T M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG F IX
1 Để trống các trường Yêu cầu nhập OK
2 Nhập trùng mã người học NH03301 Mã người học đã tồn OK tại
3 Nhập họ tên chứa ký tự số Ngô Hữu 12 Họ tên không được OK chứa ký tự số
4 Nhập ngày sinh chưa đủ 16 tuối 10/4/2020 Người học chưa đủ OK
5 Nhập số điện thoại khác 10 số 0998762 Số điện thoại không OK đúng định dạng
6 Nhập email không đúng định Jjkjkjkjkj Email không đúng OK dạng định dạng
7 Nhập đúng thông tin NH03303, Ngô Thêm thành công OK
8 Xóa với quyền nhân viên ToanNV Bạn không được xóa OK
9 Xóa với quyền quản lý DuongNH Xóa thành công OK
10 Làm mới form Các form được xóa OK trắng
11 Nhấn điều hướng |< Đưa về người học OK đầu tiên
12 Nhấn điều hướng > Chuyển người học đề OK tiếp theo
14 Nhấn điều hướng >| Chuyển đến người OK học cuối cùng
T M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG F IX
1 Để trống các trường Yêu cầu nhập OK
2 Nhập ngày khai giảng trước ngày 10/07/2020 Ngày khai giảng phải OK hiện tại sau ngày hiện tại
3 Nhập đúng thông tin 10/30/2020 Thêm thành công OK
4 Xóa với quyền nhân viên ToanNV Bạn không được xóa OK
5 Xóa với quyền quản lý DuongNH Xóa thành công OK
6 Làm mới form Các form được xóa OK trắng
7 Nhấn điều hướng |< Đưa về khóa học đầu OK tiên
8 Nhấn điều hướng > Chuyển khóa học đề OK tiếp theo
10 Nhấn điều hướng >| Chuyển đến khóa học OK cuối cùng
T M Ô TẢ TÌNH HUỐNG D Ữ LIỆU MẪU K ẾT QUẢ TRÔNG F IX
1 Nhập điểm < 0 hoặc > 10 và khác Điêm phải từ 0 đến OK
2 Nhập điểm hợp lệ 9 Cập nhật thành công
ĐÓNG GÓI VÀ TRIỂN KHAI
SẢN PHẨM PHẦN MỀM
TT Thành phần Mô tả
1 SetUp Setup.exe File cài đặt
2 EduSys.sql Cơ sở dữ liệu
3 Readme.txt Hướng dẫn cài đặt
4 Guide.docx Hướng dẫn sử dụng
HƯỚNG DẪN CÀI ĐẶT
Bước 1: Nhấn đúp vào file EduSys Setup đề bắt đầu cài đặt
Bước 2: Nhấp chọn “Browser” để chọn thư mục cài đặt (như hình đang chọn ổ đỉa D:\) Sau đó nhấn “Next”
Nhấp chọn thư mục cài đặt
Nhấn “Next” để tiếp tục
Bước 3: Chọn “Create a destop shortcut” nếu bạn muốn Nhấn “Next” để tiếp tục.
Chọn nếu muốn tạo shortcut ở màn hình chính
Nhấn “Next” để tiếp tục
Bước 4: Nhấn “Install” để cài đặt chương trình.
Nhấn “Install” để cài đặt
Chương trình đang được cài đặt
Bước 5: Chọn “Launch Education System” nếu muôn sau khi nhấn “Finish” chương trình sẽ tự khởi chạy Nhấn “Finish” kết thúc cài đặt.
Chọn nếu muốn chương trình khởi chạy sau khi cài đặt
Nhấn “Finish” để kết thúc cài đặt
Bước 6: Mở thư mục chứa chương trinh cài đặt Nhấn đúp EduSys để khởi chạy chương trình.
HƯỚNG DẪN SỬ DỤNG HỆ THỐNG
Khi khởi động chương trình, một cửa sổ đăng nhập sẽ xuất hiện, yêu cầu bạn đăng nhập để truy cập hệ thống Hệ thống cung cấp hai loại tài khoản dành cho hai đối tượng người dùng khác nhau.
Đăng nhập với quyên trưởng phòng lần đầu: o Nhập “Tên đăng nhập” là:
TeoNV o Nhập “Mật khẩu” là: 123456
Đăng nhập với quyên nhân viên lần đầu: o Nhập “Tên đăng nhập” là: NoPT o Nhập “Mật khẩu” là: 123
Sau khi đăng nhập bạn nên thay đổi mật khẩu để bảo vệ tài khoản của bạn.
Sau khi đăng nhập cửa sổ chính sẽ hiển thị, ở đây có đầy đủ các chức năng để bạn sử dụng trong hệ thống.
Ở phía trên cùng là thanh menu bao gồm: hệ thống, quản lý, thống kê, trợ giúp.
Menu hệ thống bao gồm: đăng nhập, đăng xuất, đổi mật khẩu, thoát chương trình.
Menu quản lý bao gồm: quản lý người học, quản lý chuyên đề, quản lý khóa học, quản lý nhân viên.
Menu thống kê bao gồm: thống kê lượng người học, thống kê bảng điểm theo khóa, thống kê điểm theo chuyên đề, thống kê doanh thu
Menu trợ giúp bao gồm: hướng dẫn sử dụng, giới thiệu sản phẩm.
Ở phía dưới thanh menu là thanh toolbar, ở đây có các chức năng truy cập nhanh như: đăng xuất, thoát chương trình, chuyên đề, khóa học, người học, hướng dẫn.
Ở giữa màn hình là logo hệ thống.
Ở phía dưới là thanh trạng thái, ở đây hiện thị giờ hiện tại.
Sau khi đăng nhập thành công, bạn hãy truy cập vào menu “Hệ thống” và chọn “Đổi mật khẩu” Cửa sổ đổi mật khẩu sẽ hiện ra, tại đây bạn cần nhập “Tên đăng nhập” và “Mật khẩu” của tài khoản mà bạn đang sử dụng.
Để thay đổi mật khẩu tài khoản, bạn cần nhập “Mật khẩu mới” và “Xác nhập mật khẩu” vào form Sau đó, nhấn “Đổi mật khẩu” để hệ thống thực hiện việc thay đổi mật khẩu của bạn.
Muốn thoát cửa sổ, nhấn “Thoát”.
Có 2 cách thoát chương trình: o Vào menu “Hệ thống” và chọn menu “Thoát” o Nhấn vào “Thoát” ở trên thanh toolbar.
Vào menu “Hệ thống” chọn “Đăng xuất” => Cửa sổ đăng nhập xuất hiện, bạn phải đăng nhập để tiếp tục sử dụng.
Vào menu “Quản lý” chọn “Quản lý nhân viên” => Cửa sổ quản lý nhân viên xuất hiện.
Cửa sổ này bao gồm hai tab chính: "Cập nhật" và "Danh sách" Trong tab "Cập nhật", người dùng sẽ thấy các form nhập liệu cho "Mã nhân viên", "Mật khẩu", "Xác nhận mật khẩu", "Họ tên" và "Giới tính" Phía dưới tab này có các nút chức năng như "Thêm", "Sửa", "Xóa" và "Mới" để quản lý thông tin nhân viên hiệu quả.
|”. o Tab danh sách bao gồm bảng hiển thị danh sách nhân viên có trong hệ thống.
Thêm nhân viên mới vào hệ thống: nhập thông tin vào các form => Nhấn
Cập nhật nhân viên đã tồn tại: chọn Tab “Danh sách” => Chọn một nhân viên trên bảng => Nhập thông tin cần sửa => Nhấn “Sửa”
Xóa nhân viên đã tồn tại: chọn Tab “Danh sách” => Chọn một nhân viên trên bảng => Nhấn “Xóa”
Làm mới các form: Nhấn “Mới”.
Điều hướng nhân viên: nhấn các nút điều hướng.
Vào menu “Quản lý” chọn “Quản lý chuyên đề” => Cửa sổ quản lý chuyên đề xuất hiện.
Cửa sổ này có hai tab chính: "Cập nhật" và "Danh sách" Tab "Cập nhật" chứa các thông tin quan trọng như "Hình ảnh", "Mã chuyên đề", "Tên chuyên đề", "Thời lượng", "Học phí" và "Mô tả" Dưới tab này có các nút chức năng như "Thêm", "Sửa", "Xóa" và "Mới" để người dùng dễ dàng quản lý dữ liệu.
|”. o Tab danh sách bao gồm bảng hiển thị danh sách chuyên đề có trong hệ thống.
Thêm chuyên đề mới vào hệ thống: nhập thông tin vào các form => Nhấn
Cập nhật chuyên đề đã tồn tại: chọn Tab “Danh sách” => Chọn một chuyên đề trên bảng => Nhập thông tin cần sửa => Nhấn “Sửa”
Xóa chuyên đề đã tồn tại: chọn Tab “Danh sách” => Chọn một chuyên đề trên bảng => Nhấn “Xóa”
Làm mới các form: Nhấn “Mới”.
Điều hướng chuyên đề: nhấn các nút điều hướng.
Để quản lý người học, hãy vào menu “Quản lý” và chọn “Quản lý người học” để mở cửa sổ quản lý Trong tab cập nhật, bạn sẽ thấy các thông tin cần thiết bao gồm “Mã người học”, “Họ và tên” và “Giới tính”.
“Ngày sinh”, “Điện thoại”, “Email”, “Ghi chú”. o Ở dưới tab bao gồm các button: “Thêm”, “Sửa”, “Xóa”, “Mới”, “|
|”. o Tab danh sách bao gồm: form “Tìm kiếm” người học, bảng hiển thị danh sách người học có trong hệ thống.
Thêm người học mới vào hệ thống: nhập thông tin vào các form => Nhấn
Cập nhật người học đã tồn tại: chọn Tab “Danh sách” => Chọn hoặc tìm kiếm một người học trên bảng => Nhập thông tin cần sửa => Nhấn “Sửa”
Xóa người học đã tồn tại: chọn Tab “Danh sách” => Chọn một người học trên bảng => Nhấn “Xóa”
Làm mới các form: Nhấn “Mới”.
Điều hướng người học: nhấn các nút điều hướng.
Vào menu “Quản lý” chọn “Quản lý khóa học” => Cửa sổ quản lý khóa học xuất hiện.
Cửa sổ này có hai tab chính: cập nhật và danh sách Tab cập nhật hiển thị các thông tin quan trọng như “Chuyên đề”, “Ngày khai giảng”, “Học phí”, “Thời lượng”, “Người tạo”, “Ngày tạo” và “Ghi chú” Dưới tab, có các nút chức năng như “Thêm”, “Sửa”, “Xóa” và “Mới” để người dùng dễ dàng quản lý dữ liệu.
“Học viên”, “||”. o Tab danh sách gồm bảng hiển thị danh sách khóa học có trong hệ thống.
Thêm khóa học mới vào hệ thống: nhập thông tin vào các form => Nhấn
Cập nhật khóa học đã tồn tại: chọn Tab “Danh sách” => Chọn một khóa học trên bảng => Nhập thông tin cần sửa => Nhấn “Sửa”
Xóa khóa học đã tồn tại: chọn Tab “Danh sách” => Chọn một khóa học trên bảng => Nhấn “Xóa”
Làm mới các form: Nhấn “Mới”.
Mở “Cửa sổ quản lý học viên”: Nhấn “Học viên”.
Điều hướng khóa học: nhấn các nút điều hướng.
Để thêm học viên vào khóa học, bạn vào menu “Quản lý” và chọn “Quản lý khóa học” Sau đó, cửa sổ quản lý khóa học sẽ hiện ra Tiếp theo, chọn tab danh sách và chọn khóa học mong muốn Cuối cùng, nhấn nút “Học viên” để hiển thị cửa sổ quản lý học viên.
Cửa sổ bao gồm: “Học viên khác”, “Điểm”, button “Thêm”, bảng chứa danh sách học viên có trong khóa học, radio “Tất cả”, “Đã nhập điểm”, “Chưa nhập
Thêm học viên mới vào khóa học: chọn người học ở học viên khác, nhập điểm
Cập nhật điểm cho học viên: nhập điểm thay đổi lên bảng => Nhấn “Cập nhật”
Xóa học viên trong khóa học: chọn học viên muốn xóa => Nhấn “Cập nhật”
Hiển thị tất cả học viên: nhấn “Tất cả”
Hiển thị học viên chưa nhập điểm: nhấn “Chưa nhập điểm”
Hiển thị học viên đã nhập điểm: nhấn “Đã nhập điểm”
Vào menu “Thống kê” => Chọn loại thống kê
3.12 Xem thông tin hệ thống
Vào menu “Trợ giúp” => Chọn “Giới thiệu sản phẩm”.