#include #include #include #include #include #include #include #include Fl_Input* input_name; Fl_Input* input_phone; Fl_Input* input_accountpassword; Fl_Input* input_cin_accountpassword; Fl_Box *result_box; Fl_Button *a; Fl_Button *b; Fl_Button *c; Fl_Button *d; Fl_Button *e; Fl_Button *f; Fl_Button *g; Fl_Button *h; Fl_Button *i; Fl_Button *j; Fl_Button *k; Fl_Button *l; Fl_Button *m; Fl_Button *n; Fl_Button *o; Fl_Button *p; Fl_Button *q; Fl_Button *r; std::string prize ; std::string name; std::string phone; Fl_Button *back_menu; Fl_Button *show_prize; Fl_Button *repeat_cin_password; std::string accountpassword; std::string cin_password; void show_all_buttons(); void hide_all_buttons(); void repeat_cin_password_callback(Fl_Widget *widget, void *data); void show_prize_callback(Fl_Widget *widget, void *data); int state; int chance; int aa; int AA; void back_menu_callback(Fl_Widget *widget, void *data) { result_box->label(""); back_menu->hide(); input_name->hide(); input_phone->hide(); input_accountpassword->hide(); show_prize->show(); show_all_buttons(); } void hide_all_buttons() { a->hide(); b->hide(); c->hide(); d->hide(); e->hide(); f->hide(); g->hide(); h->hide(); i->hide(); j->hide(); k->hide(); l->hide(); m->hide(); n->hide(); o->hide(); p->hide(); q->hide(); r->hide(); } void show_all_buttons() { a->show(); b->show(); c->show(); d->show(); e->show(); f->show(); g->show(); h->show(); i->show(); j->show(); k->show(); l->show(); m->show(); n->show(); o->show(); p->show(); q->show(); r->show(); } void repeat_cin_password_callback(Fl_Widget *widget, void *data) { show_prize_callback(widget, data); } const char* no_prize_click_back_menu = "您还没有中奖,请先抽奖。请点击回菜单。"; const char* correct_password_click_back_menu = "密码正确,请点击返回菜单领取奖品"; std::string prize_string; std::string prize_wrong_password_string; void show_prize_callback(Fl_Widget *widget, void *data) { hide_all_buttons(); if(state == 0){ result_box->label(no_prize_click_back_menu); back_menu->show(); } else { prize_string = "您中的奖有:" + prize + "\n输入密码后可领取奖品"; result_box->label(prize_string.c_str()); input_cin_accountpassword->show(); if(cin_password == accountpassword) { result_box->label("密码正确,请点击回菜单领取奖品"); back_menu->show(); state = 0; prize = ""; back_menu->show(); } else { chance-=1; prize_wrong_password_string = "密码错误,请重新输入, 或者返回菜单,您还有" + std::to_string(chance) +"次机会"; back_menu->show(); repeat_cin_password->show(); } } } void a_callback(Fl_Widget *widget, void *data) { AA = rand() % 20; aa = rand() % 18; hide_all_buttons(); show_prize->hide(); if(aa == 1) { if(AA < 10) { prize = "五等奖, VIP一天体验卡。为了让您更方便的领奖,请填写您的个人信息。\n填写完信息后请点击回菜单"; result_box->label(prize.c_str()); input_name->show(); input_phone->show(); input_accountpassword->show(); input_name->value(name.c_str()); input_phone->value(phone.c_str()); input_accountpassword->value(accountpassword.c_str()); back_menu->show(); state = 5; } else if(AA < 15) { prize = "四等奖, VIP一周体验卡。为了让您更方便的领奖,请填写您的个人信息。\n填写完信息后请点击回菜单"; result_box->label(prize.c_str()); input_name->show(); input_phone->show(); input_accountpassword->show(); input_name->value(name.c_str()); input_phone->value(phone.c_str()); input_accountpassword->value(accountpassword.c_str()); back_menu->show(); state = 4; } else if(AA < 17) { prize = "三等奖, VIP一个月体验卡。为了让您更方便的领奖,请填写您的个人信息。\n填写完信息后请点击回菜单"; result_box->label(prize.c_str()); input_name->show(); input_phone->show(); input_accountpassword->show(); input_name->value(name.c_str()); input_phone->value(phone.c_str()); input_accountpassword->value(accountpassword.c_str()); back_menu->show(); state = 3; } else if(AA < 19) { prize = "二等奖, VIP三个月体验卡。为了让您更方便的领奖,请填写您的个人信息。\n填写完信息后请点击回菜单"; result_box->label(prize.c_str()); input_name->show(); input_phone->show(); input_accountpassword->show(); input_name->value(name.c_str()); input_phone->value(phone.c_str()); input_accountpassword->value(accountpassword.c_str()); back_menu->show(); state = 2; } else { prize = "一等奖, VIP一年体验卡。为了让您更方便的领奖,请填写您的个人信息。\n填写完信息后请点击回菜单"; result_box->label(prize.c_str()); input_name->show(); input_phone->show(); input_accountpassword->show(); input_name->value(name.c_str()); input_phone->value(phone.c_str()); const char* jj = accountpassword.c_str(); input_accountpassword->value(jj); back_menu->show(); state = 1; } } else { prize = "谢谢惠顾"; result_box->label(prize.c_str()); back_menu->show(); show_prize->show(); } } void b_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void c_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void d_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void e_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void f_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void g_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void h_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void i_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void j_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void k_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void l_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void m_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void n_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void o_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void p_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void q_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } void r_callback(Fl_Widget *widget, void *data) { a_callback(widget, data); } int main() { state =0; cin_password = 1; chance = 3; std::srand(std::time(nullptr)); Fl_Window *window = new Fl_Window(1024, 768, "抽奖"); a = new Fl_Button(150, 30, 140, 50, "抽奖"); a->labelsize(18); a->callback(a_callback); b = new Fl_Button(350, 30, 140, 50, "抽奖"); b->labelsize(18); b->callback(b_callback); c = new Fl_Button(550, 30, 140, 50, "抽奖"); c->labelsize(18); c->callback(c_callback); d = new Fl_Button(150, 100, 140, 50, "抽奖"); d->labelsize(18); d->callback(d_callback); e = new Fl_Button(350, 100, 140, 50, "抽奖"); e->labelsize(18); e->callback(e_callback); f = new Fl_Button(550, 100, 140, 50, "抽奖"); f->labelsize(18); f->callback(f_callback); g = new Fl_Button(150, 170, 140, 50, "抽奖"); g->labelsize(18); g->callback(g_callback); h = new Fl_Button(350, 170, 140, 50, "抽奖"); h->labelsize(18); h->callback(h_callback); i = new Fl_Button(550, 170, 140, 50, "抽奖"); i->labelsize(18); i->callback(i_callback); j = new Fl_Button(150, 240, 140, 50, "抽奖"); j->labelsize(18); j->callback(j_callback); k = new Fl_Button(350, 240, 140, 50, "抽奖"); k->labelsize(18); k->callback(k_callback); l = new Fl_Button(550, 240, 140, 50, "抽奖"); l->labelsize(18); l->callback(g_callback); m = new Fl_Button(150, 310, 140, 50, "抽奖"); m->labelsize(18); m->callback(m_callback); n = new Fl_Button(350, 310, 140, 50, "抽奖"); n->labelsize(18); n->callback(n_callback); o = new Fl_Button(550, 310, 140, 50, "抽奖"); o->labelsize(18); o->callback(o_callback); p = new Fl_Button(150, 380, 140, 50, "抽奖"); p->labelsize(18); p->callback(p_callback); q = new Fl_Button(350, 380, 140, 50, "抽奖"); q->labelsize(18); q->callback(q_callback); r = new Fl_Button(550, 380, 140, 50, "抽奖"); r->labelsize(18); r->callback(r_callback); repeat_cin_password = new Fl_Button(200, 420, 140, 50, "重新输入密码"); repeat_cin_password->labelsize(18); repeat_cin_password->callback(repeat_cin_password_callback); repeat_cin_password->hide(); back_menu = new Fl_Button(200, 520, 140, 50, "返回菜单"); back_menu->labelsize(18); back_menu->callback(back_menu_callback); back_menu->hide(); show_prize = new Fl_Button(400, 520, 140, 50, "显示奖品"); show_prize->labelsize(18); show_prize->callback(show_prize_callback); input_name = new Fl_Input(200, 130, 200, 30, "姓名"); input_name->labelsize(18); input_name->hide(); input_phone = new Fl_Input(200, 170, 200, 30, "电话"); input_phone->labelsize(18); input_phone->hide(); input_accountpassword = new Fl_Input(200, 210, 200, 30, "密码"); input_accountpassword->labelsize(18); input_accountpassword->hide(); input_cin_accountpassword = new Fl_Input(200, 210, 200, 30, "验证密码。"); input_cin_accountpassword->labelsize(18); input_cin_accountpassword->hide(); result_box = new Fl_Box(50, 130, 900, 450, ""); result_box->labelsize(20); result_box->labelcolor(FL_BLACK); window->end(); window->show(); return Fl::run(); }