ASP在线投票系统程序设计论文_第1页
ASP在线投票系统程序设计论文_第2页
ASP在线投票系统程序设计论文_第3页
ASP在线投票系统程序设计论文_第4页
ASP在线投票系统程序设计论文_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆邮电大学移通学院毕业设计(论文)PAGE42摘要在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想就成为了一个可望而不可及的目标。投票非常急需一套既有先进管理思想的系统,作为实现目标和提高现有投票管理水平的一种重要手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,在先进的计算机技术、通信技术、控制技术及IC卡技术基础上,采用系统集成方法,逐步建立一个智能化的投票系统。编写在线投票系统,最重要的一点就是如何从烦琐的投票结果中,导出全部投票项目的票数,然后根据投票项目的各个票数,进行票数百分比计算,最后编辑出在线投票系统。开发该系统我主要采用ASP技术和SQL数据库相结合的方式。ASP技术通过在静态HTML内容中嵌入服务器端脚本,实现网页内容的动态改变。Web服务器从磁盘上读取含有服务器端脚本的网页,在网页发送给客户端浏览器之前,先对其中的服务器端脚本进行解释,输出用户定制内容,从而产生动态网页。数据库采用SQLServer2000大型数据库,能够胜投票系统中的数据处理。本文在相关理论指导下,在分析其他一些系统的基础上,开发出了一个简单的在线投票系统(包括功能模块设计、数据库结构设计等)基本解决了管理人员的烦琐事务。关键词ASP投票数据库AbstractBebuildingupvotetomanagetodayofmechanismactively,onlydependoriginalityofthehandicraftmanageorthesimplesinglemachinemanage,managementDept.publicappearancetoagreatdealofinformation,can'tefficientlywillamongthemofimportancepartwithdraw,anddoajudgmentandtheprocessingforcorresponding.Decisionwhichvotesgovernorcanaccordingtothestatementdata,atwasteagreatdealofmanpower,materialresourcescan'tinthemeantimeattainactuallysuperviseandcontrol,theaccuracyofhardassurancedatawithintimesex.Therefore,theforerunner'smanagementthoughtcarriedoutandthenbecamedaninaccessibletargetinthevote.Thevoteneedsthemanagementinformationthatasetofcurrentforerunnermanagesthoughtsystemurgentlyverymuch,isakindofimportantmeanswhichcarriesoutatargetandraisesanexistingvoteamanagementlevel.Thetechnicalalongwithscienceofraisecontinuously,thecalculatorscienceisgraduallymature,theitsstrongfunctionhasalreadybeenpeople'sdeepunderstanding,ithasalreadyenteredeachrealmofthesocietyofmankindtoerupttoflickamoreandmoreimportantfunction.Beacalculatorappliedonepart,theteachingmission'sarrangeinorderisahardnuttocrack,numeroushighschools,researchorganizationsandpersonalscarriedonagreatdealofresearchandthedevelopmentworkfromthetheoriesandfulfillment.Writeon-linevotesystem,Themostimportantonepointbehowplanfromthetrivialteachingmedium,Leadateachingmissionofdemand,Thentheconcreteneedofeverysemesterofbasis,Carryonthemissionarrangeinordertoincludemissiontoincrease,modify,delete,theteachingmissionofthebornandendperformance.Developthatsystem;ImainlyadoptthewaythattheASPtechniqueandtheSQLdatabasecombinetogether.TheASPtechniquepassesinthestaticstateHTMLcontentstoimbedaservertocarryscript,Carryoutthedynamicstatechangeofthewebpagecontents.TheWebserverreadstoimplythewebpagethattheservercarriesscriptfromthedisk,beforethewebpagesendouttothecustomercarryabrowser,theserverwonfirstastoitscarriesscripttocarryonexplain,outputthecustomermakestoorderacontents,Produceadynamicstatewebpagethus.ThedatabaseadoptstheSQLServer2000largedatabases,canbecompetentthedataprocessingintheteachingmission.Thistextdevelopedasimpleon-linevotesystem(includeafunctionmoldapieceadesign,databasestructuredesignetc.)onthefoundationoftheanalysisalittlebitothersystemsundertherelatedtheoriesinstructionbasicsolvedthemanager'strivialbusiness.ASPVOTEDatabase目录前言 6第1章编程环境及数据库 71.1编程环境 71.2ASP简介 71.2.1ASP的技术特点 71.2.2ASP对象使用基础 91.2.3ASP的工作原理 101.2.4ASP的运行环境 111.3数据库选择 121.4数据库接口的实现 12第2章数据建模 132.1数据库建模方法 132.2程序开发软件 14第3章需求分析与总体设计 193.1需求分析 193.1.1需求的提取 193.1.2需求定义与规约 193.2系统总体设计 203.2.1系统结构图 203.2.2数据功能模块设计 203.2.3系统的主要功能设计 213.2.4数据库设计 21第4章详细设计与实现 254.1投票界面模块的设计 254.2投票项目模块的设计 284.3投票结果模块的设计 334.4用户管理模块的设计 374.4.1管理员登录的设计与实现 374.4.2修改密码的设计与实现 39结论 41致谢 42参考文献 43论文附件 44一、英文原文 44二、英文翻译 54前言随着科学技术的不断提高,计算机科学日渐成熟,互联网技术的不断发展和普及,众多高校,科研机构及个人从理论与实践两个方面进行了大量的研究与开发工作,涌现出了很多在线投票系统,对学院、企业的管理起到了很好的作用。总之投票系统概括起来就是要通过科学的管理手段和专业化管理技术来实现统一。在线投票系统应具有的独特的功能:其一,方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。其二,友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。其三,强大的功能,能够满足学校教学需要,快速简单的统计教学任务,提高教学质量。正是在这样的情况下,本人在导师的带领下完成了在线投票系统的开发与实现。第1章编程环境及数据库随着各高校办公自动化工作的推进,投票管理自动化也被摆上日程。通过Dreamweaver与MicrosoftOfficeAccess2003的编程环境,采用ASP代码和数据库开发一个动态的在线投票系统。1.1编程环境在该投票系统中,我使用ASP和MicrosoftOfficeAccess2003相结合的综合开发环境,采用ODBC作为投票系统与后台数据库的接口。投票系统开发平台是WindowsXP。开发工具选择的是DreamweaverMX。1.2ASP简介ASP的简称是ActiveServerPages,目前没有正式的中文名称,可理解为“动态服务器页面”技术。ASP是目前最流行的开放式Web服务器应用技术,它的特点是将脚本、超文本和强大的数据库访问技术结合在一起,并提供了众多的服务器组件来扩展功能,能够很方便地创建分布式和基于Web的商业化应用程序。如果要更简单地描述ASP,可以说ASP就是运行在Web服务器上的动态网页。ASP程序文件也是一个标准的网页,一般由HTML标记和ASP脚本代码混杂在一起组成。ASP网页程序必须先经Web服务器的ASP解释器解释执行,产生HTML代码后才传送给浏览器执行显示。1.2.1ASP的技术特点1、组件在ASP技术中起着核心作用要想开发出具有实用价值的动态Web应用程序,ASP脚本必须与基于COM标准的组件配合使用。组件对象模型是微软公司提出来的一种基于二进制的软件标准,与语言无关。VisualBasic、VisualC++、VisualJ++等都能创建COM组件,在不同的语言实现的组件之间,依据COM标准可以进行交互操作。ASP提供了10个内置组件。每个组件中包括一个或多个对象。在使用前,组件的对象需要被实例化。ASP提供了6个内置对象,这6个内置对象可以被ASP脚本直接使用,不需要被实例化。除了内置组件和对象,开发人员还可以自行制作实现特殊功能的组件。2、采用ADO技术访问数据库ASP依据ADO技术访问后台数据库,其内置的数据库访问组件ADODB提供了一组优化的访问数据库专用对象集。UDA(UniversalDataAccess)是微软公司提出的适合企业范围并能够高性能地访问各种信息(包括关系型数据库和非关系型数据)的数据访问模型。它由ODBC、OLEDB、和ADO组成。·ODBC提供了对关系型数据库系统的标准访问界面,已得到大多数数据库系统的支持。·OLEDB用于处理异构平台的关系型和非关系型信息,非关系型信息包括电子邮件、文件系统、文本、图形等。它还能使用已有的ODBC驱动访问关系型数据库。·ADO是以开放数据库连接ODBC为基础的,可支持任何ODBC数据源对数据库的操作;可以提供任何类型数据库与Web服务起的访问方式。3、支持所有脚本语言除了支持VBScript、JavaScript外,ASP还支持REXX、Perl等多种脚本语言。VBScript是ASP支持的默认脚本语言。若要重新设定默认脚本语言,只需在ASP程序的第一行使用命令<%@Language=...%>即可。在同一个ASP文件中,ASP脚本可以调用不同的脚本语言,从而发挥各种脚本语言的优势。若要在ASP程序中使用与默认脚本语言不同的脚本语言,可以将这段语言放于标志符<ScriptRunat=ServerLanguage=...>...</Script>中。1.2.2ASP对象使用基础ASP之所以成为功能强大的服务器端程序,是因为它为Web程序设计人员提供了一组功能强大的内置对象。所谓的对象是指具有典型方法、属性或者集合的事物。方法决定了对象的功能;属性决定了对象的状态。使用ASP进行动态网页设计时,必须熟练掌握ASP的各种内置对象。ASP提供的内置对象如表1-1所示。对象名称用途Application对象Application对象是所有用户共用的对象,通过这个对象,不同的用户间可以共享信息。在主页计数器中常常使用Application对象来保存访问网页的人数ASPError对象捕捉ASP错误并向用户返回详细信息描述ObjectContext对象提交或中止有ASP脚本启动的事件Request对象获取从HTML表单传递给服务器的参数,这些参数的传递方式包括POST方法或GET方法、cookies(一种保存在客户端上的,用来保存网站信息的文件)以及客户端证书Response对象控制发送给用户的信息,包括直接发送文本和HTML代码等信息到浏览器、把浏览器当前访问的网页重定向到其他URL、设置cookie的值Server对象通过Server对象可以访问服务器上的方法和属性。其他方法可创建Active组件的实例、对字符串进行编码、得到虚拟目录的实际路径、设置网页的超时时间Session对象存储特定用户的某些信息。当用户在不同的网页间跳转时,不会丢弃存储在Session对象中的变量表1-1ASP内置对象列表通过这些内置对象,编程人员可以控制Web页面的各个方面。例如使用Request对象能够得到用户输入的数据,使用Response对象能够向浏览器输入数据等。1.2.3ASP的工作原理当用户浏览网页时,客户端浏览器与Web站点之间进行交互的过程如图1-1所示。Web服务器ASP引擎*.aspASP引擎*.asp客户端HTTP请求客户端浏览器浏览器其他组件脚本引擎ADO标准HTML页面其他组件脚本引擎ADOODBODBCDBDBDBMSDBMS图1-1ASP工作原理当浏览器向服务器请求发送某个“xxx.asp”时,是希望服务器传送此文件。但是,但服务器看到文件的扩展名为.asp时,就会读取文件内容,解释执行其中的VBScript程序。当遇到基于COM标准的组件(组件本身是经过编译的可重用二进制代码)时,ASP引擎将启动相应组件完成指定的功能。若ASP文件含有访问数据库的请求时,ASP内置组件ADO(ActiveXDataObject)能与数据库连接,对数据库进行访问,并将访问结果返回服务器。最后,生成标准的HTML文件,并将生成的HTML文件传送给浏览器。这样就完成了用户浏览器对服务器的访问。1.2.4ASP的运行环境1、ASP运行所需的环境·MicrosoftInternetInformationServerversion3.0/4.0onWindowsNTServer·MicrosoftPeerWebServicesVersion3.0onWindowsNTWorkstation·MicrosoftPersonalWebServeronWindows95/98也就是说我们经常所使用的Window95/98/2000/XP都可以运行ASP,只需要将其设置为单机服务器就行了。归结一点:Window95/98,需要安装PWS;Window2000/XP,需要安装IIS。才能发挥其asp的作用。一般较常使用的是Window2000+IIS5和Window98+PWS,而window95+PWS和WindowXP+IIS则较少人使用。因为Window95已经很少人使用这个操作系统了,最少都使用Window98而XP+IIS,则是XP对IIS不是完全兼容支持,有些功能配合得不够完美,而较少人采用。我使用Window2000+IIS5这对组合,因为Window2000是相对比较稳定的系统,对于服务器网络方面微软投入得较多,比较适合做为服务使用。2、ASP运行环境的搭建IIS的安装和配置。Window2000Server/Window2000advanceServer都是默认安装的,安装过程就不多说了。现在开始配置IIS。开始->控制面板->管理工具->Internet信息服务。打开之后就到了IIS的控制台了。点计算机名前面的+号展开,再点网站前在的+号展开,这时就有一个默认网站,这里就是我们要配置IIS的关键地方了。右击“默认网站”,在弹出菜单里选择“属性”这时就会弹出“属性”选顶卡。一般情况下“网站/常规”选项卡不要更改。选择“主目录”选项卡,本地路径就是我的主目录路径,这里可以点浏览更改到想设置的目录下,默认是:X:\inetpub\wwwroot(X:表示系统盘)。在这里还可以设置网站的用户操作权限。这些设置完后就转到“文档”选项卡,首先要在“启用默认文档”前面打勾,默认是打勾的。点击“添加”,可以添加默认文档,例如添加index.asp、index.htm、index.html等等,这是你网站默认打开的主文件名,在这里也可以进行删除,选择你要删除的文档之后再点“删除”,现在“属性”选项卡基本设置好了,点应用、确定就返回到IIS控制台了。1.3数据库选择数据库平台采用的是SQLServer2000。SQLServer2000代表着下一代Microsoft.NETEnterpriseServers(企业服务器)数据库的发展趋势,是为创建可伸缩电子商务、在线商务和数据仓储解决方案而设计的真正意义上的关系型数据库管理与分析系统。随着SQLServer7.0联机分析处理(OLAP)服务的引入,SQLServer已成为颇受众多客户关系管理(CRM)应用程序、商务智能(BI)应用程序、企业资源计划(ERP)应用程序及其它在线商务应用程序厂商和客户所青睐的数据库产品,而这则主要应归功于该产品在对称多处理(SMP)硬件方面所具有的可伸缩性和较低的数据库维护需求。1.4数据库接口的实现在ASP中,提供了多种数据库访问技术——ODBC、ADO、OLEDB等,这些技术各有自己的特点。该项目开发中采用了OLEDB数据库接口技术。OLEDB是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO-技术的应用程序,由于OLEDB是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,从而大大提供了访问速度[2]。第2章数据建模2.1数据库建模方法数据建模采用图形化方法来描述企业的信息需求和业务规则,也就是建立逻辑数据模型(以下简称逻辑模型),其作用有两个,一是与用户进行沟通,明确需求;另一个作用是作为数据库物理设计的基础,以保证物理数据模型充分满足应用要求,并保证数据的一致性、完整性。本文简要介绍IDEF1X方法。IDEF1X是由美国空军开发的基于关系数据库理论的数据建模方法,用以实现关系数据库的逻辑数据结构。目前已广泛应用于政府、工业和商业领域,支持广泛企业应用。

IDEF1X模型的基本结构为:·实体(如人、地点、概念、事件等)用方框表示;·实体之间的关系(联系),用方框之间的连线表示;·实体的属性,用方框内的属性名称来表示。(1)建立逻辑模型逻辑模型的建立由用户需求驱动,建立逻辑模型的过程首先是分析信息需求、明确业务规则,它是人脑对现实世界进行抽象和加工的过程。(2)实施阶段:第一阶段:项目规划第二阶段:开发定义实体第三阶段:定义关系第四阶段:定义键第五阶段:定义属性(3)建立物理模型对一个给定的逻辑模型选取一个最适合应用环境的物理结构(即物理模型)的过程,称为数据库的物理设计。所谓数据库的物理结构主要是指数据库在物理设备上的存储结构和存取方法,它与除了考虑逻辑的完美性(如第三范式)外,还必须兼顾物理环境的要求和性能的优化,如机器的性能、事务的种类、数据库管理系统的功能等。逻辑模型转变为物理模型包括以下几个步骤:①实体名(Entity)转变为表名(Table)②属性名(Attribute)转换为列名(Column),确定列的属性(Property)③明确分类关系在物理模型中的实现方法④实现业务规则数据模型转变为SQL命令,物理模型必须对列的属性进行明确的定义,包括:列名,数据类型(与特定数据库管理系统有关),长度,能否为空值,有效性规则,缺省值等。物理模型确定以后,可以进一步确定数据的存放位置和存储空间的分配,最后生成定义数据库的SQL命令。2.2程序开发软件MacromediaDreamweaverMX应用所学的ASP语言,开发一个在线投票系统。一个可视化的网页设计和网站管理工具,支持最新的Web技术,包含HTML检查、HTML格式控制、HTML格式化选项、HomeSite/BBEdit捆绑、可视化网页设计、图像编辑、全局查找替换、全FTP功能、处理Flash和Shockwave等富媒体格式和动态HTML、基于团队的Web创作。在编辑上你可以选择可视化方式或者你喜欢的源码编辑方式。DreamweaverMX2004的十大新特性:动态跨浏览器验证:自动检测标签和CSS规则来适应所有主流浏览器!②.更强大的CSS支持!③.内建的图形编辑引擎:修剪,改变大小,尺寸,旋转角度,调节明暗度都不需要离开Dreamweaver环境,因为它本身集成了FW的基本图形编辑技术.(这一点有模仿FrontPage的嫌疑,但这个功能确实很实用)!④.安全FTP:完全加密传输保证文件和帐号信息的安全!⑤.增强对当今技术的支持:支持当今主流的开放环境:ColdFusion,J2EE,PHP,.NET,和其他主流的服务器技术.Dreamweaver现在加入了XML命名空间支持,ASP.NET表单控件对象,新的参考书内容和新的PHP服务器端行为!⑥.无缝整合外部文件和代码:直接将Word和Excel文档复制和粘贴到Dreamweaver中,会保留字体,颜色,CSS样式表信息.使用,使用系统支持的编码保存任何字体,包括双字节字符集.⑦.紧密整合MM的其他工具:加强了和MM其他几款产品的协同工作能力.例如:你可以通过DW直接设置Flash组件的参数.⑧.基本支持改良:插入条,表格工具都有改进!⑨.增强代码编写工具:编辑代码更省时,例如右键编写代码工具,增强的查找和替换,高效的属性面板.⑩.改进的设计开放环境:一个改良的用户界面,更高的实用性,非常亲切和有逻辑,让你快速找到你想要的东西,一个新的开始屏幕让你快速访问最近的文件和教程资源.本文主要运用Visio2003绘制了系统UML模型图。其主要系统UML模型图有:图2-1投票系统用例图图2-2投票管理用例图图2-3投票系统流程图第3章需求分析与总体设计3.1需求分析3.1.1需求的提取前面已经阐述了在线投票系统在高校教学管理的重要性。目前以重庆邮电大学移通学院为例,移通学院每学期期末都会对开设新课程进行投票统计,邀请学生为各个课程在线投票统计。在线投票系统需要满足的条件:(1)系统自动把投票结果转换为百分比显示。(2)投票管理员可以对投票界面、投票选项、3.1.2需求定义与规约通过一个在线投票系统,使管理人员能够根据学院状况,列出投票项目,在较短时间内、以较少精力获得一个比较实用的数据,从而使投票工作系统化、规范化、自动化,提高办公效率。在线投票系统是移通学院教务管理系统的一个子系统,教务管理系统包括:教学任务的下发、课表的编排、网上选课、学生成绩的录入以及学籍管理等部分。在线投票系统开发应遵循以下要求:(1)尽量采用现有软硬件环境及先进的系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。(2)系统应具有可扩展、可复用的特点,能与投票系统接轨,数据库的设计应该具有通用性。(3)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于系统维护人员的调试与修改维护。(4)系统应具备数据库维护功能,及时根据需要进行数据的添加、删除、修改等工作。3.2系统总体设计3.2.1系统结构图系统主要有:界面模块、数据库模块、投票统计模块三部分组成,系统结构如图3-1所示:界面模块调用投票统计模块显示数据数据库模块插入数据查询数据插入修改数据界面模块调用投票统计模块显示数据数据库模块插入数据查询数据插入修改数据图3-1系统结构图界面模块负责系统与用户的交互,它是系统与用户的接口部分,是实现人机交互功能的主要部分,它能调用数据库的入口函数,向数据库插入、修改、显示数据库内容,能调用投票统计模块,从而根据投票数据统计投票百分比。投票统计模块能根据一定的算法,排出合理的投票数量。它能调用数据库函数调用数据库数据,经过运算后,将新数据存入数据库的相应表中。数据库模块则定义数据结构,数据库的接口,定义数据库表的结构,自动完成对各种信息的输入、查询、修改及系统用户管理、系统用户权限管理等。3.2.2数据功能模块设计根据系统分析的结果,在系统功能分析的基础上,考虑ASP程序编制特点,得到如图3-2所示的系统功能模块图。在线投票系统在线投票系统投票项目投票结果权限管理投票项目投票结果权限管理编辑删除添加修改投票结果投票人数帐户管理用户登陆编辑删除添加修改投票结果投票人数帐户管理用户登陆图3-2系统功能模块图3.2.3系统的主要功能设计在线投票系统的主要功能:投票结果的查询:主要是实现投票人员从数据库对各投票结果的查询。投票项目管理:主要是实现投票人员对各个投票项目进行编辑,生成。3.2.4数据库设计1、数据库需求分析在线投票系统的数据项目是依据学院开设新课程制定的。根据系统开发的要求,从学院开设新课程中选取适当的项目作为系统数据库的数据参数。在实际的工作中,在线投票系统的项目主要是根据学院任务来制定展开,因此与教学有相关的一些信息,如开设新课程等,都是学院需要统计的项目。结合学院开设课程任务选取了以下项目作为系统数据库的数据参数:(1)开设游泳课。让投票者根据网站界面进行投票。(2)开设就业指导课。让投票者根据网站内容进行投票(3)开设心理咨询室。让投票者根据网站内容进行投票(4)开设演讲课。主要分为讨论、解说、演讲等。(5)开设课外兴趣小组。根据不同学生开设。(6)投票系统更新。对各个选项能在第一时间内更新。2、数据库概念结构设计在系统的数据库设计中,先要对系统分析得到的数据图中的数据存储进行分析,分析各数据存储之间的关系,然后得出系统的关系模式。本系统采用了实体-关系图中的相应符号来描述系统的概念模型。在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为逻辑结构的设计打下基础。根据上面的设计出的实体有:投票选项实体、投票结果实体。投票选项实体属性具体描述如图3-3所示。投票选项部分投票选项部分投票系统更新课外兴趣小组开设演讲课开设投票系统更新课外兴趣小组开设演讲课开设心理咨询就业指导课开设游泳课图3-3课程实体投票结果实体的属性包括各个项目投票结果,各个项目投票人数,各个项目投票所占百分比。3、数据库逻辑结构设计数据库逻辑结构设计的任务就是把概念结构设计阶段设计的基本关系图,转换为与选用的具体相关的机器上的数据库管理系统所支持的数据模型相符合的逻辑结构。在上面实体之间的关系的基础上,形成数据库中表格以及各个表格之间的关系。4、数据库物理结构设计明确了以上所要建立的数据库参数,便可建立关系型数据库。具体的结构是把数据表示成若干二维关系的表,通过建立表之间的关系来定义结构。在这种二维表中,每一列为一个字段,对应着表格中的数据项。每个项目的名称为字段名。每一行为一条记录,记录中的每个字段的取值为字段值,记录是字段值的集合。记录中的数据随着每一行记录的不同而变化。在线投票系统数据库中各个表格的设计结果如下面的几个表格所示。各个表格表示数据库中的一个表。表3-1为创建投票项目信息表voteitem的信息。字段名称数据类型大小是否允许为空说明IDInt4否项目ID号ItemVarchar(50)8是项目名称VoteCountint150否投票数量,缺省为0表3-1VoteItem的结构字段名称数据类型大小是否允许为空说明IPvarchar(20)4否IP地址表3-2VoteIP的结构参数Soperate的值说明null无操作add添加记录(单击“添加”按钮时产生)update修改记录(单击记录后的“修改”链接时产生)edit修改记录(单击“修改”按钮时产生)delete删除记录(单击“删除”按钮时产生)表3-3参数Soperate状态值的说明一般由多个用户来管理在线投票系统,因此需要对每个用户分配一定的权限,实现信息的共享与安全。因此需要在数据库中建立一个用户口令表来管理使用在线投票系统的用户。5、数据库结构的实现在需求分析,概念结构设计基础上得到数据库逻辑结构以后,就可以在数据库系统中实现该逻辑结构。本系统中采用了MicrosoftOfficeAccess2003数据库管理系统。使用MicrosoftOfficeAccess2003创建前面所定义的各个数据表。第4章详细设计与实现运用ASP和MicrosoftOfficeAccess2003相结合开发投票系统,投票项目依据学院需要开设哪些新课程来制作,通过学生的投票结果统计确定下学期开设的新课程。以下就是设计投票系统步骤4.1投票界面模块的设计投票界面模块的功能是面向老师和学生的,因此不需要权限核实,进入系统页面后,点击“投票选项”即可进入。1、设计投票界面表单投票项目表单由3部分组成:·投票选项列表框——用来选择相应项目进行投票。·投票按钮。相应代码如下:如果没有投票,则变量isvoted为1,可以投票。投票按钮代码如下:<inputclass=Submittype=submitvalue='投票'name="submitonclick='returnSelectChk();'>这是个可以选择多项的投票系统,在函数SelectChk中取得被投票项目信息,并提交//取得被投票项目的编号,打开新窗口,查看投票结果functionSelectChk(){ vars=false; vardeptid,n=0; varstrid,strurl; varnn=self.document.all.item("poster"); varj; for(j=0;j<nn.length;j++) { if(self.document.all.item("poster",j).checked) { n=n+1; s=true; deptid=self.document.all.item("poster",j).id+""; if(n==1) { strid=deptid; } else { strid=strid+","+deptid; } } } strurl="postvote.asp?cid="+strid; if(!s) { alert("请选择投票项目!"); returnfalse; } window.open(strurl,"newwin","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=400,height=300"); returnfalse; }functionnewwin(url){varoth="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,left=200,top=200";oth=oth+",width=400,height=300";varnewwin=window.open(url,"newwin",oth);newwin.focus();returnfalse;图4-2投票界面2、根据选择查询数据库下面是实现该项功能的代码:和数据库建立连接的代码如下:<%'Server对象的CreateObject方法建立Connection对象SetConn=Server.CreateObject("ADODB.Connection")Conn.ConnectionString="driver={SQLServer};server=Ntserver;UID=sa;PWD=sa;Database=Vote"Conn.Open%>这段代码使用Open方法连接数据库。USEVoteGOCREATETABLEVoteItem(Id intPrimaryKeyIDENTITY,Item varchar(50)NOTNULL,VoteCount intDEFAULT0)创建表voteItem的脚本文件USEVoteGOCREATETABLEVoteIP(IP varchar(20))GO表VoteIP用来保存已经投票的IP地址<% Dimrs,n n=0 Setrs=Server.CreateObject("ADODB.RecordSet") sql="Select*FromVoteItemOrderByid" rs.Opensql,Conn,1,1 Ifrs.BofORrs.EofThen Response.Write"<tr><tdcolspan=3align=center><fontstyle='COLOR:Red'>目前还没有投票项目。</font></td></tr></table>" Else DoWhileNotrs.Eof n=n+1%>从数据库中提取投票项目信息4.2投票项目模块的设计投票项目模块的功能是进行投票选项的添加,修改,删除。可以根据每次需要投票的内容进行修改,添加,删除。1、验证用户是否登录因为只有管理员用户才有修改项目的权利,包括添加、修改、删除,所以系统需要验证想要修改投票项目的用户是否为管理员用户。通过验证用户的Session对象的logined变量的值是否为1。如果Session对象的logined变量的值不为1,则跳转到用户登录页面(admin.asp)。代码如下:<%IfSession("logined")<>1ThenResponse.Redirect"admin.asp"EndIf%>2、添加投票项目的设计与实现添加课程由以下几部分组成:·选择按钮框——用来选择投票选项名称。·单行文本框——用来输入投票名称。实现功能的关键代码如下:<% DimSoperate Soperate=Request.QueryString("oper")'操作标记 Operid=Request.QueryString("id")'项目编号IfSoperate="add"Then'添加项目 newTitle=Request("txttitle") '判断数据库中是否存在此类别 sql="Select*fromVoteItemWhereItem='"&newTitle&"'" SetrsInsert=Conn.Execute(sql) IfNOTrsInsert.EofThen Response.Write"已经存在此投票项目,添加失败!" Else sql="InsertintoVoteItem(Item)values('"&newTitle&"')" Conn.Execute(sql) Response.Write"投票项目已经成功添加!" EndIf ElseIfSoperate="edit"Then'修改项目 newTitle=Request("txttitle") orgTitle=Request("sOrgTitle") '如果新类别名称和旧的不同则执行 IfnewTitle<>orgTitleThen '判断数据库中是否存在此类别 sql="Select*fromVoteItemwhereItem='"&newTitle&"'" SetrsInsert=Conn.Execute(sql) IfNOTrsInsert.EofThen Response.Write"已经存在此投票项目,添加失败!" Else Conn.Execute("UpdateVoteItemsetItem='"&newTitle&"'whereId="&cint(Operid)) Response.Write"投票项目已经成功修改!" EndIf EndIf ElseIfSoperate="delete"Then'删除项目sqldelt="DeletefromVoteItemWhereIdIN("&Cstr(Operid)&")" Conn.Execute(sqldelt) Response.Write"投票项目已经成功删除!" EndIf%>删除项目functionsltAll(){ varnn=self.document.all.item("dept"); for(j=0;j<nn.length;j++) { self.document.all.item("dept",j).checked=true; }}functionsltNull(){ varnn=self.document.all.item("dept"); for(j=0;j<nn.length;j++) { self.document.all.item("dept",j).checked=false; }}得到要删除的项目的编号,然后删除项目functionSelectChk(){ vars=false; vardeptid,n=0; varstrid,strurl; varnn=self.document.all.item("dept"); for(j=0;j<nn.length;j++) { if(self.document.all.item("dept",j).checked) { n=n+1; s=true; deptid=self.document.all.item("dept",j).id+""; if(n==1) { strid=deptid; } else { strid=strid+","+deptid; } } } strurl="AddItem.asp?Oper=delete&id="+strid; if(!s) { alert("请选择要删除的投票项目!"); returnfalse; } if(confirm("你确定要删除这些投票项目吗?")){ form1.action=strurl; form1.submit(); }}图4-3是修改投票选项页面图4-4是添加投票选项页面4.3投票结果模块的设计投票结果模块设计的好坏将直接对应用系统的效率以及系统实现产生一定影响,较好的投票结果模块设计会减少数管理人员的操作时间,提高操作数据的完整性和一致性,使投票结果得到准确而又快速的下发。投票数百分比的计算代码如下<%Dimimgvote'取得这批投票总数 sql="SelectSum(voteCount)AStlFromVoteItem" Setvoters=Conn.Execute(sql) IfNOTvoters.EOFThen total=voters("tl") EndIf Setvoters=Nothing '取得每个投票项目信息 sql="Select*FromVoteItemOrderById" Setvoters=Conn.Execute(sql) DoWhileNOTvoters.EOF Iftotal=0Then itotal=1 Else itotal=total EndIf '计算每个投票项目百分比图片长度 imgvote=FormatNumber(voters("voteCount")/itotal,2)*170%> <tr><tdbgcolor="#FFFFFF"><%=voters("item")%></td> <tdcolspan="2"bgcolor="#FFFFFF"> <imgsrc=images/bar1.gifwidth=<%=imgvote%>height=10><fontstyle="font:7pt"face="Verdana"> <%=Cstr(FormatNumber(voters("voteCount")/itotal*100,0))%>%</font></td><tdbgcolor="#FFFFFF"align="center"><%=voters("voteCount")%></td></tr><% voters.MoveNext Loop%><%'收集需要统计的信息theurl="http://"&Request.ServerVariables("http_host")&Request.ServerVariables("url") vSoft=Request.ServerVariables("HTTP_USER_AGENT") 'IIS版本 vRef=Request.servervariables("HTTP_REFERER") '访问前的网址 '取得客户端的真实IP地址 vIP=Request.ServerVariables("HTTP_X_FORWARDED_FOR") IfvIP=""Then vIP=Request.ServerVariables("REMOTE_ADDR") EndIf vExplorer=Browser(vSoft) '浏览器 vOS=System(vSoft) '操作系统 vDateTime=DateTimeFormat(now(),1)&""&DateTimeformat(now(),6)'访问的时间 IfvRef=""Then vRef="直接输入或书签导入" EndIf%>图4-5重复投票提示框图4-6投票结果百分比显示生成最终结果投票结果运算投票选项生成最终结果投票结果运算投票选项编辑编辑编辑、添加、编辑、添加、删除图4-7投票生成图4.4用户管理模块的设计4.4.1管理员登录的设计与实现1、设计管理员登录表单管理员登录表单由以下3部分组成[1]:·文本框——用来输入用户名。·密码框——用来输入密码。·提交和重填按钮。2、验证管理员的用户和密码验证管理员的用户和密码的步骤如下:使用Request对象的Form集合得到用户输入的用户名和密码代码如下:<%dimuser_id,user_passworduser_id=request("user_id")user_password=request("user_password")%>建立数据库连接,代码与前面连接数据库的代码相同。查询在数据库中是否存在用户输入的用户名。要判断数据库中是否存在用户输入的用户名,可以在表“classuser”中统计user_id字段的内容与用户输入的用户名相匹配的记录总数,如果为0,表示用户名错误,提示用户重新输:如果不为0,说明用户名存在,然后进入验证密码步骤。实现代码如下:<%cmd.CommandText="SelectCOUNT(*)FromclassuserWhereuser_idlike'"+user_id+"'"Setrs=cmd.ExecuteIfrs(0).ValueThenResponse.Write"<P>无效的用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论