利用pb实现抽奖系统的设计与实现

利用pb实现抽奖系统的设计与实现

ID:21597286

大小:26.50 KB

页数:6页

时间:2018-10-23

利用pb实现抽奖系统的设计与实现_第1页
利用pb实现抽奖系统的设计与实现_第2页
利用pb实现抽奖系统的设计与实现_第3页
利用pb实现抽奖系统的设计与实现_第4页
利用pb实现抽奖系统的设计与实现_第5页
资源描述:

《利用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

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。