抽奖程序,求思路.该怎么处理问题思路不够清晰

查看: 7142|回复: 3
■紧急求助■ 抽奖程序如何进行作弊 ?
欢迎任何的回复 :)
阅读权限30
在线时间 小时
&■紧急求助■ 抽奖程序如何进行作弊 ?& :) 公司要给员工举办一次活动.... 为了使得活动更好玩, 现在准备在礼物抽奖的时候动一点手脚, 希望能帮几位尚未结婚的小伙子和小姑娘们创造一些机会, 免得机会落入已经结婚的大哥大姐手中白白浪费, 呵呵! 活动表面上将以随机抽取的形式进行,但是实际上却要实现对号入座的效果 :P下面已经有了一个现成的模板供参考,请参照:·三、有一个要注意的是,不能因为某个答案已经有参考值,在按下按钮的时候这个答案的数字就不跳,那样就太假了,嘿嘿。·四、当然如果能把要进行特殊处理的员工名字和所对应参考值放在另外一个表,然后到时候把这个表隐藏起来,那就更妙了!这样,到时候不管名字的顺序如何排列,都能实现对号入座的效果了。但愿这些年轻人们不要辜负我们的殷殷期望。。。&& ;)欢迎任何回复!
[此贴子已经被作者于 0:28:50编辑过]
(14.83 KB, 下载次数: 26)
23:52 上传
■紧急求助■ 抽奖程序如何进行作弊 ?
阅读权限30
在线时间 小时
自己顶一下, 各位大大帮忙看看吧. 个人觉得满好玩的,技术含量也高.
阅读权限20
在线时间 小时
设计思路再提示一下:1. 一开始就把一部分人判了死罪,结果在"预料"中,好像不太好玩吧,不如把那些人的几率设低一点。2. 如果抽20个,一次完成,太快了吧,为什么不分一,二,三等奖呢?即使全部一样,分分组也好吧。程序我不会写[em04]
阅读权限30
在线时间 小时
& & & & & & & &
to Dong2000:谢谢您的回复!1. 是这样子的,其实从严格意义上讲,这不算是抽奖,应该叫配对吧.. 因为抽奖是从一个比较大的数列里面抽取一个比较小的数列,而本帖讲的是另外一种情况,就是所有人度要抽到,但是部分配对的结果是可以事先定义的..要的是绝对准确,不是几率.2. 您说的一次抽完确实太快了... 其实我原来是想,按一下按钮抽一个, 就是说,结果是一个一个出来的. 比如说, 现在按抽奖按钮,第一个员工的结果就出来了,再按一下,又出来一个结果.. 20个员工要按20次按钮, 不过我不知道这样会不会对程序设计造成很大的困难,因此没敢提这个过分的要求,哈. 其实只要能用就可以了..&[em02]
最新热点 /1
Excel三大神器,函数、数据透视表、VBA,分分钟学起来!
原价257元,领券后仅需126元,相当于4.9折!优惠券数量有限,先到先得。活动时间:即日起至12月14日。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师想做一个随机抽奖程序玩,高手指导下 - LabVIEW论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
想做一个随机抽奖程序玩,高手指导下
助理工程师
21:44:06  
想做一个随机抽奖程序玩,高手指导下,思路是:共100个编号,随机抽出一个,然后这个编号不能再出现在待抽编号中,应该怎么实现?
助理工程师
20:28:21  
有没有思路?
21:18:23  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
我刚做的,对你应该有帮助!
我的思路是
1.文件读取,读取已有员工数据表
2.使用局部变量加判断 产生索引。
3.文件写入,
1.建立员工数据表格,按行建立
2.文件存放路径 D:\choujiang.xls
21:14 上传
点击文件名下载附件
下载积分: 积分 -1 分
414.11 KB, 下载次数: 349, 下载积分: 积分 -1 分
16:43:42  
助理工程师
11:35:31  
21:24:38  
15:30:09  
{:1:}{:1:}
15:31:13  
是个应用程序,晕倒的很啊 .....
20:13:50  
牛& && && && && && && && && && && && && && && && && && && &
15:39:58  
学习一下{:1:}
21:52:46  
学习学习,正好遇到这个问题
15:54:40  
18:57:09  
新人,过来学习了,
21:04:20  
能不能把源代码PO出来,还要下载,真烦人····
10:09:53  
看看代码学习学习,正好遇到这个问题
15:15:01  
做另一个很简单的程序,作为参考。
(55.05 KB, 下载次数: 21)
15:12 上传
15:14 上传
点击文件名下载附件
下载积分: 积分 -1 分
9.56 KB, 下载次数: 81, 下载积分: 积分 -1 分
17:00:00  
似乎也不简单呢,有人指点就好
等待验证会员
15:13:08  
学习学习& && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && && &&&
14:33:53  
来学习学习貌似不简单呢
15:24:45  
做的好巧妙啊,感觉好神奇~~学习了
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司.net+mssql制作抽奖程序思路及源码-阿里云资讯网
.net+mssql制作抽奖程序思路及源码
发布时间:
更新时间:
来源:网络
上传者:用户
抽奖程序:
思路整理,无非就是点一个按钮,然后一个图片旋转一会就出来个结果就行了,可这个程序的要求不是这样的,是需要从数据库中随机抽取用户,根据数据库中指定的等级和人数,一键全部抽出来结果就行了。同时需要存储到数据库。还需要一个导出的功能。
不能遗漏的是,如果通过随机数根据id来抽取的话,需要考虑id不连续的问题,如果全部取出id也不现实。尽量少的去读写数据库。
复制代码 代码如下:CREATE TABLE [dbo].[users](&&& [id] [int] IDENTITY(1,1) NOT NULL,&&& [name] [nvarchar](50) NOT NULL,&&& [phone] [nvarchar](50) NULL,&CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED (&&& [id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
CREATE TABLE [dbo].[result](&[id] [int] IDENTITY(1,1) NOT NULL,&[usersid] [int] NOT NULL,&[awardsid] [int] NOT NULL,&CONSTRAINT [PK_result] PRIMARY KEY CLUSTERED (&[id] ASC)WITH (PAD_INDEX& = OFF, STATISTICS_NORECOMPUTE& = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS& = ON, ALLOW_PAGE_LOCKS& = ON) ON [PRIMARY]) ON [PRIMARY]
CREATE TABLE [dbo].[awards](&[id] [int] IDENTITY(1,1) NOT NULL,&[Name] [nvarchar](50) NOT NULL,&[Number] [int] NOT NULL,&CONSTRAINT [PK_awards] PRIMARY KEY CLUSTERED (&[id] ASC)WITH (PAD_INDEX& = OFF, STATISTICS_NORECOMPUTE& = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS& = ON, ALLOW_PAGE_LOCKS& = ON) ON [PRIMARY]) ON [PRIMARY]
CREATE VIEW [dbo].[view1]ASSELECT&&&& dbo.result.id AS resultid, dbo.users.id, dbo.users.name, dbo.users.phone, dbo.awards.Name AS awardnameFROM&&&&&&&& dbo.awards INNER JOIN&&&&&&&&&&&&&&&&&&&&& dbo.result ON dbo.awards.id = dbo.result.awardsid INNER JOIN&&&&&&&&&&&&&&&&&&&&& dbo.users ON dbo.result.usersid = dbo.users.id
CREATE PROCEDURE [dbo].[getranddata] --这个地方的参数是后台调用传的参数,两个变量之间需要“,”号分开@count int, --剩余奖项大小@awards int --奖项的idAS BEGIN --这个地方定义的参数是存储过程内部用到的DECLARE @minid int --最大idDECLARE @maxid int --最小idDECLARE @randnum int --随机数临时变量DECLARE @exist int --查询结果
SET @minid =& (SELECT top 1 id&& FROM users&& ORDER BY id ASC) --查询最小idSET @maxid =& (SELECT top 1 id&& FROM users&& ORDER BY id DESC) --查询最大id--set @count = 100--set @awards = 1--嵌套语句begin开始,end结束while @count&0 BEGINSELECT @randnum = ROUND(((@maxid - @minid -1) * RAND() + @minid), 0)SET @exist =& (SELECT count(*)&& FROM users&& WHERE id=@randnum) IF @exist = 1 BEGININSERT INTO result(usersid,awardsid)VALUES(@randnum,&&&&&& @awards)SET @count = @count - 1 END END END
其中三张表,一个视图,一个存储过程。
后台代码:
复制代码 代码如下:protected void Button1_Click(object sender, EventArgs e){&&& SqlConnection sqlcon = new SqlConnection(&server=.;database=uid=pwd=123&);&&& sqlcon.Open();&&& SqlDataAdapter sqlsda = new SqlDataAdapter(&select * from awards&, sqlcon);&&& ds = new DataSet();&&& sqlsda.Fill(ds);&&& DataTable dt = ds.Tables[0].Copy();&&& ds.Clear();&&& int count = dt.Rows.C
&&& for (int i = 0; i & i++)&&& {&&&&&&& SqlCommand sqlcmd = new SqlCommand(&getranddata&, sqlcon);&&&&&&& SqlParameter pcount = new SqlParameter(&@count&, Convert.ToInt32(dt.Rows[i][&Number&]));&&&&&&& SqlParameter pawards = new SqlParameter(&@awards&, Convert.ToInt32(dt.Rows[i][&id&]));&&&&&&& sqlcmd.Parameters.Add(pcount);&&&&&&& sqlcmd.Parameters.Add(pawards);&&&&&&& mandType = CommandType.StoredP&&&&&&& sqlcmd.ExecuteNonQuery();
&&&&&&& sqlsda = new SqlDataAdapter(&select top & + Convert.ToInt32(dt.Rows[i][&Number&]) + & * from view1 order by resultid desc&, sqlcon);&&&&&&& sqlsda.Fill(ds, &t& + i.ToString());
&&&&&&& switch (i)&&&&&&& {&&&&&&& case 0:&&&&&&&&&&& GridView1.DataSource = ds.Tables[&t& + i.ToString()].Copy().DefaultV&&&&&&&&&&& GridView1.DataBind();&&&&&&&&&&&&&&&&&& case 1:&&&&&&&&&&& GridView2.DataSource = ds.Tables[&t& + i.ToString()].Copy().DefaultV&&&&&&&&&&& GridView2.DataBind();&&&&&&&&&&&&&&&&&& case 2:&&&&&&&&&&& GridView3.DataSource = ds.Tables[&t& + i.ToString()].Copy().DefaultV&&&&&&&&&&& GridView3.DataBind();&&&&&&&&&&&&&&&&&& default:&&&&&&&&&&&&&&&&&& }&&& }&&& sqlcon.Close();}
奖项设置:
抽奖结果:
=================================================================
SQL - 生成指定范围内的随机数
复制代码 代码如下:DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INTSET @Lower = 1SET @Upper = 10SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)SELECT @Result
ROUND()函数:返回按指定位数进行四舍五入的数值。
RAND()函数:生成随机数。
SQL循环语句嵌套
复制代码 代码如下:DECLARE @i intSET @i=1 while @i&8 BEGIN IF @i&5 print space(4-@i)+REPLICATE('*',2*@i-1) ELSE print space(@i-4)+REPLICATE('*',15-2*@i)SET @i=@i + 1 END
本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:zixun-group@ 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
正则表达式字符
SQL Serve提供了简单的字符模糊匹配功能,比如:like, patindex,不过对于某些字符处理场景还显得并不足够,日常碰到的几个问题有: 1. 同一个字符/字符串,出现了多少次 2. 同一个字符,第N次出现的位置 3. 多个相同字符连续,合并为一个字符 4. 是否为有效IP/身份证号/手机号等& 一. 同一个字符/字符串,出现了多少次 同一个字符,将其替换为空串,即可计...
的排序规则
前言 昨天在论坛里面遇到一个比较特殊的场景。他的公司做的是海外的项目,中英再加一个当地语言,要兼容三种文字啊. 那有没有什么字符集或排序规则,能兼容所有文字的?对于海外项目很痛苦啊 .Oracle 有AL32UTF8 ,MySQL 有UTF8 ,那SQL Server 有吗? 基本概念 ASCII编码 在计算机发明后不久,计算机只在美国用。他们创造出了ASCII编码,来表示:空格、标...
废话不多说了,具体代码如下所示: --SYSTEM表空间不足的报警 登录之后,查询,发现是sys.aud$占的地方太多。 SQL& select owner, segment_name, segment_type, sum(bytes)/ space_m from dba_segments where tablespace_name = 'SYSTEM' group...
获取表的字段名
本文向大家介绍了使用SQL语句提取数据库所有表的表名、字段名的实例代码,在SQLserver 中进行了测试,具体内容如下: --查询所有用户表所有字段的特征 SELECT D.Name as TableName, A.colorder AS ColOrder, A.name AS Name, COLUMNPROPERTY(A.ID,A.Name, 'IsIdentity') AS IsIde...
行列互转,是一个经常遇到的需求。实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现。 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和总结过。为了加深认识,再总结一次。 行列互转,可以分为静态互转,即事先就知道要处理多少行(列);动态互转,事先不知道处理多少行(列)。 --创建测试环境 USE GO IF OB...
很多时候,大家都知道,浮点型这个东西,本身存储就是一个不确定的数值,你永远无法知道,它是 0 = 0.00123 还是 0 = 0.99这样的东西。也许一开始使用的时候没有问题,但是有时候做统计的时候,就会看出端倪 简单的举个例子,就知道统计的时候,有可能出现意外的效果,导致可能需要存储过程或者接收程序的代码左额外的取舍数位的处理,所以在此其...
若您要投稿、删除文章请联系邮箱:zixun-group@,工作人员会在5个工作日内回复。
售前咨询热线
服务与支持
账号与支持
关注阿里云
International&net&mssql制作抽奖程序思路及源码
近期一直在研究数据库,刚好有个项目要做抽奖程序,恩,拿来练练手吧。
抽奖程序:
思路整理,无非就是点一个按钮,然后一个图片旋转一会就出来个结果就行了,可这个程序的要求不是这样的,是需要从数据库中随机抽取用户,根据数据库中指定的等级和人数,一键全部抽出来结果就行了。同时需要存储到数据库。还需要一个导出的功能。
不能遗漏的是,如果通过随机数根据id来抽取的话,需要考虑id不连续的问题,如果全部取出id也不现实。尽量少的去读写数据库。
CREATE TABLE [dbo].[users](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [nvarchar](50) NOT NULL,
[phone] [nvarchar](50) NULL,
CONSTRAINT [PK_table1] PRIMARY KEY CLUSTERED
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[result](
[id] [int] IDENTITY(1,1) NOT NULL,
[usersid] [int] NOT NULL,
[awardsid] [int] NOT NULL,
CONSTRAINT [PK_result] PRIMARY KEY CLUSTERED
)WITH (PAD_INDEX
= OFF, STATISTICS_NORECOMPUTE
= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS
= ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[awards](
[id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Number] [int] NOT NULL,
CONSTRAINT [PK_awards] PRIMARY KEY CLUSTERED
)WITH (PAD_INDEX
= OFF, STATISTICS_NORECOMPUTE
= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS
= ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE VIEW [dbo].[view1]
dbo.result.id AS resultid, dbo.users.id, dbo.users.name, dbo.users.phone, dbo.awards.Name AS awardname
dbo.awards INNER JOIN
dbo.result ON dbo.awards.id = dbo.result.awardsid INNER JOIN
dbo.users ON dbo.result.usersid = dbo.users.id
CREATE PROCEDURE [dbo].[getranddata]
--这个地方的参数是后台调用传的参数,两个变量之间需要“,”号分开
@count int, --剩余奖项大小
@awards int --奖项的id
--这个地方定义的参数是存储过程内部用到的
DECLARE @minid int --最大id
DECLARE @maxid int --最小id
DECLARE @randnum int --随机数临时变量
DECLARE @exist int --查询结果
SET @minid =
(SELECT top 1 id
FROM users
ORDER BY id ASC) --查询最小id
SET @maxid =
(SELECT top 1 id
FROM users
ORDER BY id DESC) --查询最大id
--set @count = 100
--set @awards = 1
--嵌套语句begin开始,end结束
while @count&0 BEGIN
SELECT @randnum = ROUND(((@maxid - @minid -1) * RAND() + @minid), 0)
SET @exist =
(SELECT count(*)
FROM users
WHERE id=@randnum) IF @exist = 1 BEGIN
INSERT INTO result(usersid,awardsid)
VALUES(@randnum,
SET @count = @count - 1 END END END
其中三张表,一个视图,一个存储过程。
后台代码:
protected void Button1_Click(object sender, EventArgs e)
SqlConnection sqlcon = new SqlConnection("server=.;database=uid=pwd=123");
sqlcon.Open();
SqlDataAdapter sqlsda = new SqlDataAdapter("select * from awards", sqlcon);
ds = new DataSet();
sqlsda.Fill(ds);
DataTable dt = ds.Tables[0].Copy();
ds.Clear();
int count = dt.Rows.C
for (int i = 0; i & i++)
SqlCommand sqlcmd = new SqlCommand("getranddata", sqlcon);
SqlParameter pcount = new SqlParameter("@count", Convert.ToInt32(dt.Rows[i]["Number"]));
SqlParameter pawards = new SqlParameter("@awards", Convert.ToInt32(dt.Rows[i]["id"]));
sqlcmd.Parameters.Add(pcount);
sqlcmd.Parameters.Add(pawards);
mandType = CommandType.StoredP
sqlcmd.ExecuteNonQuery();
sqlsda = new SqlDataAdapter("select top " + Convert.ToInt32(dt.Rows[i]["Number"]) + " * from view1 order by resultid desc", sqlcon);
sqlsda.Fill(ds, "t" + i.ToString());
switch (i)
GridView1.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultV
GridView1.DataBind();
GridView2.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultV
GridView2.DataBind();
GridView3.DataSource = ds.Tables["t" + i.ToString()].Copy().DefaultV
GridView3.DataBind();
sqlcon.Close();
奖项设置:
抽奖结果:
=================================================================
SQL - 生成指定范围内的随机数
DECLARE @Result INT DECLARE @Upper INT DECLARE @Lower INT
SET @Lower = 1
SET @Upper = 10
SELECT @Result = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SELECT @Result
ROUND()函数:返回按指定位数进行四舍五入的数值。
RAND()函数:生成随机数。
SQL循环语句嵌套
DECLARE @i int
SET @i=1 while @i&8 BEGIN IF @i&5 print space(4-@i)+REPLICATE('*',2*@i-1) ELSE print space(@i-4)+REPLICATE('*',15-2*@i)
SET @i=@i + 1 END
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.036 (s). 13 q(s)当前位置:
aspnet抽奖程序,要求做到抽奖不兼得,这个怎么做?不使用数据库做不了么?
aspnet抽奖程序,要求做到抽奖不兼得,这个怎么做?不使用数据库做不了么?
来源:网络整理&&&&&时间: 10:17:46&&&&&关键词:aspnet,抽奖程序
关于网友提出的“aspnet抽奖程序,要求做到抽奖不兼得,这个怎么做?不使用数据库做不了么?”问题疑问,本网通过在网上对“aspnet抽奖程序,要求做到抽奖不兼得,这个怎么做?不使用数据库做不了么?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:aspnet抽奖程序,要求做到抽奖不兼得,这个怎么做?不使用数据库做不了么?
描述:asp.net抽奖程序,要求做到抽奖不兼得,这个怎么做?不使用数据库做不了么?解决方案1:用数据库是最简单的。不用数据库用文本文件也可以。反正基本思路就是抽奖的记录下来,再抽奖排除在抽奖名单内。
以上介绍了“aspnet抽奖程序,要求做到抽奖不兼得,这个怎么做?不使用数据库做不了么?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/wd/589592.html
上一篇: 下一篇:}

我要回帖

更多关于 客户服务事件处理思路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信