基于flex的在线投票系统的分析与设计毕业论文(编辑修改稿)内容摘要:

库需求分析 数据库的设计对于一个程序来说起着非常重要的作用,只有一个设计完善的数据库才能给程序带来更高的运行效率,同样也能给程序带来更加健壮的可扩充性。 所以说数据库设计是一个程序的根本所在,只有构建一个高效率的数据库,用户界面层和数据逻辑层才能更加有效的配合。 用户的需求体现在各种信息的提供,保存,更新和查询上面,这就要求数据库的结构设计能充分满足各种信息的输入和输出。 收集基本数据,数据结构及数据处理的流程,然后组成一个详尽的数据字典,可以给后面具体设计打下基础。 针对这个投票系统的需求分析,总结出如下的需求信息:第一,同一个 IP 地址和 Email 地址的用户只能投票一次。 第二,对每一个不同的用户,都会保存这个用户的姓名, IP 地址, Email地址,用户所在地区,用户职业和问题 1~问题 4 的投票结果。 第三,查询投票信息的时候可以查询问题 1~问题 3 的投票次数。 第四,查询投票信息的时候可以查询用户所在地区的投票次数。 根据上述的需求分析,本系统将设计出如下所示的数据项和数据结构。 第一 ,用户信息所包括数据项:姓名, Email,职业,职业的计数,地区,地区的计数,用户的IP 地址。 第二,投票信息所包括的数据项:问题 1 的投票结果,问题 1 的计数,问题2 的投票结果,问题 2 的计数,问题 3 的投票结果,问题 3 的计数,问题 4 的投票结果。 数据库的 ER 图 图 ~图 说明了用户信息和投票信息这两个数据结构的关系: 图 实体之间关系的 ER图 图 用户信息的实体 ER图 图 投票信息的实体 ER图 第 3 章 概要设计 系统分析 本系统采用的是传统软件编程最常用的 C/S 构架(三层结构), Flex 端为客户端,JSP 为服务器端, MySQL 为 DB 端。 每个部分的知识体系需详细了解及熟悉掌握。 采用三层结构的好处:用户界面层( Flex 端),业务逻辑层( JSP 端),数据储存层( DB端)三种模块独立存在,这样的程序具有更强的松耦合性,程序流程更加清晰。 本系统所采用的数据库管理系统为 MySQL, 与其他的大型数据库例如 Oracle、 DBSQL Server 等相比, MySQL 自有它的不足之处,如规模小、功能有限( MySQL Cluster 的功能和效率都相对比较差)等, 但 对于一般的个人使用者和中小型企业来说, MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。 Flex 部 分 所 需 要 应 用 到 的 组 件 有ViewStack,Canvas,ComboBox,Label,Button,RadioButtonGroup/RadioButton, Image,From,TextInput,HTTPService,states,transition,Panel,PieChart 等等。 JSP 部分需要用 到 JDK 的安装, Java 的编写和编译, Tomcat 服务器的安装和配置, JSP的编写, JavaBean 的编写, Eclipse 的配置。 数据库端还会用到一些常用的 SQL语句。 系统运行环境的构筑 要顺利设计出这个 Flex 版投票系统, JSP 端和 DB 端的环境构筑是重中之重。 以下就是需要构筑和测试的环境: JDK 的配置, Tomcat 的配置, Eclipse 的配置,JDK+Tomecat+Eclipse 环境构筑的测试, MySQL 的配置, JSP 带数据库的测试, Flex Plugin For Eclipse 的配置,在 Eclipse 中测试 Flex 的编译和运行。 特别需要说明的是,由于时间先后不同,不同版本软件可能导致兼容性问题。 系统功能模块和结构设计 本系统需要实现的具体功能是可以存储用户录入的信息,并且用户的 Email 地址和 IP 地址不能重复使用,最后将用户的投票结果以饼形图的方式展现出来。 本系统具体包含的功能模块有:用户登陆模块设计,用户信息录入模块设计,用户投票模块设计,用户查询投票信息模块设计共四个部分。 用户登陆模块的设计思想:当程序刚刚运行的时候(程序初始化阶段), Flex 端使用 HTTPService 调用 JSP 端,以便取得用户的 IP地址, JSP端通过业务逻辑处理(组成 SQL 语句)后发送给 DB端, DB 端再根据发送过来的 SQL 语句执行某些操作(插入,查询等操作)。 再将操作的结果返回给 JSP端,而 JSP 端将 DB端返回的结果封装成 XML,最后被 Flex 端接收。 如果 Flex 端接收的 XML 内容是 Successful 则跳转到用户信息录入模块。 如果接收的 XML 内容是 Unsuccessful,则说明这个 IP 地址已经有过一次投票了,不允许进行第二次投票,所以将会在 Flex 端弹出一个错误信息并终止程序的运行,这就是用户登陆 模块的设计思想 ,如图 : 图 用户信息录入模块的设计思想:当程序运行到这个模块时需要用户录入姓名,Email 地址,用户选择所在地区及职业,其中必须对用户的 Email 地址进行有效性CHECK,这样才能使程序更具有真实性。 当用户信息录入完毕后,将用户的 Email 地址通过 HTTPService 的方式发送到 JSP端,然后 JSP 端再组成 SQL 语句发送到 DB端,而DB端得到 JSP端发送过来的 SQL语句进行查询操作(查询是否存在相同的 Email地址),并将查询的结果返回给 JSP 端。 JSP 端 将得到的结果封装成 XML 发送到 Flex 端, Flex端接收的 XML 为 Successful 则继续下一个模块,如果为 Unsuccessful 则说明 Email地址已经被注册了,由于 Email 地址不允许重复注册,所以将弹出提示信息,如图 : 图 用户信息录入模块设计 用户投票模块的设计思想:用户在这个模块中,首先需要对问题 1~问题 4四个项目进行投票,然后 Flex 端将用户录入的信息和问题 1~问题 4 的投票结果以 HTTPService方式发送到 JSP 端, JSP 端将这些得到的信息组成 SQL 语句后发送给 DB 端 , DB 端则对发送过来的 SQL 语句进行插入操作,并将结果返回给 JSP 端, JSP 端对这些返回的结果进行封装,最后被 Flex 端接收,如果 Flex 端接收的 XML 为 Successful 说明插入成功,如果为 Unsuccessful 说明插入失败。 如图 : 图 用户查询投票信息模块的设计思想:当程序运行到这个模块时,说明用户的信息和投 票结果已经正确的插入到数据库中,用户将看到五个饼形图,包括:用户所在地区的饼形图,用户职业的饼形图,问题 1~问题 3的饼形图,如图 : 图 信息模块设计 第 4章 详细设计 MySQL 端的设计 对 Flex Vote System 表的设计 表 flexvote 表 No 字段 类型 是否为空 键值 默认值 Extra 1 Vote_ID Int(11) NOT NULL PRI auto_increment 2 Vote_Name Varchar(100) NULL NULL 3 Vote_Email Varchar(100) NULL NULL 4 Vote_Area Varchar(100) NULL NULL 5 Vote_AreaCount Int(11) NOT NULL 1 6 Vote_Occupations Varchar(100) NULL NULL 7 Vote_OccupationsCount Int(11) NOT NULL 1 8 Vote_Question1 Varchar(11) NULL NULL 9 Vote_QuestionCount Int(11) NOT NULL 1 10 Vote_Question2 Varchar(11) NULL NULL 11 Vote_QuestionCount Int(11) NOT NULL 1 12 Vote_Question3 Varchar(11) NULL NULL 13 Vote_QuestionCount Int(11) NOT NULL 1 14 Vote_Question4 Varchar(11) NULL NULL 15 Vote_IP Varchar(11) NULL NULL 编写 Flex Vote System 的 SQL语句 本系统使用的数据库名称为 flexvote,以下就是 Flex Vote System 系统的表建立时所使用的 SQL 语句: CREATE DATABASE `flexvote` /*!40100 DEFAULT CHARACTER SET utf8 */。 USE `flexvote`。 CREATE TABLE `db_vote` ( `Vote_ID` int(11) NOT NULL auto_increment, `Vote_Name` varchar(100) default NULL COMMENT 39。 用户的姓名 39。 , `Vote_Email` varchar(100) default NULL COMMENT 39。 用户的 EMail39。 , `Vote_Area` varchar(100) default NULL COMMENT 39。 用户所在地区 39。 , `Vote_AreaCount` int(11) NOT NULL default 39。 139。 COMMENT 39。 所在地区的计数 39。 , `Vote_Occupations` varchar(100) default NULL COMMENT 39。 用户的职业 39。 , `Vote_OccupationsCount` int(11) NOT NULL default 39。 139。 COMMENT 39。 用户的职业的计数 39。 , `Vote_Question1` varchar(11) NOT NULL COMMENT 39。 问题 1 的内容 39。 , `Vote_Question1Count` int(11) NOT NULL default 39。 139。 COMMENT 39。 问题 1 的计数 39。 , `Vote_Question2` varchar(11) NOT NULL COMMENT 39。 问题 2 的内容 39。 , `Vote_Question2Count` int(11) NOT NULL default 39。 139。 COMMENT 39。 问题 2 的计数 39。 , `Vote_Question3` varchar(11) default NULL COMMENT 39。 问题 3的内容 39。 , `Vote_Question3Count` int(11) NOT NULL default 39。 139。 COMMENT 39。 问题 3 的计数 39。 , `Vote_Question4` varchar(20) default NULL COMMENT 39。 问题 4的内容 39。 , `Vote_IP` varchar(16) default NULL COMMENT 39。 用户的 IP地址,其不能重复。 39。 , PRIMARY KEY (`Vote_ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8。 Flex Vote System 的命名规则和结构 端的文件结构和命名 根据本系统的功能模块设计,结构模块设计和数据库逻辑结构设计,可以得出以下结论。 JSP 端的动作:得到用户 IP 地址,查询用户的 IP 地址,查询用户的 Email 地址,用户信息和投票结果的插入,用户所在地区的查询,用户职业的查询,问题 1~问题 3投票结果的查询。 根据以上结论可以得出 WebContent(也就是存放 JSP 的文件夹 )包含如下 JSP 文件: 二、 功能描述:取得用户 IP 地址,然后将 IP地址进行数据库的查询操作,并把查询后的结果 以 XML 的形式封装起来。 三、 功能描述:取得由 Flex 端传送过来的 Email 地址,据其进行数据库的查询操作, 并把查询后返回的结果以 XML 的形式封装起来。 四、 功能描述:取得 Flex 端传送过来的用户信息和投票结果,据其进行数据库的插入操作,并把插入后的结果以 XML的形式封装起来。 五、。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。