Dim a(1 To 100) As String
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的洛隆網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
Dim i As Integer, x As Integer
Const n = 3 'n的值可根據(jù)實際需要賦予不同的變量
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
End Sub
Private Sub Form_Load()
Randomize '初始化隨機數(shù)生成器
a(1) = "富士康" '以此將n個人的姓名保存在數(shù)組a中
a(2) = "龐麥郎"
a(3) = "非主流"
For i = 1 To n
List1.AddItem a(i)
Next
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
x = Rnd() * n + 1 '產(chǎn)生一個[1,n]中的隨機整數(shù)并存入變量x中
Label2.Caption = a(x) '在標(biāo)簽Label2中顯示下標(biāo)變量a(x)的值(第x個人的姓名)
End Sub
把你的代碼發(fā)出來。
你這種方式的程序只能弄一等獎吧,為什么會有二等獎三等獎?
獲獎次數(shù)跟電話號碼什么關(guān)系,為什么不能重復(fù)?同一個號碼不能多次獲獎?那就不是重復(fù)的問題,你的提問有些不清不楚。
暫定的解決方案——
把隨機生成的電話號碼,賦值給公共數(shù)組,如果公共數(shù)組中存在新生成的電話號碼,那么重新生成電話號碼,如果電話號碼不在數(shù)組中存在,那么將電話號碼加入到數(shù)組中。重復(fù)以上過程,直至喊停。
我用多線程寫的,你可以參考下。
系統(tǒng)界面圖如下:(注:重置功能為清除已經(jīng)中獎號碼,回歸1-100都可以中獎狀態(tài)。)
代碼:
public?partial?class?Form1?:?Form
{
public?Form1()
{
InitializeComponent();
}
System.Threading.Thread?g_Thread?=?null;
Listint?g_list?=?new?Listint();
int?g_Num?=?0;
delegate?void?g_delegate();
///?summary
///?開始
///?/summary
///?param?name="sender"/param
///?param?name="e"/param
private?void?button2_Click(object?sender,?EventArgs?e)
{
if(g_list.Count==100)
{
MessageBox.Show("所有數(shù)字已使用,請重置!");
return;
}
button3.Enabled?=?true;
Random?r?=?new?Random();
g_delegate?dele=?ChangeTxt;
g_Thread?=?new?System.Threading.Thread(()?=
{
while(this.IsDisposed==false)
{
g_Num?=?r.Next(1,?100);
if(g_list.Contains(g_Num))
{
g_Num?=??1;
}
while(g_list.Contains(g_Num))
{
g_Num++;
}
this.Invoke(dele);
System.Threading.Thread.Sleep(50);
}
});
g_Thread.Start();
}
void?ChangeTxt()
{
label2.Text?=?g_Num.ToString();
}
///?summary
///?停止
///?/summary
///?param?name="sender"/param
///?param?name="e"/param
private?void?button3_Click(object?sender,?EventArgs?e)
{
//if(g_Thread.ThreadState==System.Threading.ThreadState.Running)
{
g_Thread.Abort();
g_list.Add(Convert.ToInt32(label2.Text));
}
button3.Enabled?=?false;
}
///?summary
///?重置
///?/summary
///?param?name="sender"/param
///?param?name="e"/param
private?void?button1_Click(object?sender,?EventArgs?e)
{
g_list.Clear();
}
private?void?Form1_FormClosed(object?sender,?FormClosedEventArgs?e)
{
System.Environment.Exit(0);
}
}