Phần mềm Quản lí bán băng đĩa với Java | Học phần lập trình hướng đối tượng với Java giúp sinh viên năm được phương pháp lập trình hướng đối tượng (OOP) và ngôn ngữ lập trình Java cơ bản. Bài tập lớn môn học là tổng hợp kiến thức, kỹ năng về phương pháp lập trình hướng đối tượng và ngôn ngữ lập trình Java. Nội dung bài tập lớn gồm: Phân tích bài toán, giới thiệu tông quan về phương pháp lập trình hướng đối tượng, đặc trưng của ngôn ngữ lập trình Java, cài đặt phần mềm với ngôn ngữ Java trong đó sử dụng các lớp kế thừa, lớp trừu tượng vào giao diện (interface) của lập trình hướng đối tượng. Bài tập lớn là tài liệu tham khảo hữu ích cho SV ngành CNTT.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
(bìa 1, bìa đóng giấy màu)
BÀI TẬP LỚN
HỌC PHẦN: (lập trình hướng đối tượng)
TÊN BÀI TẬP LỚN:Quản Lí Bán Băng Đĩa
Sinh viên thực hiện Khóa Lớp Mã sinh viên
Bắc Ninh, tháng… năm 20…
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
(trang phụ bìa số 2, bìa mềm)
BÀI TẬP LỚN
HỌC PHẦN: (GHI TÊN MÔN HỌC….)
Nhóm: 9 TÊN (BÀI TẬP LỚN): Quản Lí Bán Băng Đĩa
STT Sinh viên thực
Mã sinh viên
Điểm bằng
số
Điểm bằng chữ
Trang 3CHƯƠNG 1: CHƯƠNG MỞ ĐẦU
1.1 Lý do chọn đề tài
Xuất phát từ nhu cầu thực tế, Hiện nay các cửa hàng bán băng đĩa đều quản lý bằng tay từ nhập kho, cho thuê, xuất phiếu bán Nó thì rất lâu, khó khăn trong việc kiểm tra hư hỏng, mất mát Và thống kê doanh thu là một việc gần như không thể làm được khi thời gian kéo dài năm này qua năm khác và sổ sách lưu trữ thì quá nhiều
Vì vậy chúng em xây dựng nên một phần mềm quản lý cửa hàng bán băng đĩa nhằm giúp cho việc quản lý bán hàng, thống kê doanh thu trở nên dễ dàng thuận lợi hơn
1.3 Đối tượng nghiên cứu và phạm vi hệ thống
1.3.1 Đối tượng nghiên cứu:
Ngôn ngữ Java
1.3.2 Phạm vi:
Đề tài áp dụng cho các cửa hàng quản lý băng đĩa
1.4 Phương pháp nghiên cứu
Dựa trên những kiến thức thu được từ môn học Chuyên đề I - Java do TS Vũ Thanh Hiền giảng dạy
Tham khảo thêm các tài liệu trên mạng
1.5 Ý nghĩa thực tiễn của ứng dụng
Chương trình giúp việc quản lý cửa hàng băng đĩa dễ dàng hơn
Tiết kiệm thời gian cho người quản lý
Tiết kiệm được các chi phí phát sinh
Đơn giản, dễ sử dụng
Dễ quản lý các thông tin
Trang 4CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về ngôn ngữ Java
Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, Python, Perl, PHP, C#
Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lò nướng,… Mặc dù C và C++
có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU
Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém Do đó nhu cầu thực tế đòi hỏi một ngôn ngữ chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới các môi trường khác nhau “Oak” đã ra đời và vào năm 1995 được đổi tên thành Java
2.2 Một số tính chất của ngôn ngữ Java
Cú pháp Java được vay mượn nhiều từ C C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn Dùng bộ thư viện chuẩn KFC, nhiều đoạn code Java chỉ mất vài dòng trong khi C phải mất cả trang giấy
2.2.1 Đơ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ố người lập trình Do vậy Java loại bỏ các đặc trưng phức tạp của C và C++ như:
Loại bỏ thao tác con trỏ, thao tác định nghĩa chồng toán tử
Không cho phép đa kế thừa mà sử dụng các giao diện
Không sử dụng lệnh “goto” cũng như file header (.h)
Loại bỏ cấu trúc “struct” và “union”
2.2.2 Hướng đối tượng:
Java là ngôn ngữ lập trình thuần hướng đối tượng, mọi chương trình viết trên Java đều phải được xây dựng trên các đối tượng Nếu trong C/C++ ta có thể tạo ra các hàm (chương trình con không gắn với đối tượng nào) thì trong Java ta chỉ có thể tạo ra các phương thức (chương trình con gắn liền với một lớp cụ thể) Trong Java không cho phép các đối tượng có tính năng đa
kế thừa mà được thay thế bằng các giao diện (interface)
2.2.3 Độc lập phần cứng và hệ điều hành:
Đối với các ngôn ngữ lập trình truyền thống như C/C++, phương pháp biên dịch được thực hiện như sau
Trang 5Hình 1: Các chương trình biên dịch truyền thống
Với mỗi nền phần cứng khác nhau, có một trình biên dịch khác nhau để biên dịch mã nguồn chương trình cho phù hợp với nền phần cứng ấy Do vậy, khi chạy trên một nền phần cứng khác bắt buộc phải biên dịch lại mã nguồn
Đối với các chương trình viết bằng Java, trình biên dịch Javac sẽ biên dịch mã nguồn thành dạng bytecode Sau đó, khi chạy chương trình trên các nền phần cứng khác nhau, máy ảo Java dùng trình thông dịch Java để chuyển mã bytecode thành dạng chạy được trên các nền phần cứng tương ứng Do vậy, khi thay đổi nền phần cứng, không phải biên dịch lại mã nguồn Java
Hình 2: Cơ chế biên dịch chương trình của Java
2.2.4 Mạnh mẽ:
Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu
Kiểu dữ liệu phải khai báo tường minh
Java không sử dụng con trỏ và các phép toán con trỏ
Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo rằng các truy nhập đó không ra ngoài giới hạn kích thước
Trong các môi trường lập trình truyền thống, lập trình viên phải tự mình cấp phát bộ nhớ, trước khi chương trình kết thúc thì phải tự giải phóng bộ nhớ đã cấp Vấn đề có thể nảy sinh khi lập trình viên quên giải phóng bộ nhớ đã xin cấp trước đó Trong chương trình Java, lập trình viên không phải bận tâm đến việc cấp phát bộ nhớ Quá trình cấp phát, giải phóng được thực hiện tự động, nhờ dịch vụ thu nhặt những đối tượng không còn sử dụng nữa (garbage collection)
Cơ chế bẫy lỗi của Java giúp đơn giản hóa quá trình xử lý lỗi và hồi phục sau lỗi
Trang 6Java được thiết kế để hỗ trợ các ứng dụng chạy trên mạng bằng các lớp mạng (java.net)
Hơn nữa, Java hỗ trợ nhiều nền chạy khác nhau nên chúng được sử dụng rộng rãi như là công cụ phát triển trên Internet - nơi sử dụng nhiều nền khác nhau
2.2.7 Đa luồng:
Chương trình Java cung cấp giải pháp đa luồng (Multithreading) để 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 luồng Đặc tính hỗ trợ đa luồng này cho phép xây dựng các ứng dụng trên mạng chạy hiệu quả
2.2.8 Linh độ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 chứa rất nhiều thông tin thực thi nhằm kiểm soát và truy nhập đối tượng lúc chạy Điều này cho phép khả năng liên kết mã động
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Quản lý nhân viên (thêm, xóa, sửa,tìm kiếm nhân viên)
Quản lý thành viên (thêm, xóa, sửa,tìm kiếm thành viên)
Quản lý tài khoản (cấp tài khoản, reset password, xóa tài khoản)
Quản lý thể loại (thêm, xóa, sửa, tìm kiếm thể loại)
Quản lý đĩa (thêm, xóa, sửa, tìm kiếm đĩa)
Quản lý nhà cung cấp (thêm, xóa, sửa, tìm kiếm nhà cung cấp)
Quản lý nghiệp vụ (xem danh sách đĩa, cho thuê đĩa, bán đĩa, nhập đĩa, trả đĩa)
Trang 7Báo cáo thống kê (Đĩa bán, Thuê)
3.1.2 Yêu cầu phi chức năng
Chương trình chạy 24/7
Chương trình có thể vận hành tốt khi phát triển thêm cơ sở dữ liệu
Giao diện đẹp, đơn giản
Người dùng: là người trực tiếp sử dụng chương trình gồm:
Admin: là người sử dụng chương trình để quản lý nhân viên, thành viên, tài khoản, Manager: là người sử dụng chương trình để quản lý đĩa, thể loại, nhà cung cấp,
3 Đổi mật khẩu Chức năng cho phép người dùng đổi mật khẩu tài
khoản để đăng nhập vào chương trình
4 Quản lý nhân viên Chức năng cho phép Admin sử dụng để thêm, xóa,
sửa, tìm kiếm nhân viên
5 Quản lý thành viên Chức năng cho phép Admin sử dụng để thêm, xóa,
sửa, tìm kiếm thành viên
6 Quản lý tài khoản Chức năng cho phép Admin sử dụng để cấp tài khoản
mới cho nhân viên, reset password về mặc định
‘123456’ cho nhân viên bị quên password và xóa tài khoản nhân viên
7 Quản lý thể loại Chức năng cho phép Manager sử dụng để thêm, xóa,
sửa và tìm kiếm thể loại của đĩa
8 Quản lý đĩa Chức năng cho phép Manager sử dụng để thêm, xóa,
sửa và tìm kiếm đĩa
9 Quản lý nhà cung cấp Chức năng cho phép Manager sử dụng để thêm, xóa,
sửa và tìm kiếm nhà cung cấp đĩa
10 Quản lý nghiệp vụ Chức năng cho phép Manager sử dụng để xem danh
sách đĩa, cho thuê đĩa, bán đĩa và nhập đĩa vào
Trang 8Trường hợp này sẽ thực hiện khi ta muốn sử dụng chương trình
Hệ thống yêu cầu người dùng nhập thông tin “Tài khoản” và “Mật khẩu”
Người dùng bấm “Enter” hoặc nút “Đăng nhập”
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: đăng nhập vào hệ thống
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đã có tài khoản nhân viên
Điều kiện hậu quyết Đăng nhập thành công người dùng có thể sử
dụng chương trình
Trường hợp: Đăng xuất
đăng xuất để thoát khỏi chương trình
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Đăng xuất” để thoát khỏi chương trình
Điều kiện tiên quyết Người dùng đã đăng nhập vào chương trình
Trường hợp: Đổi mật khẩu
muốn đổi mật khẩu tài khoản để sử dụng chương trình
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Đổi mật khẩu”
Hệ thống yêu cầu người dùng nhập thông tin “Mật khẩu mới” và “Nhập lại mật khẩu mới”
Người dùng bấm “Enter” hoặc nút “Đổi mật khẩu”
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Trang 9Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đã đăng nhập thành công
Điều kiện hậu quyết Đổi mật khẩu thành công người dùng có thể
dùng mật khẩu mới để đăng nhập vào chương trình
Trường hợp: Quản lý nhân viên
nhân viên : thêm mới nhân viên, sửa thông tin nhân viên, xóa nhân viên và tìm kiếm nhân viên
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý nhân viên”
Hệ thống yêu cầu người dùng chọn “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “Tìm kiếm” Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “ Tìm kiếm” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý nhân viên”
Hệ thống yêu cầu người dùng chọn “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “Tìm kiếm” Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “ Tìm kiếm” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đăng nhập với tài khoản có quyền Admin
Trường hợp: Quản lý thành viên
Trang 10Mô tả Trường hợp này miêu tả cách Admin quản lý
thành viên : thêm mới thành viên, sửa thông tin thành viên, xóa thành viên và tìm kiếm thành viên
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý thành viên”
Hệ thống yêu cầu người dùng chọn “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “Tìm kiếm” Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “ Tìm kiếm” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đăng nhập với tài khoản có quyền Admin
Trường hợp: Quản lý tài khoản
tài khoản: cấp tài khoản mới cho nhân viên, reset password về mặc định ‘123456’ cho nhân viên bị quên password và xóa tài khoản nhân viên
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý tài khoản”
Hệ thống yêu cầu người dùng chọn “Thêm mới” hoặc “Reset password” hoặc “Xóa”
Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Thêm mới” hoặc “Reset password” hoặc “Xóa” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đăng nhập với tài khoản có quyền Admin
Trường hợp: Quản lý thể loại
Trang 11Mô tả Trường hợp này miêu tả cách Manager quản
lý thể loại : thêm mới thể loại, sửa thông tin thể loại, xóa thể loại và tìm kiếm thể loại
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý thể loại”
Hệ thống yêu cầu người dùng chọn “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “Tìm kiếm” Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “ Tìm kiếm” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đăng nhập với tài khoản có quyền Manager
Trường hợp: Quản lý đĩa
lý đĩa : thêm mới đĩa, sửa thông tin đĩa, xóa đĩa và tìm kiếm đĩa
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý đĩa”
Hệ thống yêu cầu người dùng chọn “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “Tìm kiếm” Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “ Tìm kiếm” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đăng nhập với tài khoản có quyền Manager
Trường hợp: Quản lý nhà cung cấp
lý nhà cung cấp : thêm mới nhà cung cấp, sửa
Trang 12thông tin nhà cung cấp, xóa nhà cung cấp và tìm kiếm nhà cung cấp
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý nhà cung cấp”
Hệ thống yêu cầu người dùng chọn “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “Tìm kiếm” Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Thêm mới” hoặc “Sửa” hoặc “Xóa” hoặc “ Tìm kiếm” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đăng nhập với tài khoản có quyền Manager
nghiệp vụ: xem danh sách đĩa, cho thuê đĩa, bán đĩa và nhập đĩa vào
Dòng sự kiện chính
Trường hợp này sẽ thực hiện khi người dùng nhấn vào “Quản lý nghiệp vụ”
Hệ thống yêu cầu người dùng chọn “Xem danh sách đĩa” hoặc “Cho Thuê” hoặc “Bán” hoặc
“Nhập đĩa”
Người dùng nhập vào những thông tin yêu cầu theo từng chức năng “Xem danh sách đĩa” hoặc
“Cho Thuê” hoặc “Bán” hoặc “Nhập đĩa” và bấm “Enter” hoặc nút tương ứng
Hệ thống kiểm tra dữ liệu vừa nhập
Hợp lệ: thông báo thành công
Không hợp lệ: yêu cầu người dùng nhập lại
Điều kiện tiên quyết Đăng nhập với tài khoản có quyền Manager
3.2.1.4 Biểu đồ trường hợp sử dụng (Use Case)
Use Case: Tổng thể
Trang 13Hình 3: Biểu đồ ca sử dụng tổng thể
Use Case: Quản lý đăng nhập
Hình 4: Biểu đồ ca sử dụng quản lý đăng nhập
Use Case: Admin sử dụng
Trang 14Hình 5: Biểu đồ ca sử dụng của Admin
Use Case: Manager sử dụng
Trang 15Hình 6: Biểu đồ ca sử dụng của Manager
3.2.2 Mô hình hóa khái niệm
3.2.2.1 Các lớp đối tượng:
Dia (Đĩa): là lớp chứa thông tin về các Đĩa
PhieuNhap (Phiếu nhập): là lớp chứa thông tin về các Phiếu nhập
CTPhieuNhap (Chi tiết phiếu nhập): là lớp chưa thông tin về các Chi tiết phiếu nhập PhieuBan (Phiếu bán): là lớp chưa thông tin về các Phiếu bán
CTPhieuBan (Chi tiết phiếu bán): là lớp chưa thông tin về các Chi tiết phiếu bán PhieuTra (Phiếu trả): là lớp chưa thông tin về các Phiếu trả
CTPhieuTra (Chi tiết phiếu trả): là lớp chưa thông tin về các Chi tiết phiếu trả PhieuThue (Phiếu thuê): là lớp chưa thông tin về các Phiếu thuê
CTPhieuThue (Chi tiết phiếu thuê): là lớp chưa thông tin về các Chi tiết phiếu thuê ThanhVien (Thành viên): là lớp chưa thông tin về các Thành viên
TaiKhoanThanhVien (Tài khoản thành viên): là lớp chưa thông tin về các Tài khoản thành viên
LoaiThanhVien (Loại thành viên): là lớp chưa thông tin về các Loại thành viên NhanVien (Nhân viên): là lớp chứa thông tin về các Nhân viên
ChucVu (Chức vụ): là lớp chưa thông tin về các Chức vụ
Trang 16TaiKhoanNhanVien (Tài khoản nhân viên): là lớp chưa thông tin về các Tài khoản nhân viên
NhaCungCap (Nhà cung cấp): là lớp chưa thông tin về các Nhà cung cấp
Trang 17Hình 8: Biểu đồ hoạt động đăng nhập
Biểu đồ hoạt động: Đăng xuất
Trang 18Hình 9: Biểu đồ hoạt động đăng xuất
Biểu đồ hoạt động: Đổi mật khẩu
Hình 10: Biểu đồ hoạt động đổi mật khẩu Biểu đồ hoạt động: Quản lý nhân viên