本帖最后由 流失的温度0 于 2014-8-2 22:09 编辑
图片里是基本的布局,20个label控件,所有信息都是默认。
然后两个button按键。只改掉了text属性。
下面是赋值按钮里的代码:
// 赋值按钮的代码。
Random rd=new Random();
foreach (Control c in this.Controls)// 遍历界面上的所有控件。
{
if (c is Label) // 如果控件为label控件,则开始赋值。
{
c.Text = rd.Next(1,1001).ToString();// 通过随机数方式给每个label赋值(Text属性)。
}
}
下面是计算按钮里的代码:
// 计算按钮里的代码。
int sum = 0;
string temp = "素数有:\n";
foreach (Control c in this.Controls)
{
if (c is Label)
{
temp = temp + (IsPrime(c.Text) == 0 ? "" : IsPrime(c.Text).ToString() + "\n");
sum += IsPrime(c.Text);
}
}
temp = temp + "\n和为:\n" + sum.ToString();
MessageBox.Show(temp);
还有一个Isprime方法,是校验是否是素数的方法。
/// <summary>
/// 校验一个字符串是否可以转换为素数。
/// </summary>
/// <param name="str"></param>
/// <returns>若可以转换为素数,则返回,否则返回0。</returns>
private int IsPrime(string str)
{
int res = 0; // 用于存放每一次校验的返回结果。不是素数则赋值0并且返回。
int count = 0; // 用于计数。
if (int.TryParse(str, out res))
{
for (int i = 1; i <= res/2; i++)// 从1到当前被校验的数字的一半,能被整除的话计数就自增1。
{
if (res%i == 0)
{
count++;
}
}
if (count > 1) // 判断,如果被整除次数大于1,说明不是素数。将res重新置为0返回。
{
res = 0;
}
}
return res;
}
|
|