如何制作一个简单的抽奖程序?

如何制作一个简单的抽奖程序?,第1张

题主,您好,制作这个小程序的方法非常多,主要是看您要做成什么样子的,在哪里使用,不管是网页还是小程序,直接用JS也可以实现,如果想要做的严谨点,可以利用PHP或者JAVA做后台,将抽奖记录数据存储到数据库中去。

用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 = 0i <numi++)

{

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 = 0i <2i++)

{

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 = 0i <5i++)

{

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

}

本文实例为大家分享了js抽奖程序的编写代码,以及编写注意事项,感兴趣的小伙伴们可以参考一下

代码:

<!DOCTYPE

html>

<html

lang="en">

<head>

<meta

charset="UTF-8">

<title>简单抽奖(可用键盘)</title>

<style>

*{margin:0padding:0}

.box{width:

400pxheight:

300pxmargin:50px

autobackground:

red}

.title{color:

#ffffont-size:

30pxfont-weight:700pxpadding:

50px

0text-align:

centerheight:40px}

.btm{text-align:

centerpadding:20px

0}

.btm

a{display:

inline-blockwidth:

120pxheight:60pxline-height:

60pxbackground:

#FEF097margin:0

10pxtext-decoration:

none}

</style>

<script>

var

data=['Iphone','Ipad','笔记本','相机','谢谢参与','充值卡','购物券'],

timer=null,//定时器

flag=0//阻止多次回车

window.onload=function(){

var

play=document.getElementById('play'),

stop=document.getElementById('stop')

//

开始抽奖

play.onclick=playFun

stop.onclick=stopFun

//

键盘事件

document.onkeyup=function(event){

event

=

event

||

window.event

//

回车键的code值:13

if(event.keyCode==13){

if(flag==0){

playFun()

flag=1

}else{

stopFun()

flag=0

}

}

}

function

playFun(){

var

title=document.getElementById('title')

var

play=document.getElementById('play')

clearInterval(timer)

timer=setInterval(function(){

var

random=Math.floor(Math.random()*data.length)

title.innerHTML=data[random]

},60)

play.style.background='#999'

}

function

stopFun(){

clearInterval(timer)

var

play=document.getElementById('play')

play.style.background='#FEF097'

}

}

</script>

</head>

<body>

<div

class="box">

<div

class="title"

id="title">淘家趣抽奖</div>

<div

class="btm">

<a

href="javascript:"

id="play">开始</a>

<a

href="javascript:"

id="stop">停止</a>

</div>

</div>

</body>

</html>

注意点:

1.随机数,取数组的其中一个;取0-n之间:Math.random()*(n+1)

2.定时器,开始抽奖时要停止前面的一次抽奖,不然会定时器重叠

3.按键 *** 作,要判断是抽奖进行中,还是未开始,所有设置了变量

flag

想要学习更多关于javascript抽奖功能,请参考此专题:javascript实现抽奖功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11044683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存