Chào mừng bạn đến với chương trình quản lý khách hàng của khách sạn. Chương trình này cho phép bạn nhập thông tin của n khách hàng từ bàn phím, bao gồm mã khách hàng, họ và tên, giới tính, năm sinh, số ngày ở và giá phòng. Bạn cũng có thể thực hiện tìm kiếm khách hàng, tính trung bình cộng và sắp xếp danh sách khách hàng theo thứ tự tăng dần về năm sinh.
Bài toán quản lý khách hàng c++
Bài 35 (TH-CSLT-07): Nhập danh sách n khách hàng từ bàn phím. Mỗi khách hàng có các thông tin sau: Mã khách hàng, Họ và tên, Giới tính, Năm sinh, Số ngày ở, Giá phòng.
Viết các hàm thực hiện các yêu cầu sau đây:
- Hiển thị danh sách khách hàng.
- Hiển thị thông tin khách hàng có thời gian lưu trú lâu nhất.
- Tìm khách hàng theo mã khách hàng.
- Tính trung bình cộng thành tiền mà khách hàng phải trả, với thành tiền = số ngày ở * giá phòng.
- Sắp xếp danh sách khách hàng theo thứ tự tăng dần về năm sinh.
Ý tưởng bài toán
Hiển thị thông tin khách hàng có thời gian lưu trú lâu nhất
- Khởi tạo biến
ngayo
bằng số ngày ở của khách hàng đầu tiên (ds[0].soNgayO
). - Duyệt qua từng khách hàng trong mảng
ds
để tìm số ngày ở lớn nhất, bằng cách so sánhds[i].soNgayO
vớingayo
. - Nếu
ds[i].soNgayO
lớn hơnngayo
, thì gánngayo = ds[i].soNgayO
. - Duyệt qua từng khách hàng trong mảng
ds
, nếuds[i].soNgayO
bằng vớingayo
, thì gọi hàmxuatDS(ds+i,1)
để in ra thông tin của khách hàng đó.
Tìm khách hàng theo mã khách hàng
- Nhập vào mã khách hàng cần tìm kiếm.
- Dùng vòng lặp để so sánh mã khách hàng (
ds[i].maKH
) với mã khách hàng cần tìm kiếm (makh
). - Nếu tìm thấy, gán biến
redflag = 1
. - Kiểm tra giá trị của biến
redflag
. Nếuredflag = 1
, thì duyệt qua từng khách hàng trong mảngds
, nếuds[i].maKH
bằng vớimakh
, thì gọi hàmxuatDS(ds+i,1)
để in ra thông tin của khách hàng đó. Nếuredflag = 0
, tức là không tìm thấy khách hàng cần tìm kiếm, thì thông báo không tìm thấy khách hàng.
Tính trung bình cộng thành tiền mà khách hàng phải trả
- Khởi tạo biến
avg
vàsum
với giá trị ban đầu là 0. - Vòng lặp được sử dụng để tính tổng số tiền thanh toán của tất cả khách hàng trong mảng
ds
, bằng cách nhân giá phòng (ds[i].giaPhong
) với số ngày ở (ds[i].soNgayO
) của từng khách hàng và cộng dồn vào biếnsum
. - Biến
avg
được tính bằng cách chia tổng số tiền thanh toán (sum
) cho số lượng khách hàng trong mảngds
(n
).
Mã nguồn quản lý khách hàng c++
#include #include using namespace std; struct kh{ int maKH, namSinh, soNgayO; string hoTen; char gioiTInh[3]; float giaPhong; }; void nhapDS(kh ds[], int &n){ cout<<"Nhap so luong khach hang n: "; cin>>n; for(int i=0;i>ds[i].maKH; cin.ignore(); cout<<"Nhap ho ten khach hang: "; getline(cin, ds[i].hoTen); cout<<"Nhap gioi tinh: "; cin>>ds[i].gioiTInh; cin.ignore(); cout<<"Nhap nam sinh: "; cin>>ds[i].namSinh; cout<<"Nhap so ngay o: "; cin>>ds[i].soNgayO; cout<<"Nhap gia phong: "; cin>>ds[i].giaPhong; cout<ngayo){ ngayo=ds[i].soNgayO; } } for(int i=0;i>makh; for(int i=0;i>chon; switch(chon){ case 1: { nhapDS(ds,n); break; } case 2: { xuatDS(ds,n); break; } case 3: { khachHangolaunhat(ds,n); break; } case 4: { timKH(ds, n); break; } case 5: { thanhtien(ds,n); break; } case 6: { sapxep(ds,n); break; } } }while(chon!=0); return 0; }
Kết quả
Chúng ta nhập danh sách khách hàng từ bàn phím
Chúng ta hiển thị danh sách khách hàng
Chúng ta hiển thị thông tin khách hàng có thời gian lưu trú lâu nhất
Chúng ta tìm khách hàng theo mã khách hàng
Chúng ta sắp xếp danh sách khách hàng theo thứ tự tăng dần về năm sinh
Trong bài viết này, chúng ta đã triển khai thành công chương trình quản lý danh sách khách hàng cho một khách sạn. Chương trình cho phép nhập thông tin của n khách hàng từ bàn phím, bao gồm mã khách hàng, họ và tên, giới tính, năm sinh, số ngày ở và giá phòng.
Sau khi nhập danh sách khách hàng, chúng ta đã thực hiện một loạt các chức năng như hiển thị danh sách khách hàng, tìm khách hàng có thời gian lưu trú lâu nhất, tìm khách hàng theo mã khách hàng, tính trung bình cộng thành tiền mà khách hàng phải trả và sắp xếp danh sách khách hàng theo thứ tự tăng dần về năm sinh. Cảm ơn bạn đã tham khảo trên ttnguyen.net