开篇:润墨网以专业的文秘视角,为您筛选了一篇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