C语言实现随机抽奖程序

本文实例为大家分享了C语言实现抽奖小程序的具体代码,供大家参考,具体内容如下

#include<stdio.h>
#include<stdlib.h>
#include <time.h> // 使用当前时钟做种子
#include <windows.h>
/*
做一个抽奖程序,一等奖1%二等奖5%三等奖10%
要求1:基本功能实现,按下任意字母按键打印一次抽奖结果。
要求2:程序开始的时候可以选择模式,键盘A键按下,代表自动模式;M代表手动模式,自动模式抽奖可以一直抽,直到抽到1等奖为止。
要求3:在要求2的前提下,(自动模式)先打印第一次抽到三等奖所需要的次数,然后打印第一次抽到二等奖所需要的次数,最后打印第
一次获得一等奖所需要的次数,程序结束
*/

//随机数取段落,保证抽到的误差较小
#define CJ_game(a) if(a>=0&&a<=327) printf("恭喜你!获得一等奖!!\n");\
     else if(a>=4000&&a<=5638) printf("恭喜你!获得二等奖!!\n");\
     else if(a>=400&&a<=3676) printf("恭喜你!获得三等奖!!\n");\
     else printf("再接再厉\n") 

void CJ_mode_auto()  //自动模式
{
 int First_f = 0,Second_f = 0,Third_f = 0;  //定义第一次抽取到奖品的标志位
 int Sjs = 0,Game_state = 1;
 int F_count = 0,S_count = 0,T_count = 0,count = 0;//定义抽到奖品的计数位
 printf("\n");
 printf("\n");
 printf("==========模式A:自动抽奖 游戏开始==========\n");
 while(Game_state)
 {
  Sleep(200);
  Sjs=rand();
  CJ_game(Sjs);
  count++;
 // printf("%d\n",count); //测试位
  if(Sjs >= 400 && Sjs <= 3676)
  {
   T_count++;
   if(T_count == 1)
   {
    Third_f = count;
   }
  }
  if(Sjs >= 4000 && Sjs <= 5638)
  {
   S_count++;
   if(S_count == 1)
   {
    Second_f = count;
   }
  }
  if(Sjs >= 0 && Sjs <= 327)
  {
   F_count++;
   if(F_count == 1)
   {
    First_f = count;
   }
  }
  if(First_f && Second_f && Third_f)
  {
   Game_state = 0;
  }
 }
 printf("第一次抽到一等奖所需要的次数为:%d\n",First_f);
 printf("第一次抽到二等奖所需要的次数为:%d\n",Second_f);
 printf("第一次抽到三等奖所需要的次数为:%d\n",Third_f);
 printf("抽到一等奖的总次数为:%d\n",F_count);
 printf("抽到二等奖的总次数为:%d\n",S_count);
 printf("抽到三等奖的总次数为:%d\n",T_count);
 printf("=====请选择新的游戏模式:M:手动,A:自动=====\n");
}

void CJ_mode_handch(void)  //手动抽奖
{
 char ch;
 int Sjs;
 printf("\n");
 printf("\n");
 printf("==========模式M:手动抽奖 游戏开始==========\n");
 printf("==========按0退出自动模式==========\n");
 while(1)
 {
  printf("=====请输入一个字母:");
  //scanf(" %c",&ch);  //如果需要输入字符然后回车的,需要在%c前面加空格或者\n,来过滤缓冲区的“回车”
  ch = getch();  //从键盘获取字符
  if( (ch>='a'&&ch<='z') || (ch>='A'&&ch<='Z') )
  {
   Sjs = rand();
  // printf("%d\n",Sjs);
   CJ_game(Sjs);
  }
  else if(ch == '0')
  {
   printf("=====退出手动抽奖模式=====\n");
   printf("=====请输入新的游戏模式:M:手动,A:自动\n");
   break;
  }
  else
  {
   printf("=====请输入字母!!!=====\n");
  }
 }

}

int main()
{
 srand((unsigned)time( NULL ) ); // 初始化随机数
 char mode;

 printf("=======游戏开始==========\n");
 printf("=====请选择抽奖模式======\n");
 printf("=====按M进入模式M:手动抽奖=====\n");
 printf("=====按A进入模式A:自动抽奖=====\n");
 printf("=====按0结束游戏!!=====\n");
 while(1)
 {
  mode = getch();
  if(mode =='A')
  {
   CJ_mode_auto();
  }
  else if(mode =='M')
  {
   CJ_mode_handch();
  }
  else if(mode == '0')
  {
   printf("游戏结束!");
   break;
  }
  else
  {
   printf("请输入正确的模式!!!\n");
  }
 }

  return 0;
}

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

(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代表手动模式,自动模式抽奖

  • javascript 随机抽奖程序代码

    随机抽奖程序 请单击开始抽奖 开始抽奖(S) 停止(O) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  • js抽奖实现随机抽奖代码效果

    随机抽取,简单代码. 复制代码 代码如下: <html> <title>随机抽奖程序</title> <head><meta http-equiv=Content-Type content="text/html; charset=gb2312"> </head> <body> <script type="text/javascript"> var alldata = &q

  • 基于JavaScript实现简单的随机抽奖小程序

    对于抽奖这样的小程序使用诸如VB,Delphi等工具来实现会比较的方便,由于本人机器上没有装这样的应用程序,所以只能另寻其道.为了使抽奖程序能够无需配置平台直接可以在任何一台机器上运行,开发工具和编译运行工具也能够经可能简单(诸如text文本即可编辑,window系统自带的浏览器即可编译运行的情况),决定尝试使用javascript来做.本人对javascript的研究不深,平时主要用于网站开发中对来自客户端的数据进行有效性判断(基于安全性的考虑,安全性要求高的网站尽量使用服务器端语言对数据有效

  • C语言实现随机抽取纸牌程序

    本文实例为大家分享了C语言实现随机抽取纸牌的具体代码,供大家参考,具体内容如下 程序设计要求 本程序负责发一副标准纸牌,每张标准纸牌都有一种花色(梅花.方块.黑桃.红桃)和一个等级(2,3,4,5,6…K,A).程序需要用户指明手机有几张牌. 程序设计流程 1 . 使用库函数和时间函数,用time函数返回当前时间,用一个数表示,srand函数初始化C语言的随机数生成器.通过把time函数返回值传递给srand可以避免程序每次运行发同样的牌.rand函数产生随机数,通过%缩放. 2 . 使用二位数

  • .net+mssql制作抽奖程序思路及源码

    抽奖程序: 思路整理,无非就是点一个按钮,然后一个图片旋转一会就出来个结果就行了,可这个程序的要求不是这样的,是需要从数据库中随机抽取用户,根据数据库中指定的等级和人数,一键全部抽出来结果就行了.同时需要存储到数据库.还需要一个导出的功能. 不能遗漏的是,如果通过随机数根据id来抽取的话,需要考虑id不连续的问题,如果全部取出id也不现实.尽量少的去读写数据库. 数据库: 复制代码 代码如下: CREATE TABLE [dbo].[users](    [id] [int] IDENTITY(

  • jQuery+PHP+Mysql实现抽奖程序

    抽奖程序在实际生活中广泛运用,由于应用场景不同抽奖的方式也是多种多样的.本文将采用实例讲解如何利用jQuery+PHP+MySQL实现类似电视中常见的一个简单的抽奖程序. 查看演示 本例中的抽奖程序要实现从海量手机号码中一次随机抽取一个号码作为中奖号码,可以多次抽奖,被抽中的号码将不会被再次抽中.抽奖流程:点击"开始"按钮后,程序获取号码信息,滚动显示号码,当点击"停止"按钮后,号码停止滚动,这时显示的号码即为中奖号码,可以点击"开始"按钮继续抽

  • 简单易扩展可控性强的Jquery转盘抽奖程序

    基于Jquery的Javascript转盘抽奖程序,可以自定义抽奖界面,奖品数量.图片等,可控制中奖的奖品,抽奖转盘转动的速度和圈数. 在实际使用中,应当把概率放到后台程序中运算,以保证安全性和产生中奖奖品的可控性 Javascript代码: <script type="text/javascript"> var index = 1, //当前亮区位置 prevIndex = 14, //前一位置 Speed = 300, //初始速度 Time, //计时器 arr_le

  • python实现公司年会抽奖程序

    本文实例为大家分享了python实现年会抽奖程序的具体代码,供大家参考,具体内容如下 发一下自己写的公司抽奖程序. 需求:公司年会要一个抽奖程序,转盘上的每一个人名是随机中奖的,中奖后的人不可以再次中奖,按住抽奖,就会一直在转,放开后,要再转一两圈才停. 刚好自己在学python cocos2d,就用这个刚学的东东,直接上源码 # coding:utf-8 # import sys # import os # sys.path.insert(0, os.path.join(os.path.dir

  • 详解用python写一个抽奖程序

    第一次使用python写程序,确实比C/C++之类方便许多.既然这个抽奖的数据不大,对效率要求并不高,所以采用python写,更加简洁.清晰.方便. 1.用到的模块 生成随机数的模块random 用来读取excel表格的模块xlrd 2.思路:首先打开excel表格,然后读取其中某个单元格或者某行或某列的元素,进行输出或存储. 3.如何保证随机:随机的关键在于取随机数.每抽一个人之前,我们随机生成一个随机数i,i代表了读取第i个人的数据,由于i的生成是完全随机的,所以也就保证了选取的人员是完全随

随机推荐