一个用vc仿真晚会抽奖的程序设计

一个用vc仿真晚会抽奖的程序设计
 这是昨天熬夜熬到两点多熬出来的,外加昨天一整个白天,终于有了这篇还算有点像样的小论文,不管怎样,这是我第一次写小论文,蛮有纪念意义的哦。

  一个用vc仿真晚会抽奖的程序设计

  【摘要】:在一个晚会现场,举办方为了增加晚会的活跃性与趣味性,往往会举行抽奖活动,本文以通俗易懂的语言,结合实际操作过程中的案例,介绍了如何运用vc来对整个抽奖过程进行随机的操作,以保证其的公平与可靠性。本文主要运用了c语言函数库中包含的一个产生随机数的函数,每一个数字产生的概率相同,确保了抽奖活动的公正性,同时定义了一个一维数组,存入由随机函数产生的十二个随机数,即含有奖项的十二个数字,当抽奖活动参与者抽到这十二个数字中的其中一个,即为中奖,同时创建了计数器,控制中奖的次数,保证了当抽完所有的奖项后,系统自动停止运行。本文在最后,给出了完整的程序源代码。

  【关键词】:vc;抽奖;随机函数;数组

  1 引言

  过去很多抽奖活动可能都是人工抽奖,而人工抽奖可能会存在许多弊端,比如说每次抽奖都要准备大量的人手和道具,而且有可能存在不公平性,于是笔者用计算机来编写抽奖活动系统,用以仿真整个活动的过程,这个抽奖系统要能够随机并且具有相等概率地在参加抽奖人当中产生,并且是一个接一个地产生,第一个人从计算机终端输入一个合法的数字,然后计算机判定该人是否中奖,若中奖,则将中奖信息输出屏幕,若未中奖,也将未中奖信息输出屏幕,这样的流程清晰而又公平。

  除此之外,该抽奖系统还应该具有一定的观赏性,即清晰地显示出抽奖的规则,并给予一定的提示。其他环节姑且不论,现在,我们来考虑一下其中的环节是如何实现的。该程序选择基于vc来编写。

  2 抽奖程序的几个特点 论文范文http://www.chuibin.com

  上面笔者简单地介绍了该抽奖程序的正常流程,下面我们来简单来谈一下抽奖程序所应该具备的特点,作为一个简单而又有用的抽奖程序,它应该具备以下几个特点:

  2.1 公平公正性

  作为一个抽奖程序,首先应该具备公平公正的特点,也就是说中奖的数字是由电脑随机给出的,且只能给出一等奖两名,二等奖四名,三等奖六名,这就需要用到c库函数里面的随机函数,由电脑给出随机的中奖数字。其次,为了保证抽奖的公正性,不按规定输入的视为自动放弃资格,亦即每人只有一次抽奖的机会,至于如何实现此功能,下面会有详细地讲述。

  2.2 美观可读性

  作为一个抽奖程序,还应该具有一定的美观及可读性,开始的界面能让读者一目了然地了解到抽奖的流程及相应的规则,这样更能让参与者更加清楚抽奖的过程,并能按规则执行。本程序运行界面如图一所示:

  图一 程序运行界面

  2.3 流程连续性

  必须保证抽奖的连续性,即不会因为输入一个数字便停止运行,这样可以用一个while循环来实现,使抽奖过程一直保持连续性,这样的抽奖程序更具有可操作性。

  2.4 奖项一致性

  根据要求,还需要保证所有的奖项被抽出,各奖项数量必须与规定的数量一致,不能多或少,且每人只有一次抽奖的机会,为了实现此功能,必须保证参与者从数字1到50中选择一个值,并将其从终端输入,且不同参与者所选值不能相同,这在程序运行初有相应的提示。

  3 抽奖程序的具体实现方法

  基于上面关于抽奖程序特点的分析,我们可以得出编写这个程序的几个值得注意的问题,下面我们来探讨一下各个功能的实现具体方法。

  3.1 随机数的产生与存放

  在c语言函数库中包含一个产生随机数的函数

  srand ( (unsigned) time( NULL ) )

  可以利用该随机函数,在数值1到50中随机产生一组数值,并定义一个数组a[12 ],将该组随机数的前十二个数值依次放入该数组,这样就可以保证抽奖的公平及随机性,然后定义数组a中所存入的前两个数a[0],a[1]为一等奖的数值, 定义a[2],a[3],a[4],a[5]这四个数为二等奖的数值,定义a[6],a[7],a[8],a[9],a[10],a[11]这6个数为三等奖的数值,这样,12个代表不同奖项的数值便随机产生了,且任何人都不知道这12个代表奖项的数值是什么,等参与者选择这12个数值中的一个,系统将会自动给出中奖提示。关于随机数产生的代码如下:

  srand((unsigned) time(NULL));

  for(i=0;i<12;i++) 论文范文http://www.chuibin.com

  a=rand()%51;

  3.2 关于不同奖项出现次数的控制

  关于如何控制不同奖项出现的次数的问题,可以创建3个与一等奖,二等奖,三等奖相对应的计数器prize-1,prize-2,prize-3,并将三个计数器的初始值设为0,若相应的奖项被抽出,则相应的计数器加1,比如说,一等奖被抽出一次,则prize-1执行prize-1++,且控制prize-1<2,则一等奖只能执行两次。最后,将三个计数器的数值相加,赋给另一个变量count,即count的值为获奖的总次数,控制count< 12时程序执行,在这里,只需用到while循环。当奖项全部抽出时,循环结束。以一等奖为例,控制一等奖次数的源代码如下:

  if( (n==a[0]||n==a[1]) && (Prize_1 < 2) ) //*控制一等奖有两次*//

  {

  printf("恭喜你!一等奖!\n");

  Prize_1++;

  }

  控制总次数的代码:

  While(count<12)

  {

  }

  其中将prize-1,prize-2,prize-3的和赋给count。当抽完所有奖项,系统停止运行。

  3.3 抽奖过程的实现

[1] [2] [3] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有