




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要在积极建立科学管理机制的今天,仅仅靠原始的手工管理或简单的单机管理,管理部门面对大量的信息,无法有效率地将其中的重要部分提取出来,并做出相应的判断和处理。投票管理者的决策只能依据手工表数据,在浪费大量人力、物力的同时无法做到实时监控,难以保证数据的准确性和及时性。因此,先进的管理思想就成为了一个可望而不可及的目标。投票非常急需一套既有先进管理思想的系统,作为实现目标和提高现有投票管理水平的一种重要手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,在先进的计算机技术、通信技术、控制技术及IC卡技术基础上,采用系统集成方法,逐步建立一个智能化的投票系统。编写在线投票系统,最重要的就是如何从烦琐的投票结果中,能够实时性对用户投票进行添加,对用户因为人为原因造成的误投,错投进行删除,及时导出全部投票项目的票数,根据各个投票项目的统计票数,进行票数百分比计算,满足用户的实时性查询。在对在线投票系统进行管理时,不同权限的用户可以分别登录,包括管理员权限和普通用户权限,可以对管理员的个人信息进行检索。为了应对截止时间的限制,还应设定在线显示系统时间。关键字:JSPACCESE数据库投票系统管理系统天气系统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.Keywords:JSPTechnologyACCESEdatabas目录TOC\o"1-3"\u第一章 问题来源 11.1开发背景 11.2开发的可行性分析 21.2.1技术可行性 21.2.2经济可行性 21.2.3操作可行性 3第二章 基础理论知识 42.1Access数据库简介 42.2Jsp编程语言 52.3SQL语句 52.4数据库系统 6第三章 需求分析 93.1系统研究目标 93.2系统主要特色 93.3模块功能需求 93.4性能需求 103.5功能需求 103.6数据流图 113.7数据字典 14第四章 总体设计 154.1总体设计 154.2系统功能逻辑结构 174.3系统功能模块的设计 194.4系统协作图 22第五章 数据库设计 265.1数据库设计的基本步骤 265.2需求分析 275.3数据库的概念设计 285.4数据库逻辑结构设计 30第六章 详细设计 326.1管理员登录模块 326.2投票首页模块 336.3投票实现模块 356.4投票结果模块 366.5投票项目管理模块 376.6天气查询模块: 41第七章 系统实现 437.1投票首页模块 437.2投票项目管理模块 447.3管理员身份认证模块 457.4天气查询模块 46结束语 48参考文献 50
问题来源1.1开发背景随着INTERNET的发展,世界网民的数量急剧增加,社会的信息化强度增强,企业竞争之激烈,故对市场信息的掌握范围不仅仅是周边的一些信息,而应把范围扩展到全国,甚至全世界,INTERNET恰恰是实现这目标的有利工具。对于新产品,新观点的调查范围应该更广泛,消息应该及时反馈给企业单位,故一个网上在线投票系统应允而生,它正好充分满足客户的需求,信息反馈的范围扩大,人力资源的节省,从而使得企业在竞争激烈的市场中拥有更强大的资本。开发此投票系统是为了更好的把市场的信息更准确更快速的反馈给客户,使信息的来源更广泛,从而提高信息的准确性。运用此系统可以降低企业为市场调查而消耗的人力和物力,利用节省的资源提高产品的质量,增强竞争力。一个网站不断发展的前提就是众多用户的支持,一个好的网站一定要注意与用户之间信息的交流。能够有效得到用户反馈的信息,并及时对网站内容进行改进,这也是一个网站持续发展的基础。也正是由于以上原因,网络上各式各样的投票系统层出不穷。本次课程设计的目的,就是来制作一个在线投票系统,该系统可以实现对投票数量进行累加、查询、统计票数等操作。在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。决策者通过这些统计数据做出相应的决策。在线投票系统是一般网站必备的程序之一。我设计的投票系统主要是针对网民对于现阶段全国名牌大学的综合实力进行排名,为想要报考这些院校的学生提供一定的参考。1.2开发的可行性分析1.2.1技术可行性(1)操作系统:Windows2000Server及以上服务器版本;(2)数据库管理系统:SQLServer2000;(3)服务器:Tomcat5(4)编程工具:编程软件为MyEclipse5.5,编程语言选用Jsp。1.2.2经济可行性1.支出(1)系统开发费用1)人员费用:本系统开发期为三周,试运行一周。开发期需要开发人员1人,试运行期需要开发人员1人。人员费用为0.4万元。2)设备费:本系统所需的硬件设备费用为0.6万元。3)不可预见费:按开发费用的15%计算。(2)系统运行费用1)系统维护费:需要6人/年进行系统维护,维护费为1.8万元2)设备维护费:设备更新费为0.6万元。设备维护费为0.6万元。3)消耗材料费:每年按600元计算。2.收益(1)提高工作效率(2)减少工作人员。1.2.3操作可行性本在线投票系统的用户只需懂得运用互联网络者均可以使用,此系统在网站中的使用频度预计非常的频繁;该系统属于实用型网站,需要对数据的处理,比如对投票票数的统计并把结果反馈给投票者,故对数据的及时更新要求较高,保证数据的真实性。该系统在任何操作系统下都可以运行,但必须装有SQL2000数据库。该系统的操作包括:单选投票、删除投票、添加投票、查看投票。单选投票:用户只能从多个选项中选取一项进行投票。删除投票:管理员对大学进行删除。添加投票:管理员对大学进行添加。查看投票:提供用户查看当前投票情况,投票结果以条形图显示。基础理论知识2.1Access数据库简介ACCESS是桌面型数据库,优点是:操作灵活、转移方便、运行环境简单,对于小型网站的数据库处理能力效果还不错。缺点是:不支持并发处理、数据库易被下载存在安全隐患、数据存储量相对较小、数据量过大时严重影响网站访问速度和程序处理速度。2.2Jsp编程语言JSP编程语言的特点:将内容的生成和显示进行分离生成可重用的组件采用标识简化页面开发JSP能提供所有的Servlet功能健壮的存储管理和安全性 一次编写,随处运行JSP的平台适应性更广Java中连接数据库的技术是JDBC简单易学软件编程体系简介JSP体系结构:在JSP中,SERVLET作为服务器与客户端的接口,接受来自用户的参数,并响应用户的请求;JAVABEAN用于逻辑功能的实现;JSP编程技术对于数据进行显示;JDBC作为JSP与数据库的接口;XML为扩展的标记语言,可以定义自己的标记语言。2.3SQL语句SQL分类:数据定义语言(DDL):CREATE,ALTER,DROP,DECLARE数据操作语言(DML):SELECT,DELETE,UPDATE,INSERT数据控制语言(DCL):GRANT,REVOKE,COMMIT,ROLLBACK2.4数据库系统与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面:数据结构化:在文件系统中,尽管其记录内部已有了某些结构,但记录之间没有联系。而数据库系统则实现了整体数据的结构化,这是数据库的主要特征之一,也是数据库与文件系统的本质区别。数据的共享性高、冗余度低、易于扩充数据库系统从整体角度看待和描述数据,数据不再面向某个特定的应用程序,而是面向整个系统;因此,数据可以被多个用户、多个应用程序共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。数据独立性高数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。也就是说,数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样一来当数据的物理存储结构改变时,用户的程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不改变。数据由DBMS统一管理和控制数据库的共享是并发的(concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。DBMS必须提供以下几方面的数据控制功能:数据的安全性保护(security)数据的完整性检查(integrity)数据库的并发访问控制(concurrency)数据库的故障恢复(recovery)数据库管理阶段应用程序与数据之间的对应关系如图1.3所示需求分析3.1系统研究目标该系统的研究目标:在国际金融危机的背景下,我国就业压力矛盾显著突出,为追求更高的生活品质,人们开始了对更高学历的追求,考名牌大学,考名牌研究生成为他们的目标与动力。为此,本系统号召网民对心目中最牛的大学进行投票根据投票结果对我国大学的综合实力进行排名,给用户以实时性的信息,为用户在报考院校时提供参考依据;此系统将以图形化的界面来显示投票结果,一目了然的回馈客户的的需求信息。3.2系统主要特色本在线投票系统具有的主要特色:其一,方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在线投票管理系统运用计算机和其他附加设备,不再需要手工操作,基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。其二,友好的界面。友好的用户界面会给人一种亲切的感觉,在使用起来不会觉得沉闷,效率自然也会提高了。其三,强大的功能,能够满足各种统计需要,实现快速简单统计。3.3模块功能需求各个模块所对应的需求如下:a投票首页模块:该模块面向对象为所有访问页面用户,其中包括:当前系统时间的显示,实现截止时间的要求;管理员信息的查询,登录用户信息的显示;对心目中的大学进行投票,并对结果进行查询。b 投票实现模块:此模块供用户对投票项目进行投票所用。在投票首页上,将会显示最近一个投票项目和其他投票列表,用户可自由选择那些尚未过期的项目进行投票。投票操作具体为:用户选择一个选项,提交,即可投票成功,此时页面会跳转至显示投票结果的页面。c 投票结果模块此模块供用户查看该项目已有的投票情况。投票结果显示页面会显示相应投票选项的得票率和该项目总的得票数。d 管理员登录模块该模块用于管理员登录。登录验证后,管理员才可以对投票信息进行维护。如增删投票项目等。e 投票管理模块此模块为管理员操作的模块。管理员登入系统后,可对本系统的所以投票项目进行相应的管理,如:添加投票项目,删除投票项目等。3.4性能需求本系统可用普通PC,windowsXP系统,对硬件无很大要求。3.5功能需求本系统具体要实现的功能内容包括: 数据库选择 数据库接口的实现 数据库建模方法 程序开发软件 需求分析 需求的提取 需求定义与规约 系统总体设计 系统结构图 数据功能模块设计 系统的主要功能设计 投票界面模块的设计 投票项目模块的设计 投票结果模块的设计 用户信息模块的设计 管理员登录的设计与实现3.6数据流图一符号定义1数据的源点或终点2变换数据的处理3数据存储4数据流二数据流图的组成元素源点\终点处理用户计算信息添加记录删除记录数据流数据存储用户登录信息投票结果普通用户信息管理员信息投票信息用户计算信息用户计算信息投票结果投票结果投票结果添加记录信息管理员信息验证信息用户登录信息删除表项、添加表项首页投票信息管理员信息页面普通用户信息页面首页显示页面删除记录信息3.7数据字典名字:认证界面名字:认证界面别名:描述:对当前用户进行认证定义:普通用户+管理员+其他位置:身份认证界面页面名字:管理界面别名:描述:对投票项目进行添加和删除定义:添加投票项目+删除投票项目位置:管理界面名字:用户登录界面别名:描述:用户进行操作页面定义:投票+查询信息+管理登录位置:首页总体设计4.1总体设计该部分将对系统进行总体设计,包括系统逻辑图,功能模块的概要设计,交互界面设计等内容,采用软件工程设计思想,为详细设计打好基础。基本设计概念和系统总流程图;本系统的总流程图如下图所示:前台用户界面后台数据库管理前台用户界面后台数据库管理查看投票结果选择项目投票登录界面在线投票系统选择身份输入信息判别身份普通用户信息界面普通用户管理员用户界面用户界面管理选项管理选项用户界面删除项目添加项目管理员信息4.2系统功能逻辑结构本系统按照功能逻辑分为五个板块:投票首页模块,投票实现模块,投票结果模块,管理员登录模块,投票项目管理模块。具体功能逻辑图如下:在线投票普通用户管理员登陆模块在线投票普通用户管理员登陆模块投票管理模块投票首页模块管理员信息模块添加投票模块删除投票模块投票结果模块投票实现模块4.3系统功能模块的设计用户投票模块管理员登录模块管理员添加投票项目模块管理员删除投票项目模块4.4系统协作图用户投票模块用户添加投票项目模块管理员登录模块管理员添加投票项目模块管理员删除投票项目模块数据库设计5.1数据库设计的基本步骤需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护5.2需求分析需求分析简单地说就是分析用户的要求。需求分析是数据库的起点,需求分析的结果是否准确地反映了用户的实际要求将直接影响到后面各个阶段的设计,并影响到设计的结果是否合理和实用。信息要求用户从数据库中得到想要投票支持的大学处理要求系统将投票结果进行保存,并对最终结果进行统计反馈给用户。安全性和完整性要求管理员可以对项目进行添加和删除操作,普通用户不能操作。数据库中的数据表:voteidnotec_num1清华大学102北京大学103复旦大学104武汉大学105中山大学456西安交大397北京邮电大学158长春工业大学人文信息学院155.3数据库的概念设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。概念结构的主要特点:能真实、充分的反映现实世界。易于理解。易于更改。易于向关系、网状、层次等各种数据模型转换。系统E—R图设计与分析 符号说明:属性:属性:联系名:实体型:两个实体间的联系:一对一联系(1:1)一对多联系(1:m)多对多联系(m:n)系统E—R图如下: 5.4数据库逻辑结构设计逻辑结构的任务就是把结构设计阶段设计好的基本E-R图转化为DBMS产品所支持的数据模型相符合的逻辑结构。逻辑结构设计步骤:关系逻辑结构:投票项目选项表:详细设计6.1管理员登录模块程序页面名称:admin_login.html程序功能:实现管理员的登录,以便进行投票项目的管理。权限范围:整个投票系统的管理员输入数据:管理员账号和密码输出数据:无程序简单逻辑:输入管理员用户名和密码,回车确认检查输入是否合法,合法跳入admin.jsp,不合法跳入check_login.jsp,并提示错误根据所获得的用户名、密码合法信息,跳入投票项目管理页面,进行已存在的投票管理。程序流程图:用户登录用户名和密码用户登录用户名和密码管理信息判别普通用户不正确正确投票项目管理页面6.2投票首页模块程序页面名称:shouye.jsp程序功能:用于显示当前你认为哪所大学综合实力最强进行投票、并对投票结果进行查询。权限范围:所有浏览本投票系统的用户输入数据:想要投票的大学输出数据:将所有用户的投票结果进行显示。程序简单逻辑:访问此投票系统的首页,如果是普通想要进行投票的用户,则直接点击想要投票的项目主题。如果是管理员想进行投票项目管理,则在页面的管理员界面登录,进入管理页面。普通的投票用户点击投票主题后就转入了投票结果页面。程序流程图:投票系统首页投票系统首页用户身份普通用户投票管理界面6.3投票实现模块程序页面名称:details.jsp程序功能:选中当前投票主题的一个选项,提交信息后,进入投票实现模块,该模块将会修改投票结果记录,并将结果进行显示。权限范围:所有进入本投票系统投票的用户输入数据:投票用户的id,投票项目的主题。输出数据:显示该投票项目的投票结果程序简单逻辑:点击首页的某个投票项目主题,选择一个投票选项,确定后点提交;。提交投票后,系统会对相应的数据库表做处理,vote表中选中的c_num值和加1;最后,会跳转到投票结果显示页面,用户即可看到刚刚投票项目的投票结果。程序流程图:投票主题投票主题提交数据库表处理投票结果显示页面6.4投票结果模块程序页面名称:details.jsp程序功能:该页面显示投票结束后被投票项目的投票结果,该模块以数字的形式显示各选项的投票率,并且显示当前时间、投票截止时间和投票总数等信息。权限范围:访问投票系统并进行过项目投票的所有用户均可看到投票结果。输入数据:无输出数据:数字和文字相结合的投票结果显示程序简单逻辑:此模块相对较简单,承接投票实现模块;当对投票项目进行完投票提交后,相应的数据库表内容也被修改了,接下来就是用数据库选择语句把需要显示的信息筛选出来,显示在页面上。程序流程图:首页首页投票结果显示页面查询当前时间截止时间6.5投票项目管理模块添加投票项目子模块:程序页面名称:addvote.jsp程序功能:通过管理员认证进入添加投票项目页面,填写需要添加的投票项目的内容,如:想要投票支持大学的名称,填写完毕后提交即可,新的投票项目就会显示在主页面上。权限范围:系统管理员输入数据:支持的大学名称。输出数据:投票系统首页,并且可以看到刚刚添加的新投票项目作为最新投票项目在投票项目列表的最后一个。程序简单逻辑:在系统首页时,管理员先登录进入管理系统,再通过身份认证,即可进入添加投票项目页面;该页面有一个对投票主题进行添加的文本框,主要就是对投票项目内容的详细添加;填表完成后提交,此时转入数据库后台处理。完成后,数据库的vote表中就多了一条记录,添加新项目页面也转回投票系统首页,可供用户继续进行其他操作。程序流程图:投票系统首页管理界面身份认证投票系统首页管理界面身份认证项目添加首页返回删除投票项目子模块:程序页面名称:delvote.jsp(主要是一些删除函数的处理)程序功能:当某些投票项目不属于本次投票的范围如:牛津大学,还有一些因为管理员失误而造成其成为投票项目,管理员已经不再需要时,便可对该项目进行删除操作,。权限范围:系统管理员输入数据:需要被删除的投票项目主题输出数据:从新弹出首页,不再有删除的项目。程序简单逻辑:在系统首页,管理员登录进入管理系统页面,在要删除的投票项目主题旁单击删除超链接,转到delvote.jsp处理页面;通过其中的SQL语句DELETEFROMVOTE删除整个投票项目,提取相应的关联索引信息,去数据库vote表中搜寻相应的投票记录,进行删除处理;确认删除后,回到系统管理界面,此时可以看到,刚被删除的投票项目已不在投票项目列表中。程序流程图:投票系统首页投票系统首页管理界面身份认证项目删除首页返回6.6天气查询模块:程序页面名称:3.jsp程序功能:对今日黑龙江、长春、沈阳三省中各主要城市的天气情况进行查询权限范围:所有进入本投票系统投票的用户输入数据:无输出数据:对想要查询的城市进行选择,提交后显示当地的天气。程序简单逻辑:所有进入本投票系统投票的用户都可以对天气情况进行查询,用户首先进入城市选择页面3.jsp,选择城市后提要。后台页面处理后显示今日天气。程序流程图:投票系统首页投票系统首页天气查询选择城市城市天气后台处理系统实现7.1投票首页模块这是整个投票系统的首页,主要的一块儿就是列出所有投票项目,左上角为当前系统时间,还可以对今日各省市的天气情况进行查询,还可以进入管理系统。具体界面设计图如下:7.2投票项目管理模块添加新投票项目和删除投票项目界面设计:7.3管理员身份认证模块通过用户名、密码、登录类型的输入判别当前用户是否可以进入管理系统;普通用户用户无权进入。普通用户登录时:7.4天气查询模块所有进入本投票系统投票的用户都可以对天气情况进行查询,用户首先进入城市选择页面,选择城市后提要,后台页面处理后显示今日天气。结束语第一,由于本系统是用jsp编写的,所以基于jsp本身有些缺点,所以使得本系统代码执行起来效率还是相对较低,而且它只有非类型语言:,Javascript。所以相对其他语言,比较不那么灵活,代码重用性也相对差些,不过简单易懂,还是它的优点的。第二,因为本系统使用access数据库,而ACCESS是小型数据库管理系统,它对并发操作的控制和数据库安全性方面远没有SQL强大,所以适合较小的系统,用于本次毕业设计也比较适合。第三,总的来说,此系统的功能基本满足用户需求,性能基本达到要求,具有可用性和友好性。致谢本次毕业设计,是在金龙海老师精心指导和大力支持下完成的。金龙海老师以其严谨求实的治学态度、高度的敬业精神、兢兢业业、孜孜以求的工作作风和大胆创新的进取精神对我产生重要影响。他渊博的知识、开阔的视野和敏锐的思维给了我深深的启迪。同时,在此次毕业设计过程中我也学到了许多了关于本专业方面的知识,编程实践技能有了很大的提高。另外,我还要特别感谢大学四年教过我的所有老师,他们把我从一个对编程一无所知的门外汉培养成能靠自己的力量,基本完成一个简单的系统。感谢这些优秀的老师,是他们教会我最重要的编程基础,使得我有今天的成绩。最后,我还要特别感谢曾给我无私帮助的同学,一个人做任何事,不可能是一帆风顺不遇到难题和挫折的,在我的设计过程中,我碰到过不少问题,在我的积极提问和老师、同学的耐心解答下,我得以顺利完成毕业设计和论文。在此我也衷心的感谢他们。 参考文献\o"点击查看期刊的详细书目和馆藏信息"ACMTransactionsonMathematicalSoftware
.2001JournalofExperimentalAlgorithmics(JEA)AssociationforComputing,1996郑阿齐主编郑明强
张晓东《SQLSERVER.实用教程》电子工业出版社张明亮
赵彬
.《JSP从入门到精通.》电子工业出版社.2008.1萨师煊
王珊
.《数据库系统概论》.
高等教育出版社.2008.3.古乐史九林编著《软件测试技术概论》清华大学出版社2008.11陈凡何红杰编著《java程序设计》机械工业出版社.2005.8石志国、刘易伟、王志良
.《JSP应用教程》.清华大学出版社2008.5.长春职业技术学院毕业设计(论文)专用纸第8页PAGE毕业论文(设计)题目在线投票系统学生姓名学号班级 专业分院指导教师内容包括:题目在线投票系统摘要及关键词JSP投票目录绪论正文结论致谢语参考文献附录
目录TOC\o"1-3"\h\z\t"标题5,4"第1部分概述 1第2部分分析部分 22.1.功能需求 2第3部分系统设计 33.1.功能模块设计 33.2.数据库的设计 3第4部分系统开发 34.1.数据库 34.1.1.创建数据库 34.1.2.创建表 44.1.3.连接数据库 44.2.功能的实现 54.3.问题及解决 5第5部分运行部分 55.1.系统的安装 55.2.系统的使用 6第6部分附录 8附录1运行环境 81.1硬件要求 81.2.软件要求 9附录2设计代码 91.vote.jsp 92.result.jsp 103.add.jsp 114.del.jsp 135.display.jsp 146.modify.jsp 157.DBConnect.java 18第1部分概述在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。决策者通过这些统计数据做出相应的决策。在线投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。他可以设计这样一个投票主题:你认为该网站如何?(A.很好B.一般C.不好)然后提供给用户进行投票。我的投票系统具有极大的灵活性,投票类型分为单选投票和多选投票。管理员可以在线设计不同的投票主题供用户进行投票。对于该设计报告还有什么不当之处请见谅,同时也希望你能多提宝贵意见。我会认真参考您的意见,修改和完善该系统。术语列表:JSP:(JavaServerPages),JSP是一种基于Java的技术,用来产生跨平台和跨Web服务器的动态页面。JDBC:(JavaDataBaseConnectivity),Java数据库连接。它主要是一套让你访问数据库的API,程序人员可以利用JDBCAPI来执行SQL语句。Servlet:Servlet可以称之为“服务器小程序”,与Javaapplication不同,它没有main方法,而是用一些特定的方法用于启动、执行和退出。通过使用Servlet,可以与运行与客户端的Applet进行交互,也可以直接与HTML页进行交互。JavaBeans:JavaBeans是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。应用程序开发者可以通过支持JavaBeans的开发工具,直接使用现成的JavaBeans,也可以在开发工具容器中,对组件进行必要的修改、测试而不必编写和编译程序。在Java模型中,组件可以修改或与其他组件组合以生成新组件或完整的应用程序。HTML:(HypertextMarkupLanguage)超文本标记语言,它是组织多媒体文档的重要语言,它不仅用来编写Web网页,而且可以使用它来制作光盘上的多媒体节目。HTML可用来编排文档、创建列表、建立链接等等。XML:(eXtensibleMarkupLanguage)可扩展标记语言,它是一种具有数据描述功能(Meta-language)、高度结构性及可验证性的语言。SQL:(StructuredQueryLanguage),结构化查询语言。SQL语言地任务就是与各种数据库建立关系,SQL语言是关系型数据库的标准语言,大多数关系型数据库管理系统都支持SQL语言并采用了SQL的语言标准。MySQL:MySQL是一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。按照使用又可以分为DML(DataManipulationLanguage),即数据操作语言和DDL(DataDefinitionLanguage)。第2部分分析部分2.1.功能需求通过对用户的需求调查分析,可以概括出用户的功能需求如下:单选投票、多选投票、查看投票、投票设计。单选投票:用户只能从多个选项中选取一项进行投票。多选投票:用户可以从多个选项中选取多项进行投票。查看投票:提供用户查看当前投票情况,投票结果以条形图显示。投票设计:管理员可以设计不同的投票主题,及投票主题的内容供用户进行投票。投票设计又包括以下功能需求:增加主题、删除主题、查看主题、修改主题。第3部分系统设计3.1.功能模块设计通过对功能需求进行分析和概括得到如图所示的系统功能模块图:3.2.数据库的设计该系统的数据库采用MySQL,根据投票系统功能设计的要求,可以列出以下数据项和数据结构:投票表:存放投票信息,数据项包括:序号、标识、选项类型、投票主题、投票选项内容、得票数。第4部分系统开发4.1.数据库4.1.1.创建数据库CREATEDATABASEdb70019618;4.1.2.创建表创建数据库中用到的投票表:CREATETABLEvote(idINTNOTNULLAUTO_INCREMENT,flagint,optTypeint,questionCHAR(255),optContentCHAR(255),numberINT,PRIMARYKEY(id),);数据库创建后的结构图如下:4.1.3.连接数据库该系统使用了MySQL的JDBC驱动程序来连接数据库。因为对数据库的访问,在整个系统中比较频繁,所以我将对数据库的操作写成一个DBConnect的类,通过该类来连接数据库和访问数据库。//部分代码如下publicDBConnect(){try{ //加载数据库驱动程序Class.forName(sDBDriver);//建立连接 conn=DriverManager.getConnection(sConnStr);} catch(Exceptione){System.out.println("DBConnect():"+e.getMessage());}}4.2.功能的实现投票流程图:该流程图已经包含了在线投票系统的制作的主要方法。下面的工作实际上就是按照该流程图,写出具体的代码。在附录2设计代码中有我开发的代码,并附有注释。所以在这里我就不展开介绍每一个功能的开发过程。4.3.问题及解决这部分应该写在开发中遇到了哪些问题,如何解决等。第5部分运行部分5.1.系统的安装该系统我在j2sdk1.4.1_01+resin-2.1.9+MySQL-4.0.12-nt环境下测试通过:安装步骤:该系统需要JSP运行环境和MySQL数据库,如果服务器还没有搭建的话请先搭建。1.把vote、WEB-INF(vote文件夹存放的是.jsp文件,WEB-INF存放的是该系统使用到的一些.class文件)文件夹上传到你的主机目录。2.修改DBConnect.java里连接MySQL数据库的IP、用户名和密码为你自己的IP,user,password修改编译之后放到WEB-INF\classes\目录下面。3.请创建数据库db70019517,然后使用mysqldb70019517<vote.sql脚本创建该数据库使用到的表。(脚本存放的路径vote\vote.sql)4.然后在浏览器输入URL:(例如这是我的运行方法::8080/vote/index.jsp)。5.2.系统的使用为了直观,在这里我将主要通过程序运行截图来介绍该投票系统的使用。在浏览器地址栏里输入在线投票系统的URL后,将进入在线投票系统的首页。在首页中显示了该系统的操作。在首页中点击你所要进行的操作,即可打开相应的页面。如点击“单选投票”链接即可打开单选投票页面。在首页中点击“多选投票“链接,打开多选投票页面。在首页中点击“在线投票“链接后,可以查看在线投票的结果。在首页中点击“投票设计“链接后,即可打开投票设计中的”增加主题“,同时你会看到投票设计中的其它几项功能:删除主题、查看主题、修改主题、返回首页。增加主题的方法如下图所示:在投票设计中点击“删除主题“链接后,即可打开删除主题页面。如果你要删除某个主题以及其选项,只需在文本框中输入其ID号即可。(如果你不知道待删除主题的ID号你可以首先点击”查看主题“查看其ID号。在投票设计中点击“查看主题“链接后,即可打开查看主题页面。在投票设计中点击“修改主题“链接后,即可打开修改主题页面。如果你要修改某个主题以及其选项,只需在文本框中输入其主题名即可。(如果你不知道待修改主题的主题名你可以首先点击”查看主题“查看其主题名并复制主题名,然后将其粘贴到修改主题名的文本框中,点查询即可打开相应的主题及其选项。第6部分附录附录1运行环境1.1硬件要求CPU使用586或更高级别的处理器内存64MB及其以上硬盘500MB以上(根据不同的服务器要求不同)其他计算机设备网卡等联网设备1.2.软件要求要使用JSP,在服务器端和客户端都必须有对应的运行环境。服务器主要是Servlet兼容的Web服务器,客户端主要是浏览器。由于Java具有跨平台的特点,所以只要能够安装JDK,就能在此安装JSP服务器。JSP服务器能够运行在目前绝大多数的操作系统上,目前在普通用户中用到的系统绝大多数为Windows系列和UNIX系列。附录2设计代码1.vote.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><jsp:useBeanid="dbBean"class="vote.DBConnect"scope="page"/><html><head><title>在线投票</title><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><center><h3>单选投票</h3><hr><formaction="result.jsp"method="post"><divalign="left"><%Stringsql="select*fromvotewhereflag=0andoptType=0orderbyiddesc";ResultSetrs=dbBean.executeQuery(sql);intquestionNum=0,optType,id,id1;Stringquestion,str,optContent,type;while(rs.next()){//输出投票的主题questionNum++; str="主题"+questionNum+":";question=rs.getString("question");optType=rs.getInt("optType"); id=rs.getInt("id");out.print(str+question+"<br>");ResultSetrs1;sql="select*fromvotewhereflag="+id; rs1=dbBean.executeQuery(sql); out.print("<hr>"); //输出该主题的选项 while(rs1.next()){ id1=rs1.getInt("id"); optContent=rs1.getString("optContent"); if(optType==0) type="radio"; else{ type="checkbox";}%><inputtype="<%=type%>"name="vote"value="<%=id1%>"><%=optContent%><br><%}%></div><hr><divalign="left"><%}%></div><inputtype="submit"name="sumbit1"value="确定"></form><%rs.close();%></center></body></html>2.result.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><head><title>投票结果</title><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><jsp:useBeanid="dbBean"class="vote.DBConnect"scope="page"/><h3align="center">单选投票结果</h3><hr><%Stringsql="select*fromvoteorderbyid";ResultSetrs=dbBean.executeQuery(sql);Stringid;id=request.getParameter("vote");sql="updatevotesetnumber=number+1whereid="+id;dbBean.executeQuery(sql);ResultSetrs1,rstotal;intquestionNum=0,optType,id1,number,total=0;Stringquestion,str,optContent;sql="select*fromvotewhereflag=0andoptType=0orderbyiddesc";rs=dbBean.executeQuery(sql);while(rs.next()){questionNum++;str="主题"+questionNum+":";question=rs.getString("question");optType=rs.getInt("optType"); id=Integer.toString(rs.getInt("id"));out.print(str+question+"<br>"); sql="select*fromvotewhereflag="+id; rstotal=dbBean.executeQuery(sql); //求得投票的总数 while(rstotal.next()){ number=rstotal.getInt("number"); total+=number; } sql="select*fromvotewhereflag="+id; rs1=dbBean.executeQuery(sql); out.print("<hr>"); //输出各选项的得票数 while(rs1.next()){id1=rs1.getInt("id"); optContent=rs1.getString("optContent"); number=rs1.getInt("number");%><%=optContent%>得票数:<%=number%><imgsrc=bar.gifwidth="<%=100*number/total%>"height=10><br><%}%><hr><divalign="left"><%}%></div><divalign="center"><ahref="index.jsp">返回主页</a></div></body></html>3.add.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><jsp:useBeanid="dbBean"scope="page"class="vote.DBConnect"/><%Stringquestion=request.getParameter("question");if(question==null){question="";}Stringtype=request.getParameter("type");intnum=0,optType=0;try{num=Integer.parseInt(request.getParameter("num"));}catch(Exceptione){}%><html><head><title>增加主题</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><center><h3>增加主题</h3><hr><ahref="add.jsp">增加主题</a>||<ahref="del.jsp">删除主题</a>||<ahref="display.jsp">查看主题</a>||<ahref="modify.jsp">修改主题</a>||<ahref="index.jsp">返回首页</a><hr><formaction="add.jsp"method="post">请输入主题名:<br><inputtype="text"name="question"size="50"value="<%=question%>"><p><inputtype="checkbox"value="T"name="type"<%if(type!=null){out.print("checked"); optType=1;}else{optType=0;}%>>多选 请输入选项的数目:<inputtyp="text"name="num"size="5"value="<%=num%>"><inputtype="submit"name="sumbit"value="创建选项"><p><%Stringsubmit=request.getParameter("sumbit");if(submit!=null){for(inti=1;i<=num;i++){%>选项<%=i%>:<inputtype="text"name="<%=i%>"value=""size="50"><br><%}%><inputtype="submit"name="submit1"value="增加主题"><%}%></form><%Stringsubmit1=request.getParameter("submit1"),str="",optContent,sql;intid;if(submit1!=null){sql="insertintovote(flag,optType,question)values(0,"+optType+",'"+question+"')"; dbBean.executeUpdate(sql); sql="select*fromvoteorderbyiddesc"; ResultSetrs=dbBean.executeQuery(sql); id=rs.getInt(1); for(inti=1;i<=num;i++){ str=Integer.toString(i); optContent=request.getParameter(str); sql="insertintovote(flag,optContent,number)values("+id+",'"+optContent+"',0)"; dbBean.executeUpdate(sql);}out.print("成功插入主题!");}%></center></body></html>4.del.jsp<%@pagecontentType="text/html;charset=gb2312"%><jsp:useBeanid="dbBean"scope="session"class="vote.DBConnect"/><%Stringid=request.getParameter("id");Stringsql="deletefromvotewhereid="+id;if(id!=null){if(dbBean.executeUpdate(sql)){ out.print("删除记录成功。");}}%><html><head><title>删除主题</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><center><h3>删除主题</h3><hr><ahref="add.jsp">增加主题</a>||<ahref="del.jsp">删除主题</a>||<ahref="display.jsp">查看主题</a>||<ahref="modify.jsp">修改主题</a>||<ahref="index.jsp">返回首页</a><hr><formname="form1"action="del.jsp"method="post">请输入删除的序号(ID):<inputname="id"type="text"id="id"size="50"><inputname="submit"type="submit"value="删除"><br></form></hr></center></body></html>5.display.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><head><title>查看主题</title><linkhref="vote.css"rel="stylesheet"type="text/css"><body><center><h3>查看主题</h3><hr><ahref="add.jsp">增加主题</a>||<ahref="del.jsp">删除主题</a>||<ahref="display.jsp">查看主题</a>||<ahref="modify.jsp">修改主题</a>||<ahref="index.jsp">返回首页</a><hr><jsp:useBeanid="dbBean"class="vote.DBConnect"scope="page"/><%Stringsql="select*fromvote";ResultSetrs=dbBean.executeQuery(sql);%><tableborder=1align="center"><tr><td>序号</td><td>标识</td><td><divalign="center">投票主题</div></td><td><divalign="center">投票选项</div></td> <td><divalign="center">得票数</div></td></tr><%while(rs.next()){out.println("<tr>"); out.println("<td>"+rs.getInt("id")+"</td>"); out.println("<td>"+rs.getInt("flag")+"</td>"); out.println("<td>"+rs.getString("question")+"</td>"); out.println("<td>"+rs.getString("optContent")+"</td>"); out.println("<td>"+rs.getInt("number")+"</td>");out.println("</tr>");}%></table><divalign="center"><%rs.close();%></div></hr></center></body></html>6.modify.jsp<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><jsp:useBeanid="dbBean"scope="session"class="vote.DBConnect"/><html><head><title>修改主题</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><linkhref="vote.css"rel="stylesheet"type="text/css"></head><body><center><h3>修改主题</h3><hr><ahref="add.jsp">增加主题</a>||<ahref="del.jsp">删除主题</a>||<ahref="display.jsp">查看主题</a>||<ahref="modify.jsp">修改主题</a>||<ahref="index.jsp">返回首页</a><formaction="modify.jsp"method="post">请输入您所要修改的主题名:<br><inputtype="text"name="sql"size="50"><inputtype="submit"name="submit"value="查询"></form><%Stringsubmit,sql;intid;submit=request.getParameter("submit");if(submit!=null){ Stringsql_s=request.getParameter("sql");ResultSetrs,rs1;inti=0;if(sql_s!=null){sql="select*fromvotewherequestion='"+sql_s+"'"; rs=dbBean.executeQuery(sql); id=rs.getInt("id");%><formaction="modify.jsp"method="post"><table><tr><td>题目</td></tr><tr><td><inputtype="hidden"name="id"value="<%=id%>"><inputname="question"type="text" value="<%=rs.getString("question")%>"size="50"maxlength="50"></td></tr><tr><td>选项</td></tr><tr><td><%sql="select*fromvotewhereflag="+id;rs1=dbBean.executeQuery(sql);while(rs1.next()){%><inputtype="text"name="optContent<%=i%>"si
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地埂黄花施工方案
- 吉林大型温室工程施工方案
- 疫情期间保障工程施工方案
- 云南石雕八角亭施工方案
- 甘肃移动式u型渠施工方案
- 都匀换热器机组施工方案
- 鹤壁硅pu篮球场施工方案
- 同花顺:2024年年度财务报告
- 2025年铜及铜合金材合作协议书
- 通风管道改造施工方案
- 人民医院诊断证明书
- 超声刀操作标准
- 小学羽毛球特色教学教案羽毛球
- 苏教版科学2023四年级下册全册教案教学设计及反思
- 普通高中课程标准2020修订版
- 五年级道德与法治下册全册教案
- 高中英语公开课点评【6篇】
- 统编版《道德与法治》四年级下册第9课《生活离不开他们》优质课件
- 2023年02月浙江金华事业单位公开招聘浦江县编外专职统计人员10人参考题库+答案详解
- 毕业设计粘土心墙土石坝设计含计算书cad图
- 电除颤课件完整版
评论
0/150
提交评论