国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用VB6.0編寫電腦抽獎程序

2019-11-18 17:38:01
字體:
來源:轉載
供稿:網友
近年來在娛樂節目之中常常見到利用電腦來抽獎,筆者對其發生了興趣遂自己動手用VB編了一個小程序來實現電腦抽獎的小功能,其原理如下:
  主要利用VB中的Rnd函數,來實現隨機查找和打亂排序的功能,從而實現隨機抽獎的目的。Rnd函數的語法結構是Rnd[(number)],可選的number參數是single或任何有效的數值表達式。Rnd函數返回小于1但大于或等于0的值。number的值決定了Rnd生成隨機數的方式。為了生成某個范圍內的隨機整數,可使用以下公式:
  Int((upperbound-lowerbound+1)×Rnd+lowerbound)
  這里,upperbound是隨機數范圍的上限,而lowerbound則是隨機數范圍的下限。
  另外,程序中還使用了INI文件,WindowsINI文件,可解釋為Windows初始化文件。它是一種專門用來保存應用程序初始化信息和運行環境信息的文本文件。ini文件是一種文本文件,它可以通過Notepad等文本編輯器進行編輯。ini文件具有特定的格式。一個INI文件是由若干個段(section)組成的,每個段中包含若干關鍵字(key)及相應的值(value)。創建應用程序自己的INI文件,通過INI文件保存應用程序的一些運行環境信息,然后在程序中讀取INI文件中的設置信息并據以處理。一旦程序的運行環境需要變更,則可以通過直接修改INI文件,或在程序中提供專門的界面間接地修改INI文件來保證程序的可用性。
  程序運行時如圖:
  源程序及注釋如下:
  '窗體源程序
  OptionExplicit
  Dimm_strNameArray()AsMyName
  Dimm_bIsStartAsBoolean
  Dimm_nNameIndexAsInteger
  DimMAX_INDEXAsInteger
  Dimm_nSelectNumAsInteger
  '被選定數
  DimnScrollStepAsInteger
  DimnScrollWidthAsInteger
  DimbScrollStateAsBoolean
  DimnEnableSecondAsInteger
  Dimm_strTitleAsString
  Dimm_strAPPTitleAsString
  Dimm_strScrollTitleLeftAsString
  Dimm_strScrollTitleRightAsString
    Label_FlashName.Visible=True
  Timer_FlashName.Enabled=True
  Timer_ScrollName.Enabled=False
  Label_FlashName=
  m_strNameArray(m_nNameIndex).strName+“中獎了!"
  m_strNameArray(m_nNameIndex).bIsSelect=True
  m_nSelectNum=m_nSelectNum+1
  DimTempAsMyName
  Temp=
  m_strNameArray(MAX_INDEX)
  m_strNameArray(MAX-INDEX)=m_strNameArray(m_nNameIndex)
  m_strNameArray(m_nNameIndex)=
  Temp
  MAX_INDEX=MAX_INDEX-1
  IfMAX_INDEX=0Then
  MsgBox“非常感謝您使用本軟件"
  EndIf
  Else'按開始鈕
  m_bIsStart=True
  Command_Start_Stop.Caption=“停止"
  Command_Start_Stop.Enabled=False
  Timer_ScrollName.Enabled=True
  Timer_FlashName.Enabled=False
  Label_FlashName.Caption=“"
  EndIf
  EndSub
  PrivateSubForm_Load()
  Form_Bouns.ScaleMode=3
  m_nNameIndex=0
  m_bIsStart=False
  Timer_ScrollName.Enabled=True
  Timer_ScrollTitle.Enabled=True
  Label_FlashName.Visible=False
  Label_ScrollName.Caption=“"
  nEnableSecond=0
  '定義起始秒數
  ReDimNameArray
  '獲得文本中的名字和打亂名字順序
  nScrollStep=5'設定滾動字的步長
  nScrollWidth=Label_Congruation.Left
  '設定title的移動寬度
  bScrollState=False
  '設定缺省的開始滾動方向為向左
  m_nSelectNum=0
  '初始化被選定數為0
  Init
  '初始化本程序的界面
  EndSub
  PrivateSubTimer_FlashName_Timer()'閃動中獎者姓名
  IfLabel_FlashName.Visible=TrueThen
  Label_FlashName.Visible=False
  Else
  Label_FlashName.Visible=True
  EndIf
  EndSub
  PrivateSubTimer_ScrollName_Timer()'滾動出現名字
  Ifm_bIsStart=TrueThen
  Ifm_nNameIndex>=MAX_INDEXThen
  m_nNameIndex=0
  EndIf
  m_nNameIndex=
  m_nNameIndex+1
  Ifm_strNameArray(m_nNameIndex).bIsSelect=TrueThen
  Ifm_nNameIndex<
  MAX-INDEXThen
  m_nNameIndex=
  m_nNameIndex+1
  Else
  m_nNameIndex=0
  EndIf
  EndIf
  Label_ScrollName.Caption=m_str
  NameArray(m_nNameIndex).strName
  'EndIf
  EndIf
  EndSub
  PrivateSubTimer_ScrollTitle_Timer()'滾動“恭喜發財"字樣
  IfbScrollState=FalseThen'向左滾
  nScrollStep=10
  Label_Congruation.Caption=m_strScrollTitleLeft
  IfnScrollWidth>0Then
  nScrollWidth=
  nScrollWidth-nScrollStep
  Else
  bScrollState=True
  EndIf
  Else'向右滾
  nScrollStep=-10
  Label_Congruation.Caption=
  m_strScrollTitleRight
  IfnScrollWidth<Form_Bouns.ScaleWidth-Label_Congruation.WidthThen
  nScrollWidth=
  nScrollWidth-nScrollStep
  Else
  bScrollState=False
  EndIf
  EndIf
  Label_Congruation.Left=nScrollWidth
  '以下為8秒鐘內使“停止"按鈕有效
  IfnEnableSecond<=49Then
  Ifm_bIsStart=TrueThen
  nEnableSecond=nEnableSecond+1
  EndIf
  Else
  Ifm_bIsStart=TrueThen
  Command_Start_Stop.Enabled=True
  nEnableSecond=0
  EndIf
  EndIf
  EndSub
  '動態定義數組
  PrivateSubReDimNameArray()
  DimnMaxIndexAsInteger
  DimstrMaxIndexAsString
  DimnIndexAsInteger
  DimbIsBeginAsBoolean
  bIsBegin=False
  nIndex=0
  OpenApp.Path+“/name.txt"ForInputAs#1'讀文件
  DoUntilEOF(1)
  IfbIsBegin=FalseThen
  LineInput#1,strMaxIndex
  nMaxIndex=Val(strMaxIndex)
  MAX_INDEX=nMaxIndex-1
  ReDimm_strNameArray(0TonMaxIndex-1)
  bIsBegin=True
  Else
  LineInput#1,m_strNameArray(nIndex).strName
  m_strNameArray(nIndex).bIsSelect=False
  nIndex=nIndex+1
  EndIf
  Loop
  '以下為打亂人員順序10次
  DimiAsInteger
  DimjAsInteger
  DimTempAsString
  DimnRandomNumAsInteger
  Forj=0To10
  Fori=0TonMaxIndex-1
  nRandomNum=((nMaxIndex-1)×Rnd)'利用Rnd函數
  Temp=m_strNameArray(i).strName
  m_strNameArray(i).strName=m_strNameArray(nRandomNum).strName
  m_strNameArray(nRandomNum).strName=Temp
  Nexti
  Nextj
  EndSub
  PrivateSubInit()'讀取INI文件
  DimXAsLong
  DimlpFileName
  DimTempAsString×50
  lpFileName=App.Path+“/Sortition.ini"
  X=GetPrivateProfileString(“SYSTEM",“AppTitle",“抽獎程序",Temp,Len(Temp),lpFileName)
  m_strAppTitle=Trim(Temp)
  Temp=“"
  X=GetPrivateProfileString(“SYSTEM","Title","歡迎使用抽獎程序",Temp,Len(Temp),lpFileName)
  m_strTitle=Trim(Temp)
  Temp=“"
  X=GetPrivateProfileString(“SYSTEM",“ScrollTitleRight",“恭喜發財!!!",Temp,Len(Temp),lpFileName)
  m_strScrollTitleRight=Trim(Temp)
  X=GetPrivateProfileString(“SYSTEM",“ScrollTitleLeft",“龍年大發!!!",Temp,Len(Temp),lpFileName)
  m_strScrollTitleLeft=Trim(Temp)
  Form_Bouns.Caption=m_strAppTitle
  Label_CompanyTitle.Caption=m_strTitle
  EndSub
  模塊源程序:
  '用于讀取ini文件的API函數
  DeclareFunctionGetPrivateProfileStringLib“kernel32"Alias“GetPrivateProfileStringA"(ByVallpapplicationnameAsString,ByVallpKeyNameAsString,ByVallpDefaultAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong,ByVallpFileNameAsString)AsLong
  PublicTypeMyName
  strNameAsString
  bIsSelectAsBoolean
  EndType
  由于程序利用的windowsini文件保存一些標題信息,因而可以方便的修改使用環境,及標題內容。
  見ini文件內容:
  [SYSTEM]
  ;應用程序的form名稱
  AppTitle=“風云電腦抽獎Test"
  ;窗口的內的標題(限9個字)
  Title=“大抽獎"
  ;右滾動的文字(僅能為如下格式:XXXX!!!)
  ScrollTitleRight=“恭喜發財!!!"
  ;左滾動的文字(僅能為如下格式:XXXX!!!)
  ScrollTitleLeft=“祝您好運!!!"
  如此一個小小的電腦抽獎程序便完成了。
  以上程序在VB6.0Windows98環境下編譯通過->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昂仁县| 本溪市| 富宁县| 金昌市| 凉城县| 马尔康县| 万盛区| 辽阳县| 筠连县| 米泉市| 怀仁县| 沈阳市| 隆安县| 罗江县| 永登县| 盖州市| 六枝特区| 常州市| 富裕县| 万盛区| 泽库县| 福贡县| 潮安县| 新乡县| 合作市| 张掖市| 永年县| 文成县| 玛沁县| 大渡口区| 商丘市| 广南县| 泗洪县| 阳信县| 兰西县| 郴州市| 西城区| 临海市| 伊通| 静宁县| 寿阳县|