您当前位置:手机评站网 > 手机教程 >

手机评站网今天精心准备的是《随机抽奖程序》,下面是详解!

vb设计随机抽奖程序

在vb书上看见的主要利用Randomize和Rnd函数设计一个随机抽奖程序用户点击开始按钮,5个数字框里的数据由0-9开始滚动单机抽奖按钮,产生一个5位随机数自己是新手,怎么也弄不好求大神编...

在vb书上看见的
主要利用Randomize和Rnd函数设计一个随机抽奖程序
用户点击开始按钮,5个数字框里的数据由0-9开始滚动
单机抽奖按钮,产生一个5位随机数
自己是新手,怎么也弄不好
求大神编写一段程序
悬赏50财富,如果有满意答案绝对追加 展开

'5个文本框改成控件数组,索引从0到4
Private isStop As Boolean

Private Sub Command1_Click() '数字滚动
    Randomize
    Dim rndIndex As Integer
    isStop = False
    Do Until isStop '循环语句滚动数字太快了,应该放在时钟控件中较好,可以控制速度
      rndIndex = Int(Rnd * 5) '产生一个随机的文本框数组索引
      Text1(rndIndex) = (Val(Text1(rndIndex)) + 1) Mod 10 '对文本框增加一个值
      DoEvents
    Loop
End Sub

Private Sub Command2_Click() '停止滚动
    isStop = True
End Sub

java抽奖程序

一、简介:本次制作的电脑程式为一个抽奖系统,运行的环境是在PII300以上的CPU,64MB的内存,画面由带TV-OUT的显卡发送到两台电视机和一台背投电视上。二、运作方式:1、在营销活动的...

一、简介:
本次制作的电脑程式为一个抽奖系统,运行的环境是在PII300以上的CPU,64MB的内存,画面由带TV-OUT的显卡发送到两台电视机和一台背投电视上。
二、运作方式:
1、在营销活动的现场,观众填写个人的资料,包括身份证号、姓名、性别、年龄、联系电话等资料,然后将表格交给录入员
2、录入员将数据资料输入电脑,每份资料产生一个编号
3、现场人员来控制在一定时间之内(约35分钟)停止输入,开始抽奖活动
4、奖在已经输入的资料的编号中产生,每个编号不能重复得奖
5、奖项分为两等,现金奖3个,鼓励奖5个
三、其他:
填写的资料,只要有身份证号和姓名即可产生编号;无身份编号的,需要姓名、性别、年龄、联系电话这四项齐全才可产生编号。

谁能帮我弄分代码,要交作业的 展开

我给你个比较简单的,,但是需要按照你的要求进行稍微的修改。。然后在main方法中去执行就可以了:
public class GoodLuck {

int custNo;
int i=1;
String answer;
String awardName;
public void LuckNo(){

Scanner input=new Scanner(System.in);
System.out.println("\n我行我素购物管理系统 > 幸运抽奖\n");

do{
// 需要的话请把随机数调整成你想要的范围(我这个是为了测试方便写的1
(~3的随机数,根据你的需要把下面的3换成你想要的数字就行了)
int num=(int)(Math.random()*3+1);
System.out.print("请输入会员卡号(4位整数):");
custNo=input.nextInt();
//百位数与随机数相同的为幸运者
int bai=custNo/100%10;
while(i==1){
if(custNo>=1000&&custNo<=9999){
break;
}
else{
System.out.println("\n会员号码输入有误,请重新输入:");
custNo=input.nextInt();
continue;
}
}

if(bai==num){
showAward();
System.out.print("\n卡号:"+custNo+"是幸运客户,获得"+awardName);
}else{
System.out.print("\n卡号:"+custNo+"\t谢谢您的支持!");
}
System.out.println("\n是否继续(y/n)");
answer=input.next();
while(i==1){
if(answer.equals("y")||answer.equals("n")){
break;
}else{
System.out.print("输入有误!请重新输入:");
answer=input.next();
continue;
}
}
}while(!answer.equals("n"));

}
public void showAward(){
int num=(int)(Math.random()*3+1);
if(num==1){
awardName="Mp3";
}
else if(num==2){
awardName="美的微波炉";
}
else{
awardName="美的电饭锅";
}

}

关于一个抽奖程序的原理

随机输出一组双色球号码,从33个红色球任选6个,在从16个蓝色球任选1个组成一组号码:PrivateSubCommand1_Click()Dimi,a(33),b(6),cRandomize:ClsFori=1To6b(i)=Int(Rnd*33+1)Ifa(b(i...

随机输出一组双色球号码,从33个红色球任选6个,在从16个蓝色球任选1个组成一组号码:

Private Sub Command1_Click()
Dim i, a(33), b(6), c
Randomize: Cls
For i = 1 To 6
b(i) = Int(Rnd * 33 + 1)
If a(b(i)) Then i = i - 1 Else a(b(i)) = 1
Next
Print "红球中奖号码:";
For i = 1 To 6
Print b(i);
Next

c = Int(Rnd * 16 + 1)
Print "蓝球中奖号码:" & c
End Sub

能不能解释一下这个程序的原理,尤其是这一句:
If a(b(i)) Then i = i - 1 Else a(b(i)) = 1

If a(b(i)) 如果是个数那么是真 应该是执行i=i-1吧,我看程序是执行
Else a(b(i)) = 1这句,作用是什么?
那这个判断语句是不是永远都是假的。 展开

和你说的差不多。
为真执行i=i-1否则执行 a(b(i)) = 1
揣摩他的意思,a(33)应该是红球6个数都有哪些,可是他在生成蓝球的时候,根本也没对红球判断。
-----------------------------------------
当 b(i)有重复的时候,a(b(i))为真
不是永远为假
----------------------------------------

For i = 1 To 6 '循环6次
b(i) = Int(Rnd * 33 + 1)'产生一个1-33的随即数
If a(b(i)) Then i = i - 1 Else a(b(i)) = 1
'如果a(b(i))为真代表有重复,i-- 退回重新产生一个随机数。如果a(b(i))为假,设置a(b(i))为真,就是给以后判断是不是已经产生过。
Next

VB编写一个抽奖小程序,要求每次抽奖的数字不重复

VB写一个抽奖小程序,抽奖号码最小值是1,号码最大值是输入的(整数),点击一次“天灵灵地灵灵”随机一个数,显示在中奖号码中,每次点击出现的随机数不相同(也就是没有人能中两次奖...

VB写一个抽奖小程序,抽奖号码最小值是1,号码最大值是输入的(整数),点击一次“天灵灵地灵灵”随机一个数,显示在中奖号码中,每次点击出现的随机数不相同(也就是没有人能中两次奖)。当点击“天灵灵地灵灵”的次数大于等于号码最大值时,出提示“抽奖结束”。 展开

Dim n As Integer
Dim a()
Private Sub Command1_Click()
    If n = 0 Then            '第一次点击时执行
        m = Val(Text1)
        ReDim a(1 To m)
        For i = 1 To m      '生成数组a,元素为1至m这m个数
            a(i) = i
        Next
        For i = 1 To m - 1             '随机打乱数组a中元素
            r = Int(Rnd * m + 1)
            tmp = a(i)
            a(i) = a(r)
            a(r) = tmp
        Next
    End If
    n = n + 1                 '计数点击次数
    If n > Val(Text1) Then    '次数超过指定次数,抽奖结束
        MsgBox "抽奖结束!"
        Exit Sub
    End If
    Text2 = a(n)              '从数组中抽出第n个数,由于数组中是随机排列,所以相当于生成一个随机数,并且不会重复
End Sub

扩展

1至m  m这个数字 是在TEXT2 里敲进去的,不能在程序里改啊。我每次运行都说下越界呢

C语言根据随机数编写一个抽奖程序

#include<stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
#include <time.h>
#define AWARDER_NUM 10
typedef struct tag_award
{
char ID[20];
char name[20];
char telNo[20];
char address[50];
}AWARDER;

AWARDER * awarder = new AWARDER[AWARDER_NUM];
int first_award[1] = {-1};
int second_award[2] = {-1,-1};
int third_award[5] ={-1,-1,-1,-1,-1};
int awarder_num = 0;

void info_login()
{
if(awarder_num >= AWARDER_NUM)
{
AWARDER * new_awarder = new AWARDER[awarder_num + AWARDER_NUM];
memcpy(new_awarder,awarder,awarder_num*sizeof(AWARDER));
delete awarder;
awarder = new_awarder;
}

printf("身份证号:");
scanf("%s",awarder[awarder_num].ID);
printf("姓名:");
scanf("%s",awarder[awarder_num].name);
printf("电话号码:");
scanf("%s",awarder[awarder_num].telNo);
printf("家庭住址:");
scanf("%s",awarder[awarder_num].address);

awarder_num++;
}
void info_delete()
{
char name[20];
printf("输入您要删除的抽奖者的姓名:");
scanf("%s",name);
for(int i=0;i<awarder_num;i++)
{
if (strcmp(awarder[i].name,name) == 0)
{
printf("您选择删除的抽奖者的信息如下:\n");
printf("身份证号:%s\n",awarder[i].ID);
printf("姓名:%s\n",awarder[i].name);
printf("电话号码:%s\n",awarder[i].telNo);
printf("家庭住址:%s\n",awarder[i].address);
break;
}
}
if(i == awarder_num)
{
printf("没有找到您输入的抽奖者!\n");
}
else
{
char c;
printf("您确定要删除吗?(Y//N)");
fflush(stdin);
scanf("%c",&c);
if(c == 'Y' || c == 'y')
{
AWARDER * new_award = new AWARDER[awarder_num-1];
if(i <= 0)
memcpy(new_award,awarder+1,sizeof(AWARDER) * (awarder_num - 1));
else if( i >= awarder_num -1)
memcpy(new_award,awarder,sizeof(AWARDER) * (awarder_num - 1));
else
{
memcpy(new_award,awarder,sizeof(AWARDER) * i);
memcpy(new_award+i,awarder+i+1,sizeof(AWARDER) * (awarder_num - i - 1));
}
awarder_num--;
delete awarder;
awarder = new_award;
}
}

}
void info_modify()
{
char name[20];
printf("输入您要修改的抽奖者的姓名:");
scanf("%s",name);
for(int i=0;i<awarder_num;i++)
{
if (strcmp(awarder[i].name,name) == 0)
{
printf("您选择的抽奖者的信息如下:\n");
printf("身份证号:%s\n",awarder[i].ID);
printf("姓名:%s\n",awarder[i].name);
printf("电话号码:%s\n",awarder[i].telNo);
printf("家庭住址:%s\n",awarder[i].address);
break;
}
}
if(i == awarder_num)
{
printf("没有找到您输入的抽奖者!\n");
}
else
{
printf("请输入该抽奖者的新信息:\n");
printf("身份证号:");
scanf("%s",awarder[i].ID);
printf("姓名:");
scanf("%s",awarder[i].name);
printf("电话号码:");
scanf("%s",awarder[i].telNo);
printf("家庭住址:");
scanf("%s",awarder[i].address);
}
}

bool check_over(int cur_award,int awarderNo)
{
if(awarderNo == 1)
{
if(cur_award == first_award[0])
return true;
}
else if(awarderNo <= 3)
{
if(cur_award == first_award[0])
return true;
for(int i=0;i<awarderNo-1;i++)
if(cur_award == second_award[i])
return true;
}
else if(awarderNo <= 8)
{
if(cur_award == first_award[0])
return true;
for(int i=0;i<2;i++)
if(cur_award == second_award[i])
return true;
for(i=0;i<awarderNo-3;i++)
if(cur_award == third_award[i])
return true;
}
return false;
}
void award()
{
if(awarder_num < 8)
{
printf("人数太少,请添加足够的人再抽奖!\n");
return;
}
srand((long)time(0));
char hit_id[20];
printf("\n开始抽第一等奖(1名),按任意键开始...\n");
getch();
while(!kbhit())
{
first_award[0] = rand() % awarder_num;
memcpy(hit_id,awarder[first_award[0]].ID,18);
printf("\r ");
printf("\r %s",hit_id);
}
printf("\n\n开始抽第二等奖(2名)");
for (int i=0;i<2;i++)
{
printf("\n第%d个二等奖,按任意键开始...\n",i+1);
getch();
while(!kbhit())
{
second_award[i] = rand() % awarder_num;
while(check_over(second_award[i],1+i))
second_award[i] = rand() % awarder_num;
memcpy(hit_id,awarder[second_award[i]].ID,18);
printf("\r ");
printf("\r %s",hit_id);
}
}
printf("\n\n开始抽第三等奖(5名)");
for (i=0;i<5;i++)
{
printf("\n第%d个三等奖,按任意键开始...\n",i+1);
getch();
while(!kbhit())
{
third_award[i] = rand() % awarder_num;
while(check_over(third_award[i],3+i))
third_award[i] = rand() % awarder_num;

memcpy(hit_id,awarder[third_award[i]].ID,20);
printf("\r ");
printf("\r %s",hit_id);
}
}

}
void info_show()
{
printf("一等奖获得者:\n");
printf("\t身份证号:%s\n",awarder[first_award[0]].ID);
printf("\t姓名:%s\n",awarder[first_award[0]].name);
printf("\t电话号码:%s\n",awarder[first_award[0]].telNo);
printf("\t家庭住址:%s\n",awarder[first_award[0]].address);
printf("二等奖获得者:\n");
for (int i=0;i<2;i++)
{
printf("第%d个二等奖获得者:\n");
printf("\t身份证号:%s\n",awarder[second_award[i]].ID);
printf("\t姓名:%s\n",awarder[second_award[i]].name);
printf("\t电话号码:%s\n",awarder[second_award[i]].telNo);
printf("\t家庭住址:%s\n",awarder[second_award[i]].address);
}
printf("三等奖获得者:\n");
for (int i=0;i<5;i++)
{
printf("第%d个三等奖获得者:\n");
printf("\t身份证号:%s\n",awarder[third_award[i]].ID);
printf("\t姓名:%s\n",awarder[third_award[i]].name);
printf("\t电话号码:%s\n",awarder[third_award[i]].telNo);
printf("\t家庭住址:%s\n",awarder[third_award[i]].address);
}

}
/*提示信息*/
bool raise()
{
printf("\n请输入你需要的操作代号:\n");
printf("\t1.录入:完成抽奖者信息的输入;\n");
printf("\t2.删除:完成抽奖者信息的删除;\n");
printf("\t3.修改:允许对已经录入的数据重新进行编辑、修改;\n");
printf("\t4.抽奖:开始抽奖!\n");
printf("\t5.显示:显示所有中奖者的信息;\n");
printf("\t6.退出。\n");
printf("==>");
int operate;
fflush(stdin);
scanf("%d",&operate);
switch(operate)
{
case 1:
info_login();
break;
case 2:
info_delete();
break;
case 3:
info_modify();
break;
case 4:
award();
break;
case 5:
info_show();
break;
case 6:
return false;
default:
break;
}
printf("\n操作完成。\n");
return true;
}

void main()
{
while(raise());
}

使用JavaScript完成一个抽奖程序,当单击页面上开...

使用JavaScript完成一个抽奖程序,当单击页面上开始抽奖按钮时,在1~36中选取7个互不相同的数字,输出到页面上。如果其中包含28,则现实一等奖;如果其中包含18,则现实二等奖;如果其...

使用JavaScript完成一个抽奖程序,当单击页面上开始抽奖按钮时,在1~36中选取7个互不相同的数字,输出到页面上。如果其中包含28,则现实一等奖;如果其中包含18,则现实二等奖;如果其中包含8,则显示三等奖;对于其他情况,则显示没有中奖。 展开

下面的代码在IE下测试通过,满足你的要求:

<button onclick="f();">抽奖</button>
<div id=r></div>
<script language=javascript>
function f(){
  var r='抽出号码 ';
  var i,t,x,y='';
  var a=[];
  for (i=0;i<36;i++) a[i]=i+1;
  for (i=1;i<=7;i++){
    x=parseInt(Math.random()*(36-i));t=a[x];//产生一个随机数
    r=r+' '+t;//添加到结果
    if (t==28) y='一等奖';
    if (t==18 && y!='一等奖') y='二等奖';
    if (t==8 && y=='') y='三等奖';
    a[x]=a[36-i];a[36-i]=t;//移动到最后,不再产生此数
  }
  if (y=='') y='没中奖';
  document.getElementById("r").innerHTML=r+' '+y;
}
</script>

利用dreamweaver制作一个随机抽奖的网页程序!!急...

作业要求:1、布局所有的页面元素并实现动态效果;2、页面加载后,鼠标移入移出“go”按钮,图片会发生改变,鼠标箭头变为为手型;3、单击“go”按钮,图片变灰不能响应,开始随机抽奖...

作业要求:
1、布局所有的页面元素并实现动态效果; 2、页面加载后,鼠标移入移出“go”按钮,图片会发生改变,鼠标箭头变为为手型; 3、单击“go”按钮,图片变灰不能响应,开始随机抽奖(转圈次数和停止位置每次不同); 4、随机转圈停止后,弹出相应的中奖结果面板; 5、单击“再来一次”,关闭面板,“go”按钮再次被激活。
ps:框架我已经做好了,就差代码没做 ,求哪位高手鼎力相助 展开

C语言程序设计——编写一个抽奖程序,生成0-9之间的随...

C语言程序设计——编写一个抽奖程序,生成0-9之间的随机数,猜对了奖励10块钱,没中奖显示中奖号码,并表示很遗憾。...

C语言程序设计——编写一个抽奖程序,生成0-9之间的随机数,猜对了奖励10块钱,没中奖显示中奖号码,并表示很遗憾。

代码如下,已测试通过:

int main()
{
int no,ret;
printf("请输入你猜测的号码:\n");
scanf("%d",&no);
ret=rand()%10;
printf("本次开奖结果=[%d]:\n",ret);
if(no==ret)
{
printf("恭喜你猜中了,中奖10元!\n");
}
else
{
printf("很遗憾,再来一次吧!\n");
}
return 0;
}

 可以把上面代码改成多次输入,即将输入和取随机数都放在while循环中。自己修改下吧

怎么用python写一个抽奖程序,是抽取图片或视频

只要告诉我怎么处理就行了...

只要告诉我怎么处理就行了

16年年会抽奖网上有人对公司的抽奖结果又偏见,于是全员进行了抽奖代码的review,好像是爱奇艺公司的,下面用python来实现一个抽奖程序。
主要功能有
1.从一个csv文件中读入所有员工工号
2.将这些工号初始到一个列表中
3.用random模块下的choice函数来随机选择列表中的一个工号
4.抽到的奖项的工号要从列表中进行删除,以免再次抽到
初级版
这个比较简单,缺少定制性,如没法设置一等奖有几名,二等奖有几名
import csv#创建一个员工列表emplist = []#用with自动关闭文件with open('c://emps.csv') as f:
empf = csv.reader(f) for emp in empf:
emplist.append(emp)
print("进行一等奖抽奖,共有一名")import random#利用random模块的chice函数来从列表中随机选取一个元素e1 = random.choice(emplist)#将中奖的员工从列表中剔除emplist.remove(e1)
print('一等奖得主的号码是 %s' % e1)
print('进行三个二等奖的号码抽奖')
e2_1 = random.choice(emplist)
emplist.remove(e2_1)
e2_2 = random.choice(emplist)
emplist.remove(e2_2)
e2_3 = random.choice(emplist)
emplist.remove(e2_3)
print('获得3个二等奖是 %s %s %s',(e2_1,e2_2,e2_3))#下面依次类推可以设置三等奖的抽奖123456789101112131415161718192021222324

改进版
上面的那个初级版,假如要设置个三等奖一百名那么将要重新维护几百行代码,下面用比较高级点的办法实现.
我们考虑用面向对象来实现,设计一个抽奖类,类中包含一个属性(号码来源),一个方法:产生所有抽奖层次指定个数的抽奖号码。
用到如下知识点:
1. csv模块部分函数用法
2. sys模块读取输入
3. random模块函数choice函数用法
4. 列表和字典元素的添加、删除
6. for循环中range用法
7. 类和面向对象
8. 字符打印,print中的计算
9.open中with
#!/usr/bin/python#coding=utf-8import csvimport sysimport random
reload(sys)
sys.setdefaultencoding('utf8')#coding=utf-8print("开始进行抽奖")#定义个抽奖类,功能有输入抽奖级别和个数,打印出每个级别的抽奖员工号码class Choujiang:
#定义scv文件路径
def __init__(self,filepath):
self.empfile = filepath def creat_num(self):
emplist = [] with open(self.empfile) as f:
empf = csv.reader(f) for emp in empf:
emplist.append(emp)
print('共有%s 人参与抽奖' % len(emplist))
levels = int(input('抽奖分几个层次,请输入:')) #定义一个字典
level_dict = {} for i in range(0,levels):
print('请输入当前获奖层次 %s 对应的奖品个数' % ( i + 1))
str_level_dict_key = sys.stdin.readline()
int_level_dict_key = int(str_level_dict_key)
level_dict[i] = int_level_dict_key #循环完成后抽奖层次字典构造完毕
#进行抽奖开始
print('抽奖字典设置为: %s' % level_dict) for i in range(0,len(level_dict)):
winers = [] #产生当前抽奖层次i对应的抽奖个数
for j in range(0,int(level_dict[i])): #利用random模块中的choice函数从列表中随机产生一个
winer = random.choice(emplist)
winers.append(winer)
emplist.remove(winer)
print('抽奖层次 %s 下产出的获奖人员有:' % (i + 1 ))
print(winers)#类功能定义完毕,开始初始化并使用if __name__ == '__main__':
peoples = Choujiang('c://emps.csv')
peoples.creat_num()1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

该段程序在python 2.6 以上及 3中均可以运行,运行结果如下图:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>> 开始进行抽奖
共有24790 人参与抽奖
抽奖分几个层次,请输入:2请输入当前获奖层次 1 对应的奖品个数1请输入当前获奖层次 2 对应的奖品个数3抽奖字典设置为: {0: 1, 1: 3}
抽奖层次 1 下产出的获奖人员有:
[['张三19826']]
抽奖层次 2 下产出的获奖人员有:
[['张三18670'], ['张三23235'], ['张三15705']]>>> 1234567891011121314151617

来源: 手机评站

热门手机排行榜

  1. 1Redmi K20¥1999
  2. 2vivo Z5x¥1398
  3. 4realme X¥1499
  4. 5vivo X27¥3598
  5. 6一加 6¥3199
  6. 9荣耀 Magic2¥3799
  7. 10三星 Note9¥6999

Copyright © 2016-2019 手机评站网(www.pingzhan.net)版权所有

业务联系: