HỌC VIỆN NGÂN HÀNGKHOA HỆ THỐNG THÔNG TIN QUẢN LÝLẬP TRÌNH NÂNG CAO VỚI CBÁO CÁO BÀI TẬP LỚNĐỀ TÀI: Chương trình quản lý nhà hàngGiảng viên hướng dẫn: Lê Văn HùngNguyễn Thế Nghĩa: 24A404
Trang 1HỌC VIỆN NGÂN HÀNG
KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
LẬP TRÌNH NÂNG CAO VỚI CBÁO CÁO BÀI TẬP LỚNĐỀ TÀI: Chương trình quản lý nhà hàng
Giảng viên hướng dẫn: Lê Văn Hùng
Nguyễn Thế Nghĩa: 24A4042602Trương Ngọc Minh Khôi: 24A4040167Đinh Thành Nam: 24A4042599
Hà Nội-2022 Sinh viên thực hiện:
Trang 2HỌC VIỆN NGÂN HÀNG
KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
LẬP TRÌNH NÂNG CAO VỚI CBÁO CÁO BÀI TẬP LỚNĐỀ TÀI: Chương trình quản lý nhà hàng
Giảng viên hướng dẫn: Lê Văn Hùng
Sinh viên thực hiệnTỷ lệ đóng gópChữ kí
Trang 3LỜI NÓI ĐẦU
Bài tập lớp môn học “lập trình nâng cao với ngôn ngữ C” với đề tài “xây dựngchương trình quản lí nhà hàng” là kết của một khoá học và là sự nỗ lực cố gắng và
phối hợp của tất cả thành viên trong nhóm 14 chúng em, Nguyễn Thế Nghĩa (nhómtrưởng), Trương Ngọc Minh Khôi, Đinh Thành Nam Và bài báo cáo này là sự đánhdấu đồng thời cũng là sự lưu giữ cho những cố gắng của chúng em trong suốt thời gianqua Trong quá trình thực hiện và hoàn thành bài tập lớn này, chúng em đã nhận đượcsự hướng dẫn và giúp đỡ rất nhiệt tình của các thầy cô và các bạn trong Khoa HệThống Thông tin – Học Viện Ngân Hàng Chúng em xin gửi lời cảm ơn chân thành vàsâu sắc tới các thầy, các cô trong Khoa, những người đã tận tình giảng và truyền đạtnhững kiến thức cần thiết trong suốt hơn 1 năm học tại Học Viện Ngân Hàng để chúngem có đủ kiến thức, kinh nghiệm, cũng như sự tự tin để hoàn thành bài tập lớn này.
Đặc biệt, chúng xin cảm ơn thầy Nguyễn Văn Hùng, người đã tận tình, chỉ bảo,và hỗ trợ chúng em trong suốt quá trình thực hiện bài tập này Trong thời gian học tậpvà làm việc cùng thầy, chúng em không chỉ được học hỏi về kiến thức chuyên ngànhmà còn là về thái độ làm việc nghiêm túc, về cách thức hợp tác trong công việc đểhoàn thành công việc được hiệu quả nhất.
Mặc dù chúng em đã cố gắng hoàn thiện bài tập trong phạm vị và khả năng chophép của chúng, nhưng chắc chắn không tránh khỏi những thiếu sót Em xin kínhmong nhận được sự cảm thông cũng như sự góp ý của các thầy, các cô và các bạn.
Cuối cùng, em xin kính chúc các thầy cô mạnh khoẻ, luôn luôn là những ngườidẫn dắt các thế hệ sinh viên của Học Viện Ngân Hàng trưởng thành và trở thành mộtnhân tố quan trọng của thị trường lao động.
Em xin chân thành cảm ơn!
Trang 41.1.1 Công nghệ thông tin hiện nay 2
1.1.2 Bài toán quản lí của các nhà hàng hiện nay 2
1.2 Cơ cấu nhà hàng 3
1.3 Xác định bài toán 3
1.3.1 Thông tin đầu vào 3
1.3.2 Thông tin đầu ra 4
3.4 Chương trình con đóng vai trò giao diện 17
3.5 Chương trình con đóng vai trò chức năng 26
KẾT LUẬN 37
TÀI LIỆU THAM KHẢO 38
iv
Trang 5Chương 1: MÔ TẢ BÀI TOÁN1.1 Giới thiệu
1.1.1 Công nghệ thông tin hiện nay
Công nghệ nói chung đang phát triển nhanh hơn bao giờ hết trong suốt nhữngthâ „p kỉ gần đây, chúng ta đã được chứng kiến sự ra đời của rất nhiều thành tựu khoahọc quan trọng trong nhiều lĩnh vực Một trong những lĩnh vực để lại dấu ấn lớn nhấtcũng như là có tính ứng dụng cao nhất trong thực tế đời sống của con người đó là lĩnhvực công nghệ thông tin Công nghệ thông tin dường như đã trở thành một phần củacuộc sống mỗi người, được con người khai thác sử dụng và biến nó trở thành một côngcụ lao động quan trọng, giúp công việc đạt được hiệu quả và tính chính xác cao hơn.Phân tích thiết kế hệ thống thông tin quản lí là một phần quan trọng của lĩnh vực côngnghệ thông tin, nó giúp con người có thể quản lí cơ sở dữ liệu một cách đơn giản, dễdàng và nhanh chóng hơn, giúp tiết kiệm được rất nhiều thời gian và nhân lực Chúngem thực hiện đề tài “xây dựng chương trình quản lí nhà hàng” như là một bài tập lớnkết thúc khoá học và cũng là nhằm nhằm nâng cao thêm kiến thức và tầm hiểu biết củamình về lĩnh vực này, lĩnh vực công nghệ thông tin nói chung và bộ môn lập trìnhnâng cao với C nói riêng.
1.1.2 Bài toán quản lí của các nhà hàng hiện nay
Một thực trạng vẫn còn tồn tại ở nhiều nhà hàng, quán ăn là hầu hết các nghiệpvụ quản lí và thanh toán được thực hiện thủ công, dễ gây nhầm lẫn, chậm trễ, phiềntoái cho khách.
Trong những năm gần đây các chương trình quản lí của các cửa hàng, quáncafé, nhà hàng đã trở nên dần quen thuộc hơn với các doanh nghiệp, hộ kinh doanh,…Nhưng thực tế, số ít nhà hàng đang áp dụng, sử dụng công nghệ thông tin vào quản línhân lực, quản lí hoá đơn, quản lí kho, một cách hiệu quả.
Theo thực trạng nêu trên, các nhà hàng cần áp dụng công nghệ vào việc quản lí,thanh toán hoá đơn khách hàng Việc sử dụng một phần mềm chuyên nghiệp trong cácnghiệp vụ của nhà hàng sẽ làm tang khả năng quản lí, đồng thời nhanh chóng và chínhxác trong khâu thanh toán Vì vậy, nhóm chúng em đã quyết định thực hiện bài tập lớnvới đề tài “xây dựng chương trình quản lí nhà hàng” Tuy nhiên em mong muốn thầycô giáo nhìn nhận bài tập lớn này trên mặt ý tưởng và hình ảnh, bởi với lượng kiến
Trang 6thức hiện tại của chúng em là chưa đủ để xây dựng một chương trình hoàn chỉnh và cóthể áp dụng vào thực tế nghiệp vụ.
Nhân viên phục vụ: Có nhiệm vụ tiếp nhận đơn hàng (gọi món) và cácyêu cầu khác của khách hàng.
Nhân viên thu ngân: Có trách nhiệm in hoá đơn cho khách, lưu giữ hoáđơn và chỉ có quyền xem đối với các hoá đơn đã thực hiện trong ngày,tháng Từ đó lập ra các báo cáo, thống kê doanh thu theo ngày, tháng,…
1.3 Xác định bài toán1.3.1 Thông tin đầu vào
- Mật khẩu truy cập vào menu của nhân viên và quản lí- Thông tin các món ăn
- Thông tin nhân viên phục vụ- Thông tin nhân viên thu ngân
- Món ăn và số lượng món ăn khách hàng gọiviNhân viên
phục vụ
Bộ phận quảnlý
Nhân viên thungân
Trang 71.3.2 Thông tin đầu ra
- Thống kê doanh thu theo ngày, tháng
Trang 8Chương 2: PHÂN TÍCH BÀI TOÁN2.1 Chức năng
Từ cơ cấu, có thể xác định những chức năng chính mà chương trình thực hiện: Chức năng cho nhân viên phục vụ
o Đăng nhập vào hệ thống.
o Tạo mật khẩu đăng nhập mới hoặc nhập mật khẩu đã có.o Mở menu và thực hiện lưu giữ thông tin gọi món của khách hàng.o Chỉnh sửa thông tin nhân viên phục vụ (chỉ dành cho nhân viên
Chức năng cho thu ngâno Đăng nhập vào hệ thống.o Mở menu.
o Lưu hoá đơn.o Mở danh sách hoá đơn.
o Chỉnh sửa thông tin nhân viên phục vụ (chỉ dành cho nhân viênmới).
o Tra cứu nhân viên phục vụ.
o Theo dõi doanh thu theo ngày của nhà hàng. Chức năng cho quản lí
o Mở menu.
o Thêm món ăn (tên, số thứ tự, giá).o Tính doanh thu theo ngày.
viii
Trang 9Hiển thị danh sách nhân viên phục vụ.o Sửa thông tin nhân viên phục vụ (theo CMT).o Xoá nhân viên phục vụ (theo CMT).
o Tìm kiếm nhân viên phục vụ (theo CMT hoặc theo tên).o Hiển thị danh sách nhân viên thu ngân.
o Sửa thông tin nhân viên thu ngân (theo CMT).o Xoá nhân viên thu ngân (theo CMT).
o Tìm kiếm nhân viên thu ngân (theo CMT hoặc theo tên).
2.2 Xác định các chương trình con2.2.1 Các menu giao diện chương trình
void menumodau() : Giao diện mở đầuo Xoá màn hình
o Tạo giao diện chào hỏi
o Chạy chương trình con menuchinh() void menuchinh() : Giao diện chính
void menunvpv() : Giao diện nhân viên phục vụ (1)
Trang 10 void menunvtn() : Giao diện nhân viên thu ngân (1)o Xoá màn hình
o Tạo giao diện với 2 lựa chọn: đăng nhập, quay về giao diện chính.o Tạo một biến và sử dụng if else để tiếp tục nhập mật khẩu, nếuđúng thì tới menunvtn2() nếu không đúng in ra “đã nhập sai vàhãy nhập lại” sau đó quay lại đầu chương trình con menunvtn(). void menunvtn2() : Giao diện nhân viên thu ngân (2)
o Xoá màn hình
o Tạo giao diện với 5 lựa chọn: cập nhật thông tin nhân viên thungân mới, xem thực đơn, xem các hoá đơn, xem danh sách nhânviên phục vụ, thoát về giao diện chính
o Khai báo 1 biến để sử dụng cho switch case với 5 giá trị để mởtương ứng thongtinnvtn(), hienfoodlist(), doanhthutheongay(),hiennvpv(), menuchinh() Với bất kì giá trị khác với 5 giá trị trên,chạy lại từ đầu chương trình con.
void menuquanly() : Giao diện quản lí (1)o Xoá màn hình
o Tạo giao diện với 2 lựa chọn: đăng nhập, quay về giao diện chính.
x
Trang 11Tạo một biến và sử dụng if else để tiếp tục nhập mật khẩu, nếuđúng thì tới menuquanly2 () nếu không đúng in ra “đã nhập sai vàhãy nhập lại” sau đó quay lại đầu chương trình con menuquanly(). void menuquanly2() : Giao diện quản lí (2)
o Xoá màn hình
o Tạo giao diện với 12 lựa chọn: Hiện thực đơn, them món ăn, tínhdoanh thu theo ngày, hiển thị danh sách nhân viên phục vụ, sửathông tin nhân viên phục vụ, xoá nhân viên phục vụ, tìm kiếmnhân viên phục vụ, hiển thị danh sách nhân viên thu ngân, sửathông tin nhân viên thu ngân, xoá nhân viên thu ngân, tìm kiếmnhân viên thu ngân và quay về giao diện chính.
o Khai báo 1 biến để sử dụng cho switch case với 12 giá trị để mởtương ứng hienfoodlist() – quay về giao diện quản lí (2),themmonan() – quay về giao diện quản lí (2), doanhthutheongay()– quay về giao diện quản lí (2), hiennvpv() – quay về giao diệnquản lí (2), suathongtinnvpv(), xoanvpv(), timkiemnvpv(),hiennvtn(), suathongtinnvtp(), xoanvtn(), timkiemnvtn(),menuchinh() Với bất kì giá trị khác với 12 giá trị trên, chạy lại từđầu chương trình con.
Trang 12Mở 1 file “passwordnvpv.bin” để đọc và lưu mật khẩu, nếu filetrống thì yêu cầu tạo mật khẩu và tới chương trình contaopasssword().
o Tạo một biến kiểu char và nhập từ bàn phím biến đó, nếu trùngkhớp mật khẩu được lấy ra từ file thì tiếp tục tới chương trình consaukhidungpassword() còn nếu không thì thông báo nhập sai vàquay lại giao diện nhân viên phục vụ (1).
void taopassword() : Tạo mật khẩu hoặc thay đổi mật khẩu cũ.o Xoá màn hình.
o Mở 2 file “passwordnvpv.bin”, để đọc và lưu mật khẩu,“tempPassword.bin” là đóng vai trò là trung gian.
o Nếu “passwordnvpv.bin” trống thì yêu cầu nhập mật khẩu, bất kìmật khẩu nào được nhập sau đó sẽ được lưu vào file và hiển thị ramàn hình tạo mật khẩu thành công.
o Nếu “passwordnvpv.bin” không trống, thì yêu cầu nhập mật khẩucũ, nếu sai yêu cầu nhập lại và quay về giao diện nhân viên phụcvụ, còn nếu đúng thì hiển thị yêu cầu nhập mật khẩu mới và nhậptừ bàn phím mật khẩu mới
void saukhidungpassword() : Giao diện nhân viên phục vụ (2)o Xoá màn hình.
o Tạo giao diện với 3 lựa chọn: cập nhật thông tin nhân viên phụcvụ mới, gọi món, thoát về giao diện chính.
o Khai báo 1 biến để sử dụng cho switch case với 3 giá trị để mởtương ứng thongtinnvpv(), orders() - quay về đầu chương trìnhcon, menuchinh().Với bất kì giá trị khác với 3 giá trị trên, chạy lạitừ đầu chương trình con.
void thongtinnvpv() : Thêm thông tin nhân viên phục vụo Xoá màn hình.
xii
Trang 13Tạo 1 file để lưu thông tin nhân viên.
o Thực hiện in ra màn hình yêu cập nhập các thông tin liên quanđến nhân viên: chứng minh thư (phải có 12 số), năm sinh(1900<x<2023), số điện thoại (phải có 10 số).
o Sau đó lưu thông tin vào file rồi quay về giao diện nhân viên phụcvụ (2).
void orders() : Gọi móno Hiện menu đồ ăn.
o Thực hiện chọn món theo số thứ tự món.o Thực hiện chọn số lượng của món đó.o Xác nhận thông tin món ăn và số lượng.
o Xác nhận tiếp tục chọn món hoặc quay về giao diện nhân viênphục vụ (2).
o Tính tổng số tiền.
2.2.4 Nhân viên thu ngân
Void thongtinnvtn() : Thêm thông tin nhân viên thu ngâno Xoá màn hình.
o Tạo 1 file để lưu thông tin nhân viên.
o Thực hiện in ra màn hình yêu cập nhập các thông tin liên quanđến nhân viên: chứng minh thư (phải có 12 số), năm sinh(1900<x<2023), số điện thoại (phải có 10 số).
o Sau đó lưu thông tin vào file rồi quay về giao diện nhân thu ngân(2).
Void hienfoodlist() : Hiển thị menu đồ ăn
Trang 14Hình 3.4.5 Code giao diện nhân viên phục vụ (1)
xxiii
Trang 15Hình 3.4.6 Giao diện đăng nhập của nhân viên phục vụ
Trang 16Hình 3.4.7 Code giao diện nhân viên phục vụ (2)
Hình 3.4.8 Giao diện nhân viên phục vụ (2)
xxv
Trang 17Hình 3.4.9 Code giao diện nhân viên thu ngân (1)
Hình 3.4.10 Giao diện nhân viên thu ngân (1)
Trang 18Hình 3.4.10 Code giao diện nhân viên thu ngân (1)
Hình 3.4.12 Giao diện nhân viên thu ngân (2)
xxvii
Trang 19Hình 3.4.13 Code giao diện quản lí (1)
Hình 3.4.14 Giao diện quản lí (1)
Trang 20Hình 3.4.15 Code giao diện quản lí (2)
xxix
Trang 21Hình 3.4.12 Giao diện quản lí (2)
Trang 223.5 Chương trình con đóng vai trò chức năng
Hình 3.5.1 Chương trình con nhập mật khẩu của nhân viên phục vụ
xxxi
Trang 23Hình 3.5.2 Chương trình tạo mật khẩu hoặc thay đổi mật khẩu cũ
Trang 24Hình 3.5.3 Chương trình con thêm thông tin nhân viên phục vụ
xxxiii
Trang 25Hình 3.5.4 Chương trình con gọi món
Trang 26Hình 3.5.5 Chương trình con thêm thông tin nhân viên thu ngân
Hình 3.5.6 Chương trình con hiển thị thực đơn
xxxv
Trang 27Hình 3.5.7 Chương trình con hiển thị doanh thu theo ngày
Hình 3.5.8 Chương trình con hiển thị danh sách nhân viên phục vụ
Hình 3.5.8 Chương trình con hiển thị danh sách nhân viên thu ngân
Trang 28Hình 3.5.8 Chương trình con thêm món ăn vào menu hiện tại
xxxvii
Trang 29Hình 3.5.10 Chương trình con xoá nhân viên phục vụ
Trang 30Hình 3.5.11 Chương trình con xoá nhân viên thu ngân
xxxix
Trang 31Hình 3.5.12 Chươngtrình con sửa thông tin
nhân viên thu ngân
Tương tự đối với chương trình con sửa thông tin nhân viên phục vụ
Trang 32Hình 3.5.13 Chương trình con tìm kiếm nhân viên thu ngân
Tương tự đối với chương trình con tìm kiếm nhân viên phục vụ
xli
Trang 33KẾT LUẬN
Để hoàn thành bài tập lớn này, chúng em đã vận dụng các kiến thức đã học vềlập trình nâng cao với ngôn ngữ C để xây dựng chương trình quản lí nhà hàng Kết quảđạt được bao gồm:
Lý thuyết:
o Phát biểu và mô tả được nghiệp vụ bài toán.
o Phân tích thiết kế bài toán một cách đầy đủ theo đúng quy trình được họcbằng phương pháp hướng cấu trúc.
o Thiết kế được các giao diện thân thiện với người dùng. Chương trình :
o Sử dụng phần mềm dev C++ cùng các thư viện đi cùng của phần mềm.o Sử dụng ngôn ngữ C để xây dựng chương trình.
o Chương trình được cài đặt và thử nghiệm với một số dữ liệu chạy thôngsuốt và cho ra kết quả, đáp ứng được các nhu cầu đặt ra của bài toán.Kiểm soát được các lỗi ngoại lệ phát sinh do người dùng nhập vào khôngđúng Báo cáo các mẫu theo yêu cầu.
o Còn có các mặt hạn chế như chương trình chưa có tính thực tiễn cao,chưa xử lí được trọn vẹn các vấn đề nảy sinh trong quá trình xử lí, giaodiện chương trình còn rất thô sơ.
Vì thời gian có hạn và kinh nghiệm thực tế chưa có nhiều nên việc phân tíchthiết kế một bài toán về cơ bản đã thực hiện đối tượng đầy đủ, tuy nhiên chưa thể môtả đầy đủ mọi khía cạnh của vấn đề Xây dựng được hệ thống nhưng chỉ với các chứcnăng chính, cần thêm nhiều chức năng để chương trình hoạt động tốt và hoàn chỉnhhơn.
Nếu có điều kiện, sau này chúng em sẽ hoàn thiện chương trình được đầy đủhơn và dễ dàng hơn trong việc quản trị.
Trang 34TÀI LIỆU THAM KHẢO
xliii