《MFC编程及应用》课程设计报告
题目: 彩票自动选号系统
学号: 1004220327 姓名: 李康
指导老师: 杨均匀
时间: 20##年10月7日
1、设计步骤
(1) 工程建立
建立基于对话框的应用程序
(2) 类中新增变量的作用
1、 在资源中增加两个对话框,并建立类向导,创建两个类CPage1,CPage2.
2、 增加类Cli1004220327在后面静态成员变量关联起来
3、 在类CPage1中增加m_num1,m_num2,…..m_num35与对话框中的静态文本关联起来,也就是彩票的数字.
4、 在对话框中增加五个单选按钮,用来选择投注数,当选择第一注时,变量m_touzhu1=0,选择第二注时m_touzhu1=1,依此类推
5、 对话框中的开始按钮,增加关联函数OnStart(),当m_touzhu1=-1时,表示没有投注,用MessageBox弹出对话框提示请投注,当m_touzhu1=0时,即表示投一注,在设置定时器时,只设置7个,当m_touzhu1=1时,定时器设置14个。SetTimer(i,1,NULL);i表示定时器的名字,中间的1表示间隔1ms,NULL表示空,用for循环依次设置定时器
6、 增加消息函数,TIMER,设置定时器响应的函数,当m_touzhu1=0时,表示设置了7个定时器,int型i用来随机产生一个很大的整数,语句i = rand()%10用来随机产生一个小于10的整数,也就是我们所看到的彩票,语句str.Format("%i",i);
m_num1.SetWindowText(str);
是将产生的整数i转换成CString型,后面代码的功能基本是一样的。
7、 类CPage1的OnStop()函数的功能是来结束定时器,同样,当m_touzhu1=0时,只产生7个定时器,KillTimer(i)的i是指定时器的名字,用for循环来结束每个定时器。当m_touzhu1=1,2,3,4时,依此类推
8、 类CPage1中OnQinglimg()函数的功能是将所有的彩票号码变为0,m_num1.SetWindowText("0");可以实现该功能。
9、 类CPage1中OnCtlColor()函数是用来控制彩票号码的顔色,pDC->SetTextColor(RGB(0,0,255));来控制颜色。
10、 在类CPage1中增加CFont m_font1;变量,再通过语句m_font1.CreateFont(-24,-20,0,0,100,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_ROMAN,"宋体");来控制字体的大小和形状。
11、 在类CPage1中OnAuto()函数是用来自动产生一组彩票,点击一下自动按钮时,彩票自动选号系统开始自动选票,然后再点击一下时,彩票选号系统停止,随机产生一组彩票,这个功能和我开始想的有出入,我开始以为是点击一下就实现自动选号的功能。
if(k==0)
{
OnStart();
k=1;
}
else if(k==1)
{
OnStop();
k=0;
}
定义一k在中间传递,变换的调用OnStart();和OnStop()函数,实现自动选号的功能。
12、类CPage2和CPage1中各个函数的功能基本相同,只是在两个地方有细小不同, i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num36.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num36.SetWindowText("0"+str);
}
用来区分彩票是大于10还是小于10,如果小于10,需在号码前加一个0,另外,产生随机号码时是对36求余,使彩票号码介于00~35之间
13、类CMy1004220327Dlg中的OnPaint()函数用来给背景, 这个功能是我baidu来的,把背景改成了南京理工大学的喷泉广场。
(3)源代码,由于个人能力有限,所用的算法比较简单,但代码很长,CPage1和Cpage2代码差不多,我只复制CPage1的代码。
WM_TIMER代码:
void CPage2::OnTimer(UINT nIDEvent)
{
CString str ;
if(m_touzhu2==0)
{int i ;
switch (nIDEvent)
{
case 1:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num36.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num36.SetWindowText("0"+str);
}
break;
case 2:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num37.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num37.SetWindowText("0"+str);
}
break;
case 3:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num38.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num38.SetWindowText("0"+str);
}
break;
case 4:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num39.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num39.SetWindowText("0"+str);
}
break;
case 5:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num40.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num40.SetWindowText("0"+str);
}
break;
case 6:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num41.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num41.SetWindowText("0"+str);
}
break;
case 7:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num42.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num42.SetWindowText("0"+str);
}
break;
}
}
else if(m_touzhu2==1)
{
int i ;
switch (nIDEvent)
{
case 1:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num36.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num36.SetWindowText("0"+str);
}
break;
case 2:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num37.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num37.SetWindowText("0"+str);
}
break;
case 3:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num38.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num38.SetWindowText("0"+str);
}
break;
case 4:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num39.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num39.SetWindowText("0"+str);
}
break;
case 5:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num40.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num40.SetWindowText("0"+str);
}
break;
case 6:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num41.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num41.SetWindowText("0"+str);
}
break;
case 7:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num42.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num42.SetWindowText("0"+str);
}
break;
case 8:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num43.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num43.SetWindowText("0"+str);
}
break;
case 9:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num44.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num44.SetWindowText("0"+str);
}
break;
case 10:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num45.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num45.SetWindowText("0"+str);
}
break;
case 11:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num46.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num46.SetWindowText("0"+str);
}
break;
case 12:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num47.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num47.SetWindowText("0"+str);
}
break;
case 13:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num48.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num48.SetWindowText("0"+str);
}
break;
case 14:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num49.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num49.SetWindowText("0"+str);
}
break;
}
}
else if(m_touzhu2==2)
{
int i ;
switch (nIDEvent)
{
case 1:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num36.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num36.SetWindowText("0"+str);
}
break;
case 2:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num37.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num37.SetWindowText("0"+str);
}
break;
case 3:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num38.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num38.SetWindowText("0"+str);
}
break;
case 4:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num39.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num39.SetWindowText("0"+str);
}
break;
case 5:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num40.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num40.SetWindowText("0"+str);
}
break;
case 6:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num41.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num41.SetWindowText("0"+str);
}
break;
case 7:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num42.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num42.SetWindowText("0"+str);
}
break;
case 8:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num43.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num43.SetWindowText("0"+str);
}
break;
case 9:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num44.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num44.SetWindowText("0"+str);
}
break;
case 10:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num45.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num45.SetWindowText("0"+str);
}
break;
case 11:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num46.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num46.SetWindowText("0"+str);
}
break;
case 12:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num47.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num47.SetWindowText("0"+str);
}
break;
case 13:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num48.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num48.SetWindowText("0"+str);
}
break;
case 14:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num49.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num49.SetWindowText("0"+str);
}
break;
case 15:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num50.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num50.SetWindowText("0"+str);
}
break;
case 16:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num51.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num51.SetWindowText("0"+str);
}
break;
case 17:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num52.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num52.SetWindowText("0"+str);
}
break;
case 18:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num53.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num53.SetWindowText("0"+str);
}
break;
case 19:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num54.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num54.SetWindowText("0"+str);
}
break;
case 20:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num55.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num55.SetWindowText("0"+str);
}
break;
case 21:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num56.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num56.SetWindowText("0"+str);
}
break;
}
}
else if(m_touzhu2==3)
{
int i ;
switch (nIDEvent)
{
case 1:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num36.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num36.SetWindowText("0"+str);
}
break;
case 2:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num37.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num37.SetWindowText("0"+str);
}
break;
case 3:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num38.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num38.SetWindowText("0"+str);
}
break;
case 4:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num39.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num39.SetWindowText("0"+str);
}
break;
case 5:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num40.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num40.SetWindowText("0"+str);
}
break;
case 6:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num41.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num41.SetWindowText("0"+str);
}
break;
case 7:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num42.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num42.SetWindowText("0"+str);
}
break;
case 8:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num43.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num43.SetWindowText("0"+str);
}
break;
case 9:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num44.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num44.SetWindowText("0"+str);
}
break;
case 10:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num45.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num45.SetWindowText("0"+str);
}
break;
case 11:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num46.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num46.SetWindowText("0"+str);
}
break;
case 12:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num47.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num47.SetWindowText("0"+str);
}
break;
case 13:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num48.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num48.SetWindowText("0"+str);
}
break;
case 14:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num49.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num49.SetWindowText("0"+str);
}
break;
case 15:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num50.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num50.SetWindowText("0"+str);
}
break;
case 16:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num51.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num51.SetWindowText("0"+str);
}
break;
case 17:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num52.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num52.SetWindowText("0"+str);
}
break;
case 18:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num53.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num53.SetWindowText("0"+str);
}
break;
case 19:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num54.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num54.SetWindowText("0"+str);
}
break;
case 20:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num55.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num55.SetWindowText("0"+str);
}
break;
case 21:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num56.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num56.SetWindowText("0"+str);
}
break;
case 22:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num57.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num57.SetWindowText("0"+str);
}
break;
case 23:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num58.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num58.SetWindowText("0"+str);
}
break;
case 24:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num59.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num59.SetWindowText("0"+str);
}
break;
case 25:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num60.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num60.SetWindowText("0"+str);
}
break;
case 26:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num61.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num61.SetWindowText("0"+str);
}
break;
case 27:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num62.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num62.SetWindowText("0"+str);
}
break;
case 28:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num63.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num63.SetWindowText("0"+str);
}
break;
}
}
else if(m_touzhu2==4)
{
int i ;
switch (nIDEvent)
{
case 1:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num36.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num36.SetWindowText("0"+str);
}
break;
case 2:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num37.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num37.SetWindowText("0"+str);
}
break;
case 3:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num38.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num38.SetWindowText("0"+str);
}
break;
case 4:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num39.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num39.SetWindowText("0"+str);
}
break;
case 5:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num40.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num40.SetWindowText("0"+str);
}
break;
case 6:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num41.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num41.SetWindowText("0"+str);
}
break;
case 7:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num42.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num42.SetWindowText("0"+str);
}
break;
case 8:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num43.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num43.SetWindowText("0"+str);
}
break;
case 9:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num44.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num44.SetWindowText("0"+str);
}
break;
case 10:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num45.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num45.SetWindowText("0"+str);
}
break;
case 11:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num46.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num46.SetWindowText("0"+str);
}
break;
case 12:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num47.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num47.SetWindowText("0"+str);
}
break;
case 13:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num48.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num48.SetWindowText("0"+str);
}
break;
case 14:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num49.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num49.SetWindowText("0"+str);
}
break;
case 15:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num50.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num50.SetWindowText("0"+str);
}
break;
case 16:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num51.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num51.SetWindowText("0"+str);
}
break;
case 17:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num52.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num52.SetWindowText("0"+str);
}
break;
case 18:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num53.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num53.SetWindowText("0"+str);
}
break;
case 19:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num54.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num54.SetWindowText("0"+str);
}
break;
case 20:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num55.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num55.SetWindowText("0"+str);
}
break;
case 21:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num56.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num56.SetWindowText("0"+str);
}
break;
case 22:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num57.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num57.SetWindowText("0"+str);
}
break;
case 23:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num58.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num58.SetWindowText("0"+str);
}
break;
case 24:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num59.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num59.SetWindowText("0"+str);
}
break;
case 25:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num60.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num60.SetWindowText("0"+str);
}
break;
case 26:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num61.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num61.SetWindowText("0"+str);
}
break;
case 27:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num62.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num62.SetWindowText("0"+str);
}
break;
case 28:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num63.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num63.SetWindowText("0"+str);
}
break;
case 29:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num64.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num64.SetWindowText("0"+str);
}
break;
case 30:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num65.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num65.SetWindowText("0"+str);
}
break;
case 31:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num66.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num66.SetWindowText("0"+str);
}
break;
case 32:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num67.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num67.SetWindowText("0"+str);
}
break;
case 33:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num68.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num68.SetWindowText("0"+str);
}
break;
case 34:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num69.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num69.SetWindowText("0"+str);
}
break;
case 35:
i = rand()%36;
if (i>9&&i<36)
{
str.Format("%i",i);
m_num70.SetWindowText(str);
}
else if(i<10)
{
str.Format("%i",i);
m_num70.SetWindowText("0"+str);
}
break;
}
}
CPropertyPage::OnTimer(nIDEvent);
}
OnStart()代码:
void CPage2::OnStart()
{
UpdateData();
if(m_touzhu2==-1)
{
MessageBox("您好,请投注!");
}
else if(m_touzhu2==0)
{
for (int i=1; i<8;i++)
{
SetTimer(i,3,NULL);
}
}
else if(m_touzhu2==1)
{
for(int i=1;i<15;i++)
{
SetTimer(i,3,NULL);
}
}
else if(m_touzhu2==2)
{
for(int i=1;i<22;i++)
{
SetTimer(i,3,NULL);
}
}
else if(m_touzhu2==3)
{
for(int i=1;i<29;i++)
{
SetTimer(i,3,NULL);
}
}
else if(m_touzhu2==4)
{
for(int i=1;i<36;i++)
{
SetTimer(i,3,NULL);
}
}
}
OnStop()代码:
void CPage2::OnStop()
{
if(m_touzhu2==0)
{
for (int i=1; i<8;i++)
{
KillTimer(i);
}
}
else if(m_touzhu2==1)
{
for (int i=1; i<15;i++)
{
KillTimer(i);
}
}
else if(m_touzhu2==2)
{
for (int i=1; i<22;i++)
{
KillTimer(i);
}
} else if(m_touzhu2==3)
{
for (int i=1; i<29;i++)
{
KillTimer(i);
}
}
else if(m_touzhu2==4)
{
for (int i=1; i<36;i++)
{
KillTimer(i);
}
}
}
OnCtlColor代码:
HBRUSH CPage2::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor==CTLCOLOR_STATIC)
{
CString str ;
pDC->SetTextColor(RGB(0,0,255));
pDC->SelectObject(&m_font2);
pDC->TextOut(0,1,str);
}
return hbr;
}
OnQinglimg()代码:
void CPage1::OnQinglimg()
{
m_num1.SetWindowText("0");
m_num2.SetWindowText("0");
m_num3.SetWindowText("0");
m_num4.SetWindowText("0");
m_num5.SetWindowText("0");
m_num6.SetWindowText("0");
m_num7.SetWindowText("0");
m_num8.SetWindowText("0");
m_num9.SetWindowText("0");
m_num10.SetWindowText("0");
m_num11.SetWindowText("0");
m_num12.SetWindowText("0");
m_num13.SetWindowText("0");
m_num14.SetWindowText("0");
m_num15.SetWindowText("0");
m_num16.SetWindowText("0");
m_num17.SetWindowText("0");
m_num18.SetWindowText("0");
m_num19.SetWindowText("0");
m_num20.SetWindowText("0");
m_num21.SetWindowText("0");
m_num22.SetWindowText("0");
m_num23.SetWindowText("0");
m_num24.SetWindowText("0");
m_num25.SetWindowText("0");
m_num26.SetWindowText("0");
m_num27.SetWindowText("0");
m_num28.SetWindowText("0");
m_num29.SetWindowText("0");
m_num30.SetWindowText("0");
m_num31.SetWindowText("0");
m_num32.SetWindowText("0");
m_num33.SetWindowText("0");
m_num34.SetWindowText("0");
m_num35.SetWindowText("0");
}
OnAuto()代码:
{
if(k==0)
{
OnStart();
k=1;
}
else if(k==1)
{
OnStop();
k=0;
}
}
OnPaint()代码:
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_NJUST);
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}
2、 遇到的问题及解决办法
(1)、怎样将两个对话框连接起来,在老师那得知用属性页和属性表可以实现,baidu得到用 CPropertySheet Sheet;
Sheet.SetTitle("彩票自动选号系统");
CPage1 page1;
CPage2 page2;
Sheet.AddPage(&page1);
Sheet.AddPage(&page2);
Sheet.DoModal();代码将CPage1和CPage2连成属性表
(2)、怎样产生随机数字,将其作为彩票号码,参考《Visual C++程序开发范例宝典》,得到用rand()函数可以实现.
(3)、OnStrat()函数中,当m_touzhu1值改变时,OnStart()中的m_touzhu1的值并没有改变,也就是若干个if语句并没有得到调用,参考《VC++_6[1].0程序设计从入门到精通》,得知得用UpdateData();函数更新m_touzhu1的数据。
(4)、彩票号码在定义时是基于CStatic类派生的类Cli1004220327中的变量,而在OnTimer()函数中产生的随机数是int 型,如何把int型转换成另外一种类型在静态文本框中显示出来也是我遇到的困难之一,baidu得到SetWindowText()可以将CString型显示出来,然后只需将int型转换成CString即可,还是baidu得到Format("%i",i)可以实现,然后将所得到的数据显示在静态文本的问题得到解决。
(5)、自动按钮功能的实现,这个功能在一开始和我想的有较大出入,然后在老师那得知,点击第一下自动按钮时让选票系统开始,点击第二下时才是停止,这个简单的功能花了我两三天的时间,我以为是只用点击一下就可以随机实现开始选号和结束选号,baidu得知Sleep()函数,可以实现程序延时,可这个延时是整个程序不动,并不是我想要的让OnStart()和OnStop延时调用,再重新了解了该功能键后,只用了几行代码
void CPage1::OnAuto()
{
if(k==0)
{
OnStart();
k=1;
}
else if(k==1)
{
OnStop();
k=0;
}
}
这个简单的函数,在k取0时,调用OnStart()函数,在k取1时,调用OnStop()函数,然后这个功能得以实现。
(6)、在类CPage2也就是对福利彩票的显示时,由于福利彩票的号码大都是大于10的,为了显示方便,需在小于10的号码前加一个0让显示美观,这个也比较容易,只需对号码讨论,分大于10和小于10两种情况。
(7)、彩票号码在显示时是很小的,而且没有颜色,还是baidu了解到OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)可以控制颜色,语句pDC->SetTextColor(RGB(0,0,255));是用来控制我们得到彩票号码的颜色。
(8)、如何控制号码的大小,和字体,m_font2.CreateFont(-24,-20,0,0,20,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_ROMAN,"宋体");可以实现。
(9)、本来想设计自己的图标,但引入Icon后,将引入Icon的属性和名字与系统默认的Icon的改成一样的后,编译时出错,这个问题也没能解决。
(10)、按照题目要求,还要对福利彩票的中奖号码进行排序,但按我的算法,以我目前的能力还无法实现该功能。
3、体会得建议
刚开始做程序时根本无从下手,感觉什么都不会,忙了两三天才知道了整个程序大概往哪个方向下手,现在把程序做完之后,感觉只要把老师上课讲的都懂了,做这个程序应该不难,很可惜,本来只有10次课,我还因为高数竞赛辅导担误了4次课,断断续续的上课,到后面根本就听不懂了,其实我是挻想把这门课学好的,我的专业是通信工程,我们专业对编程要求较高,选这门课就是想提高自己这方面的能力,把整个程序做下来,感觉也不是开始想的那么难,对很多的mfc知道还是有了一定的了解,算是入门了吧,不过以后还得努力,有空的话还得多看看C++编程这方面的书,努力提高自己的编程能力,还是那句话,师傅引进门,修行看个人,现在已经进了C++的门,以后的修行还得靠自己。
4、 参考文献
(1)《Visual C++程序开发范例宝典》
(2)《VC++_6[1].0程序设计从入门到精通》
(3)各种baidu