C#項目彩票選號實現思路
更新時間:2024年08月10日 09:43:08 作者:郭恩碩
今天做了一個彩票選號的小軟件,將學到的知識點總結一下,下面通過本文給大家分享C#項目彩票選號實現思路,感興趣的朋友跟隨小編一起看看吧
C#彩票選號軟件
今天做了一個彩票選號的小軟件,將學到的知識點總結如下;
1.寫程序的思路
- 實體類(屬性、方法)
- 主程序調用類方法
2.學到的知識點
- 判斷、循環(huán)
- 文件的操作(保存、打開)
- 集合、數組(增加-AddRange、刪除-RemoveAt、排序-Reverse)
- 關鍵字:Random(隨機數-Next)
- 定時器的應用(啟動、停止、實時刷新)
3.經驗技巧
- 開發(fā)控件的屬性可以查看界面后的designer中的控件缺省代碼并修改應用
4.UI界面

5.代碼實現
【實體類】
- 功能一:定義一個保存選號的成員并【創(chuàng)建對象】
//屬性-臨時號碼(用于存儲隨機號及數組的)
public List<string[]> selectNum { get; set; }
private Random randomNum = new Random();
//構造方法-創(chuàng)建臨時號碼對象
public Selector()
{
this.selectNum = new List<string[]>();
}- 功能二:生成7個隨機數【數組】并將數組返回
//實例方法-隨機選7個號
public string[] selectNumArray()
{
string[] ranNum7 = new string[7];
for (int i = 0; i < 7; i++)
{
ranNum7[i] = this.randomNum.Next(10).ToString();
}
return ranNum7;
}- 功能三:生成n組隨機數組無需返回【帶參數】
//實例方法-隨機選n組號
public void selectNumGroup(int groupNum)
{
for (int i = 0; i < groupNum; i++)
{
selectNum.Add(selectNumArray());
}
}- 功能四:【遍歷】成員變量生成號碼表
//實例方法-號碼列表
public List<string> listNum()
{
List<string> listData = new List<string>();
string listName;
for (int i = 0; i < this.selectNum.Count; i++)
{
if (i < 9) { listName = "第0" + (i + 1) + "組: "; }
else {listName = "第" + (i + 1) + "組: ";}
for (int j = 0; j < this.selectNum[i].Length; j++)
{
if (j == 5) { listName += selectNum[i][j] + " "; } else
{listName += selectNum[i][j] + " ";}
}
listData.Add(listName); //重點
}
listData.Reverse(); //重點
return listData;
}【主函數】
- Step01:【初始化】
//初始化
public FrmMain()
{
InitializeComponent();
this.timer_sleep.Stop();
this.btn_randomGro.Enabled = true;
this.btn_confirm.Enabled = true;
this.btn_random.Enabled = true;
this.btn_clear.Enabled = false;
this.btn_dele.Enabled = false;
this.timer1.Start();
}- Step02:【創(chuàng)建類對象】
//創(chuàng)建類對象 private Selector objSelector = new Selector();
- Step03:【添加列表-AddRange】調用實體類<遍歷成員而生成的列表>
//實例方法-列表顯示
public void showList()
{
this.list_num.Items.Clear(); //先清空列表,再添加
this.list_num.Items.AddRange(this.objSelector.listNum().ToArray()); //重點
}- Step04:【缺省類】關閉、最小化、窗口拖拽
//關閉
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
//最小化
private void btnMin_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}窗口拖拽
- Step05:【隨機選號】讓標簽數字滾動,開始定時器即可(使能按鈕)
//隨機選號
private void btn_random_Click(object sender, EventArgs e)
{
this.timer_sleep.Start();
this.btn_random.Enabled = false;
this.btn_confirm.Enabled = true;
}- Step06:【確認選號】停止?jié)L動、并保存當前數字到成員變量、并顯示列表
//確認選號
private void btn_confirm_Click(object sender, EventArgs e)
{
this.timer_sleep.Stop();
string[] txtNums ={
lblNum1.Text,
lblNum2.Text,
lblNum3.Text,
lblNum4.Text,
lblNum5.Text,
lblNum6.Text,
lblNum7.Text }; //難點
this.objSelector.selectNum.Add(txtNums);
showList();
this.btn_confirm.Enabled = false;
this.btn_random.Enabled = true;- Step07:【隨機組選】將組數傳遞到參數方法、顯示列表
//隨機組選
private void btn_randomGro_Click(object sender, EventArgs e)
{
this.objSelector.selectNumGroup(Convert.ToInt16(this.lblNumGro.Text));
showList();
this.btn_clear.Enabled = true;
this.btn_dele.Enabled = true;
}- Step08:【清除、清空】獲取選中的索引,調用集合項的【RemoveAt】;【Clear】
//刪除
private void brn_dele_Click(object sender, EventArgs e)
{
this.objSelector.selectNum.RemoveAt(this.list_num.SelectedIndex); //重點
showList();
}
//清空
private void btn_clear_Click(object sender, EventArgs e)
{
this.list_num.Items.Clear();
this.objSelector.selectNum.Clear(); //重點
btn_clear.Enabled = false;
btn_dele.Enabled = false;
}- Step09:【擴展】文件的打開保存、實時刷新
#region 【擴展】文件的打開保存、定時器實時刷新
//保存到文件
private void btnSave_Click(object sender, EventArgs e)
{
FileStream fs = new FileStream("NumList.Txt", FileMode.Create); //重點
StreamWriter sw = new StreamWriter(fs);
for (int i = 0; i < this.list_num.Items.Count; i++)
{
sw.WriteLine(this.list_num.Items[i]);
}
sw.Close();
fs.Close();
MessageBox.Show("保存成功", "提示您", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
//打開文件夾
private void btnsaveOpen_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("Explorer.exe",
"J:\\自學視頻\\1C#\\喜科堂 郭哥推薦\\練習第二遍\\彩票選號軟件\\bin\\Debug\\NumList.Txt");
}
//定時器實時監(jiān)測數值-初始化開始定時器timer1
private void timer1_Tick(object sender, EventArgs e)
{
if (this.list_num.Items.Count == 0 || this.list_num.SelectedItem == null)
{
this.btn_dele.Enabled = false;
}
else
{
this.btn_dele.Enabled = true;
}
}
#endregion程序開發(fā)邏輯圖如下所示:

到此這篇關于C#項目彩票選號實現思路的文章就介紹到這了,更多相關C#彩票選號內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:

