• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      利用PB實現(xiàn)抽獎系統(tǒng)的設計與實現(xiàn)

      2017-06-05 16:29:03徐庭松
      電子技術與軟件工程 2017年7期
      關鍵詞:抽獎

      徐庭松

      摘 要 本文描述了基于抽獎系統(tǒng)的設計與實現(xiàn),通過前期的需求分析、系統(tǒng)流程設計、系統(tǒng)功能設計,軟件選擇PB(powerbuilder 9.0)作為系統(tǒng)開發(fā)工具,使用ACCESS作為數(shù)據(jù)庫開發(fā)此系統(tǒng),由于抽獎系統(tǒng)是一個獨立的軟件,所以采用單機版的數(shù)據(jù)庫,安裝簡便,界面友好,容易移植,目前使用效果好。

      【關鍵詞】PB ACCESS 抽獎 隨機記錄數(shù)

      1 引言

      我院為了豐富職工文化生活,每年春節(jié)臨近時都舉行晚會,在晚會過程中為了活躍氣氛,有多次抽獎機會,分別抽出一等獎,二等獎,三等獎近400多名,往年都是把全院近700多人名單打印出來,折疊放在暗箱,由院領導分批次抽取,一個一個讀出,占用時間長,而且職工懷疑有不透明的暗箱操作的嫌疑,今年根據(jù)醫(yī)院工會要求,由我院信息科著手開發(fā)抽獎系統(tǒng),這個任務由我全權負責開發(fā),利用了2天時間完成任務,現(xiàn)將經(jīng)驗分享各位。

      2 設計目標

      本系統(tǒng)能夠根據(jù)選擇獎項不同,在數(shù)據(jù)庫中隨機抽取10個人數(shù),展示在屏幕上,由操作員點開始與停止,抽出10名幸運觀眾。被抽取的幸運觀眾將在待抽取的數(shù)據(jù)庫中打上標識,在下次抽取中不再被選,以保證幸運觀眾不重復,同時保證待抽取的觀眾被抽取的機率相等。

      3 數(shù)據(jù)庫表結構

      由于本系統(tǒng)操作簡單,數(shù)據(jù)庫僅有2張表,一張Person_table全體職工表,一張Person_selected,獲獎員工表,表結構分別如下:

      3.1 Person_table表字段

      Person_id 員工ID,Person_name 員工姓名,Person_Sex 員工性別,Cecked 中獎標志(0,為未中,1為中獎)

      3.2 Person_selected表字段

      Person_id 員工ID,Person_name 員工姓名,Person_Sex 員工性別,Jiang_X 獎項

      4 程序設計

      4.1 編程思想

      PowerBuilder美國Sybase公司研制的一種新型、快速開發(fā)工具,是客戶機/服務器結構下,基于Windows3.x、Windows95和WindowsNT的一個集成化開發(fā)工具。它包含一個直觀的圖形界面和可擴展的面向?qū)ο蟮木幊陶Z言PowerScript,提供與當前流行的大型數(shù)據(jù)庫的接口,并通過ODBC與單機數(shù)據(jù)庫相連。

      4.2 系統(tǒng)的實現(xiàn)

      4.2.1 員工基本信息的建立

      由于是單機版,采用微軟的ACCESS數(shù)據(jù)庫,對于一個近千人的單位,足夠使用,剛開始我采用的是SQL2000數(shù)據(jù)庫。在開發(fā)過程中感覺非常不便,單機還要安裝SQL數(shù)據(jù)庫,待抽獎人員還要開發(fā)錄入,修改,刪除的功能,時間緊,來不及,最重要是操作非常煩瑣,后決定采用易操作的ACCESS數(shù)據(jù)庫。

      首先建立待抽獎數(shù)據(jù)庫,表結構如圖1。

      表結構建立后,將EXCEL里將待抽取的人員按數(shù)據(jù)庫的結構復制至數(shù)據(jù)庫表中,注意表中Checked 設置為0,待抽取狀態(tài),如圖2。

      建立空表結構Person_selected,用于插入中獎員工記錄,保存便于導出,表結構如圖3。

      中獎后記錄如圖4。

      4.2.2 隨機記錄的產(chǎn)生

      經(jīng)查詢資料,在網(wǎng)上搜索到:四種數(shù)據(jù)庫隨機獲取10條數(shù)據(jù)的方法

      SQL Server:

      SELECT TOP 10 * FROM T_USER ORDER BY NEWID()

      ORACLE:

      SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10

      MySQL:

      SELECT * FROM T_USER ORDER BY RAND() LIMIT 10

      Access:

      SELECT TOP 10 * FROM T_USER ORDER BY rnd([一個自動編號字段])

      4.2.3 代碼實現(xiàn)

      窗口主要控件:

      a、下拉列表框控件ddlb_1,顯示待選擇的獎項:如:一等獎,二等獎等;

      b、靜態(tài)文本框statictext控件,存放待抽取人數(shù),各類獎項中獎人數(shù)及按秒滾動的人員姓名框,如圖5。

      c、在主窗口的timer事件中加入隨機抽取記錄腳本,定義游標等,因為一屏只顯示10位員工,所以只隨機抽取10條記錄:

      DECLARE C1 CURSOR FOR

      select top 10 person_id,person_name from Person_table where checked='0' order by rnd(person_id);

      OPEN C1;

      FOR LI_ROW=1 TO 10

      FETCH C1 INTO :p_id[li_row],:name[li_row];

      NEXT

      CLOSE C1;

      st_1.text= name[1]

      st_2.text= name[2]

      st_3.text= name[3]

      st_4.text= name[4]

      st_5.text= name[5]

      st_6.text= name[6]

      st_7.text= name[7]

      st_8.text= name[8]

      st_9.text= name[9]

      st_10.text= name[10]

      d、開始,停止命令控件,實現(xiàn)timer(0.01)不停滾動,點擊停止,展現(xiàn)中獎人員姓名,同時保存到中獎人員表中,供舉辦單位導出,打印,部分重要代碼如下:

      if this.text ='開始' then

      this.text ='停止'

      timer(0.01)

      else

      this.text ='開始'

      timer(0) --停止?jié)L動

      if sqlca.sqlcode <> 0 then

      ErrMessage('數(shù)據(jù)庫出現(xiàn)問題!')

      return 1

      end if

      if checked = 1 then

      infomessage("此號碼已經(jīng)抽到過并且已經(jīng)做了保存!" )

      return

      end if

      --保存中獎員工記錄:

      insert into lottery_selected (person_id,person_name,checked,Jiang_X,registerdate)

      values(:p_id[ll_row],:name[ll_row],'1',:ls_jx,:ldt_now);

      運行主界面如圖6。

      當點停止時,10個員工名單自動保存至中獎表中,再點開始,將進行下一輪的抽取工作。

      點中獎按鈕,并有導出功能,如圖7。

      5 結束語

      本系統(tǒng)經(jīng)過測試,完全在各32位的系統(tǒng)運行,院領導非常滿意,社會效果好。

      參考文獻

      [1]魏莉.數(shù)據(jù)庫驅(qū)動的標準化制圖技術研究[D].中國地質(zhì)大學(北京),2015.

      [2]溫瑩.稅銀聯(lián)網(wǎng)地稅端子系統(tǒng)的設計與實現(xiàn)[D].中國石油大學,2008.

      [3]韓亮.綜合統(tǒng)計信息智能管理系統(tǒng)的設計與開發(fā)[D].大連理工大學,2006.

      作者單位

      1.淮安市康復醫(yī)院 江蘇省淮安市 211600

      2.金湖縣人民醫(yī)院 江蘇省淮安市 211600

      猜你喜歡
      抽獎
      法博士之抽獎
      假抽獎 真陷阱——謹防快遞包裹成為二維碼廣告牟利工具
      開學大抽獎
      杭州互聯(lián)網(wǎng)公證處開啟區(qū)塊鏈抽獎新時代
      跟蹤導練(四)2
      大抽獎
      航空模型(2016年8期)2017-05-03 12:17:21
      抽獎
      喜得馬年成駿業(yè) 笑看羊歲展鴻圖——《長江蔬菜》2015年有獎訂閱抽獎揭曉
      長江蔬菜(2015年3期)2015-03-11 15:10:36
      抽到特等獎
      抽獎
      興趣英語(2013年3期)2013-05-13 09:21:06
      桐乡市| 昌图县| 友谊县| 庆安县| 富蕴县| 齐河县| 左权县| 千阳县| 阿克陶县| 蒲城县| 武冈市| 和林格尔县| 霸州市| 黄陵县| 区。| 信丰县| 朝阳市| 芜湖市| 营口市| 汝南县| 九龙坡区| 多伦县| 苏尼特左旗| 石景山区| 临海市| 延长县| 称多县| 黄大仙区| 双城市| 霞浦县| 闻喜县| 罗田县| 承德市| 静海县| 揭阳市| 梁平县| 宣城市| 通渭县| 金阳县| 来安县| 西峡县|