基于PHP与MySQL的投票系统设计书_第1页
基于PHP与MySQL的投票系统设计书_第2页
基于PHP与MySQL的投票系统设计书_第3页
基于PHP与MySQL的投票系统设计书_第4页
基于PHP与MySQL的投票系统设计书_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1 基于 投票系统设计书 1系 统 分 析 投票系统是一般网站常用的一种系统。它是一种在网站上提出调查题目,由用户在线投票并对调查投票的统计结果直接显示的调查工具。网站可以通过投票系统统计的数据来了解用户对一些热点问题的看法。通常可以用投票系统来了解用户对网站的态度,对网站服务的评价或对网站新推出的新产品或服务的反映等。通过投票系统搜集的信息可以对网站做出相应改进。 本节通过系统背景、系统模块分析和系统流程图 3 个方面来对系统进行分析。 统背景 从国际互联网到校园网、企业局域网,各 种网上投票系统随处可见。意见调查、用户信息统计、经营情况调查都可以作为投票的内容。网上投票系统凭借其方便快捷等特点,已经成为互联网资源中不可缺少的一部分。 网上投票系统是网站搜集用户需求并有效地实施市场策略的重要手段之一。通过开展问卷调查,可以迅速了解不同行业、不同区域用户的需求,客观地搜集需求信息,及时调整网站的营销策略以满足不同的需求。随着网络技术的发展,网上投票系统的作用将会越来越大。 系统模块分析 为了更合理地设计投票系统,需要从以下 3 点进行分析。 1投票的形式 网上投票系统是网站搜集用 户需求信息的一个途径,可以根据网站的需要设置一个或多个调查。不同的调查需要设置不同的选项,不同的调查要求,选项的形式也是不同的(单选或多选),不同时间段又会有不同的调查。既然网站要通过投票系统搜集信息,那么投票就必须有结果和对用户信息的统计。 2投票的特点 由于互联网本身的开放性,使网上投票面临种种危险,也由此提出了相应的安全控制要求。 信息保密性:投票者有保密的要求。如果用户名及投票内容被人知悉,就对用户的隐私权构成了侵害。因此在网上投票系统中一般均有匿名投票的要求。 投票唯一性:一个投票者,其投票次数 应当只有一次。若投票者可进行多次投票,这将对调查内容的可靠性构成严重的威胁。 2 有了这些特殊性的要求,就需要对用户的信息和投票进行检查和处理,以保证投票的客观和有效性。针对用户信息,如果无特殊的要求(例如只允许注册会员参加),那么系统就只需要记录的 票时间、用户所在区域。投票结果的显示是非常重要的,一是用户希望自己的投票能够及时反映出来;二是投票的结果也是给希望投票的用户的一个参考。 3投票系统结构 根据投票系统对形式的需求和投票系统自身的特点,需要包含以下几个模块。 投票管理模块:该模块可以添加、编 辑和删除调查选项,设置调查选项为多选或单选,设置调查的时间期限,设置此调查是否启用,调查结果的统计显示。 调查显示模块:该模块的功能是显示已启用、未过期的调查。 投票处理模块:该模块需要对投票进行有效性检查,并将投票结果和用户信息写入数据库。 调查结果显示模块:该模块主要是计算每个调查选项统计结果的百分比并以图表的形式显示 出来。 数据库操作的基础模块:该模块定义了连接数据库、表的查询,数据的插入、更新和删除操作。该模块作为一个通用模块将会在后面的章节用到。 系统流程图 根据以上分析,系统的流程 如图 示。在该流程中,网站管理员在投票管理里面添加调查数据,然后在调查显示模块里面显示出来。用户通过调查显示的“投票”按钮投票,数据被传递到投票处理模块,处理 之后 转到调查结果显示页面。用户也可以通过调查显示的“查看结果”按钮直接转到调查结果显示页面。 投票管理 调查显示投票投票处理调查结果显示转向查看图 系统流程图 3 2数据库设计 通过第 1 节对投票系统功能的分析可知,需要存储的信息有调查信息、调查选项信息和用户信息。因此,本系统需要建立调查信息表、调查选项信息表和用户信息表。先 从图 分析这几个表之间的关系。 从图 以看出调查信息、调查选项信息和用户信息都是 1 对多的关系,并通过调查信息联。构架的投票系统数据库 用 据库)如表 示。 调查信息表 V O T E _ I N F I D 表 查选项信息表 I T E M _ I N F I D 表 V O T E _ I N F O 调查信息表 : V O T E _ U S E I D 表 V O T E _ I N F O 调查信息表 : 数据表关系图 表 调查信息表: 于存储调查内容 字 段 名 类型(长度) 描 述 主 键 是否为空 默认 值 备 注 0) 表 一) 是 否 自动增 加 55) 调查标题 否 否 0)查开始时间 否 是 0)查结束时间 否 是 查选项类型 否 否 1 1 为单选(默认) 2 为多选 否启用 否 否 1 1 为启用(默认) 0 为禁用 4 表 调查选项信息表: 于存储调查的选项信息 字 段 名 类型(长度) 描 述 主 键 是否为空 默认值 备 注 0) 表 一) 是 否 自动增加 0) 调查表 否 与调查表关联 0) 选项标题 否 否 0) 统计数量 否 否 0 项排列顺序 否 否 0 1 为单选(默认) 表 调 查用户信息表: 于存储用户信息 字 段 名 类型(长度) 描 述 主 键 是否为空 默认值 备 注 0) 表 一) 是 否 自动增加 0) 调查表 否 与调查表关联 5) 用户 否 续表 字 段 名 类型(长度) 描 述 主 键 是否为空 默认值 备 注 0)计时间 否 否 0) 用户所在区域 否 否 5 3数据库配置 数据操作基础模块主要实现数据库连接以及对数据库表的一些基本操作功能。它包括配置文件和数据库操作文件。下面分别对它们做详细讲解。 配置文件 立配置文件是系统构架需要考虑的重点。因为在一个系统里会有一些常用的参数在很多地方可以用到,如果到使用的时候才定义,那么需要修改的时候就会相当的麻烦,而且容易出错,代码的可读性也很差。在配置文件里放的主要是数据库连接用的参 数和一些全局变量。代码如下: 数据操作文件 一种面向对象的编程语言。这个数据操作文件主要用于建立一个类。该类的初始化构造函数可以连接数据库和表。其他的方法包括对表的查询 、数据的插入、更新、删除操作和事务处理。事务处理是用在执行多个更新或删除操作时为了保证数据完整性而使用的。把这些基本操作封装在一个模块里面对于代码的可读性、系统的扩展性和健壮性都有好处。代码如下: $ /* * 功能:数据库查询函数 * 参数: $句 * 返回:二维数组或 ($ ) /如果 句为空则返回 /如果连接为空则返回 /捕获数据库选择错误并显示错误文件 $ e) $ $e; (!$) /如果查询结果为空则释放结果并返回 $ 0; $ ; $ /把查询结果重组成一个二维数组 $= $; /* * 功能:数据插入函数 * 参数: $句 * 返回: 0 或新插入数据的 ($ ) ; /如果 句为空则返回 ; /如果连接为空则返回 /捕获数据库选择错误并显示错误文件 $ e) $ $e; !$ /如果插入失败就返回 0,否则返回当前插入数据 ID ; /* 7 * 功能:数据更新函数 * 参数: $句 * 返回: R ($ ) if( /如果 句为空则返回 if( /如果连接为空则返回 /捕获数据库选择错误并显示错误文件 $ e) $ $e; /* * 功能:数据删除函数 * 参数: $句 * 返回: R ($ ) if( /如果 句为空则返回 if( /如果连接为空则返回 $ e) $ $e; /* * 功能:定义事务 */ ); /设置为不自动提交,因为 认立即执行 ; /开始事务定义 /* * 功能:回滚 */ ; /* * 功能:提交执行 */ ; ? 8 4投票管理模块 投票管理模块用于实现网站管理员对投票数据的管理,可以添加、编辑、删除调查选项,还可以查看调查统 计的信息。该模块包括调查类文件、调查列表文件、添加调查文件、编辑调查文件、删除调查文件以及用户统计文件。下面对这几个文件分别进行讲解。 调查类文件 文件是一个类文件。它的功能主要是对调查信息、表 表 操作,除一些基本操作外,在开发的过程中还可以根据需要添加其他的操作。调查类文件作为一个包含文件被调用。代码如下: 单选 , /定义选项类型 2=多选 ); _ 0=禁用 , /定义调查启用显示 1=启用 ); _; /* * 功能:提取调查列表 * 返回:数组 */ $ . $ /* * 功能:提取指定表的指定 记录 * 参数: $ $名称 * 返回:数组 */ $ . $ _ $ $r = $ r0; /* * 功能:向指定表中插入数 据 * 参数: $名称, $组 (格式: $字段名 = 值 ) * 返回:插入记录 ($ 9 $ ,; /定义 句的字段部分 $ /组合 句的值部分 $= . $ ; /* * 功能:更新指定表指定 调查表记录 * 参数: $名称, $ $组 (格式: $字段名 = 值 ) * 返回: R ($ $ ; $ $ $ = $ = . $ ; $ . $ . ,$. _ $ /* * 功能:删除指定 调查表记录及相关表记录 * 参数: $查表 返回: R ($ $; $ . $ _ . $ /删除调查选项里面的相关数据 $ . $ _ . $ /删除用户统计表里面的相关数据 $ . $ _ . $ e) $; $; /* * 功能:提取指定调查 选项 * 参数: $查 返回:数组 */ $ . $ _ $ /* * 功能:删除指定 选项表记录 10 * 参数: $ 返回: R ($ $ . $ _ $ $= “ Y /* * 功能:提取指定调查 用户统计信息 * 参数: $查 $前页码 * 返回:数组 */ ) $ ($ 1) * $ . $ _ $ $= /* * 功能:提取指定调查 户统计记录的条数 * 参数: $查 返回:记录条数 */ $ _ . $ _ $ $r = $ r00; /* * 功能:删除指定 用户统计记录 * 参数: $户统计表 返回: R ($ $ . $ _ $ ? 对单个表进行查询、插入、更新和删除时的代码很相似,唯一不同的是操作表的名称。这里可以把这些对单个表的基本操作放到基础类文件 面。加入如下代码: /* * 功能:提取指定表的指定 记录 * 参数: $ $名称 * 返回:数组 */ $ . $ _ $ $r = $ r0; 11 /* * 功能:向指定表中插入数据 * 参数: $名称, $组 (格式: $字段名 = 值 ) * 返回:插入记录 ($ $ ,; /定义 句的字段部分 $i = 0; $ /组合 句的值部分 $= . $ ; i /* * 功能:更新指定表指定 调查表记录 * 参数: $名称, $ $组 (格式: $字段名 = 值 ) * 返回: R ($ $ ; $ $ $ = $ = . $ ; $ . $ . ,$. _ $ /* * 功能:删除指定 表记录 * 参数: $ $名称 * 返回: R ($ $ . $ _ $ 12 调查列表文件 文件的功能是显示调查信息表 的数据列表。该文件包含配置文件调查类文件。提取列表的数据是通过调查类文件里面的提取列表方法来实现的。首先声明一个调查类 对象,通过这个对象来调用类的提取列表方法 。通过这个页面连接到添加、编辑、选项管理、用户统计及删除操作页面。界面如图 示。 图 调查列表 代码如下: ; $ ; ? 序号 调查标题 开始时间 结束时间 选项类型 是否过期 是否启用 操作 $ ? _? $未过期 ;已过期 ;? _? 编辑 选项管 理 用户统计信息 删除 13 添加调查文件 文件的功能是添加新调查,将数据写入表 。该文件由图 调查列表页面的“添加调查”按钮连接过来。用户填写完表单后单击“提交”按钮进行处理。表单提交给自身,通过判断是否为提交操作进行数据处理。数据的处理通过调查类 对象调用父类 方法实现 的,界面如图 示。 图 添加调查 1主程序部分 该部分代码用于实现提交数据的处理和操作界面的显示。代码如下: /判断是否操作成功 操作成功 ; 操作失败 ; 返回 ; ; ? 14 调查标题: 所属类型: _ $ /循环显示类型选择下拉列表框 $ ? 开始时间: $i; ? 年 $i; ? 月 $ /列表 ? 日 结束时间: $i; ? 年 $i; ? 月 $ ? 日 是否启用: 启用 禁用 2客户端程序( 在主程序代码里,表单提交之前会用到客户端语言 实现日期的选择和数据正确性、完整性检查。数据正确性、完整性检查是在处理添加和编辑数据页时必需的。必须检查那些在数据库里面不能为空的字段和有特殊格式的字段,保证它的正确性和完整性。调用 ;实现的。这个调用的意思是:如果返回 16 就提交表单;否则不提交。 函数的代码如下: /功能:检查日期格式是否是有效格式 if(= ) /如果参数为空,则返回 -); /把参数用 数分割成数组,它等同与 的 if(,10) 0) /将两个字符串转化成整数,如果 d1开始日期大于结束日期 /定义一个 原形 /计算字符串的长度(一个双字节字符长度计 2, 符计 1) g, - + - + - + - + 17 if(= ) /判断标题是否为空,为空则返回 请填写调查名称 ); ; if( 100) /判断标题长度是否超过 100 调查标题不能超过 100 个字 ) ; /判断开始日期是否大于结束日期 开始日期因不能小于结束日期 ); 日期处理 件 代码如下: /功能:显示开始日期指定月份的天数 /参数: 份 ; /取得开始日期年份 ; /取得开始日期天数 0; ; /取得当月的天数 i=1;_,$ $ Y); = -,$); = -,$); _ = /判断是否为提交请求 $ = $_; $ = ,0,0,$_,$_,$_); $ = ,0,0,$_,$_,$_); $ = $_; $ = $_; _,$ /判断是否操作成功 操作成功 ; 操作失败 ; 返回 ; ; ? 20 调查标题: / 所属类型: _ $ $ ? 开始时间: $i; ? 年 $i; ? 月 $ ? 日 结束时间: 21 $i; ? 年 $i; ? 月 $ ? 日 是否启用: / 启用 / 禁用 / 22 if(= ) -); if(,10) 0) g, - + - + - + - + if(= ) 请填写调查名称 ); ; if( 100) 23 调查标题不能超过 100 个字 ) ; 开始日期因不能小于结束日期 ); 比较添加调查和编辑调查文件,可以看出它们的代码很相似,不同的是在编辑时多了提取编辑信息的内容并显示出来。那么可以将添加调查和编辑调查文件合并处理,只需要增加一个判断就可以了。代码如下: $ ; _) /判断是否有编辑 信息的 $ $_,$ /提取编辑信息内容 _ = $ = $_; $ = ,0,0,$_,$_,$_); $ = ,0,0,$_,$_,$_); $ = $_; $ = $_; _) /判断是否有编辑信息的 _,$ /执行编辑操作 操作成功 ; 返回 ; ; /执行添加操作 操作成功 ; 返回 ; ; 删除调查文件 文件的功能是删除调查及相关数据。该文件由图 调查列表页面的操作列“ 删除 ”连接过来传递调查 数。删除数据通过调查类 对象调用父类 方法来实现。代码如下: _) 操作成功 ; 返回 ; ; 操作失败 ; 返回 ; ; ? 调查选项列表文件 文件的功能是显示调查选项表 的数据列表。该文件由图 调查列表页面的操作列“ 选项管理 ”连接过来传递调查 数。该文件通过类 对象调用父类的 方法实现的。通过这个页面可以连接到添加、编辑选项、删除选项和设置选项顺序页面。界面如图 示。 图 调查选项列表 代码如下: _); ? $ $_,$ 调查标题: 序号 选项标题 统计 操作 $ ? 25 次 &编辑 & 删除 / / 添加、编辑调查选项文件 文件的功能是增加指定调 查的选项和编辑指定调查选项的信息。添加调查选项界面如图 该文件由图 调查选项列表页面的“添加选项”按钮连接过来传递调查 数。编辑调查选项界面如图 示。该文件由图 调查选项列表页面的操作列“ 编辑 ”连接过来传递调查 数、选项 数。这里添加和编辑作为一个文件来处理。判断当有选项 数传递时为编辑状态,提取该选项信息并显示。用户编辑或添加完表单数据后单击“提交”按钮进行数据处理。数据处理通过调查类 对象调用父类的 方法实现的,通过调用方法实现编辑。 图 添加调查选项 图 编辑调查选项 代码如下: _,$ $编辑调查选项 ; 26 _ = /判断是否提交请求 $ = $_; $ = $_; $ = 0; $ = 0; _) /有选项 数,则执行编辑操作 _,$ /判断是否操作成功 添加操作成功 ; 返回 ; ; 添加操作失败 ; 返回 ; ; /无选项 数,则执行添加操作 /判断是否操作成功 编辑操作成功 ; 返回 ; ; 编辑操作失败 ; 返回 ; ; ? 调查 管理 $ 调查标题: 您对网站的满意程度? 选项标题: / 27 if(= ) /判断标题是否为空,是则弹出提示框 请填写选项标题 ); ; 选项顺序设置文件 文件的功能是设置调查选项的显示顺序。该文件由图 调查选项列表页面的“设置顺序”连接过来传递调查 数。用户在顺序文本框中输入顺序数值后单击“提交”按钮进行数据处理。选项按数值顺序从大到小排列。数据提交到本页判断是否为提交操作并进行处理。数据的处理通过调查类 对象调用父类的 方法实现的。选项顺序设置界面如图 示。 28 图 选项顺 序设置 在调查类文件 加入下列代码: /* * 功能:设置指定调查的选项顺序 * 参数: $项 组, $项顺序数组 * 返回: R ($ $; $id $ $ . $ _ $ _ $ $ e) $; $; 下面这段代码定义了一个设置调查选 项顺序的函数,这个函数在选项顺序设置文件中被调用。代码如下: _); $ $_,$ _ = _,$_) 操作成功 ; 返回;$_返回 ; ; 操作失败 ; 返回 29 ;$_返回 ; ; ? 调查管理 调查选项顺序设置 调查标题: 序号 选项标题 顺序 $ ? / 10 / 删除调查选项文件 文件的功能是删除指定选项记录。该文件由图 调查选项列表页面的操作列“ 删除 ”连接过来传递调查

温馨提示

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

评论

0/150

提交评论