1.求VB写的号码号码循环人名抽奖程序源代码
2.我想用易语言做个名字抽奖程序
求VB写的循环人名抽奖程序源代码
在定义函数时有时在语句前,有的抽奖抽奖检测主力进驻源码在语句后。
希望能帮到你!源码源码红包源码教程
// giftDlg.h : header file
//
#if !defined
#if _MSC_VER >
#pragma once
#endif // _MSC_VER >
// CGiftDlg dialog
class CGiftDlg : public CDialog
{
// Construction
public:
int FreeMem();
int ReSetData();
int InitData(); //初始化数组
CGiftDlg(CWnd* pParent = NULL); // standard constructor
char *code[];//指向身份证号数组的号码号码pas源码加密指针
char *name[];//指向姓名数组的指针
char data[]; //随机数组
int ptr; //进度条当前指向随机数组的指针
int totalid; //参加抽奖的id总数,如果抽出一个,抽奖抽奖gui drawgraph源码自减1
bool bstart; //标记进度条是源码源码商城源码wap否在滚动
// Dialog Data
//{ { AFX_DATA(CGiftDlg)
enum { IDD = IDD_GIFT_DIALOG };
CButton m_btgo;
CString m_code;
CString m_msg;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{ { AFX_VIRTUAL(CGiftDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{ { AFX_MSG(CGiftDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
virtual void OnOK();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnCancelMode();
virtual void OnCancel();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{ { AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_GIFTDLG_H__D8D4EF_F4_4F__FBFF__INCLUDED_)
// giftDlg.cpp : implementation file
//
#include "stdafx.h"
#include "gift.h"
#include "giftDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// CGiftDlg dialog
CGiftDlg::CGiftDlg(CWnd* pParent /*=NULL*/)
: CDialog(CGiftDlg::IDD, pParent)
{
//{ { AFX_DATA_INIT(CGiftDlg)
m_code = _T("");
m_msg = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CGiftDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{ { AFX_DATA_MAP(CGiftDlg)
DDX_Control(pDX, IDOK, m_btgo);
DDX_Text(pDX, IDC_STATIC_CODE2, m_code);
DDX_Text(pDX, IDC_STATIC_MSG, m_msg);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CGiftDlg, CDialog)
//{ { AFX_MSG_MAP(CGiftDlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_TIMER()
ON_WM_CANCELMODE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// CGiftDlg message handlers
BOOL CGiftDlg::OnInitDialog()
{
CDialog::OnInitDialog();
InitData();
bstart=false;
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_msg.Format ("按开始键开始滚动,抽奖箱中人数:%d",totalid);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
// the minimized window.
HCURSOR CGiftDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CGiftDlg::OnOK()
{
// TODO: Add extra validation here
if(bstart)
{
KillTimer(1);
bstart=false;
m_msg.Format ("按开始键开始滚动,抽奖箱中人数:%d",totalid-1);
m_code.Format ("抽出的号码:%s\n姓名:%s",code[data[ptr]],name[data[ptr]]);
//AfxMessageBox(m_code);
ReSetData();//剔除抽出的号码,重新打乱
if(totalid<1)
{
m_btgo.EnableWindow (FALSE);
}
m_btgo.SetWindowText ("开始");
}
else
{
SetTimer(1, ,NULL);
bstart=true;
m_msg.Format ("按停止键抽一个奖");
m_btgo.SetWindowText ("停止");
}
UpdateData(FALSE);
//CDialog::OnOK();
}
void CGiftDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
m_code.Format ("现在的号码:%s",code[data[ptr]]);
UpdateData(FALSE);
ptr++;
ptr%=totalid;
CDialog::OnTimer(nIDEvent);
}
void CGiftDlg::OnCancelMode()
{
CDialog::OnCancelMode();
// TODO: Add your message handler code here
}
int CGiftDlg::InitData()
{
FILE * fp=fopen("id.txt","r");
ptr=0;
totalid=1;
if (fp==NULL)
{
return 0;
}
char buf[];
int line=0;
while(!feof(fp))
{
char *p=fgets(buf,,fp);
if (p!=NULL)
{
name[line]=(char*)malloc();
code[line]=(char*)malloc();
memset(code[line],0,);
memset(name[line],0,);
int flag=0;
for(int i=0;i<&&buf[i]!='\0';i++)
{
if((buf[i]!=',' )&& (flag==0))
{
code[line][i]=buf[i];
}
else if(flag==0)
{
flag=i;
}
else if((buf[i]!=',' )&& (flag!=0))
{
name[line][i-flag-1]=buf[i];
}
}
TRACE("%s-%s",code[line],name[line]);
memset(buf,0,);
line++;
}
}
fclose(fp);
for(int j=0;j<line;j++)
{
data[j]=j;
}
for(int i=0;i<line;i++)
{
int pos=rand()%(line-i)+i;
int temp=data[i];
data[i]=data[pos];
data[pos]=temp;
TRACE("%d",data[i]);
}
totalid=line;
return 1;
}
int CGiftDlg::ReSetData()
{
//ptr剔除,与最后一个交换,然后释放内存
int line=totalid;
int temp=data[ptr];
data[ptr]=data[line-1];
data[line-1]=temp;
//AfxMessageBox(name[data[line-1]]);
free(code[data[line-1]]);
free(name[data[line-1]]);
totalid--;
line--;
ptr=0;
for(int i=0;i<line;i++)//重新打乱
{
int pos=rand()%(line-i)+i;
int temp=data[i];
data[i]=data[pos];
data[pos]=temp;
TRACE("%d",data[i]);
}
return 1;
}
int CGiftDlg::FreeMem()
{
int line=totalid;
for(int i=0;i<line;i++)
{
free(code[i]);
free(name[i]);
}
return 1;
}
void CGiftDlg::OnCancel()
{
// TODO: Add extra cleanup here
FreeMem();
CDialog::OnCancel();
}
id.txt
,章鱼
,李光
X,周瑜
,韩信
,沈兵
,宏志
X,范进
,曾国
,乱马
,贾海
我想用易语言做个名字抽奖程序
我这边有我之前用过现成的源码 三种抽奖模式:按照设定的字段抽奖、导入电话号码抽奖和导入姓名抽奖!号码号码我先上传成品楼主看看可以不?可以的抽奖抽奖话给你源码!楼主需要注意的源码源码是导入的文本必须是一个名字一次回车或者一个电话一次回车 完了关闭软件的时候还会问你是否保存抽奖信息!
号码号码号码号码