基于Java技术的在线投票系统设计精品.docx

上传人:b****5 文档编号:5326380 上传时间:2022-12-15 格式:DOCX 页数:23 大小:140.55KB
下载 相关 举报
基于Java技术的在线投票系统设计精品.docx_第1页
第1页 / 共23页
基于Java技术的在线投票系统设计精品.docx_第2页
第2页 / 共23页
基于Java技术的在线投票系统设计精品.docx_第3页
第3页 / 共23页
基于Java技术的在线投票系统设计精品.docx_第4页
第4页 / 共23页
基于Java技术的在线投票系统设计精品.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于Java技术的在线投票系统设计精品.docx

《基于Java技术的在线投票系统设计精品.docx》由会员分享,可在线阅读,更多相关《基于Java技术的在线投票系统设计精品.docx(23页珍藏版)》请在冰豆网上搜索。

基于Java技术的在线投票系统设计精品.docx

基于Java技术的在线投票系统设计精品

毕业论文(设计)

 

题目在线投票系统

 

学生姓名学号

班级

专业

分院

指导教师

2008年04月04日

 

第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\vote.sql)

4.然后在浏览器输入URL:

(例如这是我的运行方法:

http:

//127.0.0.1:

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.*"%>

useBeanid="dbBean"class="vote.DBConnect"scope="page"/>

在线投票

单选投票


<%

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+"
");

ResultSetrs1;

sql="select*fromvotewhereflag="+id;

rs1=dbBean.executeQuery(sql);

out.print("


");

//输出该主题的选项

while(rs1.next()){

id1=rs1.getInt("id");

optContent=rs1.getString("optContent");

if(optType==0)

type="radio";

else{

type="checkbox";

}

%>

"name="vote"value="<%=id1%>">

<%=optContent%>

<%}%>


<%}%>

<%rs.close();%>

2.result.jsp

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.sql.*"%>

投票结果

useBeanid="dbBean"class="vote.DBConnect"scope="page"/>

单选投票结果


<%

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+"
");

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("


");

//输出各选项的得票数

while(rs1.next()){

id1=rs1.getInt("id");

optContent=rs1.getString("optContent");

number=rs1.getInt("number");

%>

<%=optContent%>得票数:

<%=number%>

"height=10>

<%}%>


<%}%>

返回主页

3.add.jsp

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.sql.*"%>

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){}

%>

增加主题

增加主题


增加主题||删除主题||查看主题

||修改主题||返回首页


请输入主题名:


">

<%

if(type!

=null){

out.print("checked");

optType=1;

}

else{

optType=0;

}

%>

>多选  请输入选项的数目:

">

<%

Stringsubmit=request.getParameter("sumbit");

if(submit!

=null){

for(inti=1;i<=num;i++){

%>

选项<%=i%>:

"value=""size="50">


<%}%>

<%}%>

<%

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("成功插入主题!

");

}

%>

4.del.jsp

<%@pagecontentType="text/html;charset=gb2312"%>

useBeanid="dbBean"scope="session"class="vote.DBConnect"/>

<%

Stringid=request.getParameter("id");

Stringsql="deletefromvotewhereid="+id;

if(id!

=null){

if(dbBean.executeUpdate(sql)){

out.print("删除记录成功。

");

}

}

%>

删除主题

删除主题


增加主题||删除主题||查看主题

||修改主题||返回首页


请输入删除的序号(ID):


5.display.jsp

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.sql.*"%>

查看主题

查看主题


增加主题||删除主题||查看主题

||修改主题

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1