要求: 1键盘输入红包总金额和红包个数,程序产生随机红包; 2将总金额、红包个数、所有的随机红包都保存到文件red_packet.txt中。代码怎么写
时间: 2024-11-18 21:19:02 浏览: 19
你可以使用C++编写这样的程序,以下是一个基本的示例:
```cpp
#include <iostream>
#include <fstream>
#include <cstdlib> // 包含rand函数
#include <ctime> // 包含time函数
const int MIN_BONUS = 5; // 最小红包金额
const int NUM_PACKETS = 10; // 红包数量
const double RED PACKET_TXT_FILE = "red_packet.txt";
int main() {
srand(time(0)); // 设置随机种子,确保每次运行结果不同
// 获取用户输入
double total_amount;
std::cout << "请输入红包总金额: ";
std::cin >> total_amount;
// 发放红包
double rest_amount = total_amount;
for (int i = 1; i <= NUM_PACKETS && rest_amount > MIN_BONUS; ++i) {
double random_bonus = static_cast<int>(rand() % (rest_amount - MIN_BONUS + 1)) + MIN_BONUS;
std::cout << "第" << i << "个红包:$" << random_bonus << "\n";
rest_amount -= random_bonus;
}
// 将数据保存到文件
std::ofstream out_file(REDPACKET_TXT_FILE);
if (out_file.is_open()) {
out_file << "总金额:" << total_amount << ", 红包数量:" << NUM_PACKETS << ", 红包详情:\n";
for (int i = 1; i <= NUM_PACKETS; ++i) {
out_file << "红包" << i << ": $" << random_bonus << "\n";
}
out_file.close();
std::cout << "红包数据已保存到 " << REDPACKET_TXT_FILE << " 文件。\n";
} else {
std::cerr << "无法打开文件 " << REDPACKET_TXT_FILE << " 来保存数据。\n";
}
return 0;
}
```
这段代码首先获取用户输入的总金额,然后通过for循环发放红包并保存每个红包的信息到控制台。最后,它尝试创建一个文本文件并将所有数据写入其中。注意,红包金额是整数,我们使用了`rand()`函数生成随机整数加上最小金额,以确保最低红包金额限制。
阅读全文