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

5.代碼實現(xiàn)
【實體類】
- 功能一:定義一個保存選號的成員并【創(chuàng)建對象】
//屬性-臨時號碼(用于存儲隨機號及數(shù)組的)
public List<string[]> selectNum { get; set; }
private Random randomNum = new Random();
//構(gòu)造方法-創(chuàng)建臨時號碼對象
public Selector()
{
this.selectNum = new List<string[]>();
}- 功能二:生成7個隨機數(shù)【數(shù)組】并將數(shù)組返回
//實例方法-隨機選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組隨機數(shù)組無需返回【帶參數(shù)】
//實例方法-隨機選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;
}【主函數(shù)】
- 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】調(diào)用實體類<遍歷成員而生成的列表>
//實例方法-列表顯示
public void showList()
{
this.list_num.Items.Clear(); //先清空列表,再添加
this.list_num.Items.AddRange(this.objSelector.listNum().ToArray()); //重點
}- Step04:【缺省類】關(guān)閉、最小化、窗口拖拽
//關(guān)閉
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
//最小化
private void btnMin_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
}窗口拖拽
- Step05:【隨機選號】讓標(biāo)簽數(shù)字滾動,開始定時器即可(使能按鈕)
//隨機選號
private void btn_random_Click(object sender, EventArgs e)
{
this.timer_sleep.Start();
this.btn_random.Enabled = false;
this.btn_confirm.Enabled = true;
}- Step06:【確認(rèn)選號】停止?jié)L動、并保存當(dāng)前數(shù)字到成員變量、并顯示列表
//確認(rèn)選號
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:【隨機組選】將組數(shù)傳遞到參數(shù)方法、顯示列表
//隨機組選
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:【清除、清空】獲取選中的索引,調(diào)用集合項的【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:\\自學(xué)視頻\\1C#\\喜科堂 郭哥推薦\\練習(xí)第二遍\\彩票選號軟件\\bin\\Debug\\NumList.Txt");
}
//定時器實時監(jiān)測數(shù)值-初始化開始定時器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ā)邏輯圖如下所示:

到此這篇關(guān)于C#項目彩票選號實現(xiàn)思路的文章就介紹到這了,更多相關(guān)C#彩票選號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關(guān)文章
C#集合根據(jù)對象的某個屬性進(jìn)行去重的代碼示例
當(dāng)根據(jù)對象的Name屬性進(jìn)行去重時,你可以使用以下三種方法:使用Distinct方法和自定義比較器、使用LINQ的GroupBy方法,以及使用HashSet,下面給大家介紹C#集合根據(jù)對象的某個屬性進(jìn)行去重的代碼示例,感興趣的朋友一起看看吧2024-03-03
程序中兩個Double類型相加出現(xiàn)誤差的解決辦法
本篇文章介紹了,程序中兩個Double類型相加出現(xiàn)誤差的解決辦法。需要的朋友參考下2013-04-04
C#中的數(shù)組作為參數(shù)傳遞所引發(fā)的問題
這篇文章主要介紹了C#中的數(shù)組作為參數(shù)傳遞所引發(fā)的問題 的相關(guān)資料,需要的朋友可以參考下2016-03-03

