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
MÔ TẢ BÀI TOÁN
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ững thâ „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 khoa họ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ất cũ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ĩnh vực công nghệ thông tin Công nghệ thông tin dường như đã trở thành một phần của cuộ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ông cụ 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ông nghệ 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úng em 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ớn kế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ủa mì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ình nâ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ệp vụ 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ền toá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án café, 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ác nghiệ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ính xá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ớn vớ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ầy cô 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 thứ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ụ.
Cơ cấu nhà hàng
Cơ cấu tổ chức nhà hàng:
Hình 1.2.1 Cơ cấu tổ chức nhà hàng
Bộ phận quản lí: Có nhiệm vụ quản lí trực tiếp nhà hàng, mọi vấn đề của nhà hàng đều thông qua bộ phận quản lí và bộ phận quản lí có quyền quyết định, sửa đổi tất cả mọi thông tin trong nhà hàng.
Nhân viên phục vụ: Có nhiệm vụ tiếp nhận đơn hàng (gọi món) và các yê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,…
Xác định bài toán
- 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ọi vi
- Thống kê doanh thu theo ngày, tháng
Những công nghệ, kĩ thuật, giải pháp sử dụng:
Phần mềm hỗ trợ lập trình: Microsoft Visual Studio, Dev C++.Phần mềm hỗ trợ thực hiện báo cáo: Microsoft Word, Microsoft PowerPoint.
PHÂN TÍCH BÀI TOÁN
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 mới).
Chức năng cho thu ngân o Đă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ên mớ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 o Hiể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).
Xác định các chương trình con
2.2.1 Các menu giao diện chương trình
void menumodau() : Giao diện mở đầu o 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 o Xoá màn hình o Tạo giao diện với 4 lựa chọn: nhân viên phục vụ, nhân viên thu ngân, quản lí và thoát. o Khai báo 1 biến để sử dụng cho switch case với 4 giá trị để mở tương ứng menunvpv(), menunvtn(), menuquanli(), thoát chương trình Với bất kì giá trị khác với 4 giá trị trên, chạy lại từ đầu chương trình con.
void menunvpv() : Giao diện nhân viên phục vụ (1) o Xoá màn hình o Tạo giao diện với 3 lựa chọn: đăng nhập, tạo mật khẩu, quay 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 passwordnvpv (), taopassword (), menuchinh() Với bất kì giá trị khác với 3 giá trị trên, chạy lại từ đầu chương trình con.
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 thu ngân mới, xem thực đơn, xem các hoá đơn, xem danh sách nhân viê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 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 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ính doanh thu theo ngày, hiển thị danh sách nhân viên phục vụ, sửa thông tin nhân viên phục vụ, xoá nhân viên phục vụ, tìm kiếm nhân viên phục vụ, hiển thị danh sách nhân viên thu ngân, sửa thông tin nhân viên thu ngân, xoá nhân viên thu ngân, tìm kiếm nhâ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ện quả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.
2.2.2 Các chương trình con khác
void cls() : Xoá màn hình.
void insertfirst(int data, char foodname[25], float price) : thêm các món ăn vào menu.
void insertend(int data, char foodname[25], float price) : thêm các món ăn vào menu.
void passwordnvpv() : Chương trình con nhập mật khẩu của nhân viên phục vụ. o Xoá màn hình. o Mở 1 file “passwordnvpv.bin” để đọc và lưu mật khẩu, nếu file trống thì yêu cầu tạo mật khẩu và tới chương trình con taopasssword(). o Tạo một biến kiểu char và nhập từ bàn phím biến đó, nếu trùng khớp mật khẩu được lấy ra từ file thì tiếp tục tới chương trình con saukhidungpassword() 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ị ra mà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ẩu cũ, nếu sai yêu cầu nhập lại và quay về giao diện nhân viên phục vụ, còn nếu đúng thì hiển thị yêu cầu nhập mật khẩu mới và nhập từ 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ục vụ 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ình con, menuchinh().Với bất kì giá trị khác với 3 giá trị trên, chạy lại từ đầ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 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