废话不多说,看源码:
#include <iostream>
#include<ctime>
#include<cstdlib>
//拼多多提现套路
int userinput;
void activity();
int Free_amount;
int main() {
srand(time(nullptr));
std::cout << "按1开始抽奖" << std::endl;
std::cin >> userinput;
if (userinput == 1) {
std::cout << "恭喜你抽中头等免单券!!" << std::endl;
std::cout << "按1继续:" << std::endl;
std::cin >> userinput;
if (userinput == 1) {
activity();
}
}
return 0;
}
void activity() {
std::cout << "你现在需要抽一个免单金额" << std::endl;
std::cout << "按1开始抽" << std::endl;
std::cin >> userinput;
if (userinput == 1) {
Free_amount = rand()%81+20;
std::cout <<"你抽中了免单金额:" <<Free_amount<< std::endl;
std::cout <<"免单有门槛,要先买一件" << std::endl;
//顾客思考·····觉得挺值反正会返,然后给钱
std::cout <<"你当前获得返现金额3元" << std::endl;
//顾客思考·····不是返全部吗?
std::cout <<"你的购买金额会分三次返给你" << std::endl;
std::cout <<"你还要买两件才能返全部" << std::endl;
std::cout <<"你目前还有"<<Free_amount-3<<"元可用(挑便宜点你就赚了!!!)" << std::endl;
std::cin>>userinput;
//这里假如用户输入的数字是挑的物品价格,假如是50
std::cout <<"现在你还要再垫"<<Free_amount-3-userinput <<"元凑满"<<Free_amount<< std::endl;
std::cout <<"恭喜你获得全额返现" <<Free_amount<<"元洗车券" <<std::endl;
}
}
这个程序已经很好地模拟了拼多多等电商平台的一些抽奖和返现的套路。不过,为了让程序更加完整和贴近实际体验,我们可以增加一些额外的功能和改进现有的代码。以下是一些建议:
- 增加用户输入验证:确保用户输入的是有效的整数或符合预期的输入。
- 细化用户交互:提供更多的信息或选项,让用户感觉更真实。
- 使用循环:如果用户在某个环节需要多次尝试或选择,可以使用循环来处理。
- 优化输出信息:使输出信息更加友好和易于理解。
下面是修改后的代码示例:
#include <iostream>
#include <ctime>
#include <cstdlib>
int userinput;
int Free_amount;
void activity();
int main() {
srand(time(nullptr));
std::cout << "按1开始抽奖" << std::endl;
std::cin >> userinput;
while (std::cin.fail() || userinput != 1) { // 检查输入是否为整数且为1
std::cin.clear(); // 清除错误标志
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 忽略输入缓冲区中的剩余内容
std::cout << "输入错误,请按1开始抽奖:" << std::endl;
std::cin >> userinput;
}
std::cout << "恭喜你抽中头等免单券!!" << std::endl;
std::cout << "按1继续参与活动:" << std::endl;
std::cin >> userinput;
if (userinput == 1) {
activity();
}
return 0;
}
void activity() {
std::cout << "你现在需要抽一个免单金额" << std::endl;
std::cout << "按1开始抽" << std::endl;
std::cin >> userinput;
if (userinput == 1) {
Free_amount = rand() % 81 + 20;
std::cout << "你抽中了免单金额:" << Free_amount << std::endl;
std::cout << "免单有门槛,要先买一件商品" << std::endl;
// 假设用户决定继续
std::cout << "你当前获得返现金额3元(作为示例)" << std::endl;
std::cout << "你的购买金额会分三次返给你" << std::endl;
std::cout << "你还需要购买两件商品才能返全部金额" << std::endl;
std::cout << "请选择你要购买的商品金额(输入整数):" << std::endl;
std::cin >> userinput;
while (std::cin.fail() || userinput <= 0 || userinput > Free_amount - 3) { // 检查输入是否为有效金额
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::cout << "输入错误,请输入一个有效的商品金额(小于等于" << Free_amount - 3 << "):" << std::endl;
std::cin >> userinput;
}
std::cout << "现在你还要再垫" << Free_amount - 3 - userinput << "元凑满" << Free_amount << "元" << std::endl;
std::cout << "恭喜你获得全额返现" << Free_amount << "元洗车券(或其他等价值券)" << std::endl;
}
}
在这个修改版本中,我增加了对用户输入的验证,确保用户输入的是有效的整数,并且在购买商品时输入的金额是合理的。同时,我也优化了一些输出信息,使其更加清晰易懂。
简单来说,程序首先让用户按1开始抽奖,然后告诉你中了头等免单券,但别急,这只是开始。接下来,让你按1开始抽免单金额,这时候程序会随机给你一个金额,但注意,免单可不是那么容易的。
程序会告诉你免单有门槛,要先买一件,然后只给你返现一点点,再告诉你返现是分批次的,还要你买更多东西才能返完全部。最后,即使你买了东西,返给你的可能也不是现金,而是各种优惠券或者洗车券之类的。
这就是拼多多的经典套路啊,先给你一点甜头,然后让你一步步往里陷,最后发现其实并没有占到什么便宜。不过,你这程序写得挺有意思的,让人在娱乐的同时也能反思一下这些营销手段背后的逻辑。