首页 > 范文大全 > 正文

C#/WinForms中Random类的作用

开篇:润墨网以专业的文秘视角,为您筛选了一篇C#/WinForms中Random类的作用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:c#/winforms中提供了random类帮助我们实现软件设计中随机取数的功能。本文通过对Random类的Next方法的调用,实现了随机取数、随机取色的功能,展现了Random类的作用

关键词:Random;随机;Next;属性

中图分类号:TP391.41

在软件设计中,随机数在很多领域中被广泛用到,C#/WinForms中提供了Random类,该类可以产生某些随机性的数字序列,满足我们使用的要求。本文通过一个1000以内随机数排序及随机颜色设置的例子来说明Random类的作用。界面如下图所示:

图1

界面中“取数结果”和“排序结果”后的标签框控件分别设置AutoSize的属性值为False,并通过鼠标拖曳的方式调整两个控件的大小。相关控件属性设置如下:

(1)“取数结果”后的Label控件:名称lbFetch。

(2)“排序结果”后的Label控件:名称lbSort。

(3)Form窗体:名称FrmRandom,标题“随机数”。

(4)RadioButton控件:名称rbFive,标题“5”。

(5)RadioButton控件:名称rbTen,标题“10”。

(6)RadioButton按钮:名称rbFif,标题“15”。

(7)CheckBox控件:名称cbForecolor,标题“前景色”。

(8)CheckBox控件:名称cbBackcolor,标题“背景色”。

(9)Button控件:名称btnFetch,标题“取数”,Enabled=True。

(10)Button按钮:名称btnSort,标题“排序”,Enabled=False。

(11)Button按钮:名称btnExit,标题“退出”,Enabled=True。

实现的功能描述如下:

(1)单击“取数”按钮,“排序”按钮可用,“取数结果”后的标签框中显示相应随机数值。

(2)单击“排序”按钮,“排序结果”后的标签框中显示随机取得的数字降序排序的结果。

(3)单击“退出”按钮,结束程序的运行。

(4)选中“前景色”复选框,则lbFetch控件和lbSort控件的文本颜色随机显示;取消“前景色”选择时,文本颜色为“黑色”显示。

(5)选中“背景色”复选框,则lbFetch控件和lbSort控件的背景颜色随机显示;取消“背景色”选择时,文本框背景颜色为“白色”显示。

建立如上图所示界面,相关代码如下:

//定义字段成员变量

Randomrd=newRandom();int[] arr;

//初始化代码

privatevoidfrmRandom_Load(object sender,EventArgs e)

{rbFive.Checked=true; btnSort.Enabled = false;

lbFetch.Text=""; lbSort.Text="";}

//btnFetch控件的Click事件关联的方法。

privatevoidbtnFetch_Click(object sender,EventArgs e)

{ btnSort.Enabled=true; lbFetch.Text="";lbSort.Text="";

if (rbFive.Checked==true) { arr=newint[5]; }

if (rbTen.Checked==true) { arr=newint[10]; }

if (rbFif.Checked==true) { arr=newint[15]; }

for (inti=0;i

{arr[i]=rd.Next(1,1000);

lbFetch.Text=lbFetch.Text+arr[i].ToString()+"";}}

//btnSort控件的Click事件关联的方法。

privatevoidbtnSort_Click(object sender,EventArgs e)

{ lbSort.Text="";

for (inti=0;i

{ for(int j=i+1;j

{if(arr[i]

{ int t=arr[i];arr[i]=arr[j];arr[j]=t;}}}

foreach(intiinarr)

{ lbSort.Text=lbSort.Text + i.ToString()+" ";} }

//btnExit控件的Click事件关联的方法。

privatevoidbtnExit_Click(object sender,EventArgs e)

{ Application.Exit();}

//cbForecolor控件的CheckedChanged事件关联的方法。

privatevoidcbForecolor_CheckedChanged(object sender,EventArgs e)

{if(cbForecolor.Checked==true)

{lbFetch.ForeColor=Color.FromArgb(rd.Next(0,255),rd.Next(0, 255),rd.Next(0,255));

lbSort.ForeColor=Color.FromArgb(rd.Next(0,255),rd.Next(0, 255),rd.Next(0, 255));}

else

{lbFetch.ForeColor=Color.Black;

lbSort.ForeColor=Color.Black;}}

//cbBackcolor控件的CheckedChanged事件关联的方法。

privatevoidcbBackcolor_CheckedChanged(object sender,EventArgs e)

{if(cbBackcolor.Checked==true)

{lbFetch.BackColor=Color.FromArgb(rd.Next(0, 255),rd.Next(0,255),rd.Next(0,255));

lbSort.BackColor=Color.FromArgb(rd.Next(0,255),rd.Next(0,255), rd.Next(0,255));}

else

{lbFetch.BackColor=Color.White;

lbSort.BackColor=Color.White;}}

参考文献:

[1]计奎,杨建华,杨志强.利用Windows时间函数生成服从正态分布的随机数[J].测绘信息与工程,2004(02).

[2]陈希孺,方开泰,张润楚.伪随机数串叠加的渐近理论[J].中国科学(A辑),1997(04).

[3]郑肇葆.正态分布伪随机数据的产生和检验[J].武汉大学学报(信息科学版),1980(01).

[4]皮新明.一类长周期的伪随机数序列[J].数值计算与计算机应用,2001(04).

作者简介:韩淑芹(1975.09-),女,山东青州人,讲师。

作者单位:潍坊工程职业学院,山东潍坊 262500