直接Random.Next(1, 101)可产生随机数,用一个List<int>存起来,每次新随机就会去这个List中找,如果找到就再随机,自到随机出新的数。
1、放一个TextBox框、要把MultiLine属性改成True。(模拟输出结果)
2、放个Timer
3、放个Button。
4、定义两个全局对象
int inTimer = 0 //原子锁对象List<int> DBList = new List<int>() //集合
写Button的_Click事件就一句话了
private void button1_Click(object sender, EventArgs e){
timer1.Enabled = true //开Timer
}
写Timer的Tick事件
private void timer1_Tick(object sender, EventArgs e){
//加原子锁,由于携厅粗随机可能时间过长,造成多线程进入,污染DBList对象
if (Interlocked.Exchange(ref inTimer, 辩镇1) == 0)
{
Random rand = new Random() //随机器
int nums = 0
do
{
nums = rand.Next(1, 101) //1~100之间一个int
} while (DBList.Where(a => a == nums).Count() > 0)
DBList.Add(nums) //放到集合中
//在textbox1中输入
textBox1.Text = String.Join("\r\n", DBList.ToArray())
if (DBList.Count == 100) //100个数都出现了就关Timer
伏肢 {
timer1.Enabled = false
MessageBox.Show("结束!")
}
Interlocked.Exchange(ref inTimer, 0) //解原子锁
}
}
在窗体中放入label、button、timer、memo 四种类型的控件各一个:label1--用于显示手机号码的滚动
timer1(时钟)--用于产生随机的手机号码
button1--点击即抽奖,并将获奖号码保存到memo1中
memo1--用于保存获奖手机号码
unit Unit1
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls
type
TForm1 = class(TForm)
Label1: TLabel
Button1: TButton
Timer1: TTimer
Memo1: TMemo
指凳 procedure Timer1Timer(Sender: TObject)
procedure FormCreate(Sender: TObject)
procedure Button1Click(Sender: TObject)
private
{ Private declarations }
public
{ Public declarations }
end
const
n=20
a:array[1..n] of string[11]=('13607193000','13607193001',
'13607193002','13607193003','13607193004',
'13607193005','13607193006','唯码旅13607193007',
'13607193008','13607193009',
'13607193010','13607193011','13607193012',
'13607193013','13607193014',
'13607193015'模粗,'13607193016','13607193017',
'13607193018','13607193019')
var
Form1: TForm1
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject)
var
k:integer
begin
k:=trunc(n*random+1)
label1.Caption:=a[k]
end
procedure TForm1.FormCreate(Sender: TObject)
begin
randomize
end
procedure TForm1.Button1Click(Sender: TObject)
begin
memo1.Lines.Add(label1.Caption)
end
end.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)