基于FLEX的在线投票系统的分析与设计毕业论文 精品.docx
《基于FLEX的在线投票系统的分析与设计毕业论文 精品.docx》由会员分享,可在线阅读,更多相关《基于FLEX的在线投票系统的分析与设计毕业论文 精品.docx(69页珍藏版)》请在冰豆网上搜索。
基于FLEX的在线投票系统的分析与设计毕业论文精品
长 沙 学 院
CHANGSHAUNIVERSITY
毕业设计(论文)资料
设计(论文)题目:
基于FLEX的在线投票系统的分
析与设计
系 部:
计算机系
专业:
计算机科学与技术
学生姓名:
班级:
指导教师姓名:
最终评定成绩
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
第一部分毕业论文
一、毕业论文
第二部分外文资料翻译
一、外文资料原文
二、外文资料翻译
第三部分过程管理资料
一、毕业设计(论文)课题任务书
二、本科毕业设计(论文)开题报告
三、本科毕业设计(论文)中期报告
四、毕业设计(论文)指导教师评阅表
五、毕业设计(论文)评阅教师评阅表
六、毕业设计(论文)答辩评审表
2009届
本科生毕业设计(论文)资料
第一部分毕业论文
(2009届)
本科生毕业论文
基于FLEX的在线投票系统的分析与设计
系 部:
计算机系
专业:
计算机科学与技术
学生姓名:
王熹
班级:
05数库5
学号2005021804
指导教师姓名:
周景
职称讲师
最终评定成绩
2009年6月
长沙学院本科生毕业论文
基于FLEX的在线投票系统的分析与设计
系(部):
计算机系
专业:
计算机科学与技术
学号:
2005021804
学生姓名:
王熹
指导教师:
周景讲师
2009年6月
摘要
为了提高用户体验性,出现了一种新的互联网技术,即RIA(RichInternetApplication),基于FLEX的投票系统便具有RIA的特性,这一新的投票系统采用Flex+JSP+MySQL的构架,提高了用户的视觉感受,能更直观的反映出投票结果。
通过这个系统的开发过程,展示了Flex利用HTTPService通信方式,结合JSP实现对数据库访问的全过程,这个系统是使用典型的三层体系结构来构筑的,在开发过程中可以对三层体系结构有一个全面的认识
本系统开发的难点就在于,开发环境的搭建,系统分析的过程,三层架构的理解,ChartViewDialog的states和transition的实现,语言切换的实现。
如何去一步一步的解决这些困难,并最终开发出这个系统,是本次设计开发过程的主要目标,在正文中将会详细介绍。
关键词:
Flex,JSP,投票,数据库
ABSTRACT
Inordertoenhancetheuser’sexperience,anewnetworktechnologynamedRIA(RichInternetApplication)hasemerged.ThevotingsystembasedonFLEXhasthecharacteristicofRIA.ThisnewvotingsystemadoptsthestructureofFlex+JSP+MySQLtoimprovetheuser’svisualsensibility,whichcanmoredirectlyreflecttheresultofavote.ThewholedevelopingprocessofthissystemdemonstratesthatFlexcanmakeuseofHTTPServiceasacommunicationalmethodtocombineJSPandcompletethewholeprocessofvisitingthedata.Thissystemisbuiltonatypicalthree-levelstructure.Inthedevelopingprocess,wecanhaveacomprehensiveunderstandingofthethree-levelstructure.
Thedifficultyindevelopingthissystemliesintheestablishmentoftheenvironmentfordevelopingthesystem,theprocessofanalyzingthesystem,understandingofthethree-levelstructure,realizationofthestatesandtransitionofChartViewDialog,aswellasrealizationoflanguagetransition.Theprimarytaskofthisdesignanddevelopingprocessistoworkouthowtosolvetheproblemsstepbystepandsuccessfullydevelopthissystem,whichwillbeelaboratedinthepaper.
2.4数据库需求分析4
第1章绪论
Flex是Macromedia发布的presentationserver(展现服务),它是javawebcontainer或者.netserver的一个应用,根据.mxml文件(纯粹的xml描述文件和actionscript)产生相应的.swf文件,传送到客户端,由客户端的flashplayer或者shockwaveplayer解释执行,给用户以丰富的客户体验。
运用Flash是完全可以做到flex的效果的,为什么还需要flex呢?
这里面有两个原因:
1:
为了迎合更多的开发者。
Flash天生是为了设计者设计的,界面还有flash的动画概念和程序开发人员格格不入,为了吸引更多的jsp/asp/php等程序员,Macromedia推出了Flex,用非常简单的.mxml来描述界面给jsp/asp/php程序人员使用.(x/d)html非常相似,而且mxml更加规范化、标准化。
什么是RIA:
传统网络程序的开发是基于页面的、服务器端数据传递的模式,把网络程序的表现层建立于HTML页面之上,而HTML是适合于文本的,传统的基于页面的系统已经渐渐不能满足网络浏览者的更高的、全方位的体验要求了。
而富互联网应用(RichInternetApplications,缩写为RIA)的出现就是为了解决这个问题。
富互联网应用程序是下一代的将桌面应用程序的交互式用户体验与传统的WEB应用的部署灵活性和成本分析结合起来的网络应用程序。
富互联网应用程序中的富客户技术通过提供可承载已编译客户端应用程序(以文件形式,用HTTP传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接现有的后端应用服务器,这是一种安全、可升级、具有良好适应性的新的面向服务模型,这种模型由采用的WEB服务所驱动。
结合了声音、视频和实时对话的综合通信技术,使富互联网应用程序(RIA)具有前所未有的网上用户体验。
AdobeRIA技术封装让现有的WEB技术得到了极大的保留,核心价值在于大大提高了产品设计师和开发工程师的“开发体验”,强化了设计端和开发端的整合。
设计师和开发工程师们可以方便地将自己的代码平移到新的平台上,并且发布、部署的方式比之前的任何一款开发工具都方便得多,从而使RIA应用有更广大的开发者基础。
本系统采用的这一新技术,是基于Web形式并以C/S为构架,同时结合了传统应用程序的反应快,交互性强的优点以及Web应用程序的传播范围广的特点,大大提高了用户体验性,简化并改进了传统应用程序的用户交互性。
随着计算机技术的飞速发展,现在基于RIA的主流技术除了Flex,还有ajax,silverlight等等,为什么又从中选择Flex呢?
因为flex做的界面又好看,又方便,也不难学,还有强大的IDE支持,而ajax做UI的时候,主要是靠JS,要实现一些比较复杂的效果,特别麻烦。
追求UI的漂亮纵然不是最主要的,但是有些比较复杂的业务,往往需要“特别的”界面来提高操作的便捷性,这一点上,flex又稍胜一筹。
现在作为针对个人或企业级的应用设计,Flex比较有前途,因为它容易上手,美观,灵活,速度快。
但为什么没有更多的开发者使用Flex呢?
首先就是针对flash来做企业级应用的不信任。
再者,adobe主要针对的是java开发者,而对于.net开发者的努力应该是没有甚么作用的,.net开发者习惯了使用微软的东西,比较有专属性,而且有WPF这个平台,为甚么要选择Flex呢。
在图形引擎方面,flash始终无法和WPF相媲美,技术上的差距还很明显。
另一方面说,Flex也不能吃掉ajax阵营,毕竟基于浏览器的应用长期存在了这么多年,熟悉html和javascript的开发者又那么多,想让传统web开发者转到Flex上面,那是不太可能的事情。
唯一有可能的事情就是原来使用flash开发应用的和使用swing/awt的开发者转到flex/apollo平台下。
综上所述,一种新技术的出现,是需要开发者的研究与推广才能使其普及的,而Flex作为一项针对企业或个人应用的计算机技术,在未来必定有其光明的前途,这也正是这次研究学习的主要目的。
第2章需求分析
2.1项目背景
2.1.1选题依据
随着电子商务的发展,各行各业的企业都建立的自己的网站,展示宣传自己的产品。
Web宣传方式与传统宣传方式相比,网络推广更具优势,成本低,容易维护,只要用户联网任何时候都可以查看信息,而传统的网络程序一般都采用页面表现内容、由服务器来传递数据的开发模式,在页面中使用HTML标记语言来表现界面层,而HTML只适用于图文内容,在形式上受到很多限制,已渐渐不能满足网络浏览者更高的全方位的体验要求,而Flex的出现就是为了解决这个问题。
2.1.2Flex的特性及优势
AdobeFlex是一个针对企业级互联网应用的表示层解决方案,具体来说Flex是一种应用框架。
Flex的代表性特性:
a.使用矢量图形;b.丰富的组件库;c.对多媒体广泛支持;d.数据处理能力强,除了可以加载XML文件和其他文本资料外,Flex还可以和ASP、ASP.NET、PHP、JSP等多种服务器端程序通信,连接远程WebService,还支持Remoting和Socket等高级数据通信方式。
这种RIA的富客户端采用异步方式和服务器通信,是种安全的、具备良好适应性的服务器运行模式。
Adobe公司开发的FlexBuilder3.0是一个在开放式的平台Eclipse的基础上从头编写,并集合了FlexFramework和ActionScript3.0的功能强大的开发工具。
2.1.3设计思路
采用最常用的C/S(三层结构)Flex+JSP+MySQL架构,Flex为客户端,JSP为服务器端,MySQL为DB端。
用户界面层(Flex端),业务逻辑层(JSP端),数据储存层(DB端)三种模块独立存在。
用户界面层向业务逻辑层发出请求后,业务逻辑层根据用户界面层发送过来的请求进行分类处理后,再发送到数据储存层。
而业务逻辑层会把数据储存层返回的结果(数据)封装成用户界面层可以接受的形式,再反馈给用户界面层,最后由用户界面层表示出来。
2.2本系统的功能和应用背景
本系统的功能:
采用Flex+JSP+MySQL架构的Flex版的投票系统,具有RIA(富互联网技术)的特性,具有更佳的用户体验性,并且可以直观的反映出投票结果,同时严格按照每个IP地址只能投票一次的限制来实施,这样避免了重复投票的可能性。
本系统的应用背景:
可以运行在任何一个使用浏览器进行投票的项目上,由于采用的是MySQL数据库,所以在体积和灵活性上面具有很强的优势,一般应用于个人,中小企业的在线投票项目。
2.3系统数据流图
图2.1系统数据流图
数据流图标示着系统的数据流向情况,可以对系统的数据处理有更细致的了解。
该系统对个人信息录入包括个人基本信息和四个问题选择,用于最终数据统计,并用饼状图显示统计结果。
2.4数据库需求分析
数据库的设计对于一个程序来说起着非常重要的作用,只有一个设计完善的数据库才能给程序带来更高的运行效率,同样也能给程序带来更加健壮的可扩充性。
所以说数据库设计是一个程序的根本所在,只有构建一个高效率的数据库,用户界面层和数据逻辑层才能更加有效的配合。
用户的需求体现在各种信息的提供,保存,更新和查询上面,这就要求数据库的结构设计能充分满足各种信息的输入和输出。
收集基本数据,数据结构及数据处理的流程,然后组成一个详尽的数据字典,可以给后面具体设计打下基础。
针对这个投票系统的需求分析,总结出如下的需求信息:
第一,同一个IP地址和Email地址的用户只能投票一次。
第二,对每一个不同的用户,都会保存这个用户的姓名,IP地址,Email地址,用户所在地区,用户职业和问题1~问题4的投票结果。
第三,查询投票信息的时候可以查询问题1~问题3的投票次数。
第四,查询投票信息的时候可以查询用户所在地区的投票次数。
根据上述的需求分析,本系统将设计出如下所示的数据项和数据结构。
第一,用户信息所包括数据项:
姓名,Email,职业,职业的计数,地区,地区的计数,用户的IP地址。
第二,投票信息所包括的数据项:
问题1的投票结果,问题1的计数,问题2的投票结果,问题2的计数,问题3的投票结果,问题3的计数,问题4的投票结果。
2.5数据库的E-R图
图2.2~图2.4说明了用户信息和投票信息这两个数据结构的关系:
图2.2实体之间关系的E-R图
图2.3用户信息的实体E-R图
图2.4投票信息的实体E-R图
第3章概要设计
3.1系统分析
本系统采用的是传统软件编程最常用的C/S构架(三层结构),Flex端为客户端,JSP为服务器端,MySQL为DB端。
每个部分的知识体系需详细了解及熟悉掌握。
采用三层结构的好处:
用户界面层(Flex端),业务逻辑层(JSP端),数据储存层(DB端)三种模块独立存在,这样的程序具有更强的松耦合性,程序流程更加清晰。
本系统所采用的数据库管理系统为MySQL,与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但对于一般的个人使用者和中小型企业来说,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语句。
3.2系统运行环境的构筑
要顺利设计出这个Flex版投票系统,JSP端和DB端的环境构筑是重中之重。
以下就是需要构筑和测试的环境:
JDK的配置,Tomcat的配置,Eclipse的配置,JDK+Tomecat+Eclipse环境构筑的测试,MySQL的配置,JSP带数据库的测试,FlexPlug-inForEclipse的配置,在Eclipse中测试Flex的编译和运行。
特别需要说明的是,由于时间先后不同,不同版本软件可能导致兼容性问题。
3.3系统功能模块和结构设计
本系统需要实现的具体功能是可以存储用户录入的信息,并且用户的Email地址和IP地址不能重复使用,最后将用户的投票结果以饼形图的方式展现出来。
本系统具体包含的功能模块有:
用户登陆模块设计,用户信息录入模块设计,用户投票模块设计,用户查询投票信息模块设计共四个部分。
用户登陆模块的设计思想:
当程序刚刚运行的时候(程序初始化阶段),Flex端使用HTTPService调用JSP端,以便取得用户的IP地址,JSP端通过业务逻辑处理(组成SQL语句)后发送给DB端,DB端再根据发送过来的SQL语句执行某些操作(插入,查询等操作)。
再将操作的结果返回给JSP端,而JSP端将DB端返回的结果封装成XML,最后被Flex端接收。
如果Flex端接收的XML内容是Successful则跳转到用户信息录入模块。
如果接收的XML内容是Unsuccessful,则说明这个IP地址已经有过一次投票了,不允许进行第二次投票,所以将会在Flex端弹出一个错误信息并终止程序的运行,这就是用户登陆模块的设计思想,如图3.1:
图3.1用户登陆模块设计
用户信息录入模块的设计思想:
当程序运行到这个模块时需要用户录入姓名,Email地址,用户选择所在地区及职业,其中必须对用户的Email地址进行有效性CHECK,这样才能使程序更具有真实性。
当用户信息录入完毕后,将用户的Email地址通过HTTPService的方式发送到JSP端,然后JSP端再组成SQL语句发送到DB端,而DB端得到JSP端发送过来的SQL语句进行查询操作(查询是否存在相同的Email地址),并将查询的结果返回给JSP端。
JSP端将得到的结果封装成XML发送到Flex端,Flex端接收的XML为Successful则继续下一个模块,如果为Unsuccessful则说明Email地址已经被注册了,由于Email地址不允许重复注册,所以将弹出提示信息,如图3.2:
图3.2用户信息录入模块设计
用户投票模块的设计思想:
用户在这个模块中,首先需要对问题1~问题4四个项目进行投票,然后Flex端将用户录入的信息和问题1~问题4的投票结果以HTTPService方式发送到JSP端,JSP端将这些得到的信息组成SQL语句后发送给DB端,DB端则对发送过来的SQL语句进行插入操作,并将结果返回给JSP端,JSP端对这些返回的结果进行封装,最后被Flex端接收,如果Flex端接收的XML为Successful说明插入成功,如果为Unsuccessful说明插入失败。
如图3.3:
图3.3用户投票模块设计
用户查询投票信息模块的设计思想:
当程序运行到这个模块时,说明用户的信息和投票结果已经正确的插入到数据库中,用户将看到五个饼形图,包括:
用户所在地区的饼形图,用户职业的饼形图,问题1~问题3的饼形图,如图3.4:
图3.4用户查询投票信息模块设计
第4章详细设计
4.1MySQL端的设计
4.1.1对FlexVoteSystem表的设计
表4.1flexvote表
No
字段
类型
是否为空
键值
默认值
Extra
1
Vote_ID
Int(11)
NOTNULL
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)
NOTNULL
--
1
--
6
Vote_Occupations
Varchar(100)
NULL
--
NULL
--
7
Vote_OccupationsCount
Int(11)
NOTNULL
--
1
--
8
Vote_Question1
Varchar(11)
NULL
--
NULL
--
9
Vote_QuestionCount
Int(11)
NOTNULL
--
1
--
10
Vote_Question2
Varchar(11)
NULL
--
NULL
--
11
Vote_QuestionCount
Int(11)
NOTNULL
--
1
12
Vote_Question3
Varchar(11)
NULL
--
NULL
--
13
Vote_QuestionCount
Int(11)
NOTNULL
--
1
--
14
Vote_Question4
Varchar(11)
NULL
--
NULL
--
15
Vote_IP
Varchar(11)
NULL
--
NULL
--
4.1.2编写FlexVoteSystem的SQL语句
本系统使用的数据库名称为flexvote,以下就是FlexVoteSystem系统的表建立时所使用的SQL语句:
CREATEDATABASE`flexvote`/*!
40100DEFAULTCHARACTERSETutf8*/;
USE`flexvote`;
CREATETABLE`db_vote`(
`Vote_ID`int(11)NOTNULLauto_increment,
`Vote_Name`varchar(100)defaultNULLCOMMENT'用户的姓名',
`Vote_Email`varchar(100)defaultNULLCOMMENT'用户的E-Mail',
`Vote_Area`varchar(100)defaultNULLCOMMENT'用户所在地区',
`Vote_AreaCount`int(11)NOTNULLdefault'1'COMMENT'所在地区的计数',
`Vote_Occupations`varchar(100)defaultNULLCOMMENT'用户的职业',
`Vote_OccupationsCount`int(11)NOTNULLdefault'1'COMMENT'用户的职业的计数',
`Vote_Question1`varchar