Một số doanh nghiệp khác lại đặt làm các phần mềm theo đặc trưng kinh doanh của mình.. Xuất hoá đơn Ghi nhận lại số lượng đĩa còn lại trong sổ danh mục đĩa Giao đĩa Tìm đĩa: Việc
Trang 1Lời Mở Đầu
Kinh tế càng phát triển thì càng có nhiều hình thức kinh doanh hơn: bán sỉ, bán
lẻ, siêu thị, Dù ở hình thức kinh doanh một mặt hàng hay nhiều mặt hàng thì đây cũng là lĩnh vực có tần suất hoạt động cao và vấn đề quản lý các sổ sách cũng khá phức tạp Cho dù có nhiều hình thức kinh doanh nhưng chung quy lại thì bài toán quản lý này cũng tập chung trên một số vấn đề: Cửa hàng này kinh doanh mặt hàng gì? Các mặt hàng này do ai cung cấp? Đối tượng mua hàng là ai? Cách ghi hoá đơn? Cách quản lý số lượng hàng tồn kho? Có thẻ kho hay không? Thông thường thì các cơ sở kinh doanh phải có nhiều sổ sách khác nhau để ghi nhận các vấn đề trên Và mỗi ngày việc tính kết quả kinh doanh phải dựa trên các sổ này Việc nhầm lẫn sai sót là điều không thể tránh khỏi Đó là chưa kể việc tính toán này làm mất nhiều thời gian và công việc Do vậy tin học hoá bài toán quản lý bán hàng là việc cần được quan tâm
Gần đây, nhiều doanh nghiệp cũng tìm cách tin học hoá việc kinh doanh của mình với mục đích nâng cao hiệu quả quản lý, tiết kiệm chi phí, giảm thiểu các nguồn lực trong quá trình quản lý và giảm thiểu thời gian tính toán các sổ sách giúp cho việc kinh doanh có thể phát triển tốt hơn Nhiều công ty làm phần mềm cũng đã giới thiệu các gói phần mềm quản lý bán hàng Theo ý kiến phản hồi được biết nếu mua sản phẩm phần mềm này thì giúp cho công việc lưu trữ dễ dàng và thuận tiện hơn Song do đặc trưng của doanh nghiệp có vài điểm khác biệt thì phần mềm này chưa đáp ứng được Một số doanh nghiệp khác lại đặt làm các phần mềm theo đặc trưng kinh doanh của mình Dạng phần mềm này đáp ứng được các yêu cầu của các doanh nghiệp Tuy nhiên, nếu có một doanh nghiệp khác có những nghiệp vụ tương
tự và có thêm một số yêu cầu khác muốn sử dụng lại phần mềm này cho doanh nghiệp của mình lại không được Vì vậy muốn dùng cho một doanh nghiệp khác thì thiết kế lại và lập trình lại từ đầu Điều này cho thấy các nhà làm phần mềm mất rất nhiều thời gian và công sức do tính tái sử dụng không cao
Trang 2Vấn đề được đặt ra ở đây là làm thế nào để có một hệ thống mở và linh hoạt để
có thể thêm những đặc trưng riêng của doanh nghiệp và hệ thống này cũng có thể tái sử dụng những thành phần chung mà không phải xây dựng lại Đó là mục đích nghiên cứu của đề tài
Nội dung của đề tài:
Viết chương trình “Quản lý bán đĩa”
Để cho bài toán có tính mở và linh hoạt, thiết nghĩ phương pháp hướng đối tượng là phương pháp giúp cho việc giải quyết vấn đề nhanh chóng Một công cụ hỗ trợ cho việc phân tích thiết kế phần mềm hướng đối tượng rất hữu ích là ngôn ngữ UML được sử dụng để phân tích thiết kế bài toán này
Trang 3Chương 1: Khảo Sát Hiện Trạng
Tuỳ theo yêu cầu mà cửa hàng tiến hành nhập đĩa về Mỗi lần nhập nhân viên kế toán sẽ ghi vào các thông tin: Nhà cung cấp, ngày nhập và chi tiết nhập như: Số lượng nhập, đơn giá nhập, số tiền trả
Khi bán hàng nhân viên kế toán sẽ ghi hoá đơn với các thông tin như sau:
Số hoá đơn, ngày bán, mã số đĩa, đơn giá bán, số lượng, thành tiền
Khi khách hàng có nhu cầu tìm kiếm đĩa theo phân loại, nhà cung cấp, ca sĩ, diễn viên, thì nhân viên sẽ vào trong kệ tìm xem có loại đĩa khách cần tìm hay không, và trả lời khách hàng
Cuối mỗi ngày nhân viên kế toán tiến hành tổng kết việc mua bán trong ngày với các việc sau đây: Tổng số tiền bán hàng, tổng số tiền mua hàng
1.2 Hiện trạng tin học:
Sự bùng nổ công nghệ thông tin làm thay đổi xu hướng phát triển trên thế giới Nền kinh tế thế giới phụ thuộc rất nhiều vào công nghệ phần mềm Do nhu cầu của thương trường đòi hỏi nâng cao năng suất, chất lượng nhưng phải giảm thiểu thời gian
và sức lao động của con người Bên cạnh đó, các ứng dụng phần mềm lại mở rộng về kích thước và độ phức tạp, đòi hỏi nhiều nhân lực có trình độ mà việc đào tạo không đáp ứng ngay được
Trang 4Công nghệ phần mềm đang đối diện với những thách thức mới: Công nghệ thay đổi quá nhanh đòi hỏi một đội ngũ nhạy bén để tiếp cận và áp dụng vào các ứng dụng cụ thể Các nhóm làm việc cũng đông hơn để đáp ứng yêu cầu công việc Ngoài ra việc phát triển phần mềm đòi hỏi sự chuyên môn hoá cao, mỗi nhóm chịu trách nhiệm một phần trong quy trình công nghệ phần mềm
Với quy trình phát triển công nghệ phần mềm trước đây, so với những đòi hỏi của xã hội đối với công nghệ phần mềm cho thấy một số vấn đề như sau:
Khi người sử dụng có nhu cầu xây dựng ứng dụng việc trao đổi bằng ngôn ngữ tự nhiên với nhóm phát triển, có thể không mô tả hết được những yêu cầu cần có để đáp ứng được nhu cầu trên thực tế
Sự phát triển quá nhanh của công việc dẫn đến hệ thống không đáp ứng kịp các yêu cầu mới
Kiến trúc phần mềm không chắc chắn làm cho các module không khớp với nhau
Khi phân tích thiết kế, không kiểm soát hết độ phức tạp của bài toán dẫn đến phần mềm khó bảo trì, nâng cấp, mở rộng
Trong quá trình phát triển dự án phần mềm, không phát hiện được sự mâu thuẩn giữa các yêu cầu, thiết kế và cài đặt tạo ra các lổ hổng trong dự án phần mềm
Việc thông tin các thay đổi trong dự án mơ hồ làm cho các thành viên không nắm bắt được ai đã thay đổi cái gì? Ở đâu? Khi nào? Và tại sao phải thay đổi?
Trang 5 Mô hình hóa sự tương tác giữa người dùng với hệ thống một cách trực quan
Lập báo cáo thống kê về doanh thu bán theo tiêu chí: ngày, tháng, năm Thống
kê những đĩa đã bán được theo theo tiêu chí: ngày, tháng, năm
Cửa Hàng
Giao Dịch
Bộ Phận Hành Chánh
Cửa hàng
trưởng
Nhân viên coi quầy đĩa
Nhân viên
kế toán
Trang 6 Xuất hoá đơn
Ghi nhận lại số lượng đĩa còn lại trong sổ danh mục đĩa
Giao đĩa
Tìm đĩa:
Việc tìm đĩa được thực hiện dựa trên kệ đĩa và những đĩa đã bán
Kiểm kê đĩa:
Việc kiểm kê đĩa được thực hiện mỗi quý (3 tháng) một lần:
Trang 7 Thống kê đĩa:
Việc thống kê đĩa dựa trên sổ danh mục đĩa, các hoá đơn đã xuất và kết quả kiểm kê đĩa
Thống kê doanh thu:
Việc thống kê doanh thu được thực hiện dựa trên những hoá đơn đã xuất
1.4 Giao diện:
Hệ thống hoạt động trên môi trường giao diện đồ hoạ
Không cho phép thay đổi cấu hình các giao diện
Trang 8Chương 2 : Cách Tiếp Cận Và Giải Quyết Vấn Đề
2.1 Yêu cầu bài toán:
2.1.1 Yêu cầu chức năng: Công việc sẽ thực hiện trên máy tính
Lưu trữ:
- Danh mục đĩa: Mã số đĩa, tên đĩa, loại đĩa, mã thể loại, mô tả, đơn giá bán, đơn giá nhập, số lượng tồn, năm phát hành
- Hoá đơn: Số hoá đơn, ngày bán, tổng tiền
- Phiếu nhập: Số phiếu nhập, ngày nhập, thành tiền, mã nhà cung cấp
Tra cứu:
- Thông tin về đĩa: Mã số đĩa, tên đĩa
Tính toán:
- Doanh thu: Số lượng đĩa bán, số lượng đĩa tồn
- Giá trị một hoá đơn: Ngày hoá đơn, đơn giá bán
- Số lượng tồn của một loại đĩa: Mã số loại đĩa
Kết xuất:
Trang 92.1.2.Yêu cầu phi chức năng:
2.2 Dự kiến triển khai:
Để có thể đạt được các yêu cầu của bài toán được đặt ra, công việc dự kiến sẽ triển khai theo các bước sau :
Mô hình hóa bài toán bán hàng :
Khảo sát quá trình kinh doanh tại cửa hàng: Cửa hàng bán băng đĩa nhạc
Uyên
Phân tích – thiết kế
Dự kiến kết quả đạt được trong phần phân tích bài toán này:
- Use – case Diagram
- Sequence Diagram
- Class Diagram
Trang 10Từ kết quả ở mức phân tích, triển khai thiết kế để đạt được các kết quả sau :
- Mô hình quan hệ cơ sở dữ liệu
Trang 11Chương 3: Phân Tích Bài Toán
3.1 Phạm vi dự án:
3.1.1 Xử lý:
Thống kê đĩa tồn tại trong kho theo đầu đĩa và loại đĩa
Thống kê đĩa đã bán đựợc theo tiêu chí:ngày, tháng, năm
Thống kê doanh thu
Tra cứu những đĩa hiện có trong cửa hàng
Cho phép lưu trữ dữ liệu, cập nhật đĩa với số lượng lớn một cách dễ dàng
Việc quản lý và tra cứu thông tin đĩa một cách hiệu quả, nhanh chóng
Hỗ trợ việc thống kê nhập đĩa, thống kê bán đĩa, thống kê đĩa tồn kho, thống
kê kinh doanh dễ dàng, nhanh chóng và chính xác
Trang 123.2 Phân tích vấn đề:
3.2.1 Nhận định chung:
Hằng ngày những công việc trong cửa hàng đều thực hiện bằng tay Vì vậy rất khó khăn và hạn chế trong việc quản lý kinh doanh của cửa hàng: Bán đĩa, thống kê và tra cứu thông tin về đĩa
Hiện nay cửa hàng sẽ tăng số lượng đĩa nên việc quản lý đĩa trở nên cần thiết
và đạt hiệu quả kinh doanh hơn
Việc thống kê đĩa theo số lượng đầu đĩa, loại đĩa, tên ca sĩ dựa vào sổ ghi chép và hóa đơn khó khăn và mất thời gian
Khó kiểm tra số lượng đĩa bị mất, trầy xước, hỏng và số lượng có trong kho
Trang 133.2.3 Nguyên nhân:
Ghi chép bằng tay dễ sai sót, thiếu sót, không được cập nhật thường xuyên
dữ liệu trong các sổ ghi chép không chính xác
Việc tìm đĩa có hay không phải vào trong kệ để tìm hoặc dựa vào sổ sách, hóa đơn không chính xác và mất nhiều thời gian
Do nhân viên không tự vào kệ tìm đĩa
Việc thống kê dựa vào sổ mất thời gian và không chính xác Do việc thống
kê tiến hành bằng tay có thể có nhiều sai sót
Thống kê đĩa dựa vào từng hóa đơn bán ra và số lượng đĩa trong kho khó quản lý và mất thời gian
3.2.4 Mục tiêu:
Tổ chứcdữ liệu và xử lý cho phép cập nhật đĩa bằng máy một cách hiệu quả
và nhanh chóng
Cần có cách tổ chức dữ liệu linh hoạt thuận lợi cho việc tìm kiếm
Xây dựng hệ thống giúp nhân viên tra cứu trực tiếp trong chương trình
Dữ liệu đĩa cần phải cập nhật tức thời để thống kê tùy lúc
Cần có cách tổ chức linh hoạt để thuận lợi cho việc sắp xếp thứ tự theo các tiêu thức khác nhau dễ dàng thống kê theo từng tiêu thức
Dữ liệu đĩa bán ra phải cập nhật thường xuyên Tổ chức hóa đơn một cách hợp lý để dễ tìm ra những đĩa đã bán
Trang 14 Tra cứu đĩa theo các tiêu chí khác nhau một cách thuận lợi và nhanh chóng
Thống kê theo số lượng đĩa, loại đĩa, tên đĩa, nhà cung cấp
Thống kê doanh thu theo: ngày , tháng, năm hay một khoảng thời gian nào
đó
3.2.6 Xác định Actor:
Cửa hàng trưởng: Đăng nhập hệ thống, quản lý thông tin về một đĩa, thống
kê kinh doanh của cửa hàng, tra cứu theo từng tiêu chí
Nhân viên kế toán: Đăng nhập hệ thống, quản lý việc nhập hàng, bán hàng, thông tin về một đĩa, thống kê kinh doanh và tra cứu theo từng tiêu chí
Trang 153.3 Mô hình hóa bài toán:
3.3.1 Use-case Diagram:
3.3.1.1 Mô hình Use-case:
Quan ly nhap dia
Quan ly ban dia Nhan vien ke toan
Dang nhap he thong
Quan ly thong tin dia
Tra cuu
Thong ke kinh doanh
Cua hang truong
Chú thích:
Đăng nhập hệ thống:
Khi nhân viên sử dụng hệ thống kinh doanh này thì bắt buộc phải đăng nhập
Hệ thống này gồm có 2 quyền (Admin, User) nhân viên thuộc quyền nào thì được sử dụng use-case đó, còn các use-case khác sẽ không được phép sử dụng
Trang 16 Quản lý nhập đĩa:
Use-case này nhằm quản lý các mặt hàng đĩa được nhập vào cửa hàng Khi đĩa được nhập vào thì nhân viên sẽ ghi nhận phiếu nhập này Sau đó hệ thống thực hiện việc ghi nhận thẻ kho
Quản lý bán đĩa:
Use-case này nhằm quản lý việc bán đĩa của cửa hàng Khi khách hàng mua đĩa, nhân viên sẽ ghi nhận hoá đơn bán hàng Hệ thống thực hiện việc ghi nhận thẻ kho
Thống kê kinh doanh:
Use-case này nhằm mục đích thống kê kinh doanh của cửa hàng Thống kê kinh doanh bao gồm( báo cáo kinh doanh, báo cáo doanh thu và thống kê số lượng tồn của đĩa trong ngày hay trong kỳ) Sau đó nhân viên có thể in ra báo cáo này để biết được tình hình kinh doanh của cửa hàng
Tra cứu:
Use-case này giúp cho nhân viên có thể tìm kiếm thông tin đĩa theo yêu cầu của khách hàng một cách gần đúng nhất và nhanh chóng
Quản lý thông tin đĩa:
Use-case này giúp cho nhân viên dễ quản lý danh mục đĩa của cửa hàng Khi
Trang 173.3.2 Sequence Diagram
Đăng nhập hệ thống:
Nhap ten va mat khau
Yeu cau xu ly ten va mat khau
Kiem tra ten va mat khau
Dong man hinh
Ket qua kiem tra ten va mat khau
Thong bao dang nhap thanh cong hay khong
Trang 18 Quản lý nhập Đĩa:
XL : PHIEU NHAP : Nhan vien ke
toan
MH : Phieu nhap : Phieu nhap : Chi Tiet Phieu Nhap : Danh Muc Dia : Quan Ly Thong Tin
Dia
Nhap so phieu nhap
Yeu cau kiem tra so phieu nhap
Kiem tra so phieu nhap Ket qua kiem tra so phieu nhap Thong bao so phieu nhap chua co
Nhap ten dia
Yeu cau kiem tra ten dia
Kiem tra ten dia co trong danh muc dia hay khong
Ten dia chua co trong danh muc dia Thong bao dia moi
Ghi dia moi
Nhap so luong va don gia
Ghi phieu nhap
Yeu cau ghi phieu nhap Kiem tra co thong tin chi tiet phieu nhap hay khong
Khong co thong tin cua chi tiet phieu nhap
Thong bao phieu nhap khong co thong tin chi tiet phieu nhap
Co thong tin chi tiet phieu nhap
Ghi thong tin phieu nhap
Ghi thong tin chi tiet phieu nhap Thong bao ghi thanh cong hay khong
Cap nhat so luong ton Cap nhat so luong ton vao danh muc dia Ghi thong tin dia moi
Trang 19Yeu cau kiem tra so hoa don
Kiem tra so hoa don Ket qua kiem tra so hoa don Thong bao so hoa don chua co
Nhap ten dia can mua
Yeu cau kiem tra ten dia
Kiem tra ten dia co trong danh muc dia hay khong Ten dia chua co trong danh muc dia Thong bao khong co dia can mua
Ten dia con trong danh muc dia Thong bao co dia can mua va gia ban
Nhap so luong dia can mua
Yeu cau kiem tra so luong ton
Kiem tra so luong ton
So luong ton cua dia
So luong > So luong ton Thong bao so luong ton
Tiep tuc hay khong
Hieu chinh so luong
Ghi hoa don
Yeu cau ghi hoa don Kiem tra co thong tin chi tiet hoa don khong Khong co thong tin chi tiet hoa don Thong bao hoa don khong co chi tiet hoa don
Co thong tin chi tiet hoa don
Ghi thong tin hoa don Ghi thong tin chi tiet hoa don
Thong bao ghi thanh cong hay khong
Cap nhat so luong ton Cap nhat so luong ton vao danh muc dia
Quản lý thông tin đĩa:
Trang 20Nhap thong tin dia moi
Yeu cau kiem tra dia da co hay chua
Kiem tra dia ton tai Ket qua kiem tra dia ton tai
Da co Thong bao dia da co thong tin
Cap nhat hay khong
Cap nhat thong tin dia
Yeu cau cap nhat thong tin dia
Cap nhat loai thong tin dia
Ghi dia vao danh muc dia
Yeu cau ghi vao danh muc dia
Ghi thong tin dia moi Ket qua ghi thong tin dia moi Thong bao ghi thanh cong hay khong
Trang 21 Tra cứu:
Nhap thong tin can tra cuu ve dia
Yeu cau tra cuu thong tin ve dia
Tim thong tin dia can tra cuu
Ket qua tim thong tin ve dia Hien thi thong tin can tim
Trang 22 Thống kê kinh doanh:
: Actor MH : Thong ke kinh doanh XL : THong Ke Kinh
Doanh
: HOA DON : Phieu nhap Nhap thoi gian can thong ke
Yeu cau thong ke kinh doanh
Tinh tong doanh thu Tong doanh thu Hien thi tong doanh thu
Tinh tong chi Tong chi Hien thi tong chi
Tinh ket qua kinh doanh Hien thi ket qua kinh doanh
Chon In
Yeu cau In bao cao
In Thong bao In thanh cong
Trang 23 Thống kê Đĩa tồn kho:
: Danh Muc Dia
Thong ke dia ton kho
Yeu cau thong ke dia ton kho
Liet ke so luong ton cua tung loai dia
So luong ton cua dia Hien thi so luong ton
Chon In
Yeu cau In
In Thong bao In thanh cong hay khong
Trang 24ChiTietPhieuNhap SoLuongNhap
ListBaiHat TenCaSi
NhaCungCap MaNhaCungCap TenNhaCungCap
<<entity>>
BaiHat MaBaiHat TenBaiHat
TheLoai Matheloai TenTheLoai
DanhMucDia MaSoDia TenDia LoaiDia MoTa DonGiaNhap DonGiaBan SoLuongTon NamPhatHanh
Trang 25 DanhMucDia: Lớp Danh mục đĩa
MaSoDia: Mã số đĩa
TenDia: Tên đĩa
LoaiDia: Loại đĩa
MoTa: Mô tả
DonGiaNhap: Đơn giá nhập
DonGiaBan: Đơn giá bán
SoLuongTon: Số lượng tồn
NamPhatHanh: Năm phát hành
PhieuNhap: Lớp phiếu nhập
SoPhieuNhap: Số phiếu nhập
NgayLap: Ngày lập hoá đơn
ThanhTien: Số tiền phải thanh toán
BaiHat: Lớp bài hát
MaBaiHat: Mã bài hát
TenBaiHat: Tên bài hát
Trang 26 TheLoai: Lớp thể loại
MaTheLoai: Mã thể loại
TenTheLoai: Tên thể loại
ListBaiHat: Lớp list bài hát
TenCaSi: Tên ca sĩ
HoaDon: Lớp hoá đơn
SoHD: Số hoá đơn
NgayBan: Ngày lập hoá đơn bán hàng
TongTien: Số tiền phải trả
ChiTietHoaDon: Lớp chi tiết hoá đơn
SoLuongBan: Số lượng đĩa bán
ChiTietPhieuNhap: Lớp chi tiết phiếu nhập
SoLuongNhap: Số lượng đĩa nhập
NhaCungCap: Lớp nhà cung cấp
MaNhaCungCap: Mã nhà cung cấp
Trang 27 NhanVien: Lớp nhân viên
MaNhanVien: Mã nhân viên
TenNhanVien: Tên nhân viên
Username: Tên đăng nhập
Password: Mật khẩu
PhanQuyen: Quyền khi đăng nhập hệ thống
Trang 28Chương 4: Thiết Kế Chương Trình
4.1 Kiến trúc ứng dụng:
Các Class Diagram chứa toàn bộ các thuộc tính và hoạt động của các nghiệp vụ trong bài toán Và cũng từ các Sequence Diagram ta nhận thấy các nghiệp vụ này tương tác với các actor thông qua các lớp interface của hệ thống Ngoài ra, để hoàn toàn độc lập với hệ quản trị cơ sở dữ liệu, ta cũng cần xây dựng các lớp làm nhiệm vụ trao đổi dữ liệu với hệ thống Từ đó ta có sơ đồ phân lớp như sau:
DBMS
Access Layer
Business Layer
Trang 29- DBMS : là hệ quản trị cơ sở dữ liệu
- AccessLayer: chứa các class làm nhiệm vụ trao đổi dữ liệu giữa DBMS
PhieuNhap( SoPhieuNhap, MaNhaCungCap, NgayLap, ThanhTien)
ChiTietPhieuNhap( MaSoDia, SoPhieuNhap, SoLuongNhap)
HoaDon( SoHD, NgayBan, TongTien)
ChiTietHoaDon( MaSoDia, SoHD, SoLuongBan)
NhaCungCap( MaNhaCungCap, TenNhaCungCap, DiaChi, DienThoai)
TheLoai( MaTheLoai, TenTheLoai)
BaiHat( MaBaiHat, TenBaiHat)
ListBaiHat( MaBaiHat, MaSoDia, TenCaSi)
NhanVien( MaNhanVien, TenNhanVien, Username, Password, PhanQuyen)
Trang 304.2.1 Sơ đồ cơ sở dữ liệu quan hệ:
Trang 314.2.2 Mô tả các bảng:
Bảng Danh Mục Đĩa
Bảng Phiếu Nhập
buộc
Trang 32 Bảng Bài Hát
Bảng Chi Tiết Phiếu Nhập
Bảng Hoá Đơn
Bảng Chi Tiết Hoá Đơn
Trang 33 Bảng Thể Loại
Bảng Nhà Cung Cấp
Bảng List Bài Hát
Bảng Nhân Viên
Trang 344.2.3 Ràng buộc dữ liệu:
TheLoai
bảng NhaCungCap
được kết hợp từ khoá chính của các bảng DanhMucDia và PhieuNhap
hợp từ khoá chính của các bảng DanhMucDia và HoaDon