#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
// Hàm tính tổng tiền sau khi giảm giá
double tinh_tong_tien(int n, int m, int k) {
int t + m; // Tổng số người trong đoàn
double giam_gia = 0;
// Xác định mức giảm giá theo số lượng người
if (tong_so_nguoi < 15) {
giam_gia = 0.05; // Giảm 5%
} else if (tong_so_nguoi <= 25) {
giam_gia = 0.10; // Giảm 10%
} else if (tong_so_nguoi <= 35) {
giam_gia = 0.15; // Giảm 15%
} else if (tong_so_nguoi <= 45) {
giam_gia = 0.20; // Giảm 20%
} else {
giam_gia = 0.00; // Không giảm giá
}
// Tính tổng tiền trước khi giảm giá
double t * k;
// Áp dụng giảm giá
double t * (1 - giam_gia);
// Trả về tổng tiền làm tròn đến 2 chữ số thập phân
return tong_tien_sau_giam;
}
int main() {
int n, m, k;
// Đọc dữ liệu từ file GIATOURS.INP
ifstream input("GIATOURS.INP");
// Dòng 1: số người lớn n và trẻ em m
input >> n >> m;
// Dòng 2: giá tour k
input >> k;
// Tính tổng tiền
double result = tinh_tong_tien(n, m, k);
// Ghi kết quả vào file GIATOURS.OUT
ofstream output("GIATOURS.OUT");
output << fixed << setprecision(2) << result << endl;
// Đóng file
input.close();
output.close();
return 0;
}
Giải thích:
Đọc dữ liệu:
- Chúng ta sử dụng ifstream để đọc dữ liệu từ tệp GIATOURS.INP. Tệp này chứa số lượng người lớn (n), trẻ em (m), và giá tour ban đầu (k).
Tính tổng tiền:
- Hàm tinh_tong_tien tính tổng số người trong đoàn, sau đó xác định mức giảm giá dựa trên số lượng người trong đoàn. Tiếp theo, tính tổng tiền theo giá ban đầu và áp dụng giảm giá.
Làm tròn kết quả:
- Kết quả tính toán được làm tròn đến 2 chữ số thập phân sử dụng setprecision(2).
Ghi kết quả:
- Kết quả được ghi vào tệp GIATOURS.OUT với định dạng làm tròn đến 2 chữ số thập phân.
Cách sử dụng:
- Dữ liệu đầu vào (ví dụ):
Sao chép mã
10 5 300
- Dữ liệu đầu ra (ví dụ):
yaml
Sao chép mã
4500.00
- Lưu ý: Đảm bảo rằng bạn có các tệp GIATOURS.INP và GIATOURS.OUT trong thư mục làm việc khi chạy chương trình.