网站设计与开发
课程设计报告
题目:网上投票系统
1. 概述
当今时代是一个信息化程度非常高的时代,在这个时代必须时刻掌握信息、收集信息、分析信息才能让自己处于一个具有优势的地位。网上投票系统适合在网上做信息收集作用,管理员通过在网上发布问题,收集来自网上用户的选票,通过对投票结果的分析,完成许多调查。
简单投票功能是网站应用程序最常用的的功能之一,也是网站应用程序开发常用的功能模块。网站可以通过网站在线投票功能做一些实际性的调查工作,统计网站用户对某个话题的意见,后台查看投票结果,显示信息,决策者通过这些数据统计做出相应的决策。
2.系统分析
2.1 系统分析
建立一个简单的投票网站, 用户根据主题对所投项目进行投票,用户每投一次将在数据库中为所投项目的次数属性加一,最终次数属性的值就是此项目的支持数。 同时,后台可以通过需要增加或删减所需投票的项目。
2.2简单投票系统实现流程图
整个系统的实现流程图如下图所示
显示投票结果
投票
添加投票项目
设计数据库
2.3 软件开发环境
操作系统:windows 7
数据库服务器:sql
开发环境:JSP、JavaBean
3.数据库设计与连接
3.1 数据库设计
本系统需要使用Microsoft SQL Server2000 数据库系统来数据存储程序运行时的各种数据。在开始网站设计之前应先创建数据库及包含的数据
。
创建数据库
投票功能的数据库比较简单,只需要知道投票的项目和项目被投的次数。为了保证投票项目的唯一性,还要为其设计一个ID属性。创建一个数据库:edu,建立一个数据表:education,学校名:name,投票数:num
create database edu(创建库)
use edu
create table education
(id int identity(1,1) primary key,
name char(20) not null,
num int not null
)
3.2 数据库连接
网站与数据库的连接需要加入驱动包,这里用到sql的驱动为:jtds-0.8.1.jar
创建Conn.java类文件
package com;
import java.sql.*;
public class Conn {
String url,sql;
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
public Conn()
{
try{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
url="jdbc:jtds:sqlserver://localhost:1433/edu";
con=DriverManager.getConnection(url,"sa","");
stmt=con.createStatement();
}catch(Exception e)
{
e.printStackTrace();
}
}
public ResultSet executeQuery(String sql)
{
try{
rs=stmt.executeQuery(sql);
}catch(SQLException e)
{
System.err.println(e.getMessage());
}
return rs;
}
public int executeUpdate(String sql)
{
int result=0;
try{
result=stmt.executeUpdate(sql);
}catch(SQLException e)
{
e.getMessage();
}
return result;
}
}
4.功能模块设计
(1)运行程序,显示整个窗体,如图4.1:
图 4.1
(2)投票提交,sql执行对投票数进行累加,如图4.2:
图 4.2
(3)投票成功后提示并转到结果显示页,显示投票结果,如图4.3:
图4.3
(4)系统可以增加或删除投票的项目,如图4.4和4.5
图4.4
图4.5
5.主要实现代码
(1)index.jsp (首页)
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
请选择你喜欢的学校投票
<%
request.setCharacterEncoding("gb2312");
%>
<%!
String sql;
ResultSet rs;
%>
<%
sql="select * from education";
rs=voteBean.executeQuery(sql);
%>
(2)Vote.jsp(投票提交,sql执行对投票数进行累加)
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*" language="java"%>
<%
String name=request.getParameter("name");
if(name !=null && name !="")
{
String sql="update education set num=num+1 where id="+name;
voteBean.executeUpdate(sql);
}
%>
(3)s.jsp (投票后提示信息并转向结果显示)
<%@ page contentType="text/html; charset=gb2312"%>
投票
(4)result.jsp(结果显示页)
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
投票结果
<%!
int totalSum=0;
ResultSet rs=null;
String sql;
%>
<%
rs=voteBean.executeQuery("select * from education");
int i=1;
while(rs.next())
{
%>
选项<%=i%>:<%=rs.getString("name")%>
|
<%
totalSum=rs.getInt("num");
%>
得票:[<%=totalSum %>] |
<%
i++;
}
%>
<%
rs.close();
%>
(5)add.jsp (添加页面)
<%@ page language="java" contentType="text/html;charset=gb2312"%>
添加学校
(6)addvote.jsp (添加执行操作)
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java"import="java.sql.*"%>
<%!
String name;
ResultSet rs;
String sql;
%>
<%
request.setCharacterEncoding("gb2312");
name=request.getParameter("name1");
if(name!=null && name!="")
{
sql="insert into education(name,num) values('"+name+"',0)";
voteBean.executeUpdate(sql);
}
%>
(7)del.jsp (删除页面)
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
修改,删除操作
<%!
ResultSet rs;
String sql;
%>
<% request.setCharacterEncoding("gb2312");
sql="select id,name from education order by id";
rs=voteBean.executeQuery(sql);
%>
序号
|
学校
|
删除操作
|
<%
int i=1;
while(rs.next()){
%>
<%=i%> |
<%=rs.getString("name")%> |
|
<%
i=i+1;
}
%>
(8)delcl.jsp(执行删除操作)
<%@ page language="java" import="java.sql.*" contentType="text/html;charset=gb2312"%>
删除操作
<%
String id=request.getParameter("id");
if(id!=null &&id!="")
{
voteBean.executeUpdate("delete from education where id="+id);
}
%>
(9) style.css
body{font-size:85%;background-image:url('img/background.jpg')}
td{font-size:9pt;}
p{font-size:9pt;}
li{font-size:9pt;}
a{text-decoration:none;color:navy}
a:hover{color:#ff0000;text-decoration:underline}
6.设计小结
通过这次课程设计,我掌握了常用数据库方面的知识,也进一步的学习了SQL Server2000和JSP方面的知识,更重要的是,它不仅培养了我独立思考,动手方面的能力,在其他的能力上也有所提高,让我们学会了很多学习的方法。在设计的过程中也遇到了一些问题,但是经过小组的讨论以及一遍遍的调试,我们找出来问题所在。与此同时,也知道了自己的不同之处,对以前的知识掌握的不够牢固,也明白了只有理论知识是远远不够的,只有把所学的知识与实际相结合,从实践中得出结论,才能更好地完成任务,从而提高自己的能力。