工控编程吧
标题:
142上位机VC MFC仿彩票号码生成器
[打印本页]
作者:
qq263946146
时间:
2016-1-6 21:35
标题:
142上位机VC MFC仿彩票号码生成器
(, 下载次数: 5)
上传
点击文件名下载附件
142上位机VC MFC仿彩票号码生成器
功能展示
彩票号码是随机生成的,我们当前例程也简单模仿号码生成软件,效果如图,点击开始数字随机不断变更,点击停止,随机生成的五号进行重复性判断,然后进行升序处理,最后将结果显示出来;
要点提示
随机生成数字可以用函数int rand(),要想随机生成指定范围内的数字可以通过形式 i = rand()%m_nRange+1; 来实现,其中m_nRange为要指定的数字范围,I为生成的随机数;
实现功能
1.新建基于对话框的应用程序
2.拖拽五静态控件,ID修改为IDC_NUM0,IDC_NUM1, IDC_NUM2, IDC_NUM3, IDC_NUM4,用于显示随机生成的数字;
3.添加变量 CFont m_Font;//随机数显示字体 CStatic* m_Lists[5];//随机数显示的窗口指针
int num[5]; //随机数存储 UINT m_nRange; //随机数数据范围 并在OnInitDialog()函数中初始化
m_Font.CreateFont(-24,-20,0,0,600,0,0,0,DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, FF_ROMAN,"宋体");
m_nRange = 24;
m_Lists[0] = (CStatic*)GetDlgItem(IDC_NUM0);
m_Lists[1] = (CStatic*)GetDlgItem(IDC_NUM1);
m_Lists[2] = (CStatic*)GetDlgItem(IDC_NUM2);
m_Lists[3] = (CStatic*)GetDlgItem(IDC_NUM3);
m_Lists[4] = (CStatic*)GetDlgItem(IDC_NUM4);
复制代码
4.随机数显示的字体设置可以在OnCtlColor()函数中实现 if(nCtlColor==CTLCOLOR_STATIC)
{ pDC->SetBkMode(TRANSPARENT);pDC->SelectObject(&m_Font); }
5.添加两按钮实现开始与停止随机数的生成
void CGkbc8Dlg::OnStart()
{
for (int i=1; i<6;i++)
{
SetTimer(i,10,NULL);
}
}
复制代码
void CGkbc8Dlg::OnStop()
{
CString str,text;
//避免重复
for (int i=1; i<6;i++)
{
KillTimer(i);
m_Lists[i-1]->GetWindowText(text);
num[i-1] = atoi(text);
for(int j=i-2;j>=0;j--)//出现重复数字,重获随机数
{
if(num[i-1]==num[j])//第二位起,后位与前位数相同时
{
num[i-1] = rand()%m_nRange+1;
str.Format("%02i",num[i-1]);
m_Lists[i-1]->SetWindowText(str);
i=0;
}
}
}
int iTemp; // 升序排列
for(i=1;i<6;i++)
{
for(int j=4;j>=i;j--)
{
if(num[j]<num[j-1])
{
iTemp = num[j-1]; num[j-1] = num[j]; num[j] = iTemp;
}
}
}
for(i=0;i<5;i++) { str.Format("%02i",num[i]); m_Lists[i]->SetWindowText(str); }
}
复制代码
添加定时器处理函数,实现连续生成不同随机数
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/2b36a20e2ae0ee5490e5db53ab48031e/0/0/w_19rtdow81t.swf-albumId=5145070509-tvId=5145070509-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 2)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4