JSP在线投票实验报告
第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方法,而是用一些特定的方法用于启动、执行和退出。通过使用Servlet,可以与运行与客户端的Applet进行交互,也可以直接与HTML 页进行交互。
JavaBeans: JavaBeans是可复用的平台中立的软件组件,可以在软件开发工具中被直观地操作。应用程序开发者可以通过支持JavaBeans的开发工具,直接使用现成的JavaBeans,也可以在开发工具容器中,对组件进行必要的修改、测试而不必编写和编译程序。在Java模型中,组件可以修改或与其他组件组合以生成新组件或完整的应用程序。
HTML:(Hypertext Markup Language)超文本标记语言,它是组织多媒体文档的重要语言,它不仅用来编写Web网页,而且可以使用它来制作光盘上的多媒体节目。HTML可用来编排文档、创建列表、建立链接等等。
XML:(eXtensible Markup Language)可扩展标记语言,它是一种具有数据描述功能(Meta-language)、高度结构性及可验证性的语言。
SQL:(Structured Query Language),结构化查询语言。SQL语言地任务就是与各种数据库建立关系,SQL语言是关系型数据库的标准语言,大多数关系型数据库管理系统都支持SQL语言并采用了SQL的语言标准。
MySQL:MySQL是一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。按照使用又可以分为DML(Data Manipulation Language),即数据操作语言和DDL(Data Definition Language)。
第2部分分析部分
2.1.功能需求
通过对用户的需求调查分析,可以概括出用户的功能需求如下:单选投票、多选投票、查看投票。
◆单选投票:用户可以从多个选项中选取一项进行投票。
◆多选投票:用户可以从多个选项中选取多项进行投票。
◆查看投票:提供用户查看当前投票情况,投票结果以条形图显示。
第3部分系统设计
3.1.功能模块设计
通过对功能需求进行分析和概括得到如图所示的系统功能模块图:
3.2.数据库的设计
该系统的数据库采用MySQL ,根据投票系统功能设计的要求,可以列出以下数据项和数据结构:
tb_temp 表:id 、voteIp 、toteMSEL 、votetime 、。 tb_vote 表:Id 、vote_title 、vote_num 、vote_order 。
参与投票 返回首页
返回投票
返回首页
查看结果
重新选择
提交投票
查看结果
查看结果
返回投票
返回首页
第4部分系统开发4.1.数据库
4.1.1.创建数据库
4.1.2.创建表
4.1.3.连接数据库
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;
4.2.功能的实现
投票流程图:
开始
否
是
该流程图已经包含了在线投票系统的制作的主要方法。下面的工作实际上就是按照该流程图,写出具体的代码。 设计代码中有我开发的代码,并附有注释。所以在这里我就不展开介绍每一个功能的开发过程。
第5部分 运行部分
5.1.系统的使用
为了直观,在这里我将主要通过程序运行截图来介绍该投票系统的使用。
进入在线投票系统的首页,在首页中显示了该系统的操作。
结 束
显示投票表单
取得投票的参数
累加投票数
将结果写入数据库 显示投票结果
是否取得参数
链接即可打开投票页面。
?点击“提交投票”链接。
点击“查看结果“链接后,可以查看在线投票的结果。
第6部分设计代码
1.vote.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.yxq.valuebean.V oteSingle" %>
·····
····
···
2.doV ote.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="com.yxq.valuebean.TempSingle" %>
<%@ page import="com.yxq.toolbean.MyTools" %>
<%@ page import="java.util.Date" %>
···
····
3.index.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
4.Messages.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%
String message=(String)session.getAttribute("mess");
if(message==null)
message="";
session.invalidate();
%>
|
5.showVote.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="com.yxq.valuebean.V oteSingle" %>
<%
float numAll=0;
String sql="select * from tb_vote order by vote_order";
List showlist=myDb.selectV ote(sql);
%>
6、MyTools.java
package com.yxq.toolbean;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyTools {
/**
* @功能将int型数据转换为String型数据
* @参数num为要转换的int型数据
* @返回值String类型
*/
public static String intToStr(int num){
return String.valueOf(num);
}
/**
* @功能比较时间。
* @参数today当前时间,temp为上次投票时间。这两个参数都是以毫秒显示的时间
* @返回值String类型
*/
/**
* @功能格式化时间为指定格式。首先通过Date类的构造方法根据给出的毫秒数获取一个时间,然后将该时间转换为指定格式,如"年-月-日时:分:秒"
* @参数ms为毫秒数
* @返回值String类型
*/
public static String formatDate(long ms){
Date date=new Date(ms);
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate=format.format(date);
return strDate;
}
}
7、DB.java
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.V oteSingle;
public class DB {
private String className;
private String url;
private String username;
private String password;
private Connection con;
private Statement stm;
private ResultSet rs;
public DB() {
className = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
url = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=db_vote";
username = "sa";
password = "123";
}
/**
* @功能加载数据库驱动程序
*/
public void loadDrive() {
try {
Class.forName(className);
} catch (ClassNotFoundException e) {
System.out.println("加载数据库驱动程序失败!");
e.printStackTrace();
}
}
/**
* @功能获取数据库连接
*/
public void getCon() {
loadDrive();
try {
con = DriverManager.getConnection(url, username, password);
} catch (Exception e) {
System.out.println("连接数据库失败!");
e.printStackTrace();
}
}
/**
* @功能获取Statement对象
*/
public void getStm() {
getCon();
try {
stm = con.createStatement();
} catch (Exception e) {
System.out.println("获取Statement对象失败!");
e.printStackTrace();
}
}
/**
* @功能查询数据表,获取结果集
*/
public void getRs(String sql) {
getStm();
try {
rs = stm.executeQuery(sql);
} catch (Exception e) {
System.out.println("查询数据库失败!");
e.printStackTrace();
}
}
/**
* @功能查询数据表,获取投票选项
*/
/**
* @功能查询数据表,获取指定IP最后一次投票的记录*/
/**
* @功能更新数据表
*/
/**
* @功能关闭数据库连接
*/
8、TempSingle.java
package com.yxq.valuebean;
public class TempSingle {
private String id;
private String voteIp;
private long voteMSEL;
private String voteTime;
public long getV oteMSEL() {
return voteMSEL;
}
public void setV oteMSEL(long voteMSEL) {
this.voteMSEL = voteMSEL;
}
public String getV oteTime() {
return voteTime;
}
public void setV oteTime(String voteTime) { this.voteTime = voteTime;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getV oteIp() {
return voteIp;
}
public void setV oteIp(String voteIp) {
this.voteIp = voteIp;
}
}
9、V oteSingle.java
package com.yxq.valuebean;
public class V oteSingle {
private String id;
private String title;
private String num;
private String order;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getOrder() {
return order;
}
public void setOrder(String order) { this.order = order;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
网上投票系统—投票结果与界面的设计和实现(正文)
目录 第1章绪论 (3) 1.1 课题研发背景 (3) 1.2 课题的目的和意义 (3) 1.3 系统的主要工作 (4) 1.4论文结构 (4) 第2章投票系统开发的可行性 (6) 2.1技术可行性 (6) 2.2经济可行性 (6) 2.3 操作可行性 (6) 第3章课题相关技术介绍 (8) 3.1数据库管理系统:SQL Server 2005概述 (8) 3.2服务器:Tomcat 概述 (8) 3.3 JSP简介 (8) 3.4编程软件:MyEclipse6.5概述 (9) 第4章系统需求分析 (10) 4.1系统所涉及用户及需求量分析 (10) 4.2 系统功能需求 (10) 4.2.1普通用户模块 (10) 4.2.2 管理员模块 (11) 4.2.3 在线投票系统流程图 (12) 4.3 系统性能需求 (13) 4.4数据流图 (13) 4.4.1符号定义 (14) 4.4.2数据流图的组成元素 (14) 4.5数据字典......................................................................... 错误!未定义书签。第5章数据库设计.. (17) 5.1 数据库设计的需求分析 (17) 5.2数据库的概念设计 (17) 5.3数据库逻辑结构设计 (19) 5.4数据库的功能及约束 (20) 第6章主要功能模块的设计与实现 (22) 6.1普通用户模块 (22) 6.2 管理员模块 (24)
第7章系统测试与维护 (28) 7.1 测试环境 (28) 7.2 系统调试 (28) 7.3调试结果 (28) 7.4系统维护 (29) 结束语 (30) 参考文献 (31) 谢辞 (32)
操作系统实验心得
1-1:通过这次小实验,是我更加了解Linux一些常用指令的操作以及其作用,对于一个刚开始接触lniux操作系统的初学者来说非常有用,助于以后能够更进一步学习Linux操作系统。 1-2:在实验过程中,使用VI编辑器虽然不能像window操作系统那样对文本进行熟练度编辑,但是,VI编辑器使用命令来操作,将可以锻炼我的记忆力、对键盘的熟练读,还能帮助我们尽快适应linux操作系统的操作。 1-3:原本对liunx下的编译和调试环境不是很熟悉,但通过这次的实验,让我熟悉了linux 下的编译器和调试器的使用。 实验中使用了gcc命令,gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(#include)、预编译语句(如宏定义#define等)进行分析。 当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是链接。在链接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的库中链接到合适的地方。 1-4:API 接口属于一种操作系统或程序接口。通过实验,我了解了Windows的这种机制,加深了对API函数的理解。 2-1:通过本次实验了解了一些常用进程管理命令的使用,例如ps、kill命令,了解到换个kill与killall的不同,对于linux操作系统下的进程的学习打下基础,更好的学习进程。 2-2:本次实验是熟悉掌握Linux 系统常用进程创建与管理的系统调用,linux下使用fork()创建子进程,与windows下CreateProcess()创建子进程完全不同,通过比较小组更好的理解和掌握了进程的创建,对于进程的管理的理解也有了清晰地认识。 实验中遇到fork函数返回2次结果,经过分析结果如下: 由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因为fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。 调用fork之后,数据、堆栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,箭头表示各自的执行处。当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂。 2-3:通过这次实验对熟悉掌握和了解windows平台常用进线程控制API,有了更深刻的认识,认识到API函数对windows编程的重要性,了解进程线程在内存中的执行,特别认识互斥体Mutex对象,API函数一定要多用,才能记得。 3-1:该程序的输入变量具有限制,若输入除0和1的数据,则将视为0处理.改进的方法为修改if 语句中的条件为:1,即只要输入为非零,则有效。即逻辑表达式的值为真。(在逻辑数学里非零则表示为真!) 为了能较好的实现进程的同步,可以另外设一个标志量,标志临界资源是否正被访问,当a,b,c
web WEB JSP实验报告书
实验1 网页程序设计-JavaScript 一、实验目的 1. 掌握JavaScript技术,基本掌握JavaScript的开发技巧; 2. 利用文本编辑器建立JavaScript脚本语言进行简单编程。 二、实验要求: 1. 根据以下实验内容书写实验准备报告。 2. 独立完成实验。 三、实验内容 1.显示一个动态的时钟 在文本编辑器“记事本”中输入如下代码程序,请仔细阅读下列程序语句,理解每条语句的作用。源程序清单如下:
运行结果:网上在线投票系统的设计与实现毕业设计论文
目录 摘要 (1) ABSTRACT (2) 前言 (3) 第1章绪论 (4) 课题背景 (4) 课题目的和意义 (4) 系统结构 (5) 课题主要工作 (5) 第2章系统的需求分析 (6) 系统总体分析 (7) 系统的功能分析 (7) 数据库需求分析 (7) 系统可行性分析 (7) 系统安全性分析 (8) 第3章系统概要设计 (8) 软件运行环境设计 (9) 系统设计目标 (9) 系统模块设计 (9) 系统数据库设计 (10) 3.4.1 管理员信息表 (10) 3.4.2投票主题表 (11) 3.4.3投票选项表 (11) 3.4.4投票者信息表 (12) 3.4.5系统配置表 (12) 3.4.6创建触发器 (13) 系统文件说明 (13) 第4章系统详细设计与实现 (13) 系统设计的相关技术 (14) 4.1.1 A动态网页技术 (14) 4.1.2 A对象概述 (14) 4.1.3 A常用对象 (15)
4.1.4 A概述 (19) 4.1.5 SQL Server 2000 (20) 系统设计总体思路 (22) 系统总流程图 (23) 系统主页面 (24) 系统管理模块 (25) 投票管理模块 (26) 4.6.1投票信息管理界面的实现 (26) 4.6.2投票主题的添加 (27) 4.6.3投票主题的修改 (27) 4.6.4投票主题的删除 (28) 4.6.5投票选项的管理 (29) 4.6.6投票选项的添加 (30) 4.6.8投票选项的删除 (31) 4.6.9投票系统的配置 (31) 4.6.10管理员密码的修改 (32) 投票结果显示页面 (32) 第5章系统调试与扩充 (33) 测试环境 (33) 调试中遇到的问题和解决方法 (33) 系统扩充 (34) 结束语 (34) 参考文献 (36) 致谢 (37) 部分程序的核心源代码 (38)
管理信息系统实验报告
实验一认识计算机硬件和网络结构 一、实验题目 认识计算机硬件和网络结构。 二、实验课时 2课时。 三、实验目的 认识计算机的主要构成部件、功能、型号、在计算机机箱内的位置、网络结构等。 四、实验内容和要求 1、利用多媒体演示计算机的主要组成部件:机箱、主板、CPU、内存条、硬盘、软驱、光驱、插槽、BUS总线、串行接口、并行接口、USB接口等; 2、打开机箱,实物展示并讲解个部件的功能及其连接; 3、机箱、主板、CPU、CPU风扇、内存条、显卡、网卡等分别如下所示。 机箱主板
内存条显卡网卡无线网卡 CPU CPU风扇硬盘 机箱背面并行接口串行接口USB接口 4、观察每个部件在机箱的位置,并掌握每个部件的功能和基本知识。 5、观察实验室网络结构图。 6、结合某网吧的例子更好地理解网络结构。 Parallel port Serial port USB port Keyboard and mouse ports
7、独立完成上述内容,并提交书面实验报告。 五、实验体会 通过本次实验,我了解了计算机的各种硬件和网络结构。知道了各种硬件的形状、功能、特征等。还知道了网络结构的流程、大体构造。这使我对计算机有了初步的认识,为以后更进一步的学习打下了坚实的基础。也为我以后的学习和生活提供了方便。 1、cpu——中央处理器,是一台计算机的运算核心和控制核心。 2、硬盘——是电脑的主要存储媒介之一。 3、主板——又叫主机板、系统板或母板,安装在机箱内,是微机最基本也是最重要的部件之一。 4、机箱——作为电脑配件的一部分,它起的主要作用是放置和固定各电脑配件,起到一个承托和保护作 用。 5、内存条——是连接CPU和其他设备的通道,起到缓冲和数据交换作用。
jsp实验报告49775
Jsp实验报告 课程设计名称:兼职网站 系:交通运输管理学院学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013学年第2 学期
一.设计题目 兼职网站 二.主要内容 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。 (1)用户的登录判定 (2)录入兼职的信息,并保存到数据库中 (3)根据用户的需求选择查询方式,查询相关兼职信息 (4)将信息从数据库中删除 三.具体要求 (1)建立数据库表格存储用户数据(用户名及密码)。 (2)建立数据库表格存储兼职信息,主要包括ID、兼职名称、地点、工资和联系方式。 (3)编写jsp 语句连接数据库 (4)利用request函数提交表单,获取输入信息 (5)以SQL语句对数据库进行操作,完成信息的添加,查询及删除等功能。四.进度安排 五.成绩评定 正文 1、系统的需求分析和功能设计 随着电子信息在人们生活中的的使用比重不断增加,人们越来越习惯在网站上查找自己所需
要的信息不仅仅只是因其快捷,更因其接触的面更加广泛,信息的基础量足够大,足以满足人们更加细化的需求。在寻找兼职体验工作生活或赚取生活费用时,可以减少时间的浪费及其他不必要的消耗。 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。用户登录后可以根据自己的需要对信息进行添加、查询和删除的操作 2、源程序及注释 主页:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>