欢迎来到天天文库
浏览记录
ID:21597286
大小:26.50 KB
页数:6页
时间:2018-10-23
《利用pb实现抽奖系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、利用PB实现抽奖系统的设计与实现 摘要本文描述了基于抽??系统的设计与实现,通过前期的需求分析、系统流程设计、系统功能设计,软件选择PB(powerbuilder9.0)作为系统开发工具,使用ACCESS作为数据库开发此系统,由于抽奖系统是一个独立的软件,所以采用单机版的数据库,安装简便,界面友好,容易移植,目前使用效果好。 【关键词】PBACCESS抽奖随机记录数 1引言 我院为了丰富职工文化生活,每年春节临近时都举行晚会,在晚会过程中为了活跃气氛,有多次抽奖机会,分别抽出一等奖,二等奖,三等奖近400多名,往年都是把全院近700多人名单打印出来,折叠放在暗箱
2、,由院领导分批次抽取,一个一个读出,占用时间长,而且职工怀疑有不透明的暗箱操作的嫌疑,今年根据医院工会要求,由我院信息科着手开发抽奖系统,这个任务由我全权负责开发,利用了2天时间完成任务,现将经验分享各位。 2设计目标 本系统能够根据选择奖项不同,在数据库中随机抽取10个人数,展示在屏幕上,由操作员点开始与停止,抽出10名幸运观众。被抽取的幸运观众将在待抽取的数据库中打上标识,在下次抽取中不再被选,以保证幸运观众不重复,同时保证待抽取的观众被抽取的机率相等。 3数据库表结构 由于本系统操作简单,数据库仅有2张表,一张Person_table全体职工表,一张Per
3、son_selected,获奖员工表,表结构分别如下: 3.1Person_table表字段 Person_id员工ID,Person_name员工姓名,Person_Sex员工性别,Cecked中奖标志(0,为未中,1为中奖) 3.2Person_selected表字段 Person_id员工ID,Person_name员工姓名,Person_Sex员工性别,Jiang_X奖项 4程序设计 4.1编程思想 PowerBuilder美国Sybase公司研制的一种新型、快速开发工具,是客户机/服务器结构下,基于Windows3.x、Windows95和Win
4、dowsNT的一个集成化开发工具。它包含一个直观的图形界面和可扩展的面向对象的编程语言PowerScript,提供与当前流行的大型数据库的接口,并通过ODBC与单机数据库相连。 4.2系统的实现 4.2.1员工基本信息的建立 由于是单机版,采用微软的ACCESS数据库,对于一个近千人的单位,足够使用,刚开始我采用的是SQL2000数据库。在开发过程中感觉非常不便,单机还要安装SQL数据库,待抽奖人员还要开发录入,修改,删除的功能,时间紧,来不及,最重要是操作非常烦琐,后决定采用易操作的ACCESS数据库。 首先建立待抽奖数据库,表结构如图1。 表结构建立后,将
5、EXCEL里将待抽取的人员按数据库的结构复制至数据库表中,注意表中Checked设置为0,待抽取状态,如图2。 建立空表结构Person_selected,用于插入中奖员工记录,保存便于导出,表结构如图3。 中奖后记录如图4。 4.2.2随机记录的产生 经查询资料,在网上搜索到:四种数据库随机获取10条数据的方法 SQLServer: SELECTTOP10*FROMT_USERORDERBYNEWID() ORACLE: SELECT*FROM(SELECT*FROMT_USERORDERBYDBMS_RANDOM.RANDOM())WHERERONU
6、M<=10 MySQL: SELECT*FROMT_USERORDERBYRAND()LIMIT10 Access: SELECTTOP10*FROMT_USERORDERBYrnd([一个自动编号字段]) 4.2.3代码实现 窗口主要控件: a、下拉列表框控件ddlb_1,显示待选择的奖项:如:一等奖,二等奖等; b、静态文本框statictext控件,存放待抽取人数,各类奖项中奖人数及按秒滚动的人员姓名框,如图5。 c、在主窗口的timer事件中加入随机抽取记录脚本,定义游标等,因为一屏只显示10位员工,所以只随机抽取10条记录: DECLARE
7、C1CURSORFOR selecttop10person_id,person_namefromPerson_tablewherechecked='0'orderbyrnd(person_id); OPENC1; FORLI_ROW=1TO10 FETCHC1INTO:p_id[li_row],:name[li_row]; NEXT CLOSEC1; st_1.text=name[1] st_2.text=name[2] st_3.text=name[3] st_4.text=name[4] st_5.text=na
此文档下载收益归作者所有