C#現金入り封筒は抽選確率を生成し、現金入り封筒は分配する
抽選確率:
お年玉の生成:
public int PrabalityRandom()
{
Random random = new Random();
int i= Convert.ToInt32(AwardRate);
if (random.Next(100) < i) //
{
return 1;//
}
else
{
return 0;//
}
}
お年玉の生成:
private void button2_Click_1(object sender, EventArgs e)
{
if (btnOkOut.Text.Equals(" "))
{
MessageBox.Show(" !"," !");
return;
}
string Probability = cbxProbability.DisplayMember;//
if (txtWinner.Text.Trim() == "")
{
MessageBox.Show(" ");
return;
}
if (txtWinner.Text.Trim() == "")
{
MessageBox.Show(" ");
return;
}
int Winner = Convert.ToInt32(txtWinner.Text);//
int Money = Convert.ToInt32(txtMoney.Text) * 100;//
DataSet ds = DbHelperSQL.Query("SELECT * from Data_RedEnvelopeAward");
if (ds.Tables[0].Rows.Count != 0)//truncate table Data_RedEnvelopeAward
{
DbHelperSQL.ExecuteSql("truncate table Data_RedEnvelopeAward"); //
}
List list = new List();
int a = 1000;
int sum = 0;
if (radioButton2.Checked)//
{
int[] arr = new int[Winner];
Random rand = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < Winner - 1; i++)// 1
{
arr[i] = rand.Next(Money);
}
Array.Sort(arr);
// split 10 ,
int[] split = new int[Winner];//
for (int i = 0; i < Winner; i++)//
{
if (i == 0)
{
split[i] = arr[i] - 0;
}
else if (i == Winner - 1)// 1
{
split[i] = Money - arr[i - 1];//
}
else
{
split[i] = arr[i] - arr[i - 1];
}
}
// 1000
for (int i = 0; i < Winner; i++)//
{
if (i < Winner - 1)// 1
{
Console.Write("{0}+", split[i]);
}
else
{
Console.Write("{0}=", split[i]);
}
sum += split[i];
list.Add(string.Format("INSERT INTO Data_RedEnvelopeAward VALUES ({0}, 0)", Convert.ToDouble(split[i] * 0.01)));
}
Console.WriteLine(sum);
}
if (radioButton1.Checked)//
{
int mw = (Money) / Winner;
for (int i = 0; i < Winner; i++)//
{
Console.Write("{0}+", mw);
list.Add(string.Format("INSERT INTO Data_RedEnvelopeAward VALUES ({0}, 0)", Convert.ToDouble(mw * 0.01)));
sum += mw;
}
Console.WriteLine("=" + sum);
}
DbHelperSQL.ExecuteSqlTran(list);
MessageBox.Show(" ");
}