Ở nước ta hiện nay, việc áp dụng vi tính hóa trong quản lý tại các cơ quan, xí nghiệp, tổ chức đang rất phổ biến và trở nên cấp thiết, bởi ngành nghề nào cũng đòi hỏi con người phải xử lý khối lượng công việc khổng lồ, và những kiến thức, những suy nghĩ, những đào tạo chuyên sâu. Một vấn đề cấp thiết đặt ra trong quản lý là làm thế nào để chuẩn hóa cách xử lý dữ liệu ở trường học, chính vì thế chúng em chọn đề tài “Quản lý hệ thống nhà sách ” trong bài báo cáo bộ môn phân tích thiết kế hướng đối tượng lần này. Mặc dù đã rất cố gắng để hoàn thành công việc, nhưng do thời gian có hạn và thiếu kinh nghiệm cũng như kỹ năng chưa cao nên việc phân tích và thiết kế còn nhiều thiếu sót, kính mong quý thầy cô và các bạn góp ý, bổ sung để chúng em hoàn thiện cho bài tập tốt hơn nữa.
KHẢO SÁT, LIỆT KÊ YÊU CẦU
Bảng khảo sát mô tả yêu cầu chức năng
- Các chức năng + mô tả + trạng thái + Activity Diagram
Chức năng Mô tả Trạng thái Activity diagram
Để đăng nhập, người dùng cần sử dụng tên đăng nhập và mật khẩu Hệ thống sẽ kiểm tra thông tin và cấp quyền truy cập nếu thông tin đúng Sau đó, thông tin đăng nhập sẽ được hiển thị Hiện tại, chúng tôi đang xây dựng sơ đồ hoạt động cho quá trình đăng nhập.
Khách hàng đem sản phẩm tới quầy thanh toán, nhân viên sẽ tiếp nhận sản phẩm, tìm mã sản phẩm:
+ không thỏa mãn thì sẽ nhập mã sản phẩm bằng tay.
Để hoàn tất quy trình, nhân viên sẽ lập hóa đơn sau khi thỏa mãn yêu cầu của khách hàng Sau đó, hóa đơn sẽ được in ra và yêu cầu khách thanh toán Cuối cùng, khách hàng nhận hóa đơn và thực hiện thanh toán, hoàn tất quy trình giao dịch Hiện tại, chúng tôi đang xây dựng sơ đồ hoạt động cho khách hàng.
Quản lý tiếp nhận yêu cầu cập nhật thông tin nhân viên là một phần quan trọng trong quy trình quản lý nhân sự Hiện tại, chúng tôi đang xây dựng sơ đồ hoạt động cho quy trình này, nhằm tối ưu hóa việc lựa chọn hình thức cập nhật thông tin một cách hiệu quả.
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com) thêm, sửa, xóa; sau đó nhập vào cơ sở dữ liệu nhân viên=> lưu lại=> hoàn tất.
Kế toán tiếp nhận yêu cầu báo cáo và lựa chọn hình thức báo cáo phù hợp Tiến hành kiểm tra số lượng sách bán và sách nhập, đồng thời thống kê thu chi để tính toán doanh thu Sau khi hoàn tất tính toán, lập báo cáo và xem lại thông tin để đảm bảo tính chính xác trước khi lưu lại báo cáo Quá trình này giúp hoàn tất công việc kế toán một cách hiệu quả.
Quản lý kho thực hiện quy trình tra cứu thông tin sách tồn kho, bao gồm việc xác định số lượng và chất lượng sách Người dùng lựa chọn phương thức tìm kiếm, sau đó nhận kết quả tra cứu Nếu cần, thông tin sách có thể được sửa đổi trước khi hoàn tất quy trình Hiện tại, đang xây dựng sơ đồ hoạt động cho hệ thống quản lý 1.5.
Activity Diagrams (Các sơ đồ hoạt động)
Hình 2 1: Sơ đồ hoạt động chức năng đăng nhập
Hình1.1 S Sơ đồ hoạt động chức năng đăng nhập
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 2 2: Sơ đồ hoạt động chức năng mua hàng
Hình 2 3: Sơ đồ hoạt động chức năng quản lý nhân viên
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 2 4: Sơ đồ hoạt động chức năng lập báo cáo
Hình 2 5: Sơ đồ hoạt động chức năng kiểm tra sách trong kho
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
PHÂN TÍCH HỆ THỐNG
Phân tích yêu cầu
Hình 3.1 sơ đồ phân chia các gói
gói + yêu cầu + chức năng
Gói/yêu cầu Mô tả Chức năng
P01- Gói Đăng nhập CN01- Log in
Req01-01- DangNhap Nhập mật khẩu và tài khoản Req01-02- DangKy Tạo mật khẩu, tài khoản và thông tin người dùng Req01-02-KiemTraQuyen Hệ thống kiểm tra quyền
P02- Khách Hàng CN02- Khách Hàng
Req02-01-TraCuuTT Nhập thông tin cần tra cứu Req02-02-ThanhToan Chọn các hình thức thanh toán Req02-03-HuyMuaHang Chon Hủy mua hàng
P03-Kế Toán CN04- Kế toán
Req03-01-BaoCao Hiển thị từng doanh mục oder Req03-02-BaoCaoChiTiet Hiển thị ra từng oder
Req03-03-ThongKe Chọn thống kê hiển thị ra
Req03-04-SuaBaoCao Chọn sửa báo cáo, thay đổi thông tin báo cáo hoặc báo cáo chi tiết
Req03-05-XoaBaoCao Chọn xóa báo cáo
P04-Quản Lý CN03- Quản lý
Req04-01-TimkiemTTNV Nhập thông tin nhân viên để tìm kiếm như mã nhân viên, tên nhân viên….
Req04-02-ThemNV Nhập thông tin nhân viên cần thêm Req04-03-XoaNV Xóa nhân viên muốn xóa
Req04-04-ViewTTNV Hiển thị ra màn hình
Thay đổi các thông tin nhân viên như mã nhân viên , tên nhân viên, địa chỉ…
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
P05-Quản lí Kho CN05- Quản lý kho
Bấm vào hàng tồn sẽ hiển thị ra tất cả các sách còn tồn trong kho
Req05-02-SuaTTSachTon Nhập thông tin sách cần sửa sau đó sửa thông tin sai về sách tồn trong kho Req05-03-
Nhập mã sách, tên sách…
Hiển thị tình trạng sách
Phân tích ca sử dụng
Hình 3.2: Sơ đồ chi tiết về gói khách hàng
Hình 3.3: sơ đồ chi tiết về gói đăng nhập
Hình 3.4: Sơ đồ chi tiết về gói quản lý
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 3.5: Sơ đồ chi tiết về gói kế toán
Bảng thống kê UseCase
P02 gói khách hàng Khách Hàng 3.2
UC01-01 tra cứu thông tin sách
P01 gói đăng nhập Người dùng(nhân viên, người quản lý)
P03 gói quản lý Quản lý(người quản lý,nhân viên quản lý)
UC03-01 tìm kiếm thông tin nhân viên
UC03-04 chỉnh sửa thông tin nhân viên
UC03-05 view thông tin nhân viên
P04 gói kế toán Kế toán( nhân viên kế toán) 3.5
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
UC04-02 báo cáo chi tiết
UC04-04 thống kê doanh thu
P05 gói quản lý kho Quản lý kho(nhân viên quản lý kho)
UC05-01 kiểm tra sách tồn
UC05-02 sửa thông tin sách tồn
UC05-03 kiểm tra tình trạng sách
Các UseCase(vẽ + mô tả )
Hình 3.7: Sơ đồ usecase gói khách hàng
Tên use case Khách hàng
Tác nhân Khách hàng(người mua hàng)
Mục đích Khách hàng đến mua hàng
Mô tả Các công việc như
-Tìm kiếm thông tin mặt hàng -thanh toàn hóa đơn
- mua hang hoặc huỷ mua
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 3 8:Sơ đồ usecase gói đăng nhập
Tên use case Đăng nhập
Mục đích Xác nhận quyền có được truy cập vào hệ thống hay không
Hình 3.9: Sơ đồ usecase gói quản lý
Tên use case Quản lý nhân viên
Tác nhân Quản lý (người quản lý)
Mục đích Cập nhập thông tin của nhân viên
(thêm, sửa, xóa hay tìm kiếm) gúp công việc quản lý dễ dàng hơn
Mô tả Các công việc như
-Tìm kiếm thông tin nhân viên -Cập nhập thông tin nhân viên(thêm, sửa, xóa)
-Hiển thị danh sách nhân viên
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 3.10: Sơ đồ usecase gói kế toán
Tên use case Kế toán
Tác nhân Kế toán ( nhân viên kế toán)
Mục đích của việc thống kê các hoạt động của nhà sách, bao gồm thu chi và số lượng sách tồn kho, là một phần thiết yếu trong quản lý hiệu quả nhà sách Việc lập báo cáo giúp theo dõi tình hình kinh doanh và đưa ra các quyết định chiến lược phù hợp.
Mô tả Các công việc như
- chỉnh sử báo cáo -Thống khê doanh thu hay thu chi theo chỉ định
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 3.11: Sơ đồ usecase gói quản lý kho
Tên use case Quản lý kho
Tác nhân Quản lý kho ( nhân viên quản lý kho)
Mục đích Quản lý sách tồn đọng trong kho và
THIẾT KẾ HỆ THỐNG
Thiết kế sơ đồ lớp
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Các sơ đồ thiết kế khác
2.1 Bảng UseCase, Sequence Diagram, Communication Diagram và State
P01 gói đăng nhập Hình 5.1.2 Hình 5.2.2 Đang xây dựng UC01-01 login
P02 gói khách hàng Hình 5.1.1 Hình 5.2.1 Đang xây dựng UC02-01 tra cứu thông tin sách
P03 gói quản lý Hình 5.1.3 Hình 5.2.3 Đang xây dựng UC03-01 tìm kiếm thông tin nhân viên
UC03-04 chỉnh sửa thông tin nhân viên
UC03-05 view thông tin nhân viên
P04 gói kế toán Hình 5.1.4 Hình 5.2.4 Đang xây dựng UC04-01 báo cáo
UC04-02 báo cáo chi tiết
UC04-04 thống kê doanh thu
P05 gói quản lý kho Hình 5.1.5 Hình 5.2.5 Đang xây dựng UC05-01 kiểm tra sách tồn
UC05-02 sửa thông tin sách tồn
UC05-03 kiểm tra tình trạng sách
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 4.3: Sequence diagram chức năng mua hang thuộc gói Khách hàng
Hình 4.4: Sequence diagram chức năng đăng nhập thuộc gói đăng nhập
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 4.5: Sequence diagram chức năng quản lí nhân viên thuộc gói Quản Lý
2.2.5 Sequence Diagrams quản lý kho
Hình 4.6: Sequence diagram chức năng kiểm tra hàng tồn thuộc gói Quản lý kho
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
2.3.5 Communication Diagram quản lý kho
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Code Generation (sinh mã)
3.1 Code Generation khách hàng( customer)
#define CUSTOMER_H class customer : user { private: string customerName; string address; string email; sting creditCardInformation; string accountBalance; public: void updateProfileCustomer();
#include "customer.h" void customer::updateProfileCustomer() {
// TODO - implement customer::updateProfileCustomer throw "Not yet implemented";
3.2 Code Generation đăng nhập(user)
#ifndef USER_H string loginStatus; date registerDate; public: bool verifyLogin(); void updateProfile(); void checkOutTheRight();
#include "user.h" bool user::verifyLogin() {
// TODO - implement user::verifyLogin throw "Not yet implemented";
// TODO - implement user::updateProfile throw "Not yet implemented";
// TODO - implement user::checkOutTheRight throw "Not yet implemented";
3.3 Code Generation nhà cung cấp(provider)
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com) class provider : user { private: string providerID; string address; int phoneNumber; public: void updateProfileProvider(); void updateBookProvider(); void findBook();
#include "provider.h" void provider::updateProfileProvider() {
// TODO - implement provider::updateProfileProvider throw "Not yet implemented";
// TODO - implement provider::updateBookProvider throw "Not yet implemented";
} void provider::findBook() { class administrator : user { private: string adminName; string email; int phoneNumber; public: void updateProfile();
#include "administrator.h" void administrator::updateProfile() {
// TODO - implement administrator::updateProfile throw "Not yet implemented";
3.5 Code Generation kế toán(accountant)
#define ACCOUNTANT_H class accountant : administrator { private: string accountantName; int phoneNumber; string address; public: void createReport(); void editReport();
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
#include "accountant.h" void accountant::createReport() {
// TODO - implement accountant::createReport throw "Not yet implemented";
// TODO - implement accountant::editReport throw "Not yet implemented";
#define BOOK_H class book { private: string bookID; string warehouse; string genre; float price; string authorName; string bookInventory; public: void updateBook();
#include "book.h" void book::updateBook() {
// TODO - implement book::updateBook throw "Not yet implemented";
// TODO - implement book::bookInventory throw "Not yet implemented";
// TODO - implement book::deleteBook throw "Not yet implemented";
// TODO - implement book::insertBook throw "Not yet implemented";
3.7 Code Generation nhân viên(employee)
#define EMPLOYEE_H class employee : user { private: string employeeName; string address; string email;
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com) public: void updateProfileEmployee(); void orderEmployee(); void findEmployee(); void RevenueStatisticsPerEmployee(); void viewListEmployee();
#include "employee.h" void employee::updateProfileEmployee() {
// TODO - implement employee::updateProfileEmployee throw "Not yet implemented";
// TODO - implement employee::orderEmployee throw "Not yet implemented";
// TODO - implement employee::findEmployee throw "Not yet implemented";
3.8 Code Generation quản lý kho(warehouse manage)
#define WAREHOUSE MANAGE_H class warehouse_manage : administrator { private: string warehouseManageName; string address; int phoneNumber; string email; date dateCreate; string booksStatus; public: void findBookInventory(); void viewBookInventory(); void viewInformation();
#include "warehouse manage.h" void warehouse_manage::findBookInventory() {
// TODO - implement warehouse manage::findBookInventory throw "Not yet implemented";
// TODO - implement warehouse manage::viewBookInventory
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com) throw "Not yet implemented";
// TODO - implement warehouse manage::viewInformation throw "Not yet implemented";
#define WAREHOUSE_H class warehouse { private: string warehouseID; string bookID; public: void updateProfileWarehouse(); void checkBookInventoryWarehouse(); void viewBookInventory();
3.9.2 Code Generation warehouse.cpp void warehouse::checkBookInventoryWarehouse() {
// TODO - implement warehouse::checkBookInventoryWarehouse throw "Not yet implemented";
// TODO - implement warehouse::viewBookInventory throw "Not yet implemented";
#define ORDER_H class order { private: string orderID; date dateCreate; date dateSale; string customerName; string customerID; string status; public: void createOrder(); void deleteOrder(); void updateOrder();
#include "order.h" void order::createOrder() {
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
// TODO - implement order::createOrder throw "Not yet implemented";
// TODO - implement order::deleteOrder throw "Not yet implemented";
// TODO - implement order::updateOrder throw "Not yet implemented";
#define ORDER DETAIL_H class order_detail { private: string orderID; void amouts(); void addOrderDetail(); void removeBook(); void updateQuantityBook();
#include "order detail.h" void order_detail::amouts() {
// TODO - implement order detail::amouts throw "Not yet implemented";
// TODO - implement order detail::addOrderDetail throw "Not yet implemented";
// TODO - implement order detail::removeBook throw "Not yet implemented";
// TODO - implement order detail::updateQuantityBook throw "Not yet implemented";
3.12 Code Generation báo cáo( report)
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
The `report` class is designed to manage sales reports, featuring private attributes such as the creation date, quantity, book ID, sales data, and outgoing expenses It offers public methods for computing sales, displaying orders, creating, editing, saving, viewing, and deleting reports, ensuring comprehensive functionality for effective report management.
#include "report.h" void report::computerSales() {
// TODO - implement report::computerSales throw "Not yet implemented";
// TODO - implement report::showOrder void report::editReport() {
// TODO - implement report::editReport throw "Not yet implemented";
// TODO - implement report::removeReport throw "Not yet implemented";
// TODO - implement report::saveReport throw "Not yet implemented";
// TODO - implement report::viewReport throw "Not yet implemented";
// TODO - implement report::deleteReport throw "Not yet implemented";
3.13 Code Generation báo cáo chi tiết( report detail)
#define REPORT DETAIL_H class report_detail { private: string dateCreate; string orderID; public:
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com) void removeReportDetail(); void deleteReportDetail(); void createReportDetail(); void editReportDetail();
#include "report detail.h" void report_detail::removeReportDetail() {
// TODO - implement report detail::removeReportDetail throw "Not yet implemented";
// TODO - implement report detail::deleteReportDetail throw "Not yet implemented";
// TODO - implement report detail::createReportDetail throw "Not yet implemented";
Thiết kế giao diện (Use Interface)
Hình 3 12: Giao Diện Tra lập hóa đơn thuộc gói khách hàng
Hình 3.13: Giao diện đăng nhập của gói user
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)
Hình 3.14: thống kê của lớp kế toán
Hình 3.16: quản lý nhân viên thuộc quản lí
Hình 3.17:Kiểm tra sách tồn thuộc gói quản lý kho
Downloaded by C?m Nhi (nguyen_camnhi3006@yahoo.com)