抽獎概率:
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<string> list = new List<string>();
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("生成完成");
}