题主,您好,制作这个小程序的方法非常多,主要是看您要做成什么样子的,在哪里使用,不管是网页还是小程序,直接用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实现抽奖功能
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)