人人范文网 范文大全

在线投票系统

发布时间:2020-03-03 05:01:42 来源:范文大全 收藏本文 下载本文 手机版

  实验题目:在线投票系统

实验目的:综合运用Web开发技术开发一个在线投票系统,开发过程涵盖需求、设计、编码、测试等软件开发生命周期的各个阶段,通过这个项目的开发,使学生具备较强的Web开发能力,并培养学生的动手能力和解决实际问题的能力。

 实验要求:项目包含网站前台和后台管理系统,涉及用户管理、投票管理、报表系统等功能。需要实现用户界面和业务逻辑,数据存储在数据库中。

 主要代码:

javabean的设计: 1.值建一个值JavaBean用来封装存储表tb-temp中的投票选项信息,代码如下:

package com.yxq.valuebean;

public cla VoteSingle {

private String id; //存儲選項ID private String title;//存儲選項標題 private String num;//存儲選項所得票數 private String order;//存儲選項的排列序號

public String getId() { } public void setId(String id) { } public String getNum() { } public void setNum(String num) { } public String getOrder() { } public void setOrder(String order) { } public String getTitle() { this.order = order; return order; this.num = num; return num; this.id = id; return id;

} } return title; public void setTitle(String title) { } this.title = title;

同样建另一个值JavaBean用来封装存储表tb-vote中的信息:

package com.yxq.valuebean;

public cla TempSingle {

} private String id;//存儲投票用戶ID private String voteIp;//存儲投票用戶IP private long voteMSEL;//存儲毫秒數

private String voteTime;//存儲yyyy-MM-dd HH:mm:形式的時間

public long getVoteMSEL() { } public void setVoteMSEL(long voteMSEL) { } public String getVoteTime() { } public void setVoteTime(String voteTime) { } public String getId() { } public void setId(String id) { } public String getVoteIp() { } public void setVoteIp(String voteIp) { } this.voteIp = voteIp; return voteIp; this.id = id; return id; this.voteTime = voteTime; return voteTime; this.voteMSEL = voteMSEL; return voteMSEL; 2.数据库操作类的编写: 定义属性及构造方法 package com.yxq.toolbean;

import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List;

import com.yxq.valuebean.TempSingle; import com.yxq.valuebean.VoteSingle;

public cla DB { private String claName;//存儲數據庫驅動類路徑

private String url;//存儲數據庫URL

private String username;//存儲登陸數據庫的用戶名

private String paword;//存儲登陸數據庫的密碼

private Connection con;//聲明一個Connection對象

private Statement stm;//聲明一個Statement對象用來執行SQL語句

private ResultSet rs;//聲明一個ResultSet對象用來存儲結果集

public DB() {

//通過構造方法為屬性賦值

claName = \"org.apache.derby.jdbc.ClientDriver\";

url = \"jdbc:derby://localhost:1527/myeclipse\";

username = \"claiccars\";

paword = \"claiccars\"; }

/**

* @功能 加载数据库驱动程序

*/ public void loadDrive() {

try {

Cla.forName(claName);

//加載數據庫驅動程序

} catch (ClaNotFoundException e) {

System.out.println(\"加载数据库驱动程序失败!\");

e.printStackTrace();

//向控制臺輸出提示信息

} }

/**获取数据库连接

* @功能

*/ public void getCon() { loadDrive(); //加載數據庫驅動程序

try {

con = DriverManager.getConnection(url, username, paword);//獲取連接

} catch (Exception e) {

System.out.println(\"连接数据库失败!\");

e.printStackTrace(); } } /** * @功能 获取Statement对象

*/ public void getStm() { getCon();//獲取數據庫連接

try {

stm = con.createStatement();//獲取Statement類對象

} catch (Exception e) {

System.out.println(\"获取Statement对象失败!\");

e.printStackTrace(); } } /** * @功能 查询数据表,获取结果集

*/ public void getRs(String sql) { getStm(); try {

rs = stm.executeQuery(sql);//執行SQL語句查詢數據表獲取結果集

} catch (Exception e) {

System.out.println(\"查询数据库失败!\");

e.printStackTrace(); } } /** * @功能 查询数据表,获取投票选项

*/ public List selectVote(String sql) {

} List votelist = null; if (sql != null && !sql.equals(\"\")) { getRs(sql);//查詢數據表獲取結果集

if (rs != null) {

votelist = new ArrayList();

try {

while (rs.next()) {//依次將結果集中的记录封装到VoteSingle类对象中

VoteSingle voteSingle = new VoteSingle();

voteSingle.setId(MyTools.intToStr(rs.getInt(1)));

voteSingle.setTitle(rs.getString(2));

voteSingle.setNum(MyTools.intToStr(rs.getInt(3)));

voteSingle.setOrder(MyTools.intToStr(rs.getInt(4)));

votelist.add(voteSingle);//将VoteSingle类对象存储到List集合中

}

} catch (Exception e) {

System.out.println(\"封装tb_vote表中数据失败!\");

e.printStackTrace();

} finally {

closed();

//关闭 数据库

} } } return votelist; /** * @功能 查询数据表,获取指定IP最后一次投票的记录

*/ public TempSingle selectTemp(String sql) { TempSingle tempSingle = null; if (sql != null && !sql.equals(\"\")) {

getRs(sql);//查询数据表获取结果集

if (rs != null) {

try {

while (rs.next()) {//若该结果集中有记录,说明当前用户投过票

tempSingle = new TempSingle();

tempSingle.setId(MyTools.intToStr(rs.getInt(1)));

tempSingle.setVoteIp(rs.getString(2));

tempSingle.setVoteMSEL(rs.getLong(3));

tempSingle.setVoteTime(rs.getString(4));

}

} catch (Exception e) {

System.out.println(\"封装tb_temp表中数据失败!\");

e.printStackTrace();

} finally {

closed();

//关闭数据库

}

}

}

return tempSingle;//返回TempSingle类对象中

}

/**

* @功能 更新数据表,实现票数累加

*/ public int update(String sql) {

int i = -1;

if (sql != null && !sql.equals(\"\")) {

getStm();//获取Statement类对象

try {

i = stm.executeUpdate(sql);//执行SQL语句更新数据表

} catch (Exception e) {

System.out.println(\"更新数据库失败!\");

e.printStackTrace();

} finally {

closed();

}

}

return i; } /**

* @功能 关闭数据库连接

*/ public void closed() {

try {

if (rs != null)

rs.close();//关闭结果集

if (stm != null)

stm.close();//关闭Statement类对象

if (con != null)

con.close();//关闭数据库连接

} catch (Exception e) {

System.out.println(\"关闭数据库失败!\");

e.printStackTrace();

} } } 3.工具类的编写: package com.yxq.toolbean;

import java.text.SimpleDateFormat; import java.util.Date;

public cla MyTools { /** * @功能 将int型数据转换为String型数据

* @参数 num为要转换的int型数据

* @返回值 String类型

*/ public static String intToStr(int num){

return String.valueOf(num); } /** * @功能 比较时间。

* @参数 today当前时间,temp为上次投票时间。这两个参数都是以毫秒显示的时间

* @返回值 String类型

*/ public static String compareTime(long today,long temp){

int limitTime=60;

//设置限制时间为60分钟

long count=today-temp;

//计算当前时间与上次投票时间相差的毫秒数(该结果一定是大于等于0)

if(count

//如果相差小于等于60分钟(1分=60秒,1秒=1000毫秒)

return \"no\";

else

//如果相差大于60分钟

return \"yes\"; } /** * @功能 格式化时间为指定格式。首先通过Date类的构造方法根据给出的毫秒数获取一个时间,然后将该时间转换为指定格式,如\"年-月-日 时:分:秒\" * @参数 ms为毫秒数

* @返回值 String类型

*/ public static String formatDate(long ms){

Date date=new Date(ms);

SimpleDateFormat format=new SimpleDateFormat(\"yyyy-MM-dd HH:mm:\");

String strDate=format.format(date);

return strDate; } } 4.显示投票选项的设计: <%@ page contentType=\"text/html; charset=UTF-8\"%> <%@ page import=\"java.util.List\" %>

<%@ page import=\"com.yxq.valuebean.VoteSingle\" %>

<%

response.addHeader(\"Pragma\",\"No-cache\"); response.addHeader(\"Cache-Control\",\"no-cache\"); response.addDateHeader(\"Expires\",1L);

String sql=\"select * from app.tb_vote order by vote_order\";//生成查询投票选项的SQL语句

List votelist=myDb.selectVote(sql); //查询数据表获取所有投票选项 %>

在线投票

background=\"images/voteT.jpg\">

<% if(votelist==null||votelist.size()==0){ %> 没有选项可显示!

<% } else{ %>

<%

int i=0; while(i

%>

style=\"text-indent:7\"><%=single.getTitle() %> \">

<%

i++; } //while结束

%>

票!

<%

} //else结束

%>

style=\"background-image:url(images/submitB.jpg);width:68;height:26;border:0\">

style=\"background-image:url(images/resetB.jpg);width:68;height:26;border:0\">

           &nb

注意事项:

1小时内只能投一次

VoteSingle single=(VoteSingle)votelist.get(i);

sp;

在线投票系统综述

网络在线投票系统可行性分析

投票系统课程设计

网络投票系统使用手册

投票系统的好处

在线投票系统中刷票与反刷票的斗争

jsp简单编写投票系统

JSP实现投票系统源码

教你用科讯CMS 打造选秀活动在线投票系统

在线请假系统

在线投票系统
《在线投票系统.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档