抽奖系统的设计与实现

1 绪论

随着人类社会步入21世纪,信息技术的飞速发展和社会信息化的不断提高,特别是进入网络信息时代,我们的工作越来越离不开计算机,这个时候就需要更好的运用现代化技术为各联系点服务,不断提高工作效率。计算机就充分体现了在这方面的优势,社会生产中所有的变化与现代计算机的发展几乎是分不开的,其在人类生活中具体表现在政治、经济、文化上,在长远意义上它在人类发展中还是占据着主体的地位。科学技术的突发猛进,知识经济初见端倪使得一些落后的手工生产在经济生活中已经落伍,这也使信息技术的高速发展成了必要。

在现代社会中,企业若要取得竞争优势,必须对客户的需要了如指掌,并且建立稳固的客户关系。因此,企业需要开展一些有效的活动来拉拢企业与客户之间的关系,比如现代社会上很流行的抽奖活动,但是真要实施的话如果没有一个方便快捷的客户关系系统不仅会浪费用户的宝贵时间而且会令客户感到服务缺乏亲切感。计算机已经成为我们学习和工作的得力助手,利用它的特点可以实现人们所期望的相关功能。在科学发达的今天,计算机的使用已经得到了广泛的普及,性能也比以往有了很大程度的提升,它已经被应用于许多领域。

在计算机与社会活动紧密结合的现代社会,开发这样一套抽奖软件成为很有必要的事情,对于我们即将计算机专业毕业的学生来说,也是一次将计算机应用于现实生活生产的一次很有意义的实践活动

2 需求分析

2.1功能需求分析

江苏省徐州汉高公司属于中外合资企业,为了回报广大客户的厚爱特推出了一个抽奖活动,考虑到该抽奖活动的可用性和实际性,计划开发一个抽奖系统,即本软件系统——徐州汉高公司抽奖系统。对一个企业来说,在现代社会中实现数据规范化,自动化的电脑管理,是一个管理规范,运作高效的企业单位的必然要求,本系统正是根据公司的发展需要而研制开发的一个全新的抽奖系统。现在我国大部分抽奖活动的水平还停留在机械介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,而且对于公平性还有待于提高。在信息时代这种传统的抽奖方法必然被计算机为基础的信息管理所取代。

根据用户的具体要求和未来可能需要添加的功能,系统应包含以下功能:

1 系统登陆

  1. 登陆系统:由系统管理员根据对应的帐号和密码进入该系统。

(2) 信息输入:进入系统后登陆后台数据库,可以直接将客户的相关信息输入进数据库,同理也可以将某个客户的信息永久删除。

2 信息查询

(1 客户的基本信息查询:能查询所有客户的基本信息和单个用户记录的详细情况;根据用户表中的用户的各种属性值进行模糊查询;能方便地对选中的记录进行修改。

(2) 中奖客户名单的查询:在程序主界面上有查询按钮,直接与后台数据库相连接,可以查到中奖与未中奖者的相关信息。

3 数据库操作

(1) 数据删除:能有选择地删除某一张表的数据或数据库中全部数据,本操作作用在减少数据冗余,可以对数据库中的数据进行有选择的删除即初始化。

(2) 动态数据更新:系统应具备灵活配置系统数据的能力,包括服务范围更新、机器更新、工程师更新、故障现象更新等。

(3) 数据备份和初始化:根据用户选择的路径对数据库进行手动备份,每天进行自动备份;对上次使用后的数据库作了备份后,为减少数据冗余,可以对数据库中的数据进行有选择的删除即初始化。

4 系统数据配置

  1. 密码管理:进入系统后登陆后台数据库,可以直接修改为新的帐号和密码。对各种性质的用户提供了添加删除和修改用户信息的功能。
  2. 用户权限配置:由管理员对客户的权限进行配置,使得客户不能对系统进入违规操作。

5 报表名单的输出和打印

  1.  管理户根据数据库中中奖名单的情况,自选字段,能够对重要报表进行打印。

2.2 性能需求分析

1 界面需求:具有友好的管理员操作界面,有良好的人机接口;方便系统管理员使用(如:操作键盘时支持回车键等)。

2 灵活性:系统应具有较灵活的更新操作,对特别的数据项(如:客户名、抽奖号码、性别、联系方式等)应具备实时添加的功能,尽量避免二次开发;对一段时间后数据库的内容进行有选择地删除、初始化。

3 稳定性:系统应具备长期持续工作的能力;使数据库的一致性控制在可操作范围内;避免因系统引起的死机现象。

4 安全性:有良好的管理员身份认证体制和灵活的密码更改模块;用户权限可以通过管理员灵活修改;然后进行响应的备份操作。

2.3 数据需求分析

2.3. 1数据字典

根据系统设计的要求和功能模块的划分现将数据库分为下面三个大类:

1信息显示类:

(1)客户登记信息:

客户姓名、性别、年龄、联系电话、联系地址、联系方式、家庭住址、邮政编码。

(2)查询客户信息:

中奖情况、客户姓名、性别、年龄、联系电话、联系地址、联系方式、家庭住址、邮政编码。

(3)中奖分类信息:

中奖客户名单、未中奖客户名单、所有参与抽奖的客户名单(所有名单均包含客户的所有私人信息)。

2 实时更新类:

(1)对于已中奖的客户,将其进行保存,保证此号码不得参与往后的抽奖。根据需要进行打印。

(2)未中奖的客户,仍保存在有效数据库中,以便滚入下轮进行抽奖。

3 系统配置类:

(1)登陆者权限

登陆者代号、登陆者密码、登陆者性质、登陆者级别。

(2)登录记录

登录日期、登录时间、退出日期、退出时间。

(3)系统管理员权限、高级用户权限。

允许添加客户信息、允许删除客户信息、允许修改客户信息、允许添加密码、允许删除密码、允许修改密码、允许添加数据更新、允许删除数据更新、允许修改数据更新、允许查询、允许打印、允许备份库、允许初始化库、允许删除库。

2.3.2绘制数据库系统ER图

根据系统的要求及特点,结合数据字典绘制出ER图如下:

1系统功能ER图

图2.3.2.1系统功能ER图

2 登记客户信息

      

3 查询客户信息

4 中奖分类信息

5系统管理员与系统的关系ER图

2.3.3数据流图绘制

数据流图是目标软件系统中各个处理子功能以及它们之间的数据流动的图形表示。数据流图的精化过程实际上是处理子功能和数据流的细化过程。随着这一过程的进行,本系统的用户需求将会进一步精确化、一致化、完全化。具体数据流图如下:

2.3. 4 控制流图的绘制

    本系统需要实时地获取抽奖后的结果,是一个实时系统,所以再创建了数据流模型后还必须创建控制流模型,以便描述相关的事件以及系统状态在时间坐标系中的变迁。分析本系统的控制流得到以下控制流图:

   

                        

2.3.4.1 系统控制流图

3 概要设计

   软件的概要设计是在逐步进行的基础上经过详细汇总客户的有效信息资料,再对系统的总体结构进行规划,根据抽奖的要求确定软件的总体框架,概要设计旨在确定程序各主要部件之间的关系。

3.1 系统运行环境

硬件环境:程序应至少在PentiumII的计算机上运行建议采用PentiumIV计算机,CPU为400MHZ以上,基本内存128MB,显示内存16MB,20GB以上硬盘。

软件环境:软件应工作在Windows98及以上的系统上,建议使用Windows2000操作系统的计算机,另外配备Access2000数据库和Visual Basic6.0。

3.1.1概要设计阶段的主要内容

①审查软件计划、软件需求分析提供的文档,列出最佳设计方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,审定后进入系统设计。

②确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。

③ 编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。

3.1.2概要设计的全过程

概要设计要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案;然后进行结构设计,确定软件结构。

3.1.3概要设计的原则

①将软件划分成若干独立成分的依据。

②表示不同的成分内的功能细节和数据结构。

③统一衡量软件设计的技术质量。

3.1.4系统功能分析

根据徐州汉高公司抽奖系统的日常工作流程与内容,预测开发的抽奖系统的达到的功能如下:

1、系统的登陆:只要系统管理员或有相关权限的人可以登陆。

2、账号与密码的设定:凭对应的账号与密码才可以登陆本系统,否则无效。

3、信息的录入:输入客户的相关信息。

4、信息的查询:查询中奖客户及未中奖客户的名单。

5、进行抽奖:进入系统主界面后点击“开始”,号码便开始循环滚动。

6、抽奖结果的产生:点击“停止”(即原先的开始键),便产生一个随机的号码。并自动存入数据库。

7、对中奖号码的备份:当进行下次抽奖时假如仍抽中已中的号码系统则会提示已经抽过,本次抽奖无效。对于已中奖的号码可以根据需要将其打印出来。

8、其他功能:密码管理等。

9、退出系统。

根据以上分析,该系统考虑将整个系统分解为如下3—1模块结构图:

江苏省徐州汉高公司抽奖系统

                       

                                                     

信息录入模块

管理访问模块

系统控制模块

  开始抽奖

                               

                          图3—1模块结构图

并且在系统的开发过程中,尽量注意模块的高内聚、低耦合,使得系统的整体性能提高,并且也有利于投入使用后的系统维护。

3.2 功能模块描述

3.2.1 需求功能描述

(1)客户信息的输入:输入客户的详细信息,输入后还可以对输进去的项目作简单的查询和修改以及删除操作。考虑到登陆系统的实际情况,界面操作应支持回车符操作,尽量做到操作方便。

(2)系统对抽奖要求的实现:该系统每期准备设立四个奖项,一等奖一名,二等奖二名,三等奖四名,四等奖十名。中奖的人不得再参与下期的抽奖,没中奖人员的信息与新产生的人员信息进入下一期抽奖,不会产生重复的中奖现象。

3.2.2  信息查询

(1)客户基本信息的查询:系统管理员能查询所有客户的基本信息和单个用户记录的详细情况;可以根据客户统计表中的客户的各种属性值进行模糊查询;能方便地对选中的记录进行修改或删除。

(2)客户中奖情况的查询:管理员直接利用系统所提供的中奖采集功能,就可以了解哪些客户中了奖,中了什么奖项,一目了然。

3.2.3报表输出和打印

系统管理员自选中奖客户字段,对所选中的客户报表进行打印。

3.2.3  VB操作

在目前市场上这些众多的程序开发工具中,有些强调编程语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。

作为数据库系统的开发,Visual Basic是一个非常理想选择。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言Visual Basic语言,该开发工具具有很多长处:

Visual Basic是一种可视化的、面对对象和事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。

总的来说,Visual Basic具有以下特点:

1、可视化编程:

用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。

2、面向对象的程序设计

4.0版以后的Visual Basic支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示在界面上,都是可视的。

3、结构化程序设计语言

Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。

Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Visual Basic环境,直接在Windows环境下运行。

4、事件驱动编程机制

Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。

在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。

5、访问数据库

Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。

Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。

6、动态数据交换(DDE)

利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。Visual Basic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。

7、对象的链接与嵌入(OLE)

对象的链接与嵌入(OLE)将每个应用程序都看做是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看做是一个对象进行链接和嵌入,是一种应用程序一体化的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的操作。

7、动态链接库(DLL)

Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将C/C++或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。

微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。

微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic 来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。

DATA 控件在数据库中的信息与将信息显示给用户看的Visual Basic程序之间架起了一座桥梁。我们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。DATA控件还提供了用来浏览不同记录的各种跳转按钮。将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。

3.3数据库的设计

数据库的概念

数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,如记录、域等。

新建一个数据库

创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。

1. 标识需要的数据;

2. 收集被标识的字段到表中;

3. 标识主关键字字段;

4. 绘制一个简单的数据图表;

5. 规范数据;

6. 标识指定字段的信息;

7. 创建物理表。

修改已建的数据库

数据库的修改分为:添加、编辑和删除记录。这三种操作均可由Visual Basic 创建的程序来完成,下面的章节将详细描述实现的具体方法。

实现数据库之间的联系

数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。

3.3.1数据库操作

对于数据库的选择,系统采用了Access2000作为数据库的开发工具,相对于操作方面,Access2000比SQL有更多的优越性,充分体现着简单明了这一理念Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。

3.3.2系统中数据库的功能如下

(1)数据删除:可以选择地删除某些数据或数据库中全部数据,本操作用在减少数据冗余,可以对数据库中的数据进行有选择的删除即初始化。

(2)动态数据更新:系统具备灵活配置系统数据的能力,包括客户信息更新、添加或删除一个客户等等。

(3)数据备份和初始化:根据用户选择的路径对数据库进行手动备份,每天进行自动备份;对上次使用后的数据库作了备份后,为减少数据冗余,可以对数据库中的数据进行有选择的删除即初始化。

3.3.3客户信息登记表

3.3.3客户信息登记表

字段名称

数据类型

字段大小

说明

ID

自动编号

长整形

客户抽奖号

Date

Datetime

8

登陆日期

Time

Datetime

8

上次登陆时间

Cname

Text

30

客户姓名

Phone

Number

20

联系电话

Address

Text

50

联系地址

Mmode

Text

20

联系方式

Mpostnumber

Number

20

邮政编码

age

Number

8

年龄

Ssex

Sex

8

性别

  

                           

3.3.4客户信息录入表

表3.3.4客户信息录入表

字段名称

数据类型

字段大小

说明

ID

自动编号

长整形

新的客户抽奖号

Date

Datetime

8

登陆日期

Time

Datetime

8

上次登陆时间

Cname

Text

30

客户姓名

Phone

Number

20

联系电话

Address

Text

50

联系地址

Mmode

Text

20

联系方式

Mpostnumber

Number

20

邮政编码

Age

Number

8

年龄

Ssex

Sex

8

性别

  

3.3.5登陆记录表

表3.3.5登陆记录表

字段名称

数据类型

字段大小

说明

ID1

自动编号

长整形

 口令

Date

Text

8

登录日期

Time

Text

8

登录时间

Name

Text

30

客户姓名

Qdate

text

8

退出日期

Qtime

text

8

退出时间

    

3.3.6中奖客户名单

表3.3.6中奖客户名单

字段名称

数据类型

字段大小

说明

ID

自动编号

长整形

 抽奖号码

Cname

Text

30

客户姓名

Ssex

Sex

8

性别

Phone

Number

20

联系电话

Age

Number

8

年龄

3.3.7未中奖客户名单

表3.3.7未中奖客户名单

字段名称

数据类型

字段大小

说明

ID

自动编号

长整形

 抽奖号码

Cname

Text

30

客户姓名

Ssex

Sex

8

性别

Phone

Number

20

联系电话

Age

Number

8

年龄

3.3.8所有客户名单

表3.3.8所有客户名单

字段名称

数据类型

字段大小

说明

ID

自动编号

长整形

 抽奖号码

Cname

Text

30

客户姓名

Ssex

Sex

8

性别

Phone

Number

20

联系电话

Age

Number

8

年龄

3.3.9查找范围表 

3.3.9查找范围表  

字段名称

数据类型

字段大小

说明

ID

自动编号

长整形

 序号

scode

Text

10

服务范围编号

sname

Text

30

服务范围名称

  

4.详细设计

4.1 启动模块介绍

4.1.1 启动模块概述

    系统加载各模块时速度较慢,系统的后台操作较多,为了让用户耐心地等待,设置一个启动界面是非常必要的,它既能美化整个系统,体现出系统友好的用户界面,又能使用户通过启动界面的显示信息了解系统的基本概况。

图4.1.2 启动界面设计

                        

4.2 主界面介绍

4.2.1 主界面概述

主界面定义了系统的功能,通过菜单的选择实现对系统中各模块的调用。

4.2.2 主界面设计

图4.2.2 主界面设计

                 

4.2.3 查询界面介绍

此界面为系统的查询功能,不仅可以查询已中奖客户的信息,还可以查询未中奖客户和原数据库中所有客户的信息,体现了强大的查询功能,为系统管理员的工作带来了极大的方便,节约了大量的人力和物力。

图4.2.3查询界面图

             

4.3 登录模块介绍

4.3 登录模块流程

图4.3 登录模块流程

                          

图4.3

4.4数据更新

数据更新概述

数据更新包括:抽奖号码、客户姓名、性别、年龄、联系方式、电话号码、通信地址、邮政编码等,不须因为增加一个项目而修改程序,更新操作包括:添加、删除、修改、查询。

4.5添加和删除客户信息

   添加信息

图4.5.1数据更新流程图——添加

   删除信息

图4.5.2数据更新流程图——删除

5编码

编码是根据详细设计阶段得到的流程图进行的代码书写,编码以系统管理员进入系统后根据各项中奖要求而逐步运行系统为例解释代码的设计时要考虑的因素和设计思路及设计方法。

5.1系统管理员运行系统模块部分代码及解释

5.1.1开始抽奖

点击“开始”控件,数据库中的号码开始循环滚动,再点击“停止”控件,对话框中出现一个随机选取的号码。

If cmdBegin.Caption = "开始" Then

        

        Timer1.Enabled = True

        cmdBegin.Caption = "停止"

        cmdOK.Enabled = False

        cmdCancel.Enabled = False

        cmdBegin.SetFocus

    Else

5.1.2遇到重复号码时的处理方案

当系统随机抽到一个重复的号码时,系统会提醒该号码已经抽过,本次抽取结果无效,继续下一次抽取。代码如下:

If RstSQL.Fields("Checked") = True Then

            cmdOK.Enabled = False

            cmdCancel.Enabled = True

            cmdCancel.SetFocus

            MsgBox "此号码已经抽到过并且已经做了保存!  ", vbInformation + vbOKOnly, "提示信息"

        Else

            cmdOK.Enabled = True

            cmdCancel.Enabled = True

            cmdOK.SetFocus

        End If

5.1.3系统管理员对所抽取的号码进行保存

系统管理员对所抽取的号码进行保存时假如结果无误就回把此号码保存进“中奖者数据库”中,如果保存失败系统也会提供相应的信息。如下:

Private Sub cmdOK_Click()

    Dim RstSQL As New ADODB.Recordset

On Error GoTo errLable

    With RstSQL

        .ActiveConnection = CnnDSN

        .LockType = adLockOptimistic

        .CursorType = adOpenStatic

        .Source = "UPDATE Lottery_Table SET Checked='1' WHERE Person_ID=" & Int(Text10.Text) & ""

        .Open

    End With

    cmdOK.Enabled = False

    cmdCancel.Enabled = False

    cmdBegin.SetFocus

    MsgBox "保存成功!  ", vbInformation + vbOKOnly, "提示信息"

    Exit Sub

errLable:

    MsgBox Err.Number + ":" + Err.Description, vbInformation + vbOKOnly, "错误信息"

    Exit Sub

End Sub

6 测试

6.1测试目的

软件测试是软件代码生成后必不可少的一步,软件测试包括功能代码的测试、系统功能的完整性测试、性能测试、安全性测试、数据库的一致性测试等,测试的目的是尽可能多的发现软件制作过程中的错误,通过测试使软件的错误减少,使系统的可靠性进一步提高。

6.2软件测试的内容

(1) 根据需求分析划定系统测试的功能范围,即用户需要的功能是否已经在系统中得到充分体现。

(2) 分模块测试软件的功能,包括软件的界面要求、功能体现、性能要求、稳定性要求、是否达到操作便捷、灵活性要求、安全性要求;各模块之间的关系是否与需求分析中的一致等

(3) 整体测试,在分块测试之后,将所有模块作为一个整体进行测试,测试整个系统的功能和性能,检验其是否满足用户的需求。

6.3测试时间

本系统的测试分为以下几个阶段进行:

第一阶段: 根据需求分析划定软件中要测试的功能和性能的范围,确定测试的内容,测试时间:2006.5.1~2006.5.3

第二阶段: 分模块对系统中的各模块进行测试,对需求分析中各模块的功能和性能及用户的特殊需求进行测试,记下各模块的所有的问题,及时解决。测试时间:2006.5.4~2006.5.10

第三阶段: 在模块测试的基础上将各模块拼接进行整体功能和性能的测试。测试时间:2006.5.10~2006.5.15

第四阶段: 综合测试。测试时间:2006.5.10~2006.5.20

6.4 测试结果

    测试中出现了许多功能实现上的错误,尤其是在单元代码测试阶段,许多功能在特殊情况下实现不了,性能测试时错误较少。测试结果为良好。

表6.4.1 测试记录表

功能

模块

测试内容

功能描述

测试项目

存在问题

处理结果

界面

流程

功能

完善

划定测试范围

从功能、性能、安全性等方面划定测试范围

已处理

客户信息录入

包括客户的姓名、性别、年龄、抽奖号码、联系方式、电话号码、家庭住址等

较好

有错误

较好

已处理

信息查询

查询输入模块信息

友好

有错误

较好

已处理

报表打印

打印各模块内容

友好

正确

良好

数据库操作

数据更新、数据删除、备份

一般

有错误

一般

已处理

数据配置

密码管理、权限管理配置

友好

正确

良好

功能模块测试

模块间的连接测试、整体功能测试

友好

有错误

良好

已处理

性能测试

整个系统的性能要求

正确

良好

安全性测试

数据库的安全性、,系统集成的安全性

友好

有错误

有问

已处理

6.5 测试结果分析

测试结果总体来讲比较成功,在单元模块测试中发现较多的错误,例如非法数据输入时得不到控制,VB执行出错时不能正确提示等等,测试结果表明系统实现的功能均能达到客户的基本要求,系统的运行速度和稳定性较好,安全性良好(系统备份部分未发现异常错误)。

在系统集成测试中,测试结果是系统各模块的连接情况连好,做到了高内聚低耦合,系统整体运行情况较好,但有时会出现鼠标操作较慢的现象,这与机器的配置有关。安全性方面未发现异常。

6.6使用建议

本系统使用Access2000作为后台数据库,建议在使用本系统时先不要运行其它较大的系统,以免影响系统的运行效率。系统运行后可以不关闭系统,但为保证安全性,系统运行时应尽量避免让不知道业务流程的人操作,减少因此而带来的数据错误。

结论

经过三个多月的努力设计和开发,徐州汉高公司抽奖系统基本开发完毕。通过这次毕业设计,在老师的指导下,我初步掌握了用VB开发软件的方法,我在进行设计软件时遇到了一些困难,于是我在老师的提示下,查资料,上网和网友进行探讨。我在中国人网站上,网址为:http://www.chinaren.com,通过上面的论坛和高手进行交流,对我受益菲浅。此外我还登录到华军软件网站上看了不少优秀的VB技术文章。这些对我做好毕业设计起了至关重要的作用。在此再次感谢指导老师对我的悉心指导与帮助。由于时间仓促,这个软件肯定还有不完善的地方,不足之处恳请各位老师提出批评改进意见。我相信,本次毕业设计我为本系统搭下了一个框架,以后我一定在此基础上不断完善它。争取做到完美,以人性化的设计体验来付与现实应用之中。

软件设计采用Visual Basic6.0作为本系统的开发工具,后台数据库则采用Access 2000。软件实现了系统管理员在需求分析阶段提出的功能需求,即:添加和删除客户信息、查询抽奖结果、对抽奖结果进行分类保存、对需要的客户信息可以将其打印出来,对于未中奖的客户还可以保证其进入下次抽奖。

由于毕业设计时间比较短,所以该系统还有许多不尽如人意的地方,比如该系统的灵活应变能力还不是很强,用户界面不够美观等方面还有待在以后的运行维护中进一步改进。

致谢

本系统在制作过程中遇到不少困难,在此要感谢我的第一指导老师王红艳,感谢她在编制过程中对系统实现方法和思路上做出的及时正确的指导,虽然我一直在外地实习,但王老师对我的设计一直都很关心,对我的要求也很严格,要求软件要做到精益求精,这种严谨的科研态度对我产生很大的影响,对我以后的工作和学习也有很大的指导意义,在此向王老师表示衷心感谢!

    在外地实习完成毕业设计期间,我的实习单位指导老师严云洋为我提供了软件编制环境,在系统制作有困难时,严老师在技术和思路上给予了及时的指导,在此一并感谢!

                               

 参考文献

1 张莉,王强等著.SQL Server数据库原理及应用教程.北京:清华大学出版社,2003.7

2 (美)Michael Halvorson著.Visual Basic.NET程序设计.北京:清华大学出版社,2002.7

3 王兴晶著.Visual Basic.NET数据库开发典型实例.北京:电子工业出版社,2002.9

4 邱忠潘等译.ADO与ADO.NET编程指南.北京:电子工业出版社,2002.9

5 张曜,张青,李丁编著.Visual Basic函数实用手册.北京:冶金工业出版社,2002.11

6 张曜,郭立山,戴传智编著.Windows API函数实用手册.北京:冶金工业出版社,2003.5

7 王光晶编著.Visual Basic.NET应用编程150例.北京:电子工业出版社,2003.5

8 银华强编著.Visual Basic.NET经典开发案例.北京:中国铁道出版社,2003.3

9 冯昊编著.ASP动态网页设计与上机指导.北京:清华大学出版社

10  Billy Hollis, Rackford Lhotka等著.VB.NET程序设计教程.北京: 清华大学出版社,2001.10

11 李世杰编著.DNA&Web数据库应用与剖析.科学出版社,1999

12 刘韬,骆娟,何旭洪编著.Visual Basic数据库系统开发实例导航系统.北京: 人民邮电出版社,2000.3

13 宣小平,倪正刚,张文毅编著.ASP数据库系统开发实例导航.北京: 人民邮电出版社.2003.4

14 汉计算机工作室. Visual Basic 6.0开发实例.北京:  机械工业出版社.1999

15 赵明华,吴明辉,窦亮编著.ASP商务办公与网络应用系统开发实例.北京: 人民邮电出版社.2003.4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat修改配置文件

1.Tomcat启动乱码问题 1.1conf目录 说明:找到conf目录下logging.properties文件 1.2打开logging.properties文件 说明:将UTF-8修改成GBK 1.3.效果 2.端口冲突问题 2.1 conf目录 2.2打开 server.xml文件 2.3.修改端口 说明:port指的就是端…

使用node实现websocket

使用node实现websocket 什么是websocket websocket代表了Web应用程序通信方式的根本转变。不同于传统的HTTP请求响应周期,即客户端从服务器请求数据并等待响应,websocket在客户端和服务器之间建立一个持久的全双工连接。这意味着一旦建立了websocket&a…

LeetCode【4. 寻找两个正序数组的中位数】

快乐安康 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 public double findMedianSortedArrays(int[] nums1, int[] nums2) {if (nums1.length &…

如何实现 pdf 转 word

前言:最直接的方式 wps 充会员可以直接转,但是单纯为了 使用这个功能有没啥必要 pdf转word方法 在线转换wps转换其他收费转换方式 在线转换 介绍在线转换,虽然样式简陋但是可以转换成功,转换以后也没有失真 http://ssyr.mynatap…

linux安装sqoop

一 解压安装包 这里提供了网盘资源 链接: https://pan.baidu.com/s/1QkFqVnlvuOJ_aB2bjn-OKg?pwducsy 提取码: ucsy 这里有两个压缩包,sqoop-1.4.7.tar.gz是 sqoop 的安装包,另一个是我们需要里面的一些 jar 包 解压 安装包 tar -zxf ./sqoop-1.4.7.t…

1-FPGA硬件加速-YUV_YCbCr

这是对《基于Matlab与FPGA的图像处理教程》的学习笔记,代码和内容摘取自书中。 心得: 使用FPGA进行硬件加速的重点是消除或者减少浮点数运算,转换为定点运算,然后通过pipeline流水设计转为并行实现加速。 原理和方法 RGB与&…

使用原生的js实现分享功能,代码非常精简

分享一个原生的js实现移动端分享功能,希望大家喜欢。 兼容性: 实现代码: function share(){ if (!navigator.share) { alert("您当前浏览器不支持分享!"); } else { navigator.share({title: {$title},text: {$introd…

Vue2面试题100问

Vue2面试题100问 Vue2面试题100问1.简述一下你对Vue的理解2.声明式和命令式编程概念的理解3.Vue 有哪些基本特征4.vue之防止页面加载时看到花括号解决方案有哪几种?5.Vue中v-for与v-if能否一起使用?6.vue中v-if与v-show的区别以及使用场景7.v-on可以监听…

Docker--未完结

一.Docker是干什么的 在没亲自使用过之前,再多的术语也仅仅是抽象,只有写的人或者使用过的人能看懂。 所以,作为新手来说,只要知道Docker是用于部署项目就够了,下面展示如何用Docker部署项目及Docker常用命令。 二、…

冠达管理:庄家最怕的8个方法?

在股票商场上,庄家总是短时刻内操控价格,并在一定的时刻内进出股市,以赚取巨额赢利。 假如想在股票商场上盈余,那么就必须站在庄家的对立面,把握一些防护和反击的办法。这里就来介绍一些庄家最怕的办法。 一、技能剖析…

【自学开发之旅】Flask-restful-Jinjia页面编写template-回顾(五)

restful是web编程里重要的概念 – 一种接口规范也是一种接口设计风格 设计接口: 要考虑:数据返回、接收数据的方式、url、方法 统一风格 rest–表现层状态转移 web–每一类数据–资源 资源通过http的动作来实现状态转移 GET、PUT、POST、DELETE path…

使用Docker构建轻量级Linux容器

Docker是一个开源的容器化平台,可以帮助用户快速创建、部署和管理应用程序的轻量级Linux容器。通过Docker,用户可以将应用程序及其所有依赖项打包成一个独立的容器镜像,并在各种环境中运行,无需担心环境差异和依赖冲突。下面将详细…

R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验可视化...

全文链接:https://tecdat.cn/?p33609 Reaven和Miller(1979)研究了145名非肥胖成年人的葡萄糖耐量和胰岛素血液化学指标之间的关系。他们使用斯坦福线性加速器中心的PRIM9系统将数据可视化为3D,并发现了一个奇特的图案&#xff0c…

h5开发网站-页面内容不够高时,如何定位footer始终位于页面的最底部

一、问题描述: 在使用h5开发页面时,会遇到这个情况:当整个页面高度不足以占满显示屏一屏,页脚不是在页面最底部,影响用户视觉。想让页脚始终在页面最底部,我们可能会想到用: 1.min-height来控…

VMware16安装ghost版win7

文章目录 准备工作GHO 文件装机工具 新建虚拟机配置虚拟机还需要一个 CD/DVD PE 安装步骤分区还原挂载 CD/DVD开始还原 还原之后 准备工作 GHO 文件 可以去百度搜索这种文件,我这里是从系统之家下载的deepin win7 ghost 系统 装机工具 因为下载的 ghost 版的 w…

【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包打开新窗口预览pdf文件

系列文章目录 【Vue】vue2预览显示quill富文本内容,vue-quill-editor回显页面,v-html回显富文本内容 【Vue】vue2项目使用swiper轮播图2023年8月21日实战保姆级教程 【Vue】vue2使用pdfjs预览pdf文件,在线预览方式一,pdfjs文件包…

计算机丢失mfc140u.dll怎么办,mfc140u.dll丢失的解决方法分享

随着科技的飞速发展,计算机已经成为了人们日常生活和工作中不可或缺的工具。然而,在使用计算机的过程中,用户可能会遇到各种问题,其中计算机丢失 mfc140u.dll 无法运行的问题就是一个比较常见的困扰。小编将从以下几个方面对这个问…

数据中心液冷服务器详情说明

目录 前言 何为液冷服务器? 为什么需要液冷? 1.数据中心降低PUE的需求 2.政策导向 3.芯片热功率已经达到风冷散热极限 4.液冷比热远大于空气 液冷VS风冷,区别在哪? 1.液冷服务器跟风冷服务器的区别 2.液冷数据中心跟风冷…

postman导入json脚本文件(Collection v1.0、Collection v2.0)

1. 以postman v8.5.1 版本为例 2. 在postman v5.0.2 低版本中导出json脚本文件, 请选择Collection v2.0 Export - Collection v2 3. 在postman v8.5.1 版本 导入 json脚本文件 Import - Collection v2 - Export - Import

redis缓存穿透、击穿、雪崩介绍

缓存穿透 概念 缓存穿透指某一特定时间批量请求打进来并访问了缓存和数据库都没有的key,此时会直接穿透缓存直达数据库,从而造成数据库瞬时压力倍增导致响应速度下降甚至崩溃的风险; 解决方案 一、通过布隆过滤器解决 原理:将…