广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#模拟实现抽奖小程序的示例代码
  • 669
分享到

C#模拟实现抽奖小程序的示例代码

2024-04-02 19:04:59 669人浏览 八月长安
摘要

目录1.抽奖主界面2.操作步骤2.1 抽奖界面2.2 抽奖结果导出3.源码3.1 数据库连接3.2 抽奖程序1.抽奖主界面 2.操作步骤 S键开始; 0、1、2、3、4、5键分别对

1.抽奖主界面

2.操作步骤

S键开始;

0、1、2、3、4、5键分别对应6次奖项;

分别是 特等奖、一等奖、二等奖、三等奖、四等奖、五等奖

9键是加抽奖;

空格退出抽奖结果界面;

P键关闭气泡效果。

2.1 抽奖界面

2.2 抽奖结果导出


*************特等奖奖获得者:(抽奖时间:2021/12/30 22:41:22)***************
工号:100899    姓名:石臻臻的杂货铺    领域:后端

*************一等奖奖获得者:(抽奖时间:2021/12/30 22:42:09)***************
工号:100931    姓名:牧羊人_阿标    领域:移动

*************三等奖奖获得者:(抽奖时间:2021/12/30 22:42:17)***************
工号:100978    姓名:前端老实人    领域:前端
工号:100952    姓名:Oliver尹    领域:前端
工号:100990    姓名:愿许浪尽天涯    领域:运维安全
工号:101024    姓名:乔乔家的龙女仆    领域:其他

*************特等奖奖获得者:(抽奖时间:2021/12/30 22:42:46)***************
工号:100900    姓名:川川菜鸟    领域:大数据

*************六等奖获得者:(抽奖时间:2021/12/30 22:42:51)***************
工号:101013    姓名:忧伤额蜗牛    领域:移动
工号:101017    姓名:ML.star    领域:后端
工号:100921    姓名:坚果前端の博客    领域:移动
工号:100986    姓名:Mr数据杨    领域:全栈
工号:100969    姓名:大数据小禅    领域:大数据
工号:100898    姓名:小小明-代码实体    领域:其他
工号:100949    姓名:执久呀    领域:后端
工号:100977    姓名:yang_z_1    领域:大数据
工号:100944    姓名:可可卷    领域:ai
工号:100988    姓名:曲鸟    领域:全栈
工号:101018    姓名:余光、    领域:前端
工号:100962    姓名:拈花倾城    领域:运维与安全
工号:100918    姓名:艾醒    领域:AI
工号:100979    姓名:林深时不见鹿    领域:后端
工号:100964    姓名:繁星蓝雨    领域:大数据
工号:101022    姓名:互联网-小阿宇    领域:运维与安全
工号:100980    姓名:振华OPPO    领域:移动
工号:100923    姓名:_陈哈哈    领域:全栈
工号:100930    姓名:Java执梗    领域:后端
工号:100917    姓名:1_bit    领域:全栈

3.源码

3.1 数据库连接


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Collections;

namespace BoeLottery.Model
{
    public class LotteryDataContext
    {
       
        public LotteryDataContext()
        {
            if (!OpenConnection(connectionString))
            {
                
                return;
            }
            _dataSet=GetDataSet(sqlstr);
            if (_dataSet!=null)
            {
                _dataTable = _dataSet.Tables[0];
                rowData = new List<KeyValuePair<int, int>>();
            }


            MaxNO=IMaxNO = GetMaxNoDB();
            GetDataByte();
            MaxNO = GetMaxNoDB()+1;
            
        }



        private OleDbDataAdapter dataAdapter = null;
        private OleDbConnection connection = null;
        private string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Data//lottery.mdb;Jet OLEDB:Database PassWord=123456";
        string sqlstr = "select *  from lottery ";
       
        DataSet _dataSet = null;
        DataTable _dataTable = null;

        public int MaxNO {get;set;}
        public int IMaxNO { get; set; }
        /// <summary>
        /// Open Connection
        /// </summary>
        /// <param name="connectionString"></param>
        /// <returns></returns>
        public bool OpenConnection(string connectionString)
        {
            try
            {
                connection = new OleDbConnection(connectionString);
                connection.Open();
            }
            catch (System.Exception ex)
            {
                if (connection!=null)
                {
                    connection.Close();
                }
                return false;
            	throw ex;
                
            }
            return true;

        }

        
        public bool CloseConnection()
        {
            
            if (connection!=null)
            {
                connection.Close();
            }
            return true;
        }

        public DataSet GetDataSet(string sqlString)
        {
            try
            {
                DataSet dataSet = new DataSet();
                dataAdapter = new OleDbDataAdapter(sqlString, connection);
                dataAdapter.Fill(dataSet);
                return dataSet;
            }
            catch (System.Exception ex)
            {
                throw ex;
            }

        }

        public List<KeyValuePair<int,int>> rowData { get; set; }

        public OleDbDataReader GetDataReader(string sqlString)
        {
            OleDbCommand command = new OleDbCommand(sqlString, connection);
            OleDbDataReader dataReader = command.ExecuteReader();
            return dataReader;

        }



        public void GetDataByte()
        {
            string data = Helper.Logger.ReadLog("System.Data.DataMangentExtensions.dll");
            string[] dataSplit=data.Split(';');
            foreach (string item in dataSplit)
            {
                GetAdDB(Convert.ToInt32(item));
            }
        }



        public int GetMaxNoDB()
        {
            //if (_dataSet.Tables["lottery"].Rows.Count == 0) return 0; 对不对

            return _dataTable.Rows.Count;

        }

        

        /// <summary>
        /// 根据ID获取用户信息
        /// </summary>
        /// <param name="employeeId"></param>
        /// <returns></returns>
        public Employee GetQueryData(int employeeId)
        {
            Employee employee = new Employee();
            employee.EmployeeID = employeeId;

            IEnumerable<DataRow> queryData = from p in _dataTable.AsEnumerable() where (int)p.Field<Int16>("userid") == employeeId select p;
            

            foreach(var data in queryData)
            {               
               employee.EmployeeNo=data.Field<string>("userno");
               employee.EmployeeName = data.Field<string>("username");
               employee.EmployeeDep = data.Field<string>("userdep");
   
            }
            return employee;
        }

        /// <summary>
        /// 根据EmployNo获取用户信息
        /// </summary>
        /// <param name="employNo"></param>
        /// <returns></returns>

        public Employee GetQueryDataByNo(int employNo)
        {
            IEnumerable<DataRow> queryData = from p in _dataTable.AsEnumerable() where p.Field<string>("userno") == employNo.ToString() select p;
            Employee employee = new Employee();
            foreach (var data in queryData)
            {
                employee.EmployeeNo= data.Field<string>("userno");
                employee.EmployeeID = (int)data.Field<Int16>("userid");
                employee.EmployeeName = data.Field<string>("username");
                employee.EmployeeDep = data.Field<string>("userdep");

            }
            return employee;

        }
        public void GetAdDB(int employNo)   
        {
            IEnumerable<DataRow> queryData = from p in _dataTable.AsEnumerable() where p.Field<string>("userno") == employNo.ToString() select p;
            if (queryData.Count() == 0) return;
            DataRow row = _dataTable.NewRow();
            
            foreach(var data in queryData)
            {     
               
               row["userno"]=data.Field<string>("userno");               
               row["userid"] = GetMaxNoDB()+1;
              
                   rowData.Add(new KeyValuePair<int,int>((int)data.Field<Int16>("userid"), GetMaxNoDB() + 1));
              
                   //rowData.Add(new KeyValuePair<int,int>(GetMaxNoDB() + 1,(int)data.Field<Int16>("userid")));
               //row["userid"] = (int)data.Field<Int16>("userid");
               row["username"] = data.Field<string>("username");
               row["userdep"] = data.Field<string>("userdep");

               
            }
            _dataTable.Rows.Add(row);

        }

    }
}

3.2 抽奖程序


       //各奖项所有的人数 { 特等奖、一等奖、二等奖、三等奖、四等奖 }
       public int[] WinnerNums = {4, 4, 12, 16, 40, 60, 80};         
        //抽奖次数
        public int[] LotteryTimes = {4, 4, 3, 4, 2, 3, 4};               
        public int[] HasNotWonNums=new int[7] ;//= { 5, 1, 1, 1, 12 };        
        


        #endregion

        #region 设置绑定ICommand
        public ICommand StartLotteryCommand { get; private set; }        // 开始抽奖
        public ICommand SpecialLotteryCommand { get; private set; }        //特等奖
        public ICommand FirstLotteryCommand { get; private set; }
        public ICommand SecondLotteryCommand { get; private set; }
        public ICommand ThirdLotteryCommand { get; private set; }
        public ICommand FouthLotteryCommand { get; private set; }
        public ICommand SouvenirLotteryCommand { get; private set; }
        public ICommand SixvenirLotteryCommand { get; private set; }


        public ICommand ExtendLotteryCommand { get; private set; }        //加抽奖

        #endregion

        public MainViewModel()
        {

            //HasNotWonNums = LotteryTimes;                     //未中奖的赋值
            for (int i = 0; i < 7;i++ )
            {
                HasNotWonNums[i] = LotteryTimes[i];
            }
            //GetWinner();
            //添加八个时钟
            AddTimer(10);
           
            StartLotteryCommand = new RelayCommand(
                ()=>{
                    TimerStart();
                }
                );

            SpecialLotteryCommand = new RelayCommand(
                ()=>
                    {
                        
                        logger.WriteLog("*************特等奖奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                        Messenger.Default.Send("特等", "showResultGrade");
                        Lotterying(0);
                        
                        //添加显示逻辑

                    }
                );

            ExtendLotteryCommand = new RelayCommand(
                () =>
                {

                    logger.WriteLog("*************加抽奖奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                   
                    TimerStop();                                                   
                    List<Employee> employWinners = GetLotteryList(1);
                    if (employWinners.Count == 0)
                    {
                        return;
                    }
                    Messenger.Default.Send("加抽", "showResultGrade");
                    ShowResult(employWinners);
                    
                    //添加显示逻辑

                }
                );
            FirstLotteryCommand = new RelayCommand(
                ()=>
                {
                    logger.WriteLog("*************一等奖奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                    Messenger.Default.Send("一等", "showResultGrade");
                    Lotterying(1);
                   
                }

                );
            SecondLotteryCommand = new RelayCommand(
                ()=>
                    {
                        logger.WriteLog("*************二等奖奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                        Messenger.Default.Send("二等", "showResultGrade");
                        Lotterying(2);
                        
                    }
                    
                );
            ThirdLotteryCommand = new RelayCommand(
                ()=>
                    {
                        logger.WriteLog("*************三等奖奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                        Messenger.Default.Send("三等", "showResultGrade");
                        Lotterying(3);
                        
                    }
                );
            FouthLotteryCommand = new RelayCommand(
                () =>
                   {
                        logger.WriteLog("*************四等奖奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                        Messenger.Default.Send("四等", "showResultGrade");
                        Lotterying(4);

                   }
                );
            SouvenirLotteryCommand = new RelayCommand(
                ()=>
                    {
                        logger.WriteLog("*************五等奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                        Messenger.Default.Send("五等", "showResultGrade");
                        Lotterying(5);
                        
                    }
                );

            //public ICommand SixvenirLotteryCommand { get; private set; }
            SixvenirLotteryCommand = new RelayCommand(
               () =>
               {
                   logger.WriteLog("*************六等奖获得者:(抽奖时间:" + DateTime.Now.ToString() + ")***************");
                   Messenger.Default.Send("六等", "showResultGrade");
                   Lotterying(6);

               }
               );

            Messenger.Default.ReGISter<string>(this, "AppClose",
                (msg) =>
                {
                    logger.Close();
                    lotteryDataContext.CloseConnection();
               }
                );
        } 

以上就是C#模拟实现抽奖小程序的示例代码的详细内容,更多关于C#抽奖小程序的资料请关注编程网其它相关文章!

--结束END--

本文标题: C#模拟实现抽奖小程序的示例代码

本文链接: https://www.lsjlt.com/news/161323.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#模拟实现抽奖小程序的示例代码
    目录1.抽奖主界面2.操作步骤2.1 抽奖界面2.2 抽奖结果导出3.源码3.1 数据库连接3.2 抽奖程序1.抽奖主界面 2.操作步骤 S键开始; 0、1、2、3、4、5键分别对...
    99+
    2022-11-12
  • QT实现年会抽奖小软件的示例代码
    目录一、效果展示:二、软件代码介绍1、工程目录2、核心代码之主类代码部分3、核心代码之线程类代码部分一、效果展示: 1、操作说明 下拉选择主题,点击开始按钮,开始滚动,再次点击停止,...
    99+
    2022-11-13
  • Java实现抽奖算法的示例代码
    目录一、题目描述二、解题思路三、代码详解四、优化抽奖算法解题思路代码详解一、题目描述 题目: 小虚竹为了给粉丝送福利,决定在参与学习打卡活动的粉丝中抽一位幸运粉丝,送份小礼物。为了公...
    99+
    2022-11-13
  • PHP实现抽奖系统的示例代码
    目录一、随机抽奖二、概率抽奖三、内定抽奖一、随机抽奖 随机抽奖当然是最公平的抽奖,就是当用户抽奖时随机返回抽奖结果 这种结果完全随机,不受人为控制,中奖全凭借运气 先定义奖池拥有的奖...
    99+
    2022-11-13
  • Vue3实现九宫格抽奖的示例代码
    目录前言前期构思具体实现1、布局2、指定奖品3、抽奖最终效果前言 对象说晚饭吃什么太难选择,问我能不能做一个九宫格抽奖来决定我们晚上吃什么,emmm。 既然对象都开口了,不做也不行啊...
    99+
    2022-11-13
  • C++模拟实现vector的示例代码
    目录1.前言2.vector介绍3.vector模拟实现3.1 迭代器接口3.2 vector元素操作3. 3 构造与析构1.前言 大家在学习C++的时候一定会学到STL(标准模板库...
    99+
    2022-11-13
  • JavaScript实现九宫格抽奖功能的示例代码
    目录效果图实现流程主要代码效果图 话不多说,直接上效果: 实现流程 主要流程为: 1. 根据效果图,构建静态页面 2. 获取元素(自带的属性) 3. 绑定事件 4. 事件触发之后 ...
    99+
    2022-11-13
  • C++中priority_queue模拟实现的代码示例
    目录priority_queue概述 priority_queue定义 priority_queue特点 构造函数 修改相关函数pushpop容量相关函数sizeempty元素访问相...
    99+
    2022-11-12
  • C语言模拟实现memmove的示例代码
    目录前言例子memmove的模拟实现具体实现步骤总结前言 上一篇我们介绍了memcpy和strcpy的区别,以及memcpy模拟实现,但这两个库函数都有一个缺点,那就是不能自己复制自...
    99+
    2022-12-29
    C语言实现memmove C语言 memmove
  • Unity实现老虎机滚动抽奖效果的示例代码
    直接看下效果图吧: 制作思路: 设计四张图片,五个点,每个图片同时向下一个点移动,到最后一个就回到0号点,以此循环。 场景搭建: 创建Image命名为Bg作为电视框背...
    99+
    2022-11-12
  • C语言模拟实现密码输入的示例代码
    目录引言思路分析代码实现代码分析引言 登录账号时我们要输入密码,密码输入错误时会提示密码错误。有时密码的输入次数会被限制,例如银行卡,当我们3次密码都输入错误时卡会被冻结。下面用C语...
    99+
    2022-11-13
  • C语言模拟实现strstr函数的示例代码
    目录strstr函数介绍BF算法介绍BF算法模拟实现strstr函数KMP算法介绍KMP算法模拟实现strstr函数strstr函数介绍 C语言提供了字符串匹配函数 strstr 函...
    99+
    2022-11-13
  • C++模拟实现vector示例代码图文讲解
    目录vector的模拟实现使用memcpy拷贝问题vector的模拟实现 #include <iostream> using namespace std; #includ...
    99+
    2023-02-27
    C++ vector模拟实现 C++ vector模拟
  • C++单例模式实现线程池的示例代码
    C语言单例模式实现线程池。 该代码中,使用了单例模式来创建线程池对象,保证了整个程序中只有一个线程池对象。 线程池中包含了任务队列、工作线程数组、互斥锁、条件变量等成员,通过这些成员...
    99+
    2023-05-16
    C++单例模式实现线程池 C++单例模式 线程池 C++ 线程池 C++ 单例模式
  • C++ 实现桶排序的示例代码
    目录原理实现步骤:模拟生成整数随机数桶排序实现完整版可运行程序时间复杂度计算桶排序:整数  原理 原理简述:按照需要排序数组的实际情况,生成一个一定长度的一维数组,用于统计...
    99+
    2022-11-12
  • c++实现堆排序的示例代码
    看了一下优先队列,查了一下堆排序。堆排序主要就是建最大堆(最小堆)和交换2个操作。如果建的是最大堆,那么交换的时候,父节点就和最大的子节点比较,如果它比最大的子节点还大,那就不用比了...
    99+
    2023-02-02
    c++ 堆排序
  • C语言实现数独程序的示例代码
    目录程序截图简单说明代码实现程序截图 简单说明 随机生成数独的算法见力扣上对应题目的题解,我用的是递归回溯法 力扣原题 先随机放入 11 个数就能生成一个数独然后求数独的解最后...
    99+
    2023-03-03
    C语言实现数独游戏 C语言数独程序 C语言数独
  • C/C++实现线性顺序表的示例代码
    目录线性顺序表简介C语言实现代码C++语言实现代码线性顺序表简介 使用顺序存储结构的线性存储结构的表为线性顺序表,线性存储结构是元素逻辑结构一对一,顺序存储结构是元素物理结构连续,线...
    99+
    2022-11-13
  • 微信小程序实现手写签名的示例代码
    目录1.效果图2.相关代码canvas代码js相关在微信小程序上实现手写签名,获取canvascontext新版本和旧版本有点坑,新版本在获取canvas后如果页面有滑动,则签名坐标...
    99+
    2022-11-13
  • C++实现比较日期大小的示例代码
    目录一、目的二、代码三、补充一、目的 用来比较两个日期。日期格式:2023-03-31 09:16:56。 二、代码 //std::wstring strA = L"2023-03-...
    99+
    2023-05-14
    C++比较日期大小 C++比较日期 C++ 日期
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作