Ngoài ra, phần mềm còn giúp thu hẹp không gian lưu trữ,tránh được thất lạc dữ liệu, tự động hệ thống hóa và cụ thể hóa các thông tin theonhu cầu của con người C# hiện tại là một trong c
TỔNG QUAN
Mô tả yêu cầu
Xây dựng chương trình “ Quản lý quán Karaoke ” nhằm hỗ trợ cho công tác quản lý tính tiền, kiểm soát tình hình các phòng, quản lý nhân viên,…Bài toán đặt ra là phân tích thiết kế hệ thống thông tin đặt ra là vì sao phải quản lý ? và quản lý như thế nào để công việc có hiệu quả, tiết kiệm được thời gian cho quản lý và nhân viên của quán.
Xây dựng chương trình Quản lý quán Karaoke nhằm hỗ trợ cho công tác quản lý thông tin nhân viên, khách hàng trong quá trình làm việc, vui chơi tại quán Bài toán đặt ra là xây dựng chương trình quản lý để công việc có hiệu quả, chính xác,tiết kiệm được thời gian cho nhân viên tại quán.
Đánh giá
- Rút ngắn được thời gian chờ đợi của khách hàng
- Sử dụng máy tính vào các công việc tìm kiếm các thông tin chi tiết sẽ dễ dàng, nhanh chóng và thuận tiện Việc lưu trữ sẽ đơn giản, không cần phải có nơi lưu trữ lớn, các thông tin sẽ chính xác và nhanh chóng.
- Việc thống kê định kì từng kỳ, từng năm thuận tiện, nhanh chóng.
- Với chức năng xử lý hệ thống mới sẽ rút ngắn công việc của nhân viên quản lý và giảm số lượng nhân viên quản lý, tránh tình trạng dư thừa.
Mất nhiều thời gian, kinh phí để xây dựng hoàn thiện một hệ thống quản lý mới cho quán
Nhiệm vụ đồ án
- Tìm hiểu quy trình quản lý của phần mềm thông qua các khảo sát thực trạng -Tìm hiểu ngôn ngữ lập trình C# và hệ quản trị cơ sở dữ liệu MySQL
-Tìm hiểu các công cụ hỗ trợ lập trình phần mềm, phần mềm tạo sever cục bộ, các trình hỗ trợ soạn thảo mã lệnh
-Lập trình viết nên phần mềm có các tính năng như mô tả và yêu cầu từ Phần mềm quản lý quán Karaoke
Đối tượng và phạm vi của ứng dụng
-Phạm vi: các quán karaoke
Cấu trúc đồ án
- Chương 2: CƠ SỞ LÝ THUYẾT
- Chương 3: THIẾT KẾ PHẦN MỀM
- Chương 4: KẾT QUẢ THỰC NGHIỆM
CƠ SỞ LÝ THUYẾT
Các khái niệm và cơ chế hoạt động
- Phần mềm máy tính ( phần mềm) là tập hợp dữ liệu hoặc các câu lệnh hướng dẫn cho máy tính để máy biết cách làm việc Điều này trái ngược với phần cứng vật lý, từ đó hệ thống được xây dựng và thực sự thực hiện công việc Trong khoa học máy tính và kỹ thuật phần mềm, phần mềm máy tính là tất cả thông tin được xử lí bởi hệ thống máy tính, chương trình và dữ liệu Phần mềm máy tính bao gồm các chương trình máy tính, thư viện và dữ liệu không thể thực thi liên quan, chẳng hạn như tài liệu trực tuyến hoặc phương tiện kỹ thuật số Phần cứng và phần mềm máy tính yêu cầu lẫn nhau và không thể tự sử dụng một cách thực tế.
- Trong quy trình phần mềm gồm 4 hoạt động cơ bản:
+ Đặc tả: các chức năng của hệ thống và những ràng buộc khi vận hành hệ thống cần phải được xác định một các đầy đủ và chi tiết.
+ Thiết kế và cài đặt: phần mềm được xây dựng phải thỏa mãn đặc tả của nó + Đánh giá: phần mềm phải được đánh giá và thẩm định để đảm bảo rằng nó đã thỏa mãn tất cả các yêu cầu.
+ Cải tiến: phần mềm cần phải cải tiến và điều chỉnh để phù hợp với những thay đổi về yêu cầu hệ thống.
Tổng quan về C# và MySQL
- C# ngôn ngữ lập trình hướng đối tượng đa năng vô cùng mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.
- C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dể dàng tiếp cận và học nhanh Có thể biên dịch trên nhiều nền tảng máy tính khác nhau Do được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó C# là một phần của NET Framework nên được sự chống lưng khá lớn đến từ bộ phận này C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ.
2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là một phần mềm quản trị CSDL mã nguồn mở, miễn phí nằm trong nhóm LAMP (Linux –Apache –MySQL -PHP) MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.
Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet Vì MySQL miễn phí hoàn toàn cho nên có thể tải MySQL từ trang chủ.
-MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: Phiên bản Win32 cho các hệđiều hành dòng Window, Linux, MacOS X, Unix, FreeBSD, NetWare,
-MySQL là một trong những ví dụ rất cơ bản về hệ quản trị cơ sở dữ liệu quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL).-Ngôn ngữ lập trình sử dụng viết các hàm API để thâm nhập cơ sởdữ liệu MySQL có thể là C, PHP, Perl,
Kiểu bố cục: ngắn gọn
Phong cách thiết kế: đơn giản
Không sử dụng các font chữ không chuẩn cho nội dung phần mềm, vì nếu máy người xem không có font đó thì sẽ hư toàn bộ Nên sử dụng các font Unicode chuẩn như Arial, Verdana, Tahoma, Times News Roman.
Giao diện thân thiện với người dùng
TRANG CHỦ HỆ THỐNG(, đổi mật khẩu, đăng xuất, thoát), DANH MỤC(nhân viên, nhập hàng,loại phòng,phòng,mặt hàng,đơn vị tính, nhà cung cấp), BÁN
HÀNG, THỐNG KÊ-BÁO CÁO( tồn kho, công nợ, doanh thu), TRỢ GIÚP.
Tác vụ đăng nhập: Đăng nhập vào hệ thống Bao gồm: admin, mật khẩu.
Tác vụ hệ thống: Bao gồm: đổi mật khẩu, đăng xuất, thoát.
Tác vụ danh mục: Dùng để quản lý nhập và xem thông: nhân viên, nhập hàng, loại phòng, phòng, mặt hàng, đơn vị tính, nhà cung cấp.
Tác vụ bán hàng: dùng để tính giờ cho phòng đang có khách, tính tiền sản phẩm khách đã mua.
Tác vụ thống kê - báo cáo: Dùng cho quản lý tính toán, quản lí: tồn kho, công nợ, danh thu.
Tác vụ đăng nhập: Đăng nhập vào hệ thống Bao gồm: user, mật khẩu nhân viên. Tác vụ hệ thống: Bao gồm: đổi mật khẩu, đăng xuất, thoát.
Tác vụ danh mục: Dùng cho nhân viên quản lí: loại phòng, mặt hàng, đơn vị tính, nhà cung cấp.
Tác vụ bán hàng: dùng để tính giờ cho phòng đang có khách, tính sản phẩm khách đã mua.
Tác vụ thống kê – báo cáo: Dùng để nhân viên có thể xem lại: tồn kho, công nợ, danh thu.
Hệ thống sử dụng hệ quản trị cơ sở dữ liệu đủ lớn để đáp ứng số lượng khách hàng ngày càng tăng
Máy chủ có khả năng xử lý, tính toán nhanh, chính xác, lưu trữ lâu dài, bảo mật.
Hệ thống mạng đáp ứng khả năng truy cập lớn.
Tổng kết các đơn hàng và các sản phầm còn trong kho.
Thông tin có tính đồng bộ, phân quyền quản lý chặt chẽ.
Bảo mật tốt cho người quản trị hệ thống.
Khảo sát, phân tích và thiết kế CSDL cho phần mềm
GUI Layer: Lớp này là lớp hiển thị giao diện và các chức năng để người dùng cuối sử dụng
Business (BUS) Layer: Đây là lớp nhận các yêu cầu từ lớp GUI và truy xuất lên lớp Dât để lấy thông tin và trả về GUI.
Data Access Layer: Lớp này là lớp để truy xuất với CSDL, chỉ duy nhất lớp này được làm việc với database.
( Không cần thiết ) DTO Layer: Lớp này chỉ là phụ thôi, đây là lớp định nghĩa các table trong database, định nghĩa cột của nó cũng như để ta gán data khi query lấy dữ liệu Có thể hiểu nôm na là một dạng cơ bản ORM ( Object Relation Mapping). Đây là cách hoạt động của mô hình 3 lớp.
2 Chi tiết mô hình 3 lớp
- Presentation Layer (GUI): có 2 thành phần chính sau đây với những tác vụ cụ thể: + UI Components: gồm các thành phần tạo nên giao diện của ứng dụng (GUI). Chúng chịu trách nhiệm thu nhận và hiển thị dữ liệu cho người dùng,…
+UI Process Components: là thành phần chịu trách nhiệm quản lí các quá trình chuyển đổi giữa các UI…
- Business Layer (BLL): lớp này gồm 4 thành phần
+ Service Interface: là thành phần giao diện lập trình mà lớp này cung cấp cho lớp Presentation sử dụng.
+ Bussiness Worklows: chịu trách nhiệm xác định và điều phối các quy trình nghiệp vụ gồm nhiều bước và kéo dài Những quy trình này phải được sắp xếp và thực hiện theo thứ tự chính xác.
+ Business Components: chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ, ràng buộc logic và thực hiện các công việc Các thành phần này cũng thực hiện các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sử dụng nó. + Business Entities: thường được sử dụng như Data Transfer Objects (DTO). Bạn có thể sử dụng để truyền dữ liệu giữa các lớp ( Presentation và Data Layer). Chúng thường là cấu trúc dữ liệu (DataSets, XML, ) hay các lớp đối tượng đã được tùy chỉnh.
3 Lợi thế của mô hình 3 lớp
Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờ vào việc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ Nhằm giảm sự kết dính.
Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi Việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình.
Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào đó thì việc lập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn để tuân theo.
Và việc sử dụng lại khi có sự thay đổi giữa hai môi trường ( Winform sang Webfrom ) thì chỉ việc thay đổi lại lớp GUI.
Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì công việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian.
Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm vụ trong mô hình 3 lớp Việc phân chia rõ ràng như thế sẽ giúp các lập trình viên kiểm soát được khối lượng công việc của mình.
Lược đồ use case tổng quát
Tên Use Case: Đăng nhập Mức quan trọng: Cao
Tác nhân chính: Admin, Nhân viên Loại Use Case: Chi tiết, cần thiết Người liên quan và công việc quan tâm: Quản lý và nhân viên sử dụng để đăng nhập hệ thống
Mô tả tóm tắt: Admin và nhân viên đăng nhập để sử dụng những chức năng tùy theo quyền hạn được cấp
Rằng buộc: Phải có tài khoản để đăng nhập
Các dòng sự kiện tổng quát chính:
1 Hoạt động 1: Hệ thống yêu cầu actor cung cấp thông tin đăng nhập gồm tên tài khoản và mật khẩu.
2 Hoạt động 2: Actor nhập xong thông tin đăng nhập và click vào nút đăng nhập
3 Hoạt động 3: Hệ thống sẽ check lại thông tin đăng nhập và thông báo thành công hay thất bại cho actor Nếu đăng nhập thành công hệ thống dựa trên thông tin đăng nhập sẽ đồng thời phân quyền tùy theo loại nhân viên Nếu đăng nhập thất bại, hệ thống sẽ thông báo cho người dùng và yêu cầu đăng nhập lại
Tên Use Case: Đăng xuất Mức quan trọng: Bình thường
Tác nhân chính: Admin, Nhân viên Loại Use Case: Chi tiết, cần thiết Người liên quan và công việc quan tâm: Quản lý và nhân viên sử dụng để đăng xuất hệ thống
Mô tả tóm tắt: Admin và nhân viên đăng xuất để sử dụng tài khoản khác
Rằng buộc: Phải có tài khoản để đăng xuất
Các dòng sự kiện tổng quát chính:
4 Hoạt động 1: actor click vào nút đăng xuất
5 Hoạt động 2: phần mền đóng và from đăng nhập hiện lên
6 Hoạt động 3: actor thực hiên lại hành động đăng nhập
Tên Use Case: Đổi mật khẩu Mức quan trọng: Bình thường
Tác nhân chính: Admin, Nhân viên Loại Use Case: Chi tiết, cần thiết Người liên quan và công việc quan tâm: Quản lý và nhân viên sử dụng để đổi mật khẩu tài khoản
Mô tả tóm tắt: Để Admin và nhân viên đổi mật khẩu
Rằng buộc: Phải có tài khoản để đổi mật khẩu
Các dòng sự kiện tổng quát chính:
1 Hoạt động 1: Actor click vào nút đổi mật khẩu
2 Hoạt động 2: Hệ thống yêu cầu nhập mật khẩu hiên tại , mật khẩu mới và xác nhận lại mật khẩu
3 Hoạt động 3: Hệ thống kiểm tra thông tin actor nhập vào có hợp lệ hay không Nếu đúng hệ thống cho phép actor đổi mật khẩu Nếu sai hệ thống sẽ yêu cầu actor nhập lại thông tin vào kiểm tra lại
Tên Use Case: Quản lý nhân viên Mức quan trọng: Cao
Tác nhân chính: Admin Loại Use Case: Chi tiết, cần thiết Người liên quan và công việc quan tâm: Admin sử dụng để quản lý tài khoản nhân viên
Mô tả tóm tắt: Admin thêm, sửa và phân quyền tài khoản
Rằng buộc: Phải là admin
Các dòng sự kiện tổng quát chính:
1 Hoạt động 1: admin đăng nhập vào hệ thống
2 Hoạt động 2: admin click vào mục nhân viên
3 Hoạt động 3: admin ghi thông tin của nhân viên mới để thêm vào hệ thống hoặc click vào nhân viên hiện có đê sửa hoặc xóa thông tin Hệ thống sẽ kiểm tra tài khoản có hợp lệ hay không Nếu hợp lệ hệ thống cho phép admin thao tác hành động trên Nếu không hợp lệ hệ thống sẽ yêu cầu admin nhập lại thông tin
Tên Use Case: Quản lý nhập hàng Mức quan trọng: Cao
Tác nhân chính: Admin Loại Use Case: Chi tiết, cần thiết Người liên quan và công việc quan tâm: Admin sử dụng để nhập hàng
Mô tả tóm tắt: Admin sử dụng chức năng nhập hàng để lập phiếu nhập hàng Rằng buộc: Chỉ admin mới sử dụng được chức năng
Các dòng sự kiện tổng quát chính:
1 Hoạt động 1: Admin đăng nhập vào hệ thống
2 Hoạt động 2: Admin click vào chức năng nhập hàng
3 Hoạt động 3: Hệ thống sẽ hiển thị giao diện nhập hàng Admin sẽ nhập những thông tin cần thiết để lập phiếu nhập hàng.
4 Hoạt động 4: Hệ thống sẽ kiểm tra thông tin để lưu vào dữ liệu trong máy.
Tên Use Case: Thống kê Mức quan trọng: Cao
Tác nhân chính: Admin Loại Use Case: Chi tiết, cần thiết Người liên quan và công việc quan tâm: Admin sử dụng để thống kê
Mô tả tóm tắt: Admin thống kê doanh thu, tồn kho và công nợ của quán
Rằng buộc: Chỉ admin mới sử dụng được chức năng
Các dòng sự kiện tổng quát chính:
1 Hoạt động 1: Admin đăng nhập vào hệ thống
2 Hoạt động 2: Admin click vào chức năng thống kê
3 Hoạt động 3: Admin chọn loại thống kê (doanh thu, tồn kho, công nợ)
THIẾT KẾ PHẦN MỀM
Các thành phần chức năng của hệ thống
Thành phần giao diện: bao gồm các màn hình thể hiện các chức năng cơ bản của một phần mềm quản lý như màn hình trang chủ, hệ thống, danh mục, bán hàng, thống kê – báo cáo, trợ giúp
Thành phần chức năng: các chức năng cơ bản như đăng nhập, đăng xuất, quản lý phòng, danh sách các mặt hàng,…
Thành phần xử lý: xử lý kết nối với CSDL, các thao tác thêm/xoá/sửa
Thiết kế giao diện hệ thống
Quản lí và nhân viên muốn vào hệ thống phải thông qua quá trình nhập, nhập đúng tên đăng nhập và mật khẩu.
2 Giao diện chính của phần mềm
Giao diện chính sẽ hiển thị tất cả các menu chức năng của hệ thống cho phép người dùng thao tác trên hệ thống đó Tuỳ theo từng quyền của người dùng mà khi đăng nhập vào hệ thống sẽ không có quyền truy cập vào trang “ Quản Lí” của hệ thống.
3 Giao diện đổi mật khẩu
Giao diện dành cho cả quản lí và nhân viên để thay đổi mật khẩu của mình.
4 Giao diện phiếu nhập hàng
Giao diện này hiển thị tên nhà cung cấp, thời gian nhập hàng và tổng số tiền hàng Người quản lí dễ dàng nhập, chỉnh sửa cũng như quản lý hàng hóa.
5 Giao diện đơn vị tính. Ở giao diện này, người quản lí có thể xem, sửa các đơn vị tính cho các mặt hàng được giao dịch tại quán
Trong giao diện, hiển thị đầy đủ loại phòng và giá tiền phù hợp với từng loại phòng
7 Giao diện danh sách mặt hàng Ở đây, giao diện hiển thị đầy đủ tên mặt hàng, đơn vị tính và đơn giá tương ứng cho từng mặt hàng.
8 Giao diện danh sách nhà cung cấp
Hiển thị đầy đủ tên, số điện thoại liên hệ, email và địa chỉ của các nhà cung cấp hàng cho quán.
9 Giao diện danh sách nhân viên
Quản lí có thể thêm, xóa sửa các thông tin cá nhân của nhân viên: Tên nhân viên, số điện thoại liên lạc, địa chỉ.
10.Giao diện danh sách phòng
Cung cấp thông tin của từng loại phòng như tên phòng, sức chứa, đơn giá.
11.Giao diện thống kê công nợ của nhà cung cấp
Người quản lí dễ dàng quản lý được công nợ của quán, giao diện có hiển thị đầy đủ: ngày giao dịch, tên nhà cung cấp, tổng tiền, số tiền đã thanh toán và số tiền còn nợ.
12.Giao diện thống kê doanh thu.
Giao diện thống kê đầy đủ các thông tin: ngày giao dịch, mặt hàng, đơn vị tính, đơn giá, số lượng, tổng tiền Giúp người quản lí dễ dàng tổng kết doanh thu.
13.Giao diện thống kê tồn kho.
Hiện thị đầy đủ số lượng hàng tồn, giúp quản lí và nhân viên dễ dàng kiểm soát sản phẩm.
KẾT QUẢ THỰC NGHIỆM
Kịch bản sử dụng
Giao diện đăng nhập với tư cách admin
Giao diện hệ thống, lựa chọn chức năng bán hàng.
Chọn phòng trống cho khách.
Bấm bắt đầu để tính giờ cho khách.
Gọi phòng thành công sẽ hiện lên thông báo
Giao diện thay đổi để người dùng nhận biết phòng đang được sử dụng.
Double click vào menu mặt hàng sẽ hiện lên giao diện order
Mặt hàng đã order sẽ được thêm vào bảng bên dưới
Bấm kết thúc để thanh toán và in hóa đơn cho khách
Hóa đơn được in ra cho khách
Bấm vào lịch sử giao dịch để hiển thị lịch sử giao dịch
Double click vào chi tiết lịch sử giao dịch sẽ hiển thị bill thanh toán