- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、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 = 10
MySQL:
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
Access:
SELECT TOP 10 * FROM T_USER ORDER BY rnd([一个自动编号字段])
4.2.3 代码实现
窗口主要控件:
a、下拉列表框控件ddlb_1,显示待选择的奖项:如:一等奖,二等奖等;
b、静态文本框statictext控件,存放待抽取人数,各类奖项中奖人数及按秒滚动的人员姓名框,如图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 L
您可能关注的文档
最近下载
- 2024—2025学年广东省佛山市顺德区九年级上学期期中考试化学试卷.doc VIP
- 阿托品化与阿托品中毒的主要区别.docx VIP
- 麦克维尔多联机安装说明书.pdf VIP
- Unit 2 Section B(1a-Project)课件人教版2024新教材七年级上册英语.pptx VIP
- 南京大学《算法设计与分析》ppt课件 L12 - DAG.pdf VIP
- 南京大学《算法设计与分析》ppt课件 L11 - GraphTraversal.pdf VIP
- CH_T 7002-2018CN 无人船水下地形测量技术规程.docx
- 生产现场质量问题分析与解决培训.ppt VIP
- SMP-03-005-00 委托生产文件管理规程.pdf VIP
- 南京大学《算法设计与分析》ppt课件 L10 - Union-Find.pdf VIP
原创力文档


文档评论(0)