本文目錄一覽:
- 1、c語言,如何做一個非常簡易的固定獎池抽獎系統。一共1個大獎,2個中獎,3個小獎,必定中獎。
- 2、編製一個c語言程序,構建一個抽獎程序,獎項設置三等,分別為一二三等,具體獎勵自己設置
- 3、用c語言編寫一個簡易的抽獎程序,
c語言,如何做一個非常簡易的固定獎池抽獎系統。一共1個大獎,2個中獎,3個小獎,必定中獎。
#includestdio.h
#includestdlib.h
#includetime.h
#includeconio.h
int big=1,mid=2,sma=3;
void fin()
{
srand(time(NULL));
p:switch(rand()%3)
{
case 0:if(big0){system(“cls”);printf(“[大獎] 中獎 小獎\n ↑”);sleep(1000);big–;system(“cls”);printf(“大獎:%d 中獎:%d 小獎:%d\n 按任意鍵抽獎”,big,mid,sma);return;}
case 1:if(mid0){system(“cls”);printf(“大獎 [中獎] 小獎\n ↑”);sleep(1000);mid–;system(“cls”);printf(“大獎:%d 中獎:%d 小獎:%d\n 按任意鍵抽獎”,big,mid,sma);return;}
case 2:if(sma0){system(“cls”);printf(“大獎 中獎 [小獎]\n ↑”);sleep(1000);sma–;system(“cls”);printf(“大獎:%d 中獎:%d 小獎:%d\n 按任意鍵抽獎”,big,mid,sma);return;}
}
goto p;
}
main()
{
int num=0;
printf(“大獎:%d 中獎:%d 小獎:%d\n 按任意鍵抽獎”,big,mid,sma);
while(big||mid||sma)
{
if(_kbhit()){getch();fin();}
else if(num3) {num++;putchar(‘.’);sleep(200);}
else {system(“cls”);printf(“大獎:%d 中獎:%d 小獎:%d\n 按任意鍵抽獎”,big,mid,sma);num=0;}
}
system(“cls”); printf(“獎品已發完!\n”);
system(“PAUSE”);
return 0;
}
//如果編譯錯誤,把sleep改成Sleep,把_kbhit改成kbhit
編製一個c語言程序,構建一個抽獎程序,獎項設置三等,分別為一二三等,具體獎勵自己設置
產生一個1-100的隨機數,=5就是一等獎,6 =20就是二等獎,剩下的就是三等獎咯
用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;
}
原創文章,作者:WAAM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133411.html