You are on page 1of 17

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN LẬP TRÌNH

ĐỀ TÀI:
HỆ THỐNG QUẢN LÝ BÁN HÀNG F&B
(FOOD & BEVERAGE SERVICE)

Giáo viên hướng dẫn: ThS. ĐỖ THỊ TUYẾT HOA


ThS. PHAN THANH TAO

Sinh viên thực hiện: NGUYỄN MẠNH ĐỨC


QUÁCH MINH NHẬT
Lớp: 19TCLC_DT2
Nhóm: 19.11A
MSSV: 102190058
102190081

Đà Nẵng, 12/2020
MỤC LỤC

MỤC LỤC................................................................................................................1
DANH MỤC HÌNH VẼ...........................................................................................3
LỜI MỞ ĐẦU..........................................................................................................4
1. TỔNG QUAN ĐỀ TÀI.........................................................................................5
1.1. Đặc tả:........................................................................................................5
1.2. Yêu cầu:.....................................................................................................5
2. THIẾT KẾ CƠ SỞ DỮ LIỆU...............................................................................5
2.1. Cơ sở dữ liệu quan hệ:...............................................................................5
2.2. Lược đồ quan hệ (Hình 1):.........................................................................7
3. THIẾT KẾ THUẬT TOÁN..................................................................................7
3.1. Phát biểu bài toán:......................................................................................7
3.2. Phân tích thuật toán:...................................................................................7
3.2.1. Giới thiệu thuật toán:...........................................................................7
3.2.2. Thuật toán tìm kiếm tuyến tính (Linear Search):.................................8
4. CHƯƠNG TRÌNH VÀ KẾT QUẢ.......................................................................8
4.1. Tổ chức chương trình:................................................................................8
4.1.1. Yêu cầu chức năng:.............................................................................8
4.1.2. Chức năng sản phẩm:...........................................................................9
4.1.3. Class, Object, Relation (Hình 2):.........................................................9
4.1.4. Kết nối cơ sở dữ liệu:...........................................................................9
4.2. Kết quả:....................................................................................................10
4.2.1. Giao diện chính:................................................................................10
4.2.2. Giao diện đăng nhập:.........................................................................10
4.2.3. Giao diện quản lý order:....................................................................11
4.2.4. Giao diện quản lý thông tin nhân viên:..............................................12
4.2.5. Giao diện quản lý bàn:.......................................................................12
1
4.2.6. Giao diện quản lý truy xuất hóa đơn:.................................................13
4.3. Nhận xét:..................................................................................................14
5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..........................................................14
5.1. Kết luận:...................................................................................................14
5.2. Hướng phát triển:.....................................................................................14
TÀI LIỆU THAM KHẢO......................................................................................15
PHỤ LỤC...............................................................................................................16

2
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao

DANH MỤC HÌNH VẼ

Hình 1: Lược đồ quan hệ Trang 7


Hình 2: Class_Diagram Trang 9
Hình 3: Giao diện chính Trang 10
Hình 4: Giao diện đăng nhập Trang 10
Hình 5: Giao diện quản lý order Trang 11
Hình 6: Giao diện quản lý thông tin nhân viên Trang 11
Hình 7: Giao diện quản lý bàn Trang 12
Hình 8: Giao diện quản lý truy xuất hóa đơn Trang 13
Hình 9: Giao diện hiển thị hóa đơn chi tiết Trang 13

Sinh viên thực hiện: Nguyễn Mạnh Đức 3


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao

LỜI MỞ ĐẦU

Trong giai đoạn đất nước đang quá trình hội nhập, cùng với sự phát triển mạnh mẽ
của công nghệ thông tin, tin học hoá là điều mà mỗi công ty, cơ quan, xí nghiệp và các tổ
chức cần phải nghỉ đến. Tin học được ứng dụng trong mọi lĩnh vực cuộc sống, nó đem
lại nhiều lợi ích to lớn, đã dần thay thế những công việc thủ công và mất nhiều thời gian.

Hiện nay rất nhiều lĩnh vực đã và đang thực hiện việc tin học hoá, trong lĩnh vực
sản xuất và cả trong những lĩnh vực xã hội. Nhằm đáp ứng cho nhu cầu phát triển của xã
hội nói chung và thực hiện tin học hoá trong công tác quản lý các nhà hàng nói riêng, em
đã nghiên cứu và phát triển phần mềm “Hệ thống quản lý bán hàng F&B” nhằm giúp
cho việc quản lý, gọi món dễ dàng và thuận tiện trong các nhà hàng .Nhiều phần mềm
phục vụ cho yêu cầu này đã ra đời và đã thật sự thay thế hiệu quả cho những cách thủ
công.

Với phần mềm “Hệ thống quản lý bán hàng F&B” hy vọng sẽ giúp ích được nhiều
cho công việc quản lý bán hàng và thống kê thông tin trong nhà nhà hàng một cách
nhanh chóng, với những công cụ xử lý chuyên nghiệp sẽ giúp cho việc thao tác nhanh
chóng, tiện lợi. Màn hình với giao diện đơn giản tạo sự thoải mái cho người sử dụng khi
tiếp xúc với máy tính.
Với việc áp dụng phần mềm “Hệ thống quản lý bán hàng F&B” sẽ giảm bớt thời
gian gọi món và thông tin một cách nhanh chóng và hiệu quả hơn, khối lượng lưu trữ
nhiều và ít tốn kém không gian lưu trữ. Bằng nhiều tư liệu khác nhau, được sưu tầm từ
nhiều nguồn khác nhau. Nhóm viết chương trình “Hệ thống quản lý bán hàng F&B” này
được phát triển dựa theo những yêu cầu thực tế và nhằm giúp cho việc quản lý dễ dàng.
Nhóm hy vọng chương trình “Hệ thống quản lý bán hàng F&B”, giống như tên gọi của
nó, sẽ trở thành một cẩm nang quản lý trong công việc. Dù đã rất cố gắng, nhóm cũng
khó có thể tránh khỏi những thiếu sót nhất định. Rất mong nhận được sự đóng góp ý
kiến của Thầy/Cô và các bạn, để chương trình ngày càng hoàn thiện hơn.
Cấu trúc bài báo cáo đồ án lập trình:
 Chương 1: Tổng quan đề tài.
 Chương 2: Thiết kế cơ sở dữ liệu.
 Chương 3: Phân tích thuật toán.
 Chương 4: Chương trình và kết quả.
 Chương 5: Kết luận và hướng phát triển.

Sinh viên thực hiện: Nguyễn Mạnh Đức 4


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
1. TỔNG QUAN ĐỀ TÀI
1.1. Đặc tả:
Một nhà hàng yêu cầu viết một phần mềm quản lý nhà hàng. Chương trình cho
phép quản lý bàn ăn, danh mục món ăn và nhân viên.
Chương trình cung cấp cho người dùng một tài khoản để đăng nhập vào hệ thống
để sử dụng hệ thống quản lý này. Với mỗi tài khoản đăng nhập, hệ thống sẽ xác định
người đăng nhập là nhân viên hay quản lý của nhà hàng để cung cấp quyền hạn tương
ứng cho từng tài khoản đăng nhập.
Khi khách hàng đặt món nhân viên phải kiểm tra lại tình trạng bàn ăn của nhà hàng,
nhân viên sẽ từ chối yêu cầu của khác hàng khi nhà hàng không còn bàn trống. Nếu còn
bàn trống nhân viên tiến hành mời khách chọn loại bàn và gọi món.
Thông tin mỗi bàn ăn gồm: mã bàn, trạng thái, mã hóa đơn. Ở nhà hàng khách hàng
có thể sử dụng tất cả các dịch vụ của nhà hàng cung cấp. Khi khách hàng yêu cầu thanh
toán nhân viên sẽ thanh toán tiền của bàn mà khách hàng yêu cầu (Nhân viên sẽ trực tiếp
thao tác với phần mềm và sau đó thanh toán; sau khi thanh toán, nhân viên thu hồi phiếu
giảm giá lại cho nhà hàng).
Đối với người quản lý, ngoài những quyền trên của nhân viên, người quản lý còn
có thể quy định cấu trúc nhà hàng: thêm mới, cập nhật hoặc xóa bàn và món ăn. Đồng
thời người quản lý còn thêm mới, cập nhật hoặc xóa thông tin nhân viên (Mã nhân viên,
Họ tên, Giới tính, Ngày sinh, Địa chỉ,…). Người quản lý còn có thể cấp tài khoản đăng
nhập cho nhân viên mới hoặc xóa tài khoản nhân viên (nếu nhân viên không còn làm
việc tại nhà hàng).

1.2. Yêu cầu:


Giúp nhân viên có thể dễ dàng chọn bàn phù hợp với khách hàng đang ngồi và thêm
món, ngoài ra còn giúp nhân viên có thể quản lý tốt bàn nào còn trống và đã có người
ngồi để có thể hướng dẫn khách hàng tìm được chỗ ngồi thuận tiện nhất. Dễ dàng tính
toán và xuất các hóa đơn cho khách hàng khi tính tiền. Để dễ dàng quản lý món và chọn
món cho khách hàng một cách nhanh chóng và chính xác.
Hỗ trợ cho việc cập nhật thông tin bàn, các món và tình trạng bàn một cách nhanh
nhất và chính xác nhất. Giúp cho việc tính toán tiền bàn trở nên dễ dàng.
Hệ thống và giao diện gần gũi giúp cho nhân viên có thể sử dụng thành thạo và tối ưu
được các chức năng có trong phần mềm.

2. THIẾT KẾ CƠ SỞ DỮ LIỆU
2.1. Cơ sở dữ liệu quan hệ:
- ThongTinNguoiDung(IDNguoiDung, TenNguoiDung, GioiTinh, Ngaysinh,
PhoneNumber);

Sinh viên thực hiện: Nguyễn Mạnh Đức 5


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao

TÊN TRƯỜNG KIỂU TRƯỜNG MÔ TẢ KHÓA CHÍNH


IDNguoiDung varchar(10) Mã người dùng 
TenNguoiDung nvarchar(100) Mật khẩu
GioiTinh bit Giới tính
Ngaysinh date Ngày sinh
PhoneNumber varchar(10) Số điện thoại
Bảng 1: ThongTinNguoiDung

TÊN TRƯỜNG KIỂU TRƯỜNG MÔ TẢ KHÓA CHÍNH


IDNguoiDung varchar(10) Mã người dùng 
TenDangNhap varchar(50) Tên đăng nhập
MatKhau varchar(50) Mật khẩu
ChucVu nvarchar(20) Chức vụ
- TaiKhoan(IDNguoiDung,TenDangNhap, MatKhau, ChucVu);
Bảng 2: LoaiTaiKhoan

-MonAn(IDMon, IDDanhMuc, TenMon, Gia);


TÊN TRƯỜNG KIỂU TRƯỜNG MÔ TẢ KHÓA CHÍNH
IDMon varchar(10) Mã món ăn 
IDDanhMuc varchar(10) Mã danh mục
TenMon nvarchar(50) Tên món
Gia Float Giá tiền
Bảng 3: MonAn

-DanhMuc(IDDanhMuc, TenDanhMuc);
TÊN TRƯỜNG KIỂU TRƯỜNG MÔ TẢ KHÓA CHÍNH
IDDanhMuc varchar(10) Mã danh mục 
TenDanhMuc nvarchar(50) Tên danh mục
Bảng 4: DanhMuc

-DatMon(IDBan, IDMon, SoLuong);

TÊN TRƯỜNG KIỂU TRƯỜNG MÔ TẢ KHÓA CHÍNH


IDBan varchar(10) Mã bàn 
IDMon varchar(10) Mã món
IDHoaDon varchar(10) Mã hóa đơn
SoLuong varchar(10) Số lượng
Bảng 5: DatMon

-Ban(IDBan, LoaiBan, TrangThai);

Sinh viên thực hiện: Nguyễn Mạnh Đức 6


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao

TÊN TRƯỜNG KIỂU TRƯỜNG MÔ TẢ KHÓA CHÍNH


IDBan varchar(10) Mã bàn 
LoaiBan nvarchar(50) Loại bàn
TrangThai bit Trạng thai
Bảng 6: Ban

-HoaDon(IDHoaDon, IDBan, NgayXuat, TongTien);

TÊN TRƯỜNG KIỂU TRƯỜNG MÔ TẢ KHÓA CHÍNH


IDHoaDon int Mã hóa đơn 
IDBan varchar(10) Mã bàn
NgayXuat date Ngày xuất
TongTien float Tổng tiền
Bảng 7: HoaDon

2.2. Lược đồ quan hệ (Hình 1):

Hình 1: Lược đồ quan hệ

3. THIẾT KẾ THUẬT TOÁN

3.1. Phát biểu bài toán:

- Input: Nhập danh sách thông tin tài khoản, thông tin người dùng, danh sách thông tin
bàn, danh mục đồ ăn, đồ uống và danh sách thông tin món ăn.

- Output: Thông tin hóa đơn đã thanh toán.


3.2. Phân tích thuật toán:
3.2.1. Giới thiệu thuật toán:
Sinh viên thực hiện: Nguyễn Mạnh Đức 7
Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
- Phần mềm thực hiện các thao tác:

o Đăng nhập, đăng xuất, chọn bàn, đặt món và xuất hóa đơn.

3.2.2. Thuật toán tìm kiếm tuyến tính (Linear Search):


- Khái niệm: Thuật toán tìm kiếm tuyến tính (linear search) hay còn gọi là thuật
toán tìm kiếm tuần tự (Sequential search) là một phương pháp tìm kiếm một
phần tử cho trước trong một danh sách bằng cách duyệt lần lượt từng phần tử của
danh sách đó cho đến lúc tìm thấy giá trị mong muốn hay đã duyệt qua toàn bộ
danh sách.

- Ý tưởng: Tìm kiếm từ đầu cho đến cuối mảng (hoặc ngược lại):

o Nếu tìm thấy trả vị trí của kết quả tìm kiếm.

o Nếu không tìm thấy thì trả về 1.

- Các bước thực hiện:


o Bước 1: Duyệt mảng từ vị trí đầu tiên i = 0

o Bước 2: Thực hiện so sánh arr[i] = 0 và temp. Nếu arr[i] = temp trả về vị trí i.

o Bước 3: Nếu duyệt hết mảng mà vẫn không tìm thấy thì trả về -1

- Đánh giá:
o Trong trường hợp tốt nhất, phần tử cần tìm nằm ở vị trí đầu tiên, thuật toán
sử dụng 1 lần so sánh.
o Trong trường hợp xấu nhất, phần tử cần tìm nằm ở vị trí cuối hoặc không
nằm trong mảng, thuật toán sử dụng n - 1 lần so sánh.
o Linear Search là một giải thuật đơn giản khi hiện thực và khá hiệu quả với
danh sách đủ nhỏ hoặc một danh sách chưa được sắp xếp.

4. CHƯƠNG TRÌNH VÀ KẾT QUẢ

4.1. Tổ chức chương trình:


4.1.1. Yêu cầu chức năng:
 Đăng nhập

 Chọn bàn order

 Gọi món và thanh toán cho từng bàn

Sinh viên thực hiện: Nguyễn Mạnh Đức 8


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
 Kiểm tra thông tin nhân viên

 Truy xuất hóa đơn


4.1.2. Chức năng sản phẩm:
 Quản lý order (chi tiết loại , trạng thái của các bàn)

 Quản lý bàn (thêm, xóa món ăn hoặc đồ uống vào danh sách món + thanh
toán)

 Chi tiết thông tin nhân viên

 Truy xuất hóa đơn theo bàn (hiển thị chi tiết ngày, bàn và chi tiết hóa
đơn).
4.1.3. Class, Object, Relation (Hình 2):

Hình 3: Class Diagram

4.1.4. Kết nối cơ sở dữ liệu:


Thực hiện kết nối với cơ sở dữ liệu và triển khai giao diện cho phần mềm thì ta
cần phải kết nối bằng cách sử dụng "QODBC".

Sinh viên thực hiện: Nguyễn Mạnh Đức 9


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
ODBC: là viết tắt của Open Database Connectivity và cung cấp một API mở để
truy cập DBMS, trong đó lớp ODBC hoạt động như một lớp chuyển tiếp. Đối với
máy khách và chính máy chủ sẽ phải triển khai giao diện cho lớp ODBC.
Tiếp theo, để mở kết nối tới cơ sở dữ liệu , bạn sẽ cần có quyền truy cập vào bộ
nhớ của máy và phải có quyền truy cập bộ nhớ dùng chung. Để có thể kết nối bộ
nhớ dùng chung, cần đặt lpc: trước chuỗi máy chủ . Kết nối bằng SQL Server
Native Client 11.0 được thực hiện bằng các bước sau:

Cuối cùng để hiển thị trong giao diện phần mềm đã kết nối dến cơ sở dữ liệu
hay chưa ta thực hiện: (trong đó noti_label là một label hay một textbox được tạo ở
giao diện Trang chủ)

4.2. Kết quả:

4.2.1. Giao diện chính:


 Mục đích: màn hình chính.
 Giao diện (hình 3):

Hình 3: Giao diện chính

Sinh viên thực hiện: Nguyễn Mạnh Đức 10


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
4.2.2. Giao diện đăng nhập:
 Mục đích: đăng nhập sử dụng hệ thống.
 Giao diện (hình 4):

Hình 4: Giao diện đăng nhập

4.2.3. Giao diện quản lý order:


 Mục đích: cho phép chọn bàn, hiển thị bàn còn trống(đã có khách).
 Giao diện (hình 5):

Sinh viên thực hiện: Nguyễn Mạnh Đức 11


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
Hình 5:Giao diện quản lý order

4.2.4. Giao diện quản lý thông tin nhân viên:


 Mục đích: hiển thị thông tin của từng nhân viên.
 Giao diện (hình 6) :

Hình 6: Giao diện quản lý thông tin nhân viên

4.2.5. Giao diện quản lý bàn:


 Mục đích: cho phép gọi món, xóa món, thanh toán.
 Giao diện (hình 7):

Sinh viên thực hiện: Nguyễn Mạnh Đức 12


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
Hình 7: Giao diện quản lý bàn

4.2.6. Giao diện quản lý truy xuất hóa đơn:


 Mục đích: hiển thị các hóa đơn đã được thanh toán.
 Giao diện (hình 8, hình 9):

Hình 8: Giao diện quản lý truy xuất hóa đơn

Sinh viên thực hiện: Nguyễn Mạnh Đức 13


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao
Hình 9: Giao diện hiển thị hóa đơn chi tiết
4.3. Nhận xét:
-Ưu điểm:
+ Chương trình thân thiện , thuận tiện cho người sử dụng.
+ Hỗ trợ nhiều chức năng thực tế của việc quản lý hệ thống bán hàng, hỗ trợ xuất
hóa đơn từng bàn ăn,truy xuất các hóa đơn .
-Nhược điểm:
+ Do thời gian còn hạn chế , nên một vài chức năng vẫn còn trên ý tưởng, chưa
được thực hiện.
+ Chương trình có độ thẩm mỹ tương đối.
+ Một số chức năng khi chạy còn chậm trễ, delay.
+ Chương trình có tính chuyên nghiệp chưa cao.
5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1. Kết luận:
Qua thời gian thực hiện, dưới sự hướng dẫn tận tình của Thầy Phan Thanh Tao, Cô
Đỗ Thị Tuyết Hoa cùng sự giúp đỡ của quý thầy cô trong khoa, nhóm em đã cố gắng hoàn
thành đồ án lập trình theo yêu cầu và thời gian quy định.
5.2. Hướng phát triển:

- Phát triển thêm các chức năng : tạo tài khoản, thêm món ăn, ghép bàn, thống kê
kho, v.v.
- Gia tăng tốc độ chạy của chương trinh,tối ưu các thuật toán tính toán.
- Từng bước đưa chương trình áp dùng vào thực tế tại các hệ thống bán hàng F&B
(FOOD & BEVERAGE SERVICE).

Sinh viên thực hiện: Nguyễn Mạnh Đức 14


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao

TÀI LIỆU THAM KHẢO


[1] Đặng Hoài Phương, Bài giảng lập trình hướng đối tượng, Đại học Đà Nẵng,
https://www.estudy247.com/slide-lap-trinh-huong-doi-tuong/.
[2] Trần Nguyên Phong, Bài giảng cơ sở dữ liệu,
https://drive.google.com/file/d/1KBNfuNDKZyc8SCCqgVpfbNL590y-GKxd/edit.
[3] Nguyễn Thanh Bình, Bài giảng phân tích & thiết kế giải thuật,
http://lms1.dut.udn.vn/course/view.php?id=4935.
[4] Qt Creator, Qt (Ngôn ngữ lập trình), https://doc.qt.io/archives/qt-4.8/how-to-
learn-qt.html.
[5] Wikipedia, C++ (Ngôn ngữ lập trình), https://vi.wikipedia.org/wiki/Cpp.

Sinh viên thực hiện: Nguyễn Mạnh Đức 15


Quách Minh Nhật
ThS. Đỗ Thị Tuyết Hoa
Đồ án lập trình ThS. Phan Thanh Tao

PHỤ LỤC

Source Code: (QT Creator)

http://bit.ly/2WNqcSl

Sinh viên thực hiện: Nguyễn Mạnh Đức 16


Quách Minh Nhật

You might also like