毕业设计论文定稿(软件工程)

上传人:仙*** 文档编号:31576238 上传时间:2021-10-12 格式:DOC 页数:55 大小:978.50KB
返回 下载 相关 举报
毕业设计论文定稿(软件工程)_第1页
第1页 / 共55页
毕业设计论文定稿(软件工程)_第2页
第2页 / 共55页
毕业设计论文定稿(软件工程)_第3页
第3页 / 共55页
点击查看更多>>
资源描述
NANCHANG UNIVERSITY 学学 士士 学学 位位 论论 文文THESIS OF BACHELOR(2005 2009 年)年)题 目: 在线投票系统的设计与实现 学 院: 软件工程 系 软件工程 专 业: 网络通讯与信息安全 班 级: 05 级网通 2 班 学 号: 8000105216 学生姓名: 罗 丹 指导教师: 林 振 荣 起讫日期: 2008.122009.5 I在线投票系统的设计与实现在线投票系统的设计与实现专 业:软件工程 学 号:8000105216学生姓名:罗 丹 指导教师:林 振 荣摘 要在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想就成为了一个可望而不可及的目标。投票非常急需一套既有先进管理思想的系统,作为实现目标和提高现有投票管理水平的一种重要手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,在先进的计算机技术、通信技术、控制技术及 IC 卡技术基础上,采用系统集成方法,逐步建立一个智能化的投票系统。编写在线投票系统,最重要的一点就是如何从烦琐的投票结果中,导出全部投票项目的票数,然后根据投票项目的各个票数,进行票数百分比计算,最后编辑出在线投票系统. 关键词关键词: ASP 投票 ACCESS 设计 IIAbstractBe building up vote to manage today of mechanism actively, only depend originality of the handicraft manage or the simple single machine manage, management Dept. public appearance to a great deal of information, cant efficiently will among them of importance part withdraw, and do a judgment and the processing for corresponding.Decision which votes governor can according to the statement data, at waste a great deal of manpower, material resources cant in the meantime attain actually supervise and control, the accuracy of hard assurance data with in time sex.Therefore, the forerunners management thought carried out and then becamed an inaccessible target in the vote.The vote needs the management information that a set of current forerunner manages thought system urgently very much, is a kind of important means which carries out a target and raises an existing vote a management level.The technical along with science of raise continuously, the calculator science is gradually mature, the its strong function has already been peoples deep understanding, it has already entered each realm of the society of mankind to erupt to flick a more and more important function. Be a calculator applied one part, the teaching missions arrange in order is a hard nut to crack, numerous high schools, research organizations and personals carried on a great deal of research and the development work from the theories and fulfillment.Keyword: ASP VOTE Access Database III目目 录录摘摘 要要.I IABSTRACTABSTRACT.IIII目目 录录.IIIIII第一章第一章 前言前言.1 11.1 开发背景 .11.1.1 开发的目的和意义 .11.1.2 该课题领域的开发及应用现状分析 .11.1.3 项目所使用的相关技术的说明 .21.2 功能概述 .31.2.1 投票首页模块 .31.2.2 投票实现模块 .31.2.3 投票结果模块 .31.2.4 登录模块 .41.2.5 投票管理模块 .41.3 开发工具简介 .41.3.1 Dreamweaver 简介 .41.3.2 Access 数据库简介.61.3.3 asp 编程语言.61.4 运行要求与简介 .71.4.1 接口要求 .71.4.2 支持信息及运行环境 .7第二章第二章 系统需求分析系统需求分析.8 82.1 概述与运行环境 .82.1.1 系统研究目标 .82.1.2 系统主要特色 .82.2 功能需求 .82.2.1 模块划分 .92.2.2 模块功能需求 .92.3 性能需求 .112.4 设计约束 .11第三章第三章 系统概要设计和数据库设计系统概要设计和数据库设计.12123.1 总体设计 .123.1.1 基本设计概念和系统总流程图 .123.2 系统功能逻辑结构 .143.3 系统交互界面设计 .143.4 出错处理 .143.4.1 出错处理语法 .14 IV3.4.2 错误类型 .153.5 系统 UML 图分析 .163.5.1 系统用例图 .163.5.2 系统类图 .173.5.3 系统时序图 .183.5.4 系统协作图 .213.6 系统 ER 图设计与分析 .233.7 数据库设计 .243.7.1 表设计 .24第四章第四章 系统各模块详细设计系统各模块详细设计.26264.1 管理员登录、登出设计 .264.1.1 管理员登录 .264.1.2 管理员登出管理系统 .264.2 投票首页模块 .274.3 投票实现模块 .274.4 投票结果模块 .284.5 投票项目管理模块 .28第五章第五章 系统实现系统实现.31315.1 管理员登录模块的设计与实现 .315.1.1 功能描述 .315.1.2 登录界面设计 .315.1.3 数据流 .325.1.4 部分主要代码 .325.2 投票首页模块 .335.3 投票实现模块 .375.3.1 功能描述 .375.3.2 界面设计 .375.3.3 具体实现代码 .385.4 投票结果模块 .405.5 投票项目管理模块 .425.5.1 添加新投票项目 .425.5.2 修改投票项目 .435.5.3 删除过期投票项目 .45第六章第六章 开发难点与解决技巧开发难点与解决技巧.4646第七章第七章 结论结论.4747致谢(致谢(REFERENCESREFERENCES).4848参考文献参考文献.4949 1第一章 前言1.1 开发背景1.1.1 开发的目的和意义随着 INTERNET 的发展,世界网民的数量急剧增加,社会的信息化强度增强,企业竞争之激烈,故对市场信息的掌握范围不仅仅是周边的一些信息,而应把范围扩展到全国,甚至全世界,INTERNET 恰恰是实现这目标的有利工具。对于新产品,新观点的调查范围应该更广泛,消息应该及时反馈给企业单位,故一个网上在线投票系统应允而生,它正好充分满足客户的需求,信息反馈的范围扩大,人力资源的节省,从而使得企业在竞争激烈的市场中拥有更强大的资本。开发此投票系统是为了更好的把市场的信息更准确更快速的反馈给客户,使信息的来源更广泛,从而提高信息的准确性。运用此系统可以降低企业为市场调查而消耗的人力和物力,利用节省的资源提高产品的质量,增强竞争力。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。网站中经常会有在线投票模块,网站管理员可以通过在线投票模块了解网站用户对投票主题选项的支持率。从而知道网络用户的喜好。因此,选择该课题具有一定的研究意义。1.1.2 该课题领域的开发及应用现状分析在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想就成为了一个可望而不可及的目标。投票非常急需一套既有先进管理思想的系统,作为实现目标和提高现有投票管理水平的一种重要手段。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,在先进的计算机技术、通信技术、控制技术基础上,采用系统 2集成方法,逐步建立一个智能化的投票系统。1.1.3 项目所使用的相关技术的说明开发该系统我主要采用 ASP 技术和 Access 数据库相结合的方式。主要用Macromedia Dreamweaver MX 2004 来编写 asp 页面。ASP 是 Active Server Page 的缩写,意为“动态服务器页面” 。它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP 是一种服务器端脚本编写环境,可以用来创建和运行动态网页或 Web 应用程序。ASP 网页可以包含 HTML 标记、普通文本、脚本命令以及 COM 组件等。利用 ASP 可以向网页中添加交互式内容(如在线表单) ,也可以创建使用 HTML 网页作为用户界面的 web 应用程序。之所以在本系统中采用 ASP 语言,是因为其有以下一些特点:利用 ASP 可以实现突破静态网页的一些功能限制,实现动态网页技术;ASP 文件是包含在 HTML 代码所组成的文件中的,易于修改和测试;服务器上的 ASP 解释程序会在服务器端执行 ASP 程序,并将结果以HTML 格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP 所产生的网页;ASP 提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从 web 浏览器中获取用户通过 HTML 表单提交的信息,并在脚本中对这些信息进行处理,然后向 web 浏览器发送信息;ASP 可以使用服务器端 ActiveX 组件来执行各种各样的任务,例如存取数据库、发现和那个 Email 或访问文件系统等;由于服务器是将 ASP 程序执行的结果以 HTML 格式传回客户端浏览器,因此使用者不会看到 ASP 所编写的原始程序代码,可防止 ASP 程序代码被窃取。ASP 技术通过在静态 HTML 内容中嵌入服务器端脚本,实现网页内容的动态改变。Web 服务器从磁盘上读取含有服务器端脚本的网页,在网页发送给客户端浏览器之前,先对其中的服务器端脚本进行解释,输出用户定制内容,从而产生动态网页。数据库之所以采用 Access 数据库,是因为其能够胜任投票系统中的数据处 3理。本文在相关理论指导下,在分析其他一些系统的基础上,开发出了一个简单的在线投票系统(包括功能模块设计、数据库结构设计等) ,基本解决了管理人员的烦琐事务。1.2 功能概述在线投票系统可以分为投票首页模块、投票实现模块、投票结果模块、登录模块和投票管理模块。1.2.1 投票首页模块该模块用于实现当前投票主题、选项以及其他投票主题,可将其他投票主题转变为当前投票主题。1.2.2 投票实现模块选中当前投票主题选项,提交信息后,进入投票实现模块,该模块会判断用户是否进行了重复投票,如果没有将会修改投票记录。此模块供用户对投票项目进行投票所用。在投票首页上,将会显示最近一个投票项目和其他投票列表,用户可自由选择那些尚未过期的项目进行投票。投票操作具体为:用户选择一个或多个投票选项,提交,即可投票成功,此时页面会跳转至显示投票结果的页面。在这个模块中,还包括一下系统配置问题:主要是针对那些重复 ip 的用户多次重复对一个项目进行投票,以此来限定投票次数,即一个用户名,一个ip,对一个投票项目只能进行一次投票。1.2.3 投票结果模块投票结束后可进入投票结果模块。该模块应用图形和文字的形式显示各选项的投票率,并且显示投票开始时间、结束时间和投票总数等信息。 41.2.4 登录模块该模块用于管理员登录。登录验证后,管理员才可以对投票信息进行维护。登录模块是管理员进入相应权限的桥梁,此模块主要就是供管理员进入系统进行相应操作的一个门槛,界面上主要有几个文本框和提交、重置按钮,管理员在其中输入用户名和密码,点击按钮,系统便会根据提取到的文本信息与后台数据库进行搜索匹配和身份确认,若匹配成功,则管理员即可进入系统进行下一步操作,否则会被拒绝访问。1.2.5 投票管理模块该模块实现了系统的重要功能,即投票主题的添加,修改,删除。在添加投票主题时可设置投票选项的个数;在修改投票主题时,也可以重新设置投票选项的个数和内容,可以添加新选项,也可以删除旧选项。添加投票项目子模块:通过链接进入添加投票项目页面,填写需要添加的投票项目的内容,如:投票主题,投票选项个数,投票方式为单选还是多选,投票开始时间和结束时间,几个投票选项的内容等,填写完毕后提交即可,新的投票项目就会显示在主页面上。修改投票项目子模块:修改投票项目的操作界面与添加投票项目的操作界面大体上相同,主要是对投票项目的某些具体内容进行修改,修改完成后,同样单击提交按钮即可。删除投票项目子模块:当某些投票项目过期,管理员已经不再需要时,便可对该项目进行删除操作,从数据库中彻底删除该项目前会有提示警告框,只有在确定的情况下,投票项目才会被删除。1.3 开发工具简介1.3.1 Dreamweaver 简介Dreamweaver 是美国 MACROMEDIA 公司开发的集网页制作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别发展的视 5觉化网页开发工具,利用它可以轻而易举地制作出跨越平台限制和跨越浏览器限制的充满动感的网页。DREAMWEAVER 特点: 最佳的制作效率 Dreamweaver 可以用最快速的方式将 Fireworks,FreeHand,或 Photoshop等档案移至网页上。使用检色吸管工具选择荧幕上的颜色可设定最接近的网页安全色。对于选单,快捷键与格式控制,都只要一个简单步骤便可完成。Dremweaver 能与您喜爱的设计工具,如 Playback Flash,Shockwave 和外挂模组等搭配,不需离开 Dremweaver 便可完成,整体运用流程自然顺畅。除此之外,只要单击便可使 Dreamweaver 自动开启 Firework 或 Photoshop 来进行编辑与设定图档的最佳化。 网站管理 使用网站地图可以快速制作网站雏形、设计、更新和重组网页。改变网页位置或档案名称,Dreamweaver 会自动更新所有连结。使用支援文字、HTML码、HTML 属性标签和一般语法的搜寻及置换功能使得复杂的网站更新变得迅速又简单。 无可比拟的控制能力 Dreamweaver 是唯一提供 Roundtrip HTML、视觉化编辑与原始码编辑同步的设计工具。它包含 HomeSite 和 BBEdit 等主流文字编辑器。帧(frames)和表格的制作速度快的令您无法想像。进阶表格编辑功能使您简单的选择单格、行、栏或作未连续之选取。甚至可以排序或格式化表格群组,Dreamweaver 支援精准定位,利用可轻易转换成表格的图层以拖拉置放的方式进行版面配置。所见即所得 Dreamweaver 成功整合动态式出版视觉编辑及电子商务功能,提供超强的支援能力给 Third-party 厂商,包含 ASP, Apache,BroadVision, Cold Fusion,iCAT, Tango 与自行发展的应用软体。当您正使用 Dreamweaver 在设计动态网页时,所见即所得的功能,让您不需要透过浏览器就能预览网页。梦幻样版和 XML Dreamweaver 将内容与设计分开,应用于快速网页更新和团队合作网页编辑。建立网页外观的样版,指定可编辑或不可编辑的部份,内容提供者可直接编辑以样式为主的内容却不会不小心改变既定之样式。您也可以使用样版正确地输入或输出 XML 内容。 全方位的呈现利用 Dreamweaver 设计的网页,可以全方位的呈现在任何平台的热门浏览器上。对于 cascading style sheets的动态 HTML 支援和鼠标换图效果,声音和动画的 DHTML 效果资料库可在Netscape 和 Microsoft 浏览器上执行。使用不同浏览器检示功能,Dreamweaver 6可以告知您在不同浏览器上执行的成效如何。当有新的浏览器上市时,只要从Dreamweaver 的网站在下载它的描述档,便可得知详尽的成效报告。1.3.2 Access 数据库简介ACCESS 是桌面型数据库,优点是:操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果还不错。缺点是:不支持并发处理、数据库易被下载存在安全隐患、数据存储量相对较小、数据量过大时严重影响网站访问速度和程序处理速度。1.3.3 asp 编程语言ASP 指 Active Server Pages (动态服务器页面) ,它是运行于 IIS 之中的程序,IIS 指 Internet Information Services (Internet 信息服务) ,它是 Windows 2000 及 Windows 2003 的免费组件,IIS 同时也是 Windows NT 4.0 的可选组件。ASP 文件和 HTML 文件类似,可包含文本、HTML、XML 和脚本,ASP 文件中的脚本可在服务器上执行。文件的扩展名是 .asp。当浏览器请求某个 HTML 文件时,服务器会返回这个文件,而当浏览器请求某个 ASP 文件时,IIS 将这个请求传递至 ASP 引擎。ASP 引擎会逐行地读取这个文件,并执行文件中的脚本。最后,ASP 文件将以纯 HTML 的形式返回到浏览器。Asp 的优点如下:动态地编辑、改变或者添加页面的任何内容 对由用户从 HTML 表单提交的查询或者数据作出响应 访问数据或者数据库,并向浏览器返回结果为不同的用户定制网页,提高这些页面的可用性 用 ASP 替代 CGI 和 Perl 的优势在于它的简易性和速度 由于 ASP 代码无法从来浏览器端察看,ASP 确保了站点的安全性优秀的 ASP 编程可将网络负载降至最低 71.4 运行要求与简介1.4.1 接口要求 硬件接口:无特别要求; 网络硬件接口要求:现实中要求具有高速以太网组网一实现联网销售,但是在理论实验验证软件本身的目的来看,无需网络通讯接口。 软件接口要求:无1.4.2 支持信息及运行环境 软件支持:本软件开发是使用 asp 应用服务器; 设备支持:推荐配置:WindowsXP,256M 内存; 数 据 库:Microsoft office Acess 8第二章 系统需求分析2.1 概述与运行环境在线投票功能是网站应用程序最常用的功能之一,也是网站应用程序开发常用的功能模块。2.1.1 系统研究目标该系统的研究目标:当网站的管理员或用户提出一些新的想法与建议或者出现一种新产品时,他们可能需要通过用户或者客户的投票方式来确定这些新的想法、建议或者新的产品是否满足用户或者客户的需求,另外,网站还可以通过网站在线投票功能做一些实际性的调查工作。随时了解市场是一个企业拥有强大竞争力的必须品,所以在线投票系统可以解决企业的难题,不受地区限制,不受人手压力的限制,随时了解产品的市场效应,增强自己的竞争力;此系统将以图形化的界面来显示投票结果,一目了然的回馈客户的的需求信息。2.1.2 系统主要特色本在线投票系统具有的主要特色:其一,方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。 其二,友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。其三,强大的功能,能够满足各种统计需要,实现快速简单统计。2.2 功能需求本系统具体要实现的功能内容包括: 9 数据库选择 数据库接口的实现 数据库建模方法 程序开发软件 需求分析 需求的提取 需求定义与规约 系统总体设计 系统结构图 数据功能模块设计 系统的主要功能设计 数据库设计 投票界面模块的设计 投票项目模块的设计 投票结果模块的设计 用户管理模块的设计 管理员登录的设计与实现 2.2.1 模块划分根据功能需求,共划分为五个模块: 投票首页模块 投票实现模块 投票结果模块 管理员登录模块 投票管理模块2.2.2 模块功能需求各个模块所对应的需求如下: 投票首页模块该模块面向对象为所有访问页面用户,其中包括:对所有投票议题标题的 10浏览,该模块用于实现当前投票主题、选项以及其他投票主题,可将其他投票主题转变为当前投票主题。首页上还有供管理员登录系统进行投票项目管理的登录区域。 投票实现模块此模块供用户对投票项目进行投票所用。在投票首页上,将会显示最近一个投票项目和其他投票列表,用户可自由选择那些尚未过期的项目进行投票。投票操作具体为:用户选择一个或多个投票选项,提交,即可投票成功,此时页面会跳转至显示投票结果的页面。在这个模块中,还包括一下系统配置问题:主要是针对那些重复 ip 的用户多次重复对一个项目进行投票,以此来限定投票次数,即一个用户名,一个ip,对一个投票项目只能进行一次投票。 投票结果模块此模块供用户查看该项目已有的投票情况。投票结果显示页面会显示相应投票选项的得票率和该项目总的得票数。 管理员登录模块该模块用于管理员登录。登录验证后,管理员才可以对投票信息进行维护。如增删投票项目等。 投票管理模块此模块为管理员操作的模块。管理员登入系统后,可对本系统的所以投票项目进行相应的管理,如:添加投票项目,修改投票项目,删除投票项目等。添加投票项目子模块:通过链接进入添加投票项目页面,填写需要添加的投票项目的内容,如:投票主题,投票选项个数,投票方式为单选还是多选,投票开始时间和结束时间,几个投票选项的内容等,填写完毕后提交即可,新的投票项目就会显示在主页面上。修改投票项目子模块:修改投票项目的操作界面与添加投票项目的操作界面大体上相同,主要是对投票项目的某些具体内容进行修改,修改完成后,同样单击提交按钮即可。删除投票项目子模块:当某些投票项目过期,管理员已经不再需要时,便可对该项目进行删除操作,从数据库中彻底删除该项目前会有提示警告框,只有在确定的情况下,投票项目才会被删除。 112.3 性能需求本系统可用普通 PC,windows XP 系统,对硬件无很大要求。2.4 设计约束本系统设计严格按照开题报告中预定的项目进度执行,于 4 月 25 号完成论文写作,与 5 月 5 号之前完成所有编码工作,准备答辩。 12第三章 系统概要设计和数据库设计3.1 总体设计该部分将对系统进行总体设计,包括系统逻辑图,功能模块的概要设计,交互界面设计等内容,采用软件工程设计思想,为详细设计打好基础。3.1.1 基本设计概念和系统总流程图本系统的总流程图如下图所示: 13在线投票系统选择项目判断模式选择选项检测IP检测时间是否限制IP投票单选模式多选模式不限制限制 IP第一次投票已投过票时间允许时间不允许添加投票投票判别确认身份提交项目信息管理系统配置管理投票项目删除投票项目更新编辑删除管理选项添加更新管理员客户前台用户界面后台数据库管理登陆界面选择身份输入信息提交信息登陆失败删除是否还有选项没有有 14图 3-1 系统流程图3.2 系统功能逻辑结构本系统按照功能逻辑分为五个板块:投票首页模块,投票实现模块,投票结果模块,管理员登录模块,投票项目管理模块。具体功能逻辑图如下:在线投票 图 3-2 功能逻辑图3.3 系统交互界面设计本系统采用典型的图形用户界面,优点是使得操作界面友好,便于让用户使用。具体是通过 Dreamweaver 的设计视图,可以直接设计系统的界面,所见即所得。操作简便。3.4 出错处理3.4.1 出错处理语法由于本系统采用的是 asp 语言,所以可以用以下两种语法进行出错处理:普通用户管理员登录模块投票模块首页投票管理模块改变当前投票主题投票实现模块投票结果模块 删除投票信息添加投票信息修改投票信息 15 On Error Goto eee eee 指的是发生错误时你将程序转到的地方。eee 可以用其他非保留字代替。 比如: Sub Test() On Error Goto eee exit sub eee: End Sub 如果要是执行出错的话就执行,否则只执行语句 1 On Error Resume Next 这是如果出现错误就忽略,执行下一步3.4.2 错误类型表 3-1 出错处理类型表编号出错信息处理输出信息01未输入必要字符选项提示用户请输入字符02登陆的用户名密码错误提示用户该用户名不存在密码错误03输入投票项目起始、截止时间的日期格式错误提示用户显示正确格式无效日期04输入查询的关键字错误或与数据库中的记录无匹配项提示用户该投票项目不存在05必要数据字段为空提示用户数据字段不能为空06数据字段格式不对提示用户显示正确格式07数据字段类型不对强制转换,若成功继续;若失败提示用户显示正确类型08操作的数据不存在直接返回无效数据操作09投票项目修改失败返回到原来界面显示失败原因10投票项目添加失败直接返回显示失败原因11投票项目删除失败返回到原来界面显示删除失败 163.5 系统 UML 图分析3.5.1 系统用例图整个投票系统包括:投票者,投票项目,管理员这三个案例。总的用例图如下:图 3-3 系统用例图用例描述: 投票者用例名:用户行为者:对项目进行投票的人目的:对投票项目进行投票类型:端点、主要的、基本的级别:一级 管理员用例名:整个投票系统的管理员行为者:对投票系统进行管理维护的人目的:添加、删除、修改投票项目类型:端点、主要的、基本的 17级别:一级3.5.2 系统类图系统类对象描述: 类名:user功能:添加投票项目、对投票项目进行投票、查看投票结果属性:用户名、IP(系统记下投票用户的 ip,以防其恶意重复投票) 类名:admin功能:添加、修改、删除投票项目属性:管理员名、登录密码 添加投票项目功能:添加一个新的投票项目属性:添加投票选项个数、添加投票主题名、选择投票所属类别、选择投票项目类型、添加投票开始时间、添加投票结束时间、添加投票项目的选项的内容。 修改投票项目功能:修改投票项目各个属性的内容属性:修改投票选项个数、修改投票主题名、修改投票所属类别、修改投票项目类型、修改投票开始时间、修改投票结束时间、修改投票项目的选项的内容等 删除投票项目功能:删除投票项目选项或整个投票项目操作:删除投票项目的一个或几个投票选项 deloption();删除整个投票项目 delvote()系统类图如下: 18图 3-4 系统类图3.5.3 系统时序图 用户投票模块图 3-5 用户投票时序图 用户添加投票项目模块 19图 3-6 用户添加投票项目时序图 管理员登录模块图 3-7 管理员登录时序图 管理员添加投票项目模块 20图 3-8 管理员添加投票项目时序图 管理员修改投票项目模块图 3-9 管理员修改投票项目时序图 管理员删除投票项目模块 21图 3-10 管理员删除投票项目时序图3.5.4 系统协作图 用户投票模块 22图 3-11 用户投票协作图 用户添加投票项目模块图 3-12 用户添加投票项目协作图 管理员登录模块 23图 3-13 管理员登录协作图 管理员添加投票项目模块图 3-14 管理员添加投票项目时序图 管理员修改投票项目模块 24图 3-15 管理员修改投票项目协作图 管理员删除投票项目模块图 3-16 管理员删除投票项目协作图3.6 系统 ER 图设计与分析整个系统开发过程中,主要涉及的实体有:投票项目,管理员,用户。系统 ER 图如下:用户投票项目注册号用户名主题名密码选项个数主题号选项内容开始时间按结束时间选择选项投票数选票总数投票选择 25 317 系统 ER 图3.7 数据库设计3.7.1 表设计本系统一共用到 3 张数据库表,分别如下:表 3-2 登录表(login)字段数据类型是否为空索引是否主键注释login_id自动编号Not null有(无重复)是管理员 IDusername文本Not null否管理员名字password文本Not null否管理员登录密码注:管理员的 username 为:admin password 为:admin表 3-3 投票项目表(topic 表)字段数据类型是否为空索引是否主键注释topic_id自动编号否有(无重复)主键投票项目号topic_name文本否否投票项目主题option_type文本否否选项类型,单选还是多选counts数字否否选票总数begin_time日期/时间否否投票起始时间end_time日期/时间否否投票截止时间 26表 3-4 投票项目选项表(options 表)字段数据类型是否为空索引是否主键注释option_idChar否有(无重复)主键选项号tp_id数字否否与该选项对应的主题号options文本否否选项内容Votes数字否否该选项的得票数 27第四章 系统各模块详细设计4.1 管理员登录、登出设计4.1.1 管理员登录程序页面名称:login.asp程序功能:实现管理员的登录,以便进行投票项目的管理。权限范围:整个投票系统的管理员输入数据:管理员账号和密码输出数据:无程序简单逻辑: 输入管理员用户名和密码,回车确认 检查输入是否合法,合法跳入 3,不合法跳入 1,并提示错误 查询数据库,如果存在并匹配,跳入 4,不存在跳入 1,提示错误 根据所获得的用户名、密码合法信息,跳入投票项目管理页面,进行已存在的投票管理。4.1.2 管理员登出管理系统程序页面名称:YZ_login.asp程序功能:实现管理员登出管理系统权限范围:整个投票系统的管理员输入数据:检验 request(action)是否等于logout,若是,则登出输出数据:无程序简单逻辑: 管理员管理投票项目操作完成后,若想退出管理系统,则点击“退出管理”超链接。 登出程序处理页面根据获得的 action 值,来判断是否进行登出操作。 若是,则退出管理系统,回到投票系统首页,并清空 session 的值,整个退出操作完成。 284.2 投票首页模块程序页面名称:index.asp程序功能:用于显示当前投票主题、选项以及其他投票主题,可将其他投票主题转变为当前投票主题权限范围:所有浏览本投票系统的用户输入数据:想要浏览的投票项目的主题输出数据:把想要浏览的投票项目作为当前活动的投票项目进行显示程序简单逻辑: 访问此投票系统的首页,如果是普通想要进行投票的用户,则直接点击想要投票的项目主题,否则转入 2 如果是管理员想进行投票项目管理,则在页面的左侧登录,进入管理页面。 普通的投票用户点击投票主题后就转入了投票页面。4.3 投票实现模块程序页面名称:TP_do.asp程序功能:选中当前投票主题的一个或若干个选项,提交信息后,进入投票实现模块,该模块会判断用户是否进行了重复投票,如果没有将会修改投票结果记录。权限范围:所有进入本投票系统投票的用户输入数据:投票用户的 ip,投票项目的主题及用户所投票的选项内容。输出数据:显示该投票项目的投票结果程序简单逻辑: 点击首页的某个投票项目主题超链接,进入投票页面; 选择一个或若干个投票选项,确定后点提交; 提交后,系统首先会判断该用户是否已对该项目投过票了,如果是,则会弹出错误提示“对不起,这个主题你已经投过票了!” ,如之前未投过,则继续验证其他操作是否正确; 验证是否按照单选、多选的规则来投票,如果该投票项目是单选形式,则系统会提示必须要选择一项,多选也是一样; 29 提交投票后,系统会对相应的数据库表做处理,options 表中选中的votes 值和 titles 表中的 Counts 值均加 1; 最后,会跳转到投票结果显示页面,用户即可看到刚刚投票项目的投票结果。4.4 投票结果模块程序页面名称:counteshow.asp程序功能:该页面显示投票结束后被投票项目的投票结果,该模块应用图形和文字的形式显示各选项的投票率,并且显示投票开始时间、结束时间和投票总数等信息。权限范围:访问投票系统并进行过项目投票的所有用户均可看到投票结果。输入数据:无输出数据:图形和文字相结合的投票结果显示程序简单逻辑: 此模块相对较简单,承接投票实现模块; 当对投票项目进行完投票提交后,相应的数据库表内容也被修改了,接下来就是用数据库选择语句把需要显示的信息筛选出来,显示在页面上。4.5 投票项目管理模块 添加投票项目子模块:程序页面名称:add.asp程序功能:通过链接进入添加投票项目页面,填写需要添加的投票项目的内容,如:投票主题,投票选项个数,投票方式为单选还是多选,投票开始时间和结束时间,几个投票选项的内容等,填写完毕后提交即可,新的投票项目就会显示在主页面上。权限范围:系统管理员输入数据:投票选项个数,投票主题,投票方式是单选还是多选,投票开 30始时间,投票结束时间,投票各个选项的内容,是否设置为当前投票选项等。输出数据:投票系统首页,并且可以看到刚刚添加的新投票项目作为最新投票项目在投票项目列表的第一个程序简单逻辑:在系统首页时,管理员先登录进入管理系统,再单击增加新议题超链接,即可进入添加投票项目页面;该页面有一个表格加很多表单项组成,主要就是对投票项目内容的详细添加;填表完成后提交,此时转入数据库后台处理,相应的处理页面为 do.asp完成后,数据库的 topic 表中就多了一条记录,添加新项目页面也转回投票系统首页,可供用户继续进行其他操作。 修改投票项目子模块:程序页面名称:modify.asp程序功能:修改投票项目的操作界面与添加投票项目的操作界面大体上相同,主要是对投票项目的某些具体内容进行修改,修改完成后,同样单击提交按钮即可。权限范围:系统管理员输入数据:投票选项个数,投票主题,投票方式是单选还是多选,投票开始时间,投票结束时间,投票各个选项的内容,是否设置为当前投票选项等(同添加投票项目子模块)输出数据:回到投票系统首页程序简单逻辑:在系统首页,管理员登录进入管理系统页面,在要修改的投票项目主题旁单击修改超链接,转到 modify.asp 修改页面;此页面的设计视图同添加投票项目的设计界面,也包括基本的投票项目内容,修改完成后提交,由数据库修改语句对数据库中相应表项进行修改保存;之后转回到管理系统首页,此时查看被修改的投票项目即可看到修改效果。 删除投票项目子模块:程序页面名称:do.asp(主要是一些删除函数的处理)程序功能:当某些投票项目过期,管理员已经不再需要时,便可对该项目进行删除操作,从数据库中彻底删除该项目前会有提示警告框,只有在确定的情况下,投票项目才会被删除。 31权限范围:系统管理员输入数据:需要被删除的投票项目主题或 id 号输出数据:弹出删除成功提示框程序简单逻辑:在系统首页,管理员登录进入管理系统页面,在要删除的投票项目主题旁单击删除超链接,转到 do.asp 处理页面;通过其中的删除函数,delvote()删除整个投票项目,提取相应的关联索引信息,去数据库 topic 表中搜寻相应的投票记录,进行删除处理;确认删除后,回到系统管理界面,此时可以看到,刚被删除的投票项目已不在投票项目列表中。 32第五章 系统实现5.1 管理员登录模块的设计与实现5.1.1 功能描述管理员登录界面,根据身份从而跳转到相应管理系统页面,进行投票项目管理。输入处理 输出1.登录基本信息1 系统登录处理1 登录结果图 5-1 登录模块5.1.2 登录界面设计根据需要提供的登录信息,登录界面比较简单,主要包括两个文本域和一个提交表单。具体图示如下:图 5-2 投票管理登录界面图 335.1.3 数据流登录模块数据流图如下: 图 5-3 登录模块数据流图5.1.4 部分主要代码 5.2 投票首页模块这是整个投票系统的首页,主要的一块儿就是列出所有投票项目,并采用分页显示,具体界面设计图如下:图 5-4 投票系统首页图实现此功能的主要代码如下: (把连接数据库等操作的文件包含进本页面中) 35%thisID=request(thisID)str=and ShiFouif thisID thenstr=and id=&thisidend if%openDBset rst=Server.CreateObject(ADODB.Recordset)(查询在有效时间内的项目)sql=select * from titles where KaiShiTime= # & Date() & # & strrst.open sql,conn,1,1if not rst.eof thenZhuTi=rst(ZhuTi)id=rst(id) 读取主题 id 值XuanZe=rst(XuanZe)Counts=rst(Counts)KaiShiTime=rst(KaiShiTime)JieShuTime=rst(JieShuTime)rst.closeset rst=nothing % input type=hidden name=Tid value= input type=hidden name=XuanZe value= 投票主题: td width=176 rowspan= valign=bottom  %for i=1 to xxresponse.Write &i&rs(options)&rs.movenext 传递选项 oid 的值nextrs.closeset rs=nothing%if id= thenstr1=elsestr1=and id &idend ifsql = Select id, ZhuTi, KaiShiTime,JieShuTime,Counts,ShiFou from titles where KaiShiTime= # & Date() & #&str1Set rsl = Server.CreateObject(ADODB.Recordset)rsl.open sql,conn,1,1rsl.pagesize=5 设置一页显示多少条记录 if not rsl.eof then pageno=request(pageno) 37 if Not IsNumeric(pageno) or pageno= thenpageno=1elsepageno=cint(pageno)end if rsl.absolutepage=pagenoelsepageno=0end ifif not rsl.eof then for i=1 to rsl.pagesizeresponse.Write &rsl(ZhuTi)&rsl(Counts)&票&_rsl(JieShuTime)&rsl.movenext单击主题链接时传递相应的 id 值给 theid if rsl.EOF then Exit Fornextend if% 385.3 投票实现模块5.3.1 功能描述投票模块为用户选择投票项目,并根据项目模式跳转到相应投票页面进行投票,对系统配置进行检测,投票结束后就可以查询结果: 1.投票项目信息2.选项信息输入1.模式判断2.系统配置检测3.数据库信息更新1.返回投票结果信息处理输出图 5-5 系统操作过程图 5.3.2 界面设计投票项目实现模块的界面设计如图:图 5-6 投票项目的界面图 39图 5-7 重复投票的提示框图图 5-8 显示投票结果5.3.3 具体实现代码 %判断该项目是否已投票Tid=request(Tid)if request.Cookies(isvoted)(voteid&Tid)=Tid thenresponse.write alert(对不起,_&+这个主题您已经投过票了!);history.back();response.endend ifif request(XuanZe)=radio then 单选形式处理if request(option)= then 必须要选择一个选项 40response.write alert(请选择投票选项!);_&+history.back();response.endelseopenDBoptions 表中选中的 votes 值和 titles 表中的 Counts 值均加 1conn.Execute(Update options SET votes = _&votes+1 Where Oid = &request(option)conn.Execute(Update titles SET Counts = Counts+1 _&Where id = &Tid)closeDBend ifelseif request(XuanZe)=checkbox then 多选形式处理if request(option)= thenresponse.write alert(请选择投票选项!);_&+history.back();response.endelseopenDBrequest(option).count 指:选中的选项总数for i=1 to request(option).count读取每个选中的选项,并使 votes 值都加 1conn.Execute(Update options SET votes = votes+1 _&Where Oid = &request(option)(i)nexttitles 表中的 Counts 值就是被选中的选项总数 conn.Execute(Update titles SET Counts = Counts+&_request(option).count& Where id = &Tid)closeDBend ifend if写入 Cookies,变量名称加入 Tid 的值response.Cookies(isvoted)(voteid&Tid)=Tid 41response.Cookies(isvoted).expires=dateAdd(yyyy,1,now)投票主题 id,转到投票结果显示页面查看该项目的投票结果response.Redirect counteshow.asp?tid=&Tid%5.4 投票结果模块具体实现代码如下:投票主题: 42%(用循环来统计并输出各个投票选项的得票数,以百分制显示)for i=1 to xxif Counts=0 thenpercent=0elsepercent=(rs(votes)/Counts)*100end ifresponse.Write &i&rs(options)&_ &_formatnumber(percent,1)&%&rs(votes)&人rs.movenextnextrs.closeset rs=nothingcloseDB%开始时间:结束时间:投票总数:票 程序运行结果如下: 43图 5-9 投票结果显示界面图5.5 投票项目管理模块5.5.1 添加新投票项目界面设计图 5-10 添加投票项目界面图 44功能实现:下面列出添加项目函数sub add()conn.execute(insert into titles(ZhuTi,XuanZe,KaiShiTime,&_JieShuTime,ShiFou) values (&ZhuTi&,&XuanZe&,&_&KaiShiTime&,&JieShuTime&,&ShiFou&)sql=select top 1 ID from titles order by id descset rst=Server.CreateObject(ADODB.Recordset)rst.open sql,conn,1,1id = rst(id)rst.Closefor i=1 to xConn.Execute(insert into options (tid,options) values&_( & id & , & Request(option&i) & )nextCloseDBresponse.write alert(添加投票成功);response.write location.href=index.asp;end sub5.5.2 修改投票项目 45界面设计图 5-11 修改投票项目的界面图功能实现修改处理函数sub modify()更新 titles 表内的相关数据conn.execute(update titles set ZhuTi=&ZhuTi&,&_XuanZe=&XuanZe&,KaiShiTime=&KaiShiTime&,JieShuTime&_=&JieShuTime&,ShiFou=&ShiFou& where id=&mdfid)更新 options 表内的选项值for i=1 to nconn.execute(update options set options&_=&request(option&i)& where oid=&request(oid&i) next添加新选项if request(addoption) thenconn.execute(insert into options (tid,options) values&_ (&mdfid&,&request(addoption)&)end if 46closeDBresponse.write alert(修改投票成功);如果在修改时选了继续添加选项,则在完成处理后仍转到该项目的修改页面if request(continue)=yes thenresponse.Redirect modify.asp?mdfid=&mdfidelseresponse.write location.href=admin.asp;end ifend sub5.5.3 删除过期投票项目功能实现:删除投票项目处理函数sub delvote() openDBconn.Execute(delete from options where Tid = &request(delid) )conn.Execute(delete from titles where ID = & request(delid) )closeDBresponse.Redirect admin.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!