您当前的位置:首页 > 淘宝百科

随机抽奖程序(怎么设计一个抽奖的程序)

时间:2023-02-08 10:53:35

本文目录

  • 怎么设计一个抽奖的程序
  • 怎样用C#制作一个随机数抽奖的程序
  • C语言根据随机数编写一个抽奖程序
  • 急需C++ 随机抽奖程序
  • 汇编语言实现随机抽奖
  • vb设计随机抽奖程序

怎么设计一个抽奖的程序

先把各种可能性存在一个数组里。比如10个纸条上各有一句话,只有抽中某句话才算中奖,那么就把这十句话以字符串形式存放在数组A中。然后就可以开始抽奖了。用户选择抽奖,程序就使用rand函数生成一个随机数N,求N%10就能得到一个介于0到9之间的整数 i ,然后看A的值是否是那个中奖的字符串,是就中奖。当然了,你可以设计得复杂些,但原理就是这样了。

怎样用C#制作一个随机数抽奖的程序

提供一个思路给你,你可以把抽奖号添加到一组数列里,一般使用数据库存储,并且自动编排号码。使用随机数random函数随机1-你的号码数量,获得这个号码的排位数,即为获奖号码。

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

#include《stdio.h》#include 《conio.h》#include 《stdlib.h》#include 《memory.h》#include 《string.h》#include 《time.h》#define AWARDER_NUM 10typedef struct tag_award { char ID; char name; char telNo; char address;}AWARDER;AWARDER * awarder = new AWARDER;int first_award = {-1};int second_award = {-1,-1};int third_award ={-1,-1,-1,-1,-1};int awarder_num = 0;void info_login(){ if(awarder_num 》= AWARDER_NUM) { AWARDER * new_awarder = new AWARDER; memcpy(new_awarder,awarder,awarder_num*sizeof(AWARDER)); delete awarder; awarder = new_awarder; } printf(“身份证号:“); scanf(“%s“,awarder.ID); printf(“姓名:“); scanf(“%s“,awarder.name); printf(“电话号码:“); scanf(“%s“,awarder.telNo); printf(“家庭住址:“); scanf(“%s“,awarder.address); awarder_num++;}void info_delete(){ char name; printf(“输入您要删除的抽奖者的姓名:“); scanf(“%s“,name); for(int i=0;i《awarder_num;i++) { if (strcmp(awarder.name,name) == 0) { printf(“您选择删除的抽奖者的信息如下:\n“); printf(“身份证号:%s\n“,awarder.ID); printf(“姓名:%s\n“,awarder.name); printf(“电话号码:%s\n“,awarder.telNo); printf(“家庭住址:%s\n“,awarder.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; 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; printf(“输入您要修改的抽奖者的姓名:“); scanf(“%s“,name); for(int i=0;i《awarder_num;i++) { if (strcmp(awarder.name,name) == 0) { printf(“您选择的抽奖者的信息如下:\n“); printf(“身份证号:%s\n“,awarder.ID); printf(“姓名:%s\n“,awarder.name); printf(“电话号码:%s\n“,awarder.telNo); printf(“家庭住址:%s\n“,awarder.address); break; } } if(i == awarder_num) { printf(“没有找到您输入的抽奖者!\n“); } else { printf(“请输入该抽奖者的新信息:\n“); printf(“身份证号:“); scanf(“%s“,awarder.ID); printf(“姓名:“); scanf(“%s“,awarder.name); printf(“电话号码:“); scanf(“%s“,awarder.telNo); printf(“家庭住址:“); scanf(“%s“,awarder.address); }}bool check_over(int cur_award,int awarderNo){ if(awarderNo == 1) { if(cur_award == first_award) return true; } else if(awarderNo 《= 3) { if(cur_award == first_award) return true; for(int i=0;i《awarderNo-1;i++) if(cur_award == second_award) return true; } else if(awarderNo 《= 8) { if(cur_award == first_award) return true; for(int i=0;i《2;i++) if(cur_award == second_award) return true; for(i=0;i《awarderNo-3;i++) if(cur_award == third_award) return true; } return false;}void award(){ if(awarder_num 《 8) { printf(“人数太少,请添加足够的人再抽奖!\n“); return; } srand((long)time(0)); char hit_id; printf(“\n开始抽第一等奖(1名),按任意键开始...\n“); getch(); while(!kbhit()) { first_award = rand() % awarder_num; memcpy(hit_id,awarder.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 = rand() % awarder_num; while(check_over(second_award,1+i)) second_award = rand() % awarder_num; memcpy(hit_id,awarder.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 = rand() % awarder_num; while(check_over(third_award,3+i)) third_award = rand() % awarder_num; memcpy(hit_id,awarder.ID,20); printf(“\r “); printf(“\r %s“,hit_id); } }}void info_show(){ printf(“一等奖获得者:\n“); printf(“\t身份证号:%s\n“,awarder.ID); printf(“\t姓名:%s\n“,awarder.name); printf(“\t电话号码:%s\n“,awarder.telNo); printf(“\t家庭住址:%s\n“,awarder.address); printf(“二等奖获得者:\n“); for (int i=0;i《2;i++) { printf(“第%d个二等奖获得者:\n“); printf(“\t身份证号:%s\n“,awarder.ID); printf(“\t姓名:%s\n“,awarder.name); printf(“\t电话号码:%s\n“,awarder.telNo); printf(“\t家庭住址:%s\n“,awarder.address); } printf(“三等奖获得者:\n“); for (int i=0;i《5;i++) { printf(“第%d个三等奖获得者:\n“); printf(“\t身份证号:%s\n“,awarder.ID); printf(“\t姓名:%s\n“,awarder.name); printf(“\t电话号码:%s\n“,awarder.telNo); printf(“\t家庭住址:%s\n“,awarder.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());}

急需C++ 随机抽奖程序

#include 《iostream》#include 《time.h》using namespace std;void main() { srand(unsigned(time(NULL))); int m,n; cout《《“请输入可能得奖的人数:“; cin》》m; n = rand()%m+1; cout《《“得奖的人是“《《n《《“号观众!!!“;}

汇编语言实现随机抽奖

你可以这样,首先把这些数无规律的放到32个空间中去,再用DPTR指向他们中的第一个,后面对DPTR自加,每次回到最后一个数存放的位置时,便让其从头再自加。由于数子存放 是乱序的,加上程序的执行速度很快,这样你每次抽取的数也能保证是随机的。MOV R0,#00H ;用来记录你是第几次抽取,并在LOOP5中用目前抽取的跟前面抽取出来的对比,如果跟前面的一样便选择用这一空间后的那个值,重复对比,确定不再相同为止.MOV DPTR,1000HMOV A,01LOOP1:MOVX @DPTR,AINC DPTRINC ACJNE A,32,LOOP1;;;;;;;;;;以下是程序一直处于自动运行状态;;;;;LOOP3:MOV DPTR,1000HLOOP2:INC DPTRMOV A,DPLCJNE A,20H,LOOP2LJMP LOOP3;;;;;;抽出程序,可以使用中断;;;;当有断时进入以下程序,到于中断怎么弄,那是你硬件的问题了;;;INTER:CLR EALOOP7:MOV R3,R0MOV R2,#20HLOOP5:MOVX A,@DPTRCLR CYSUBB A,@R2JZ LOOP6DEC R3JNZ LOOP5 LJMP Get-itLOOP6:INC DPTRMOV A,DPLCJNE A,21H,LOOP5MOV DPTR 1000HLJMP LOOP7get-it:movx a,@dptrmov @r2,aRETI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;后面你用你显示程序把20H开始的单元的数显示出来就行了;;;程序应该大都没问题,有些细节你可以自己调试一下。.

vb设计随机抽奖程序

’5个文本框改成控件数组,索引从0到4Private isStop As BooleanPrivate 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    LoopEnd SubPrivate Sub Command2_Click() ’停止滚动    isStop = TrueEnd Sub

程序

最新文章