利用PB实现抽奖系统设计及实现.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用PB实现抽奖系统设计及实现

利用PB实现抽奖系统设计及实现   摘 要 本文描述了基于抽??系统的设计与实现,通过前期的需求分析、系统流程设计、系统功能设计,软件选择PB(powerbuilder 9.0)作为系统开发工具,使用ACCESS作为数据库开发此系统,由于抽奖系统是一个独立的软件,所以采用单机版的数据库,安装简便,界面友好,容易移植,目前使用效果好 【关键词】PB ACCESS 抽奖 随机记录数 1 引言 我院为了丰富职工文化生活,每年春节临近时都举行晚会,在晚会过程中为了活跃气氛,有多次抽奖机会,分别抽出一等奖,二等奖,三等奖近400多名,往年都是把全院近700多人名单打印出来,折叠放在暗箱,由院领导分批次抽取,一个一个读出,占用时间长,而且职工怀疑有不透明的暗箱操作的嫌疑,今年根据医院工会要求,由我院信息科着手开发抽奖系统,这个任务由我全权负责开发,利用了2天时间完成任务,现将经验分享各位 2 设计目标 本系统能够根据选择奖项不同,在数据库中随机抽取10个人数,展示在屏幕上,由操作员点开始与停止,抽出10名幸运观众。被抽取的幸运观众将在待抽取的数据库中打上标识,在下次抽取中不再被选,以保证幸运观众不重复,同时保证待抽取的观众被抽取的机率相等 3 数据库表结构 由于本系统操作简单,数据库仅有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公司研制的一种新型、快速开发工具,是客户机/服务器结构下,基于Windows3.x、Windows95和WindowsNT的一个集成化开发工具。它包含一个直观的图形界面和可扩展的面向对象的编程语言PowerScript,提供与当前流行的大型数据库的接口,并通过ODBC与单机数据库相连 4.2 系统的实现 4.2.1 员工基本信息的建立 由于是单机版,采用微软的ACCESS数据库,对于一个近千人的单位,足够使用,刚开始我采用的是SQL2000数据库。在开发过程中感觉非常不便,单机还要安装SQL数据库,待抽奖人员还要开发录入,修改,删除的功能,时间紧,来不及,最重要是操作非常烦琐,后决定采用易操作的ACCESS数据库 首先建立待抽奖数据库,表结构如图1 表结构建立后,将EXCEL里将待抽取的人员按数据库的结构复制至数据库表中,注意表中Checked 设置为0,待抽取状态,如图2 建立空表结构Person_selected,用于插入中奖员工记录,保存便于导出,表结构如图3 中奖后记录如图4 4.2.2 随机记录的产生 经查询资料,在网上搜索到:四种数据库随机获取10条数据的方法 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   st_9.text= name[9] st_10.text= name[10] d、开始,停止命令控件,实现timer(0.01)不停滚动,点击停止,展现中奖人员姓名,同时保存到中奖人员表中,供举办单位导出,打印,部分重要代码如下: if this.text =‘开始’ then this.text =‘停止’ timer(0.01) else this.text =‘开始’ timer(0) --停止滚动 if sqlca.sqlcode 0 then ErrMessage(’数据库出现问题!’) return 1 end if if checked = 1 then infomessage(”此号码已经抽到过并且已经做了保存!” ) return end if --保存中奖员工记录: insert into lottery_selected (person_id,person_name,checked,Jiang_X,r

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档