新手,最近自己尝试着做了一个体彩大乐透的选号器,感觉挺有意思的,下面分享给大家!

具体步骤:

1、新建一个基于对话框的MFC工程。

2、按下图所示添加显示前区号码的5个编辑框,显示后区号码的2个编辑框,一个开始按钮。

标题

3、在OnInitDialog()函数中设置时间种子

BOOL C体彩大乐透Dlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);           // 设置大图标SetIcon(m_hIcon, FALSE);        // 设置小图标// TODO:  在此添加额外的初始化代码srand((time(0)));    // 以时间为种子,产生随机数return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

为什么要设置这个呢,不然的话每次产生的随机数都是固定的。所以能不能输出中奖号码,就得看当前是否占据天时地利人和了

4、开始按钮的响应函数中设置定时器

SetTimer(1,40,NULL);

5、在WM_TIMER消息的响应函数中实现前区5位号码、后区2位号码的依次输出。

这里模拟真实开奖环境,7个球依次开出号码,因为每开出一个球大概都要摇动几十秒。

所以每产生1个号码都定时摇号几十秒,到时间后再确定该号码,并保证与前面已开出的号码保持互斥,再开始下一个球。

这样开出了7个号码,因为是随机产生的,所以再排个序,最终显示在下面静态文本框中,就跟电视中真是开奖环节差不多了。

void C体彩大乐透Dlg::OnTimer(UINT_PTR nIDEvent)
{// TODO:  在此添加消息处理程序代码和/或调用默认值// 开前区第1位号码if (bTimerSwitch[0]){nFront[0] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_1, nFront[0]);   // 实时更新// 时间到,确定号码if (++nCount[0] >= 40){bTimerSwitch[0] = false;bTimerSwitch[1] = true;}}// 开前区第2位号码if (bTimerSwitch[1]){nFront[1] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_2, nFront[1]);   // 实时更新// 时间到,确定号码if (++nCount[1] >= 40 && nFront[1] != nFront[0]){bTimerSwitch[1] = false;bTimerSwitch[2] = true;}}// 开前区第3位号码if (bTimerSwitch[2]){nFront[2] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_3, nFront[2]);   // 实时更新// 时间到,确定号码if (++nCount[2] >= 40 && nFront[2] != nFront[0] && nFront[2] != nFront[1]){bTimerSwitch[2] = false;bTimerSwitch[3] = true;}}// 开前区第4位号码if (bTimerSwitch[3]){nFront[3] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_4, nFront[3]);   // 实时更新// 时间到,确定号码if (++nCount[3] >= 40 && nFront[3] != nFront[0] && nFront[3] != nFront[1] && nFront[3] != nFront[2]){bTimerSwitch[3] = false;bTimerSwitch[4] = true;}}// 开前区第5位号码if (bTimerSwitch[4]){nFront[4] = rand() % 35 + 1;SetDlgItemInt(IDC_EDIT_FRONT_5, nFront[4]);   // 实时更新// 时间到,确定号码if (++nCount[4] >= 40 && nFront[4] != nFront[0] && nFront[4] != nFront[1] && nFront[4] != nFront[2] && nFront[4] != nFront[3]){bTimerSwitch[4] = false;bTimerSwitch[5] = true;}}// 开后区第1位号码if (bTimerSwitch[5]){nBack[0] = rand() % 12 + 1;SetDlgItemInt(IDC_EDIT_BACK_1, nBack[0]);   // 实时更新// 时间到,确定号码if (++nCount[5] >= 40 ){bTimerSwitch[5] = false;bTimerSwitch[6] = true;}}// 开后区第2位号码if (bTimerSwitch[6]){       nBack[1] = rand() % 12 + 1;SetDlgItemInt(IDC_EDIT_BACK_2, nBack[1]);   // 实时更新// 时间到,确定号码if (++nCount[6] >= 40 && nBack[1] != nBack[0]){bTimerSwitch[6] = false;KillTimer(1);}}// 7个号码全部开出,排序,并显示if (!bTimerSwitch[0] && !bTimerSwitch[1] && !bTimerSwitch[2] && !bTimerSwitch[3] && !bTimerSwitch[4] && !bTimerSwitch[5] && !bTimerSwitch[6]){// 6个数排序qsort(nFront, 5, sizeof(nFront[0]), cmp);qsort(nBack, 2, sizeof(nBack[0]), cmp);CString str;//str.Format(L"%d %d %d %d %d %d %d", nCount[0], nCount[1], nCount[2], nCount[3], nCount[4], nCount[5], nCount[6]);str.Format(L"前区:%d  %d  %d  %d  %d  后区:%d  %d", nFront[0], nFront[1], nFront[2], nFront[3], nFront[4], nBack[0], nBack[1]);SetDlgItemText(IDC_STATIC2, str);     // 最终结果显示}CDialogEx::OnTimer(nIDEvent);
}

6、OK了,当然大家可以把界面做得漂亮一点,在对话框界面添加几个PICTURE control控件,网上下载个选号器的图片,利用windows自带画图软件改成位图,再添加即可。下面这个是我以前做得双色球选号器。

自己编一个大乐透选号器相关推荐

  1. 简单的彩票大乐透选号工具

    彩票大乐透由前区和后区组成,前区是5位数,后区是2位数.前区的位数数字是1-35从中任意选择5个数,后区是1-12,从中任选2个数.根据规律,我们可以简单编辑彩票选号工具: import random ...

  2. c语言大乐透编译,Excel大乐透摇号vba代码分享,说不定就中百万了呢

    大家好我是Excel从零到一,今天闲来无聊做了一套大乐透摇号程序的vba代码分享给大家 来看下效果 Excel大乐透摇号vba代码分享,说不定就中百万了呢 Sub 摇号() Dim i, a, tes ...

  3. Python实现彩票双色球、大乐透随机预测出号

    彩票要是能通过预测都能拿奖,那也是需要攒多少人品才行呀 老老实实做好事,多积德行善,做公益 近期出差的时候,闲来没事,下班路过彩站每天都顺便买一张彩票. 同时,就引发了对所学专业的应激反应,想了一下能 ...

  4. 大乐透号码随机生成与排序

    前面两篇介绍了两个非常简单的排序算法,本篇介绍排序算法的一个简单应用--对大乐透随机号码进行排序. 由于工作中涉及很多前端的开发,所以对前端技术有一定了解,前端的一个好处是可以直观地看到页面的布局.每 ...

  5. 纯手工采用java编写双色球、大乐透随机生成算法,真实模拟出球

    纯java原生态模拟双色球.大乐透规则进行出球,原理:比如双色球,红球33.蓝球16个,先进行红球出球计算,按照双色球出球的规则随机将33个球放入数组或集合中,规定一个出球的方向,随机数12个绑定33 ...

  6. 用linux模拟彩票摇号器下载,大乐透模拟摇奖器拟选号器

    大乐透模拟摇奖器拟选号器是一款非常实用的彩票app,它给你带来了强大的模拟选号功能,同时也可以让小伙伴们更加钻研选号规律,让你能够轻松赢得大奖,只要你掌握一门技术,就可以稳步提升自己的收益哦,喜欢的朋 ...

  7. Java实现彩票大乐透、双色球机选号

    手写大乐透.双色球机选代码,梦想还是要有的,万一中了一千万呢,哈哈哈. 效果如下: 代码: import java.util.*; import java.util.stream.Collectors ...

  8. C语言实现模拟大乐透和双色球彩票机选【纯娱乐】

    最近迷恋彩票,无聊时用手机写的一个小程序.至于为什么要用纯C语言,因为我手机上下的编译器只支持C. #include <stdio.h> #include <stdlib.h> ...

  9. 数组随机取数(大乐透机选投注)

    闲着没事写着完呢 package com.yjl.daletou.util;import java.awt.Color; import java.awt.Dimension; import java. ...

最新文章

  1. 在Labview中调用M文件(Matlab文件)
  2. 物联网:应用创新带来万亿元市场前景
  3. 【机器学习基础】支持向量机超参数的可视化解释
  4. 淮安掼蛋网页版-源码头文件总结
  5. sonarqube对接maven
  6. 内存记号(Memory Trail)[自定义的名字] --调试方法
  7. python简单代码示例-python3简单代码示例
  8. 投资理财--动态市盈率静态市盈率 整理
  9. pythonstdin_Python读取stdin方法实例
  10. 关于android模拟器上面物理键盘失效,电脑键盘也无法输入的解决
  11. 因执迷而绽放,终登聆听贡献者荣誉榜
  12. STM32:RTC实时时钟原理
  13. 计算机毕业设计-校园疫情防控系统【PHP源码】
  14. 是时候,给你们自由了
  15. Tensorboard可视化
  16. linux中磁盘分区命令是什么,linux中创建磁盘分区的命令是什么
  17. 特斯拉电动卡车Semi和全新Roadster亮相发布会,续航能力均超800公里
  18. 节省微博互粉时间,使用全自动一键关注Chrome扩展程序
  19. WineQQ2012 最新下载 (转)
  20. C#学习笔记(四)-- .NET Framework与C#简介

热门文章

  1. java —— 后台利用监听器统计在线人数
  2. Python3快速入门-Python是什么
  3. PwC上海AC面经-助理软件工程师(英语)
  4. 【ARM 嵌入式 C 入门及渐进 4-- Linux 位图 bitmap】
  5. 小程序云开发db封装
  6. DSPE-PEG-SP2-AA,二硬脂酰基磷脂酰乙醇胺-聚乙二醇-SP2-AA,具有较好的生物相容性和被动靶向性,可应用于药物输送系统
  7. TSF微服务治理实战系列(四)——服务安全
  8. nhibernate访问mysql配置_NHibernate各种数据库连接参数文件配置方法说明
  9. 直流无刷电机发热问题及解决方案
  10. 目标管理:SMART原则