基于Qt5.4.1 c++猜数字/模拟彩票案例

UI页面如图所示
游戏规则: 选择七个35以内的数字 中奖号码也七个
基于Qt5.4.1 c++猜数字/模拟彩票案例_第1张图片
首先 在.h文件中定义很多private变量

private:
    Ui::MainWindow *ui;
    QString     show_num;       //显示数字的字符串
    QString     show_chosen_nums;//显示选中号码的字符串
    QString     show_target_nums;//显示中奖号码的字符串
    vector<int> chosen_nums;    //用户选中的号码集
    vector<int> target_nums;    //摇奖的中奖号码集

    bool        is_chosen(int num);
    bool        is_create(int num);

生成最终结果的随机数

void MainWindow::on_pushButton_start_clicked()
{
   
    //生成中奖号码
    for(int i=0;i<7;i++){
   
        int target = rand()%35+1; //生成一个1~35范围内的随机数
        if(is_create(target)==false){
   //判断生成的随机数是否已存在。
            target_nums.push_back(target);  //若不存在则放入中奖号码中
        }else{
   
            i--;    //若存在则必须倒退一次循环,保证生成7个不重复的号码
        }
    }
    //显示中奖号码
    for(int i = 0; i<target_nums.size();i++){
   
        show_target_nums = show_target_nums
                + QString::number(target_nums[i])
                + "  ";
    }
    ui->label_target->setText(show_target_nums);
    //判断中奖情况
    int count = 0;
    for(int i = 0;i<chosen_nums.size();i++){
   
        for(int j = 0;j<target_nums.size();j++){
   
            if(chosen_nums[i] == target_nums[j]){
   
                count++;
            }
        }
    }
    if(count == 4){
   
        ui->label_result->setText("恭喜中奖,奖金5000元");
    }else if(count == 5){
   
        ui->label_result->setText("恭喜中奖,奖金50000元");
    }else if(count == 6){
   
        ui->label_result->setText("恭喜中奖,奖金500000元");
    }else if(count == 7){
   
        ui->label_result->setText("恭喜中奖,奖金5000000元");
    }else{
   
        ui->label_result->setText("很遗憾,没有中奖");
    }
}


按键0的槽函数 1~9一样

void MainWindow::on_pushButton_0_clicked()
{
   
    if(show_num.size()<2 && show_num!=0){
   
        show_num = show_num+"0";
        ui->label_show->setText(show_num);
    }
}

确定按键

void MainWindow::on_pushButton_confirm_clicked()
{
   
    if(chosen_nums.size()<7){
   
        int num = show_num.toInt();
        if(num > 0 && num < 36  && is_chosen(num)==false ){
   
            chosen_nums.push_back(num);
            show_chosen_nums = show_chosen_nums+show_num+"  ";
        }
        ui->label_choose->setText(show_chosen_nums);
        ui->label_show->setText("0");
        show_num = "";
    }
}

.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include 
using namespace std;

namespace Ui {
   
class MainWindow;
}

class MainWindow : public QMainWindow
{
   
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_0_clicked();

    void on_pushButton_1_clicked();

    void on_pushButton_2_clicked();

    void on_pushButton_3_clicked();

    void on_pushButton_4_clicked();

    void on_pushButton_5_clicked();

    void on_pushButton_6_clicked();

    void on_pushButton_7_clicked();

    void on_pushButton_8_clicked();

    void on_pushButton_9_clicked();

    void on_pushButton_confirm_clicked();

    void on_pushButton_start_clicked();

    void on_pushButton_clicked();

    void on_pushButton_10_clicked();

private:
    Ui::MainWindow *ui;
    QString     show_num;       //显示数字的字符串
    QString     show_chosen_nums;//显示选中号码的字符串
    QString     show_target_nums;//显示中奖号码的字符串
    vector<int> chosen_nums;    

你可能感兴趣的:(qt,c++)