c/c++开发分享C语言实现简单的抽奖系统实例为大家分享了c语言实现简单的抽奖系统的具体代码,供大家参考,具体内容如下
效果图
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<conio.h> #include<time.h> #include <windows.h> struct data{ char id[20]; char name[20]; }; int t1,t2,t3; struct data information[110]; //普通人员信息 struct data prize1[110]; //总获奖人员信息 struct data prize2[110]; //总获奖人员信息 struct data prize3[110]; //总获奖人员信息 int people=0; //参与抽奖总人数 int people1=0,people2=0,people3=0; //普通一等奖、二等奖、三等奖的人数 char strid[20]; //从文件中读取信息,放到普通人员信息中 void read_information(); //打印菜单 void print_menu(); //设置奖项人数 void set_awards(); //开始抽奖 void begin_luck(); //删除该学号人员在普通人员中的信息 void delet_information(); void main() { read_information(); print_menu(); } void read_information()//从文件中读取信息 { file *fp=fopen("抽奖人员名单.txt","r"); while(!feof(fp)) { //存储该信息到普通人员信息中,便于设置内幕人员 fscanf(fp,"%s%s",information[people].id,information[people].name); people++; } fclose(fp); } void print_menu() { int choose; while(1) { system("cls"); printf("nn"); printf("ttt*********************************************************n"); printf("ttt*t <-欢迎来到抽奖系统->ttt*n"); printf("ttt*t <-目前参与抽奖的总人数为%d人->tt*n", people); printf("ttt*t < 一等奖设置为%d人 >ttt*n",people1); printf("ttt*t < 二等奖设置为%d人 >ttt*n",people2); printf("ttt*t < 三等奖设置为%d人 >ttt*n",people3); printf("ttt*ttttttt*n"); printf("ttt*tt开始抽奖请按1tttt*n"); printf("ttt*tt设置奖项人数2tttt*n"); printf("ttt*tt结束程序请按0tttt*n"); printf("ttt*ttttttt*n"); printf("ttt*********************************************************n"); printf("nnttttt请输入选项:"); scanf("%d",&choose); switch(choose) { case 0: return; case 1: begin_luck(); break; case 2: set_awards(); break; } } } //设置奖项人数 void set_awards() { int choose; while(1) { system("cls"); printf("请输入三等奖人数(正整数):n"); scanf("%d",&t3); if( t3<0 || t3>people) { printf("输入不合法,请输入1到%d之内的数字",people); getch(); } else { people3=t3; break; } } while(1) { system("cls"); printf("请输入二等奖人数:n"); scanf("%d",&t2); if( t2<0 || t2>people) { printf("输入不合法,请输入1到%d之内的数字",people); getch(); } else { people2=t2; break; } } while(1) { system("cls"); printf("请输入一等奖人数:n"); scanf("%d",&t1); if( t1<0 || t1>people) { printf("输入不合法,请输入1到%d之内的数字",people); getch(); } else { people1=t1; break; } } printf("设置完毕按任意键返回n"); getch(); return; } void begin_luck() //开始抽奖 { if(people1==0 || people2==0 || people3==0) { printf("请设置奖项人数!!!!n"); printf("按任意键返回n"); getch(); return; } if( (people1+people2+people3) > people ) { printf("中奖人数超过总人数,请重新设置!!!!n"); printf("按任意键返回n"); getch(); return; } int i,j=0,choose,t; system("cls"); /*******************三等奖人员****************************/ printf("下面开始抽取三等奖人员,按任意键继续n"); getch(); while(people3--) { if(people3<0) break; srand((unsigned)time(0)); t=rand()%people; prize3[j++]=information[t]; strcpy(strid,information[t].id); delet_information(); } printf("以下是三等奖名单,按任意键继续n"); for(i=0;i<j;i++) printf("%sn",prize3[i].name); getch(); /*******************二等奖人员****************************/ printf("下面开始抽取二等奖人员,按任意键继续n"); getch(); while(people2--) { if(people2<0) break; srand((unsigned)time(0)); t=rand()%people; prize2[j++]=information[t]; strcpy(strid,information[t].id); delet_information(); } printf("以下是二等奖名单,按任意键继续n"); for(;i<j;i++) printf("%sn",prize2[i].name); getch(); /*******************一等奖人员****************************/ printf("下面开始抽取一等奖人员,按任意键继续n"); getch(); while(people1--) { if(people1<0) break; srand((unsigned)time(0)); t=rand()%people; prize1[j++]=information[t]; strcpy(strid,information[t].id); delet_information(); } printf("以下是一等奖名单,按任意键继续n"); for(;i<j;i++) printf("%sn",prize1[i].name); getch(); people=0; read_information(); people1=t1,people2=t2,people3=t3; } void delet_information() //删除该学号人员在普通人员中的信息 { int i,j; for(i=0;i<people;i++) if(strcmp(information[i].id,strid)==0) { people--; for(j=i;j<people;j++) information[j]=information[j+1]; return; } }
以上就是c/c++开发分享C语言实现简单的抽奖系统的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。
需要了解更多c/c++开发分享C语言实现简单的抽奖系统,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/1072594.html