✅ 操作成功!

投票表决系统

发布时间:2023-06-11 作者:admin 来源:文学

投票表决系统

投票表决系统

-

2023年3月6日发(作者:你曾是少年歌词)

在线投票系统详细设计

文档下载站更多资源下载

本站所有资源均来自互联网或本站会员提供,如有侵犯您的版权或其他问题,请通知管理员,我们会在最

短的时间回复您!

第1部分概述

在线投票系统主要用来统计网站用户对某

个主题或热门话题的意见。决策者通过这些统计

数据做出相应的决策。在线投票系统是一般网站

必备的程序之一,如果网站开发者想了解用户对

该网站的意见和建议。他可以设计这样一个投票

主题:你认为该网站如何?(A.很好

B.一般C.不好)然后提供给用户进行投票。

我的投票系统具有极大的灵活性,投票类型分

为单选投票和多选投票。管理员可以在线设计不

同的投票主题供用户进行投票。

对于该设计报告还有什么不当之处请见谅,

文档下载站更多资源下载

本站所有资源均来自互联网或本站会员提供,如有侵犯您的版权或其他问题,请通知管理员,我们会在最

短的时间回复您!

文档下载站更多资源下载

本站所有资源均来自互联网或本站会员提供,如有侵犯您的版权或其他问题,请通知管理员,我们会在最

短的时间回复您!

文档下载站更多资源下载

本站所有资源均来自互联网或本站会员提供,如有侵犯您的版权或其他问题,请通知管理员,我们会在最

短的时间回复您!

第2部分分析部分

2.1.功能需求

通过对用户的需求调查分析,可以概括出用

户的功能需求如下:单选投票、多选投票、查看

投票、投票设计。

单选投票:用户只能从多个选项中选取一项进

行投票。

多选投票:用户可以从多个选项中选取多项进

行投票。

查看投票:提供用户查看当前投票情况,投票

结果以条形图显示。

投票设计:管理员可以设计不同的投票主题,

及投票主题的内容供用户进行投票。投票

设计又包括以下功能需求:增加

主题、删除主题、查看主题、修改主题。

第3部分系统设计

3.1.功能模块设计

通过对功能需求进行分析和概括得到如图

所示的系统功能模块图:

系统的功能模块图

在线投票系统

3.2.数据库的设计

该系统的数据库采用MySQL,根据投票系

统功能设计的要求,可以列出以下数据项和数据

结构:

投票表:存放投票信息,数据项包括:序号、

标识、选项类型、投票主题、投票选项内容、

得票数。

第4部分系统开发

4.1.数据库

4.1.1.创建数据库

CREATEDATABASEdb70019618;

4.1.2.创建表

创建数据库中用到的投票表:

CREATETABLEvote

(

idINTNOTNULL

AUTO_INCREMENT,

flagint,

optTypeint,

questionCHAR(255),

optContentCHAR(255),

numberINT,

PRIMARYKEY(id),

);

数据库创建后的结构图如下:

4.1.3.连接数据库

该系统使用了MySQL的JDBC驱动程序来

连接数据库。因为对数据库的访问,在整个系统

中比较频繁,所以我将对数据库的操作写成一个

DBConnect的类,通过该类来连接数据库和访问

数据库。

//部分代码如下

publicDBConnect(){

try{

//加载数据库驱动程序

e(sDBDriver);

//建立连接

conn=nection(sConnStr);

}

catch(Exceptione){

n("DBConnect():"+sage());

}

}

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.修改里连接MySQL数据

库的IP、用户名和密码为你自己的IP,user,

password修改编译之后放到WEB-INFclasses

目录下面。

3.请创建数据库db70019517,然后使用

mysqldb70019517<脚本创建该数据库

使用到的表。(脚本存放的路径)

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

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

127.0.0.1:8080/vote/)。

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设计代码

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

<%@pageimport=".*"%>

在线投票

单选投票

<%

Stringsql="select*fromvotewhereflag=0andoptType=0orderbyiddesc";

ResultSetrs=eQuery(sql);

intquestionNum=0,optType,id,id1;

Stringquestion,str,optContent,type;

while(()){

//输出投票的主题

questionNum++;

str="主题"+questionNum+":";

question=ing("question");

optType=("optType");

id=("id");

(str+question+"");

ResultSetrs1;

sql="select*fromvotewhereflag="+id;

rs1=eQuery(sql);

("");

//输出该主题的选项

while(()){

id1=("id");

optContent=ing("optContent");

if(optType==0)

type="radio";

else{

type="checkbox";

}

%>

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

<%=optContent%>

<%}%>

<%}%>

<%();%>

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

<%@pageimport=".*"%>

投票结果

单选投票结果

<%

Stringsql="select*fromvoteorderbyid";

ResultSetrs=eQuery(sql);

Stringid;

id=ameter("vote");

sql="updatevotesetnumber=number+1whereid="+id;

eQuery(sql);

ResultSetrs1,rstotal;

intquestionNum=0,optType,id1,number,total=0;

Stringquestion,str,optContent;

sql="select*fromvotewhereflag=0andoptType=0orderbyiddesc";

rs=eQuery(sql);

while(()){

questionNum++;

str="主题"+questionNum+":";

question=ing("question");

optType=("optType");

id=ng(("id"));

(str+question+"");

sql="select*fromvotewhereflag="+id;

rstotal=eQuery(sql);

//求得投票的总数

while(()){

number=("number");

total+=number;

}

sql="select*fromvotewhereflag="+id;

rs1=eQuery(sql);

("");

//输出各选项的得票数

while(()){

id1=("id");

optContent=ing("optContent");

number=("number");

%>

<%=optContent%>得票数:<%=number%>

"height=10>

<%}%>

<%}%>

返回主页

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

<%@pageimport=".*"%>

<%

Stringquestion=ameter("question");

if(question==null){

question="";

}

Stringtype=ameter("type");

intnum=0,optType=0;

try{

num=nt(ameter("num"));

}

catch(Exceptione){}

%>

增加主题

增加主题

增加主题||删除主题||

href="">查看主题

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

请输入主题名:

">

<%

if(type!=null){

("checked");

optType=1;

}

else{

optType=0;

}

%>

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

">

<%

Stringsubmit=ameter("sumbit");

if(submit!=null){

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

%>

选项<%=i%>:

"value=""size="50">

<%}%>

<%}%>

<%

Stringsubmit1=ameter("submit1"),str="",optContent,sql;

intid;

if(submit1!=null){

sql="insertintovote(flag,optType,question)

values(0,"+optType+",'"+question+"')";

eUpdate(sql);

sql="select*fromvoteorderbyiddesc";

ResultSetrs=eQuery(sql);

id=(1);

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

str=ng(i);

optContent=ameter(str);

sql="insertintovote(flag,optContent,number)

values("+id+",'"+optContent+"',0)";

eUpdate(sql);

}

("成功插入主题!");

}

%>

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

<%

Stringid=ameter("id");

Stringsql="deletefromvotewhereid="+id;

if(id!=null){

if(eUpdate(sql)){

("删除记录成功。");

}

}

%>

删除主题

删除主题

增加主题||删除主题||

href="">查看主题

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

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

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

<%@pageimport=".*"%>

查看主题

查看主题

增加主题||删除主题||

href="">查看主题

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

<%

Stringsql="select*fromvote";

ResultSetrs=eQuery(sql);

%>

序号

标识

投票主题

投票选项

得票数

<%

while(()){

n("");

n(""+("id")+"");

n(""+("flag")+"");

n(""+ing("question")+"");

n(""+ing("optContent")+"");

n(""+("number")+"");

n("");

}

%>

<%();%>

<%@page

contentType="text/html;charset=gb2312"%>

<%@pageimport=".*"%>

class="ect"/>

修改主题

content="text/html;charset=gb2312">

type="text/css">

修改主题

增加主题||

href="">删除主题||

href="">查看主题

||修改主题||

href="">返回首页

请输入您所要修改的主题名:

size="50">

value="查询">

<%

Stringsubmit,sql;

intid;

submit=ameter("submit");

if(submit!=null){

Stringsql_s=ameter("sql");

ResultSetrs,rs1;

inti=0;

if(sql_s!=null){

sql="select*fromvotewherequestion

='"+sql_s+"'";

rs=eQuery(sql);

id=("id");

%>

method="post">

题目

name="id"value="<%=id%>">

type="text"

value="<%=ing("question")%>"

size="50"maxlength="50">

选项

<%

sql="select*fromvotewhereflag="+id;

rs1=eQuery(sql);

while(()){

%>

name="optContent<%=i%>"size="100"

value="<%=ing("optContent")%>

">

name="id<%=i%>"

value="<%=("id")%>">

<%i++;}%>

name="count"value="<%=i%>">

是否多选

<%

inttype=("optType");

Strings_type="";

if(type==1){

s_type="checked";

}

%>

value="1"<%=s_type%>>

name="submit1"value="更新">

<%}

}

Stringsubmit1;

submit1=ameter("submit1");

if(submit1!=null){

int

count=nt(ameter("c

ount"));

int

flag=nt(ameter("id

"));

StringoptType,optType1;

optType=ameter("multiple");

if(optType==null)

optType1="0";

else{

optType1="1";

}

String

question=ameter("question");

sql="updatevotesetquestion='"+question

+"',optType="+optType1+"where

id="+flag;

if(eUpdate(sql))("更

新主题成功!");

StringoptContent,optContent1,id1;

for(inti=0;i

optContent1="optContent"+i;

id1="id"+i;

id=nt(ameter(id1));

optContent=ameter(optContent1)

;

sql="updatevoteset

optContent='"+optContent+"'whereid="+id;

eUpdate(sql);

}

}

%>

packagevote;

.*;

publicclassDBConnect{

//设置连接数据库的参数

privateStringuser="s70019618";

privateStringpassword="s7001618";

//MySQL的JDBC驱动程序

StringsDBDriver=

"";

//连接数据库

StringsConnStr=

"jdbc:mysql://localhost:3306/db70019618?user

&password";

Connectionconn=null;

Statementstmt=null;

ResultSetrs=null;

publicDBConnect(){

try{

//加载数据库驱动程序

e(sDBDriver);

//建立连接

conn=

nection(sConnStr);

}

catch(Exceptione){

n("DBConnect():"+

sage());

}

}

//查询

publicResultSetexecuteQuery(Stringsql){

try{

stmt=Statement();

rs=eQuery(sql);

}

catch(SQLExceptionex){

n("eQuery:"

+sage());

}

returnrs;

}

//更新

publicbooleanexecuteUpdate(Stringsql){

try{

stmt=Statement();

eUpdate(sql);

returntrue;

}catch(SQLExceptionex){

n("eUpdate:"

+sage());

returnfalse;

}

}

//关闭数据库的连接

publicvoidclose()throwsException{

();

();

}

}

👁️ 阅读量:0