C#项目彩票选号实现思路

 更新时间:2024年08月10日 09:43:08   作者:郭恩硕  
今天做了一个彩票选号的小软件,将学到的知识点总结一下,下面通过本文给大家分享C#项目彩票选号实现思路,感兴趣的朋友跟随小编一起看看吧

C#彩票选号软件

今天做了一个彩票选号的小软件,将学到的知识点总结如下;

1.写程序的思路

  • 实体类(属性、方法)
  • 主程序调用类方法

2.学到的知识点

  • 判断、循环
  • 文件的操作(保存、打开)
  • 集合、数组(增加-AddRange、删除-RemoveAt、排序-Reverse)
  • 关键字:Random(随机数-Next)
  • 定时器的应用(启动、停止、实时刷新)

3.经验技巧

  • 开发控件的属性可以查看界面后的designer中的控件缺省代码并修改应用

4.UI界面

5.代码实现

【实体类】

  • 功能一:定义一个保存选号的成员并【创建对象】
//属性-临时号码(用于存储随机号及数组的)
 public List<string[]> selectNum { get; set; }
 private Random randomNum = new Random();
 //构造方法-创建临时号码对象
 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【创建类对象】
   //创建类对象
   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【确认选号】停止滚动、并保存当前数字到成员变量、并显示列表
//确认选号
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");
}
//定时器实时监测数值-初始化开始定时器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

程序开发逻辑图如下所示:

到此这篇关于C#项目彩票选号实现思路的文章就介绍到这了,更多相关C#彩票选号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • C#与js实现去除textbox文本框里面重复记录的方法

    C#与js实现去除textbox文本框里面重复记录的方法

    这篇文章主要介绍了C#与js实现去除textbox文本框里面重复记录的方法,很实用的功能,需要的朋友可以参考下
    2014-08-08
  • c# 实现文件上传下载功能的实例代码

    c# 实现文件上传下载功能的实例代码

    这篇文章主要介绍了如何用c# 实现文件上传下载功能,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C#二进制读写BinaryReader、BinaryWriter、BinaryFormatter

    C#二进制读写BinaryReader、BinaryWriter、BinaryFormatter

    这篇文章介绍了C#二进制读写BinaryReader、BinaryWriter、BinaryFormatter的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# TSC打印二维码和条形码的实现方法

    C# TSC打印二维码和条形码的实现方法

    下面小编就为大家分享一篇C# TSC打印二维码和条形码的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • WPF如何自定义ProgressBar滚动条样式

    WPF如何自定义ProgressBar滚动条样式

    这篇文章主要给大家介绍了关于WPF如何自定义ProgressBar滚动条样式的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用WPF具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • C# File类中的文件读写方法详解

    C# File类中的文件读写方法详解

    C#提供了多种操作文件的方案,尤其是File类中封装的静态方法,本文将通过一些简单的示例为大家讲讲C#读写文件的方法,需要的可以参考一下
    2023-05-05
  • DataGridView带图标的单元格实现代码

    DataGridView带图标的单元格实现代码

    这篇文章主要为大家详细介绍了DataGridView带图标的单元格的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Unity3D手机陀螺仪的使用方法

    Unity3D手机陀螺仪的使用方法

    这篇文章主要为大家详细介绍了Unity3D手机陀螺仪的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • Unity3D移动端实现摇一摇功能

    Unity3D移动端实现摇一摇功能

    这篇文章主要为大家详细介绍了基于Unity3D移动端实现摇一摇功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • C#实现流程图设计器

    C#实现流程图设计器

    这篇文章主要介绍了C#实现流程图设计器,感兴趣的小伙伴们可以参考一下
    2015-11-11

最新评论