LH Quảng cáo: lazijsc@gmail.com

Bài tập  /  Bài đang cần trả lời

Đề thi môn Tin học lớp 9. Giải bài 1 bằng c++ giúp em

Giải bài 1 bằng c++ giúp em
1 trả lời
Hỏi chi tiết
15
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Dựa vào đề bài, chúng ta cần viết chương trình C++ để tính giá tour cho một nhóm khách theo số lượng người trong nhóm. Chương trình sẽ đọc dữ liệu từ tệp `GIATOURS.INP` và ghi kết quả vào tệp `GIATOURS.OUT`.

Dưới đây là một mã C++ mẫu cho bài 1:

```cpp
#include
#include

using namespace std;

int main() {
// Khai báo biến
int n; // số lượng khách
double price_per_person; // giá tour

// Mở tệp đầu vào
ifstream infile("GIATOURS.INP");
// Mở tệp đầu ra
ofstream outfile("GIATOURS.OUT");

// Đọc số lượng khách từ tệp
infile >> n;

// Tính giá tour theo số lượng khách
if (n < 15) {
price_per_person = 1000; // giá cơ sở cho nhóm dưới 15 người
} else if (n >= 15 && n <= 25) {
price_per_person = 1000 * 0.9; // giảm 10%
} else if (n >= 26 && n <= 35) {
price_per_person = 1000 * 0.85; // giảm 15%
} else if (n >= 36 && n <= 45) {
price_per_person = 1000 * 0.8; // giảm 20%
} else {
price_per_person = 1000 * 0.75; // giảm 25%
}

// Ghi kết quả ra tệp
outfile << fixed;
outfile.precision(2); // định dạng 2 chữ số thập phân
outfile << price_per_person << endl;

// Đóng tệp
infile.close();
outfile.close();

return 0;
}
```

### Giải thích mã
1. **Khai báo biến**: Các biến được khai báo để lưu trữ số lượng khách và giá tour.
2. **Mở tệp**: Chương trình mở tệp để đọc dữ liệu vào (`GIATOURS.INP`) và mở một tệp khác để ghi kết quả ra (`GIATOURS.OUT`).
3. **Đọc số lượng khách**: Giá trị `n` được đọc từ tệp.
4. **Tính giá tour**: Dựa vào số lượng khách, giá sẽ được tính theo bảng giảm giá đã cho.
5. **Ghi kết quả**: Kết quả được ghi vào tệp với định dạng 2 chữ số thập phân.
6. **Đóng tệp**: Các tệp được đóng lại để đảm bảo không có lỗi xuất hiện.

Hãy chắc chắn rằng các tệp `GIATOURS.INP` và `GIATOURS.OUT` được tạo sẵn trong cùng thư mục với tệp mã C++.
0
0
Mộc Ngân
31 phút trước
+5đ tặng
#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:
  1. Đọ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).
  2. 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á.
  3. 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).
  4. 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:
  1. Dữ liệu đầu vào (ví dụ):
Sao chép mã
10 5 300
  1. Dữ liệu đầu ra (ví dụ):
yaml
Sao chép mã
4500.00
  1. 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.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Tin học Lớp 9 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư