在线投票系统课程设计报告

合集下载

网上投票系统实验报告

网上投票系统实验报告

《Web程序设计(一)课程设计》实验报告院系名称:专业班级:学生姓名:学号:2012年11 月一、实验目的本实验属于设计性实验,目的是使我们在学完《Web程序设计(一)》课程的基本知识之后,通过使用JSP+JavaBean制作一个简单的在线投票系统,进一步熟悉和领悟JSP、JavaBean和Java语言的语法结构和使用方法,通过实验学习Java Web系统的开发步骤与方法,任务是设计一个简单的线投票系统。

二、实验步骤1、对整个系统进行分析设计,设计整个系统的功能和所应有的页面。

2、对系统进行页面设计。

3、对系统进行功能设计。

4、对系统进行数据库设计和链接。

5、整个系统进行测试和调试。

三、系统设计1、界面设计首页注册页面:错误提示页面投票页面:投票结果页面:系统应该具有注册功能、登录功能、在线投票功能、票数统计功能、投票结果显示功能,其中注册功能应该包含的注册项如表1所示,在线投票功能应该包含的投票项如表2所示。

下图表1下图表23、数据库设计根据上述的功能要求,该系统数据库中包括的数据表有:用户基本信息表(表名:yonghu)、年龄信息表(表名:nianling)、收入信息表(表名:shouru)、文化程度信息表(表名:xueli)、娱乐方式信息表(表名:yule)、体育运动信息表(表名:tiyu)、电影类型信息表(表名:dianying)。

表3用户基本信息表表4年龄信息表表5收入信息表表6文化程度信息表表7娱乐方式信息表表8体育运动信息表表9电影类型信息表四、系统的核心代码1、index.jsp<body bgcolor="FF1493"><div align="center"><p>欢迎进入投票系统</p><hr><table><tr><td>已注册,点击登录按钮登录</td><td>未注册,点击注册按钮注册</td></tr><tr><td width="300px"align="center"><a href="denglu.html">登录</a></td><td width="300px"align="center"><a href="zhuce.html">注册</a></td></tr></table>2.zhuce.html<body bgcolor="FF1493"><div align="center"><p>欢迎用户注册!</p><form action="zhuce.jsp"method="post"><table><tr><td>&nbsp;&nbsp;用户名:</td><td><input type="text"name="username"/></td></tr> <tr><td>&nbsp;&nbsp;密&nbsp;&nbsp;&nbsp;&nbsp;码:</td><td><input type="text"name="password"/></td></tr><tr><td>真实姓名:</td><td><input type="text"name="realname"/></td></tr><tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;性别:</td><td><inputtype="radio"name="sex"value="男"checked/>男<input type="radio"name="sex"value="女"/>女</td></tr><tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;省份:</td><td><select name="shengfen"><OPTION value="安徽">安徽</OPTION>-------soso onon----<OPTION value="内蒙古"selected>内蒙古</OPTION><OPTION value="宁夏">宁夏</OPTION>------<OPTION value="西藏">西藏</OPTION><OPTION value="云南">云南</OPTION><OPTION value="浙江">浙江</OPTION>-----</select></td></tr><tr><td align="center"><input type="submit"value="注册"/></td><td align="center"><input type="reset"value="重置"/></td></tr></table></form>3.zhuce.jsp<% request.setCharacterEncoding("UTF-8");String username=request.getParameter("username");String password=request.getParameter("password");String realname=request.getParameter("realname");String sex=request.getParameter("sex");String shenfen=request.getParameter("shengfen");Stringstrsql1="'"+username+"'"+","+"'"+password+"'"+","+"'"+realname+"'"+","+"'"+sex+"'"+", "+"'"+shenfen+"'";String strsql="insert into yonghu(username,password,realname,sex,shengfen)"+"values("+strsql1+")";System.out.println(strsql);Access a=new Access();boolean isnot=a.executeUpdate(strsql);if(isnot==true){ session.setAttribute("username",username);response.sendRedirect("toupiao.jsp");}Else{response.sendRedirect("zhuce.html");}%>4.error.html<body bgcolor="FF1493"><p>您输入的用户名或密码错误</p><p>请重新输入</p><table><tr><td><a href="denglu.html">跳转到登录页面重新登录</a></td></tr></table></body>5.denglu.js p<body bgcolor="FF1493"><jsp:useBean id="user"class="com.mushu.Access.Access"></jsp:useBean><% String username=request.getParameter("username");String password=request.getParameter("password");String iscorrect="select * from yonghu where username="+"'"+username+"'"+" and password="+"'"+password+"'";System.out.println(iscorrect);ResultSet rs=user.execute(iscorrect);if(!rs.next()){ response.sendRedirect("error.html");}Else { session.setAttribute("username", rs.getString("username"));session.setAttribute("password", rs.getString("password"));rs.close();response.sendRedirect("toupiao.jsp");}%></body>6.toupiao.jsp<body bgcolor="FF1493"><% if(session.getAttribute("username")==null){ response.sendRedirect("denglu.html"); }%>尊敬的<%=session.getAttribute("username") %>,欢迎来到投票页面<form action="toupiao1.jsp"method="post"><table width="700"border="0"align="center"cellpadding="0" cellspacing="0"><tbody><tr><td height="45"valign="top"><table width="746"border="0" cellspacing="0"cellpadding="0"><tbody><tr><tbody><tr><td width="177"><div align="center"><div id="ValidationSummary2"style="color:Red;display:none;"></div></div></td><td width="76"><div align="center"></div></td></tr></tbody></table></td></tr></tbody></table><table width="600"align="center"><tbody><tr><td class="style1"><div><table class="GbText"cellspacing="1"cellpadding="3"rules="all" border="1"id="VoteView"style="border-color:SteelBlue;border-width:1px;bo rder-style:None;width:100%;"><tbody><tr class="GbText"style="color:Black;font-size:Large;font-weight:b old;"> <th scope="col">调查问卷</th></tr><tr><td align="left">1、您的年龄是多少?<div id="VoteView_ctl02_ItemPanel"class="GbText" dir="ltr"style="width:100%;"><table id="VoteView_ctl02_radioList"border="0"><tbody><tr><td><input id="VoteView_ctl02_radioList_0" type="radio"name="VoteView1"value="age1"><label for="VoteView_ctl02_radioList_0">20岁及以下</label></td><td><input id="VoteView_ctl02_radioList_1" type="radio"name="VoteView1"value="age2"><label for="VoteView_ctl02_radioList_1">21-35岁</label></td></tr><tr><td><input id="VoteView_ctl02_radioList_2" type="radio"name="VoteView1"value="age3"><label for="VoteView_ctl02_radioList_2">36-50岁</label></td><td><input id="VoteView_ctl02_radioList_3" type="radio"name="VoteView1"value="age4"><labelfor="VoteView_ctl02_radioList_3">50岁</label></td></tr></tbody></table></div></td></tr><table></body> 7.toupiao1.jsp<body bgcolor="FF1493"><%request.setCharacterEncoding("UTF-8");Access a=new Access();//年龄String age=request.getParameter("VoteView1");if(age!=null){String agesql="update nianling set "+age+"="+age+"+1";a.executeUpdate(agesql);//收入String shouru=request.getParameter("VoteView2");if(shouru!=null){String shourusql="update shouru set "+shouru+"="+shouru+"+1";a.executeUpdate(shourusql);}//学历String xueli=request.getParameter("VoteView3");if(xueli!=null){String xuelisql="update xueli set "+xueli+"="+xueli+"+1";a.executeUpdate(xuelisql);}//娱乐String yule[]=request.getParameterValues("VoteView4");if(yule!=null){for(int i=0; i<yule.length;i++){String yulesql="update yule set "+yule[i]+"="+yule[i]+"+1;";a.executeUpdate(yulesql);System.out.println(yulesql);}}//体育String tiyu[]=request.getParameterValues("VoteView5");if(tiyu!=null){for(int i=0; i<tiyu.length;i++){String tiyusql="update tiyu set "+tiyu[i]+"="+tiyu[i]+"+1;";a.executeUpdate(tiyusql);System.out.println(tiyusql);}}//电影String dianying[]=request.getParameterValues("VoteView6");if(dianying!=null){for(int i=0; i<dianying.length;i++){String dianyingsql="update dianying set"+dianying[i]+"="+dianying[i]+"+1;";a.executeUpdate(dianyingsql);System.out.println(dianyingsql);}}response.sendRedirect("result.jsp");%></body>五、实验总结通过本次实验,让自己进一步熟悉和领悟JSP、JavaBean和Java语言的语法结构和使用方法,让自己对javaweb程序设计有了更加深刻的认识,提高了自己的计算机操作能力,提高了自己的实践动手能力。

电子投票系统课程设计报告 [文档在线提供]

电子投票系统课程设计报告 [文档在线提供]

一、课程设计的内容编程建立一个小型电子投票系统二、课程设计的要求与数据1.开发环境:Wintc2.需求分析:电子投票平台作为一个用来进行投票统计的应用软件1)编程建立一个小型电子投票系统,其中包含电子投票、票数统计功能,。

尽量做到提供一个简单的人机界面,系统界面友好,使用方便。

2)软件的使用者分为两类,一类为管理员,可以对候选人信息进行初始化和修改,还可浏览候选人信息介绍,可对候选人的票数进行排序以及对系统的用户进行管理,创建使用者用户名和密码,还可以对用户信息进行增加、删除、修改和查询操作等。

另一类为使用者—普通投票者,该类用户需要用管理员分配的用户名和密码正确登录系统,可以查询候选人介绍、投票等。

投票是只需做到输入自己想要投票的候选人编号即可完成投票。

3.功能需求描述电子投票系统是用来进行投票统计的系统软件,进入投票系统后应该需要先进行身份验证。

如果是投票人,就可以用浏览和查询的方式了解各个候选人的介绍信息,根据候选人的介绍信息决定将选票投向哪位候选人。

① 投票人的投票方式:输入要选举的候选人的编号,即可完成投票;②投票人了解候选人的方式:浏览候选人列表,输入序号查询候选人介绍。

如果是管理人员就可以进以下操作:①初始化候选人信息:在系统投入使用前需要先将需要投票选举的候选人信息录入系统中,以便投票和查看。

管理员的初始化工作就是将候选人的序号、姓名和简介录入系统。

②浏览候选人简介:为随时掌握候选人的信息,进行修改,管理员可以浏览候选人简介。

③修改候选人简介:当候选人信息有所变化时,输入候选人序号,对信息进行修改。

④查询投票情况:管理员有权查询当前各个候选人得票情况.⑤清除投票信息:当投票结束后,管理员可清除系统中所有候选人的票数,使之归零。

⑥安全管理:管理员可以对投票人信息进行管理,投票人只有用管理员规定的用户名和密码才能进入系统进行投票。

管理员还可以更改用户名、密码和权限,并对投票人信息进行增加、删除、查询、排序和初始化等操作。

PHP在线投票系统课程设计

PHP在线投票系统课程设计

目录第1部分概述 (1)第2部分分析部分 (2)2.1.功能需求 (2)第3部分系统设计 (3)3.1.功能模块设计 (3)3.2.数据库的设计 (3)第4部分系统开发 (3)4.1.数据库 (3)4.1.1.创建数据库 (3)4.1.2.创建表 (4)4.1.3.连接数据库 (4)4.2.功能的实现 (5)4.3.问题及解决 (5)第5部分运行部分 (5)5.1.系统的安装 (5)5.2.系统的使用 (6)第6部分附录 (8)附录1运行环境 (8)1.1硬件要求 (8)1.2.软件要求 (9)附录2设计代码 (9)1.vote.jsp (9)2.result.jsp (10)3.add.jsp (11)4.del.jsp (13)5.display.jsp (14)6.modify.jsp (15)7. DBConnect.java (18)第1部分概述在线投票系统主要用来统计网站用户对某个主题或热门话题的意见。

决策者通过这些统计数据做出相应的决策。

在线投票系统是一般网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议。

他可以设计这样一个投票主题:你认为该网站如何?(A.很好B.一般C.不好)然后提供给用户进行投票。

我的投票系统具有极大的灵活性,投票类型分为单选投票和多选投票。

管理员可以在线设计不同的投票主题供用户进行投票。

对于该设计报告还有什么不当之处请见谅,同时也希望你能多提宝贵意见。

我会认真参考您的意见,修改和完善该系统。

术语列表:JSP:(Java Server Pages),JSP是一种基于Java的技术,用来产生跨平台和跨Web服务器的动态页面。

JDBC:(Java DataBase Connectivity),Java数据库连接。

它主要是一套让你访问数据库的API,程序人员可以利用JDBC API来执行SQL语句。

Servlet:Servlet可以称之为“服务器小程序”,与Java application不同,它没有main方法,而是用一些特定的方法用于启动、执行和退出。

网络投票系统实训报告

网络投票系统实训报告

一、实训背景随着互联网技术的飞速发展,网络投票系统在各个领域得到了广泛应用。

为了提高我们的专业技能,加强实践能力,我们进行了网络投票系统实训。

本次实训旨在让我们深入了解网络投票系统的原理、设计和实现,提高我们在网络编程、数据库管理和网络安全等方面的综合能力。

二、实训目标1. 理解网络投票系统的基本原理和设计思路;2. 掌握网络投票系统的开发流程和关键技术;3. 提高网络编程、数据库管理和网络安全等方面的实际操作能力;4. 培养团队协作和沟通能力。

三、实训内容1. 网络投票系统需求分析根据项目需求,网络投票系统应具备以下功能:(1)用户注册与登录;(2)投票创建与管理;(3)投票结果展示;(4)投票数据统计与分析;(5)系统安全与维护。

2. 网络投票系统设计(1)系统架构设计:采用B/S(Browser/Server)架构,分为前端和后端两部分。

前端采用HTML、CSS、JavaScript等技术实现用户界面;后端采用Java、Python或PHP等编程语言实现业务逻辑处理。

(2)数据库设计:采用MySQL数据库,设计用户表、投票表、选项表、投票结果表等,用于存储用户信息、投票信息、选项信息、投票结果等数据。

(3)功能模块设计:①用户模块:实现用户注册、登录、修改个人信息等功能;②投票模块:实现投票创建、管理、查看、投票等功能;③结果展示模块:展示投票结果,包括投票数、得票率等;④数据统计与分析模块:对投票数据进行统计分析,为用户提供决策依据;⑤系统维护模块:实现系统日志记录、数据备份与恢复等功能。

3. 网络投票系统实现(1)前端开发:使用HTML、CSS、JavaScript等技术实现用户界面,实现用户注册、登录、投票等功能。

(2)后端开发:使用Java、Python或PHP等编程语言实现业务逻辑处理,包括用户管理、投票管理、结果展示、数据统计与分析等。

(3)数据库操作:使用MySQL数据库进行数据存储、查询、更新等操作。

c语言电子投票系统课程设计

c语言电子投票系统课程设计

c语言电子投票系统课程设计一、教学目标本课程的目标是让学生掌握C语言的基本知识,能够运用C语言设计一个简单的电子投票系统。

具体的学习目标包括:1.知识目标:理解C语言的基本语法、数据类型、运算符、控制结构等基本知识。

2.技能目标:能够使用C语言编写程序,解决实际问题。

3.情感态度价值观目标:培养学生的逻辑思维能力,提高学生解决问题的能力,使学生对编程产生兴趣。

二、教学内容教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。

具体安排如下:1.第一章:C语言概述,介绍C语言的基本概念、特点和应用。

2.第二章:数据类型和运算符,介绍C语言的基本数据类型、运算符及其用法。

3.第三章:控制结构,介绍条件语句、循环语句等控制结构的使用。

4.第四章:函数,介绍函数的定义、声明和调用,以及函数的参数传递。

5.第五章:数组和字符串,介绍数组的基本概念、操作和字符串的使用。

6.第六章:指针,介绍指针的概念、运算和指针的应用。

7.第七章:结构体和文件,介绍结构体的定义和使用,以及文件的读写操作。

三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:通过讲解C语言的基本概念、语法和编程技巧,使学生掌握C语言的基本知识。

2.案例分析法:通过分析典型的C语言程序,使学生理解编程思路和方法,提高编程能力。

3.实验法:通过上机实验,让学生动手编写程序,培养学生的实际操作能力。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用《C程序设计语言》作为主要教材,介绍C语言的基本知识和编程技巧。

2.参考书:推荐《C Primer Plus》等参考书,供学生自主学习。

3.多媒体资料:制作课件、视频等多媒体资料,帮助学生更好地理解课程内容。

4.实验设备:提供计算机实验室,让学生进行上机实验,提高实际操作能力。

五、教学评估教学评估主要包括平时表现、作业和考试三个部分。

1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占总评的20%。

asp线上投票系统课程设计

asp线上投票系统课程设计

asp线上投票系统课程设计一、课程目标知识目标:1. 让学生掌握ASP编程基础知识,理解在线投票系统的基本原理;2. 学会使用数据库存储和管理投票数据;3. 了解Web应用程序的基本架构和安全知识。

技能目标:1. 能够运用ASP编写在线投票系统的主要功能模块;2. 独立完成数据库设计,实现投票数据的存储和查询;3. 掌握基本的Web应用程序测试和调试方法,提高系统稳定性;4. 提高学生的团队协作能力和问题解决能力。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发创新意识;2. 培养学生严谨、细心的学习态度,提高自主学习能力;3. 强调网络安全意识,培养学生的道德素养和社会责任感。

分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 掌握ASP编程基础知识,能独立完成在线投票系统的设计和实现;2. 学会使用数据库进行数据存储和管理,提高数据处理能力;3. 了解Web应用程序的基本架构和安全知识,具备一定的网络安全意识;4. 培养团队协作精神,提高沟通与协作能力;5. 在项目实践中,培养学生的问题解决能力和创新思维。

二、教学内容1. ASP基础知识:变量、数据类型、运算符、控制结构、函数和对象;2. 数据库原理与应用:数据库概念、SQL语句、数据库连接技术、数据存储与查询;3. 在线投票系统功能模块设计:用户注册与登录、投票主题与选项设计、投票提交与结果展示;4. Web应用程序架构:客户端与服务器端交互原理、HTTP协议、状态管理;5. 安全知识:身份验证、访问控制、SQL注入防护、XSS攻击防范;6. 项目实践:团队协作、需求分析、系统设计、编码实现、测试与调试。

教学大纲安排:第一周:ASP基础知识学习;第二周:数据库原理与应用;第三周:在线投票系统功能模块设计;第四周:Web应用程序架构与安全知识;第五周:项目实践(分组进行,包括需求分析、设计、编码、测试等环节)。

在线投票系统课程设计

在线投票系统课程设计

在线投票系统课程设计一、课程目标知识目标:1. 学生理解在线投票系统的基本原理,掌握相关概念,如投票、计票、数据安全等;2. 学生了解在线投票系统的优点和潜在风险;3. 学生掌握在线投票系统的基本操作流程和使用方法。

技能目标:1. 学生具备分析在线投票系统需求的能力,能够设计简单的投票流程;2. 学生能够运用编程语言或工具搭建一个基本的在线投票系统;3. 学生通过实际操作,提升信息处理、问题解决和团队协作能力。

情感态度价值观目标:1. 学生培养对网络安全的重视,树立正确的网络道德观念;2. 学生养成积极参与公共事务、行使公民权利的责任感;3. 学生在团队合作中学会尊重他人意见,培养批判性思维和创新精神。

课程性质分析:本课程为信息技术课程,旨在通过在线投票系统教学,提高学生对信息技术的应用能力和网络安全意识。

学生特点分析:六年级学生已具备一定的信息素养,对新事物充满好奇,具备一定的自主学习能力,但需引导其正确使用网络。

教学要求:1. 紧密联系课本内容,注重理论与实践相结合;2. 教学过程中注重启发式教学,引导学生主动思考、探索;3. 关注学生个体差异,提供个性化指导,确保每个学生都能达到课程目标。

二、教学内容本章节教学内容围绕在线投票系统设计,依据课程目标,科学系统地组织以下内容:1. 在线投票系统概述- 投票系统的发展历程;- 在线投票系统的定义、特点及分类;- 投票系统的应用场景。

2. 在线投票系统原理与技术- 投票系统的工作原理;- 数据加密技术及其在投票系统中的应用;- 投票系统的安全性分析。

3. 在线投票系统设计与实现- 投票系统需求分析;- 投票流程设计;- 投票系统的编程实现;- 投票系统的测试与优化。

4. 在线投票系统应用案例- 国内外在线投票系统案例分析;- 在线投票在我国的应用现状及发展趋势;- 投票系统在校园民主管理中的应用。

教学安排与进度:第一课时:在线投票系统概述、原理与技术;第二课时:在线投票系统设计与实现;第三课时:在线投票系统应用案例及讨论。

在线投票系统设计

在线投票系统设计

在线投票系统设计一、系统概述在线投票系统是一种基于互联网的投票平台,旨在为广大用户提供便捷、高效、公正的投票环境。

本系统设计遵循易用性、安全性、可扩展性原则,以满足不同场景下的投票需求。

二、系统功能模块1. 用户注册与登录模块为实现用户身份认证,系统提供用户注册与登录功能。

用户可通过手机号、邮箱等方式进行注册,设置密码后即可登录系统。

登录后,用户可参与投票、查看投票结果等。

2. 投票项目管理模块系统管理员可创建、编辑、删除投票项目。

投票项目包括:投票主题、选项、投票时间、投票规则等。

管理员可根据实际需求,灵活设置投票项目参数。

3. 投票模块用户登录后,可进入投票页面。

系统为每个投票项目唯一的投票,用户即可参与投票。

投票过程中,系统将实时统计投票结果,保障投票公正性。

4. 投票结果查看模块投票结束后,用户可查看实时投票结果。

系统以图表形式展示各选项得票情况,便于用户了解投票结果。

5. 数据统计与分析模块系统后台自动统计投票数据,投票报表。

管理员可通过报表了解投票参与人数、投票分布情况等,为决策提供数据支持。

6. 安全防护模块(1)用户身份验证:用户需注册并登录后才能参与投票,防止恶意刷票。

(2)数据加密:系统对用户信息和投票数据进行加密存储,保障数据安全。

(3)访问控制:系统限制恶意IP访问,防止攻击行为。

三、系统架构设计1. 客户端:采用前后端分离的设计模式,前端使用HTML、CSS、JavaScript等技术实现用户界面,后端采用Java、PHP等语言开发业务逻辑。

2. 服务器端:采用分布式架构,包括数据库服务器、应用服务器和文件服务器。

数据库服务器存储用户数据和投票数据,应用服务器负责处理业务逻辑,文件服务器存储静态资源。

3. 网络通信:采用HTTP/协议进行数据传输,确保数据安全性。

四、系统开发与实施1. 需求分析:深入了解用户需求,明确系统功能模块和性能指标。

2. 系统设计:根据需求分析,设计系统架构、数据库结构、界面布局等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件开发新技术说明书题目: 在线投票系统院系:计算机科学与工程学院专业班级:计科14-3班学号: **********学生姓名:***指导教师:***2017 年 11 月 30 日安徽理工大学课程设计(论文)任务书摘要相较于传统投票方式,在线投票是任何一次商演(时间短、影响范围小)、电视(投入大,效果不明显)或者户外广告(不能快速吸引消费者眼球)在投入产出效率上都难以企及的。

在线投票能够迅速提升活动商家的广告价值,降低商家广告成本,提高知名度以及美誉度。

网络投票的主要目的就是人群放大:通过网络投票,可以吸引大量的选手及相关亲友的关注,通过以往的数据统计,一名选手参与投票,会带动60人参与。

这样可以最大程度的向客户展现实力,扩大社会影响力。

系统分为前台和后台两部分,前台主要是对普通用户开放。

普通用户将实现注册、投票、重选等操作;后台主要作用是管理员实现登录、投票管理、用户管理等操作。

依据前台和后台的不同权限需求,在线投票系统主要分为普通用户和管理员两个功能模块。

普通用户模块将实现用户注册、用户登录、用户投票以及投票重选和查看投票结果等功能。

管理员模块将实现管理员登录、发布新投票、撤消投票、查看所有投票、编辑和删除新投票以及用户管理等功能。

关键词:网上投票、JSP、MYSQL目录1系统分析 (5)1.1 系统简介 (5)1.2 系统功能 (5)2系统设计 (6)2.1 开发工具简介 (6)2.2 总体功能模块设计 (7)3系统实现 (10)3.1 数据库实现 (10)3.2 程序模块实现 (11)4总结 (16)4.1 设计体会 (16)4.2 系统改进 (16)参考文献 (18)1系统分析1.1 系统简介随着科技的飞速发展,计算机已经广泛的应用于各个领域之中,而且日趋普及。

在计算机应用中很重要的一部分就是编程语言,编程语言的出现打开了计算机应用的新篇章。

在这些编程语言中JSP占有着重要的地位,JSP拥有Java编程语言“一次编写,各处运行”的特点[1]。

在当今的网络应用中JSP无处不在,在线投票系统就是JSP功能强大的一个最好的例证。

在线投票系统有很多传统投票方式不可比拟的优势。

首先,它可以在很短的时间内,通过互联网将不同时间不同地域的用户投票组合到一起,并进行结果反馈,这是传统的投票方法完全做不到的;其次,在线投票系统的效率要比以往的传统投票方法高很多,在这个寸时如寸金的年代,在线投票系统不但省去了投票与计票环节的人力成本,还可以节省很多时间以用作处理其他更重要的事情;综上所述,在线投票系统有着快捷、经济、方便、省时省力等诸多优点都注定它将是未来投票方式的主流。

在线投票系统可以用来统计网站用户对某个主题或热门话题的意见。

网站管理员也可以通过投票的方式了解用户的看法,或者通过在线投票系统这个媒介去了解用户的思想、意见,并通在线投票系统的结果反馈改进自己的网站设计。

政府决策者也可以通过在线投票系统来调查民众对某一项新政策的意见,进而统计数据做出更恰当的决策。

在线投票系统是当今各大网站必备的程序之一,如果网站开发者想了解用户对该网站的意见和建议,他可以设计这样一个投票主题:你认为该网站如何?(A.很好B.一般C.不好)然后提供给用户进行投票。

1.2 系统功能因在线投票系统有着经济、快捷等诸多优点,所以在实际项目实践中如何很好的实现这些优点便成了整个开发过程中的重中之重。

在整个项目实践中,首先对课题的实际要求与需求分析进行详细的考究,查阅大量的相关资料,并且借鉴一些其他投票系统的项目经验,最后提出设计方案。

系统分为前台和后台两部分,前台主要是对普通用户开放。

普通用户将实现注册、投票、重选等操作;后台主要作用是管理员实现登录、投票管理、用户管理等操作。

依据前台和后台的不同权限需求,在线投票系统主要分为普通用户和管理员两个功能模块。

普通用户模块将实现用户注册、用户登录、用户投票以及投票重选和查看投票结果等功能。

管理员模块将实现管理员登录、发布新投票、撤消投票、查看所有投票、编辑和删除新投票以及用户管理等功能。

2系统设计2.1 开发工具简介在在线投票系统的设计发开过程中主要用了JSP技术,其中用到的工具有:JDK1.4、MyEclipse6.0、MySQL、Tomcat等。

1.JSP简介JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP,从而形成JSP文件[2]。

JSP技术使用Java编程语言编写类XML的tags 和scriptlets,来封装产生动态网页的处理逻辑。

在线投票系统用JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使本系统基于Web 的应用程序的开发变得迅速和容易。

(1)一次编写,到处运行。

在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。

基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。

相比ASP/PHP的局限性是现而易见的。

(3)强大的可伸缩性。

从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。

这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

2.MySQL简介MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。

MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

2.2 总体功能模块设计在线投票系统总体功能模块包括普通用户登录模块和管理员登录模块,其具体描述如下:1.普通用户模块(1)用户注册:普通投票用户须通过账号注册方可以进行投票;(3)重选:用户可以进行重新投票;(2)登录:注册成功后,可输入用户名和密码登录系统;从以上介绍中我们能看到,普通用户模块包含着3个不同的功能,其各部分功能关系如图1所示。

图一普通用户模块图2.管理员模块(1)发布新问题;(2)用户管理,管理员可以增加和删除普通用户(超级用户不能删除),或者更改普通用户密码;(3)查看所有投票;从功能描述的内容中可以看到,管理员模块可以实现发布新投票、重新编辑投票、查看所有投票、删除投票、公布结果和撤销投票等多个完整的功能,并且不同功能之间也存在着一些直接或间接联系,如图2所示。

图二管理员模块图在线投票系统的流程图包含了该系统的投票原理与主要制作方法。

从流程图上我们可以看到在线投票系统需要经过登录、显示投票表单、取得投票参数、累加投票数、将投票写入数据库和显示投票结果等步骤,其流程图,如图3所示。

图三投票流程图3系统实现3.1 数据库实现数据库设计是软件开发中的重要环节,是对系统数据全面的、详细的分析。

数据库设计的好坏直接关系到整个项目设计的效率的高低,关系到设计的稳定性。

根据在线投票系统不同模块之间的联系和前期的设计目的与需求,设计了三个不同的数据表,它们分别是用户表、投票选项表和投票主题表。

1.用户表(users)用户表包括所有用户的各种信息,如用户名、密码等详细数据并规定了每个字段的类型,如表1所示。

2.管理员表(admins)管理员表包括管理员的各种信息,如管理员名称、密码等详细数据并规定了每个字段的类型,如表2所示。

3.投票选项表(items)投票选项表包括每个投票选项的基本信息,如投票编码、问题ID、投票选项和投票选项各选项所得票数等信息,同时此表还规定了字段类型和长度,具体的数据说明如表3所示。

4.投票主题表(questions)投票主题表包括投票主题、问题ID、是否对外投票、投票日期以及是否对外公布投票结果等信息,详细数据类型和字段长度如表4所示。

表4 投票主题表(questions)字段名数据类型长度是否主键描述QuestionID Int 255 是问题IDQuestion varcher 500 否投票主题IsVisable int 20 否是否对外投票Date varcher 100 否日期值IsOpen int 20 否是否对外公布结果3.2 程序模块实现本系统分为普通用户和管理员两部分模块。

普通用户模块具有注册、登录、投票等功能;管理员模块则具有登录、发布新投票、编辑投票、撤消投票、删除投票、用户管理与公布结果等功能。

3.2.1普通用户1.注册模块普通用户登录在线投票系统需要先进行账号注册,注册成功后方可以其他操作,注册模块的界面如图4所示。

图4 用户注册当用户输入合法用户名和密码后就可以完成用户注册,提示页面如图5所示。

图5 注册成功提示2.登录模块普通用户在完成注册后方可以登录在线投票系统,注册完毕后单击“请重新登录”便可以重新返回登录页面,如图6所示。

图6 用户登录3.投票模块当所有的选项都投票完毕后,用户单击“投票入口”按钮,便可进入投票页面,如图7所示。

图7 投票页面4.投票结束当所有的选项都投票完毕后,用户单击“提交”按钮,便完成了投票的流程,如果用户想要查看这些问题的投票结果,投票完毕后点击“查看投票结果”便可以查看当前投票结了,如图8所示。

图8 查看结果3.2.2 管理员1.用户管理模块管理员登录在线投票系统后可以对普通用户的账号及密码进行相关的管理操作,管理员可以直接删除用户,也可以更改用户名密码,相关页面如图9所示。

图9 用户管理2.投票发布模块管理员登录在线投票系统后可以根据需要发布相关投票,并可以对相关投票进行删除、发布、撤消、隐藏等操作,相关页面如图10所示。

图10 投票发布3.重新编辑模块当有重新编辑某一投票选项的需要时,管理员可以单击“编辑”对相关投票进行重新编辑,编辑完毕后单击“发布按钮”编辑完成,相关页面如图11所示。

图11 重新编辑4.公布结果模块管理员发布的投票可以根据实际需要公布和投票结果,当投票过期或者此投票已经没有公布结果的需要时,管理员可以根据需要单击“公布结果”或“隐藏结果”。

相关文档
最新文档