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("\n\n");
        printf("\t\t\t*********************************************************\n");
 
        printf("\t\t\t*\t    <-欢迎来到抽奖系统->\t\t\t*\n");
        printf("\t\t\t*\t    <-目前参与抽奖的总人数为%d人->\t\t*\n", people);
        printf("\t\t\t*\t    <  一等奖设置为%d人  >\t\t\t*\n",people1);
        printf("\t\t\t*\t    <  二等奖设置为%d人  >\t\t\t*\n",people2);
        printf("\t\t\t*\t    <  三等奖设置为%d人  >\t\t\t*\n",people3);
        printf("\t\t\t*\t\t\t\t\t\t\t*\n");
 
        printf("\t\t\t*\t\t开始抽奖请按1\t\t\t\t*\n");
        printf("\t\t\t*\t\t设置奖项人数2\t\t\t\t*\n");
        printf("\t\t\t*\t\t结束程序请按0\t\t\t\t*\n");
        printf("\t\t\t*\t\t\t\t\t\t\t*\n");
        printf("\t\t\t*********************************************************\n");
 
        printf("\n\n\t\t\t\t\t请输入选项:");
        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("%s\n",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("%s\n",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("%s\n",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;
        }
}

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

(0)

相关推荐

  • C语言课程设计之抽奖系统

    本文实例为大家分享了C语言课程设计之抽奖系统的具体代码,供大家参考,具体内容如下 该程序的功能包括: 1.设置中奖人员 2.设置内幕人员 3.添加功能 4.删除功能 5.颜色设置 6.开发人员介绍 在使用该系统之前,请先在你程序保存的位置建一个17计科2.txt文档,里面填上学号和姓名,例如:25 贺志营. 建好txt文档后就可以直接运行了 运行截图及代码如下: 主界面: 功能介绍界面: 设置奖项界面: 开始抽奖界面不好演示,它是个动态的,下面有代码,可以自己运行下 程序代码: #include

  • C语言实现随机抽奖程序

    本文实例为大家分享了C语言实现抽奖小程序的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include <time.h> // 使用当前时钟做种子 #include <windows.h> /* 做一个抽奖程序,一等奖1%二等奖5%三等奖10% 要求1:基本功能实现,按下任意字母按键打印一次抽奖结果. 要求2:程序开始的时候可以选择模式,键盘A键按下,代表自动模式:M代表手动模式,自动模式抽奖

  • 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

  • 基于javascript实现简单的抽奖系统

    本文实例为大家分享了js实现简单的抽奖系统,供大家参考,具体内容如下 <!doctype html> <html lang="en"> <head> <meta charset="gb2312"> <title>抽奖活动</title> <style> *{ margin:0;padding:0; } #title{ color:red;text-align:center;margi

  • 用Javascript轻松制作一套简单的抽奖系统

    作者:jegg  年底将至,许多公司忙着搞年会,会上一般都会有一些抽奖活动,下面的程序就是用javascript 写的一个简单的抽奖系统与大家共享. 此代码借鉴了网上的一些网友的代码,又加上了一些诸如不重复抽奖之类的改进.大概思路如下: 1.将所有的的抽奖数据(这里为手机号码)存入数组中. 2.使用random 函数随机产生该数组的INDEX 3.使用setInterval 函数以极短的时间间隔产生该数组随机INDEX所对应的手机号码,并显示.       4.使用removeEleAt(ind

  • js实现简单的抽奖系统

    一个用js编写的简单的抽奖系统,供大家参考,具体内容如下 效果图如图所示:字节带闪动,点击开始,可进行抽奖,并且按钮变为结束按钮,然后点击结束按钮,可以结束,并抽奖成功. 代码如下: <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">         <title>抽奖</title>         <style type=&qu

  • 基于JavaScript实现抽奖系统

    用JavaScript实现一个简单的抽奖系统,有[开始]按钮和[停止]按钮. 功能: - 点开始按钮开始抽奖,随机出现奖品名称: - 点停止按钮即可停止抽奖: - 按下回车键可切换开始抽奖和停止抽奖. 效果 html代码: 创建html结构,最基础的要含有显示的奖品名称和开始.停止按钮. <!doctype html> <html> <head> <title>抽奖系统</title> <meta charset="utf-8&q

  • python实现的简单抽奖系统实例

    本文实例讲述了python实现的简单抽奖系统.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python #coding=utf-8 from Tkinter import * import time import random class App: def __init__(self,master): frame = Frame(master) frame.pack() v = StringVar() self.e = Entry(frame,textvariable

  • JavaScript实现简单抽奖系统

    本文实例为大家分享了JavaScript实现简单抽奖系统的具体代码,供大家参考,具体内容如下 模拟实现抽奖系统 前端使用JavaScript代码实现抽奖系统,代码如下: 样式代码: <style>         body{             background: url("bg.jpg") no-repeat;             background-size: 100%;         }         #box{             positi

  • 简单实现java抽奖系统

    本文为大家分享了java抽奖系统的具体代码,供大家参考,具体内容如下 用户信息类 /* * 用户信息类 * 1.账号 * 2.密码 * 3.卡号 * 4.是否登录 */ public class User { public static String userName = ""; public static String passWord = ""; public static int cardNumber = 0; // 是否登录 public static bo

  • unity实现简单抽奖系统

    这段时间工作比较空闲,想做个抽奖系统,发现网上的抽奖系统看不懂,然后自己做了一个可以随意定义奖品概率,不管什么时候停下来指针最终都会转到指定的奖品哪. 废话不多说,动手一步一步来. 这个抽奖系统就使用了两张图片,一个指针,一个圆形的图片. 然后做一个预制体,图片就是圆形图片,image type选择filled,fill amount控制这个图片的面积大小,同时也是该图片的概率,Text组件是该奖品的名称. 再接下来就做一下界面布局的工作 Bg就是那个灰色的图片,Rotate是个空物体,用来挂在

随机推荐