效果图:
源码:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <chrono>
#include <thread> // 引入线程头文件
#ifdef _WIN32 // 确保只在Windows上包含Windows.h
#include <windows.h>
#endif
using namespace std;
int main() {
// 模拟一个跨国银行账户ID(仅为示例)
int id;
cout << "请输入你的跨国银行账户(仅为示例):" << endl;
cin >> id; // 注意:实际应用中不会直接存储用户输入的账户ID
// 模拟10次随机金额的转账
for (int i = 1; i <= 10; ++i) {
int money = std::rand() % 1701 + 800; // 生成800到2500之间的随机金额
auto now = std::chrono::system_clock::now();
auto time_t = std::chrono::system_clock::to_time_t(now);
std::cout << std::put_time(std::localtime(&time_t), "%Y-%m-%d %H:%M:%S") << " 转入 #" << i << ": ";
std::cout << "已成功转入" << money << "元!" << std::endl;
// 使用跨平台的线程暂停
std::this_thread::sleep_for(std::chrono::milliseconds(rand() % 300 + 200));
}
// 弹出警告消息(跨平台)
#ifdef _WIN32 // 如果在Windows上,使用MessageBox
HWND hWnd = GetConsoleWindow();
SetForegroundWindow(hWnd);
MessageBox(NULL, "注意:您可能在进行非法跨境洗钱。请立即停止!!!!", "违法警示", NULL);
#else // 如果在非Windows平台上,使用cout
cout << "\n注意:您可能在进行非法跨境洗钱。请立即停止!!" << endl;
#endif
return 0;
}
代码解释
-
包含头文件:您包含了多个头文件,用于输入输出、随机数生成、时间处理、窗口操作等。
-
全局变量:
id
和total
被声明,但total
并未在代码中使用。 -
随机数种子:您使用当前时间作为随机数生成器的种子。
-
输入账户:程序提示用户输入一个“跨国银行账户”,但实际上这个账户号在后续的代码中并未被使用。
-
转账模拟:
- 程序模拟了10次转账,每次转入的金额在800到2500元之间(
std::rand() % 1701 + 800
)。 - 转账前,程序输出了当前的日期和时间。
- 每次转账后,程序都会暂停一段时间(使用
Sleep
函数)。
- 程序模拟了10次转账,每次转入的金额在800到2500元之间(
-
窗口操作:
- 程序最后尝试将控制台窗口设置为前台窗口。
- 接着,它弹出一个警告消息框,表示检测到了“非法跨境洗钱”。
警告:
该程序只用于模拟和警示切勿用于非法用途!!!