1. 求vb 作弊抽獎程序源代碼.
做好了
代碼如下,兩個按鈕,一個開始,一個結束,
PrivateFlagAsBoolean
PrivateSubCommand1_Click()
DimA(10000)AsInteger
Flag=False
DoUntilFlag=True
A(i)=Int(Rnd()*8999+1000)
Label1.Caption=A(i)
DoEvents
Loop
EndSub
PrivateSubCommand2_Click()
Flag=True
DimA(10000)AsInteger
A(10000)=Int(Rnd()*10+1233)
Label1.Caption=A(10000)
EndSub
點開始,數字在1000至9999間跳動(如圖1
點結束,數字停止,結果只在1234-1243間(如圖2
已經編譯成"抽獎.exe「,要的話發給你
2. 用c語言編寫一個簡易的抽獎程序,
用data.txt文件保存以下內容:
13725528132 李桂榮
13725528131 李二來
13725528133 張榮剛
13725528130 榮南
13725528137 王三
13725528138 吳立
13725528139 郭德綱
13725528140 周星馳
13725528141 張曼玉
13725528142 張藝謀
13725528152 秦香蓮
13725528162 潘金蓮
13725528172 李大嘴
13725528182 展堂
//源代碼如下
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_NUM 9999
//定義保存人名和電話的數據結構
struct Person
{
char name[20];
char telno[15];
char award;
};
int num = 0; //統計人數
FILE *fp; //文件指針
Person persons[MAX_NUM]; //定義數組
int awarder_1[1] = {-1}; //一等獎
int awarder_2[2] = {-1, -1}; //二等獎
int awarder_3[5] = {-1, -1, -1, -1, -1};//三等獎
//讀取文件
void readdata()
{
int i = 0; //數組下標
Person person;
//文件打開
fp = fopen("data.txt", "r");
if (fp == NULL)
{
printf("打開文件data.txt失敗!\n");
return;
}
//當文件不為空
while (!feof(fp))
{
num ++;
fscanf(fp, "%s", person.telno);
fscanf(fp, "%s", person.name);
person.award = 'F';
persons[i++] = person;
}
}
//初始化標識
void init()
{
for(int i = 0; i < num; i++)
{
persons[i].award = 'F';
}
}
//顯示單個中獎信息
void info( int i)
{
printf("手機號碼: %s 姓名: %s\n", persons[i].telno, persons[i].name);
}
void main()
{
char again = 'Y';
//讀取文件
readdata();
printf("簡單抽獎程序\n");
srand((long)time(0));
while(again == 'Y' || again == 'y')
{
//初始化標識
init();
printf("\n開始抽第一等獎(1名),按任意鍵開始...\n");
getchar();
awarder_1[0] = abs(rand() % num);
while (persons[awarder_1[0]].award == 'T')
{
awarder_1[0] = rand() % num;
}
persons[awarder_1[0]].award = 'T';
info(awarder_1[0]);
printf("\n開始抽第二等獎(2名)\n");
for (int i = 0; i < 2; i++)
{
printf("\n第%d個二等獎,按任意鍵開始...\n", i+1);
getchar();
awarder_2[i] = rand() % num;
while (persons[awarder_2[i]].award == 'T')
{
awarder_2[i] = rand() % num;
}
persons[awarder_2[i]].award = 'T';
info(awarder_2[i]);
}
printf("\n\n開始抽第三等獎(5名)\n");
for (i = 0; i < 5; i++)
{
printf("\n第%d個三等獎,按任意鍵開始...\n", i + 1);
getchar();
awarder_3[i] = rand() % num;
while (persons[awarder_3[i]].award == 'T')
{
awarder_3[i] = rand() % num;
}
persons[awarder_3[i]].award = 'T';
info(awarder_3[i]);
}
printf("\n是否重新開始抽獎?(Y or N)...\n");
again = getchar();
}
getchar();
return;
}
3. 怎麼用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))#下面依次類推可以設置三等獎的抽獎
改進版
上面的那個初級版,假如要設置個三等獎一百名那麼將要重新維護幾百行代碼,下面用比較高級點的辦法實現.
我們考慮用面向對象來實現,設計一個抽獎類,類中包含一個屬性(號碼來源),一個方法:產生所有抽獎層次指定個數的抽獎號碼。
用到如下知識點:
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()
該段程序在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 "right", "credits" or "license()" for more information.>>> ================================ RESTART ================================>>> 開始進行抽獎
共有24790 人參與抽獎
抽獎分幾個層次,請輸入:2請輸入當前獲獎層次 1 對應的獎品個數1請輸入當前獲獎層次 2 對應的獎品個數3抽獎字典設置為: {0: 1, 1: 3}
抽獎層次 1 下產出的獲獎人員有:
[['張三19826']]
抽獎層次 2 下產出的獲獎人員有:
[['張三18670'], ['張三23235'], ['張三15705']]>>> 1234567891011121314151617