摘 要
随着社会不断进步与发展,生活节奏不断加快,信息已经成为我们生活中不可缺少的一部分,很多企业需要掌握大量的信息来了解特定用户的需求,传统的做法是组织大量的人力物力对用户散发调查表,然后对收集的信息进行统计并得到想要的调查结果,但是这种传统的做法浪费大、效率低、周期长,为了改变这种现象,我们设计了这套基于J2EE的问卷调查系统。
本系统前台主要使用J2EE作为开发语言,后台使用SQServer作为数据库管理系统,开发环境是MyEclipse,服务器采用tomcat。系统的主要功能包括:管理登陆、问卷调查题目及内容选项的添加、修改和查询,调查结果统计等。分为管理员用户、普通用户这二种用户平台。
目 录
摘 要........................................................................................................... I
ABSTRACT.................................................................................................. II
第一章 绪论................................................................................................. 1
1.1课题背景....................................................................................................................... 1
1.2目的和意义................................................................................................................... 1
1.3开发工具及技术........................................................................................................... 1
1.3.1开发工具............................................................................................................. 1
1.3.2 J2EE..................................................................................................................... 2
1.3.3 JavaScript............................................................................................................ 3
1.3.4 Struts 2简介........................................................................................................ 3
1.3.5 Hibernate简介.................................................................................................... 4
1.4软硬件需求................................................................................................................... 4
第二章 需求分析.......................................................................................... 5
2.1可行性分析................................................................................................................... 5
2.1.1技术的可行性..................................................................................................... 5
2.1.2经济的可行性..................................................................................................... 5
2.1.3操作可行性......................................................................................................... 5
2.1.4法律的可行性..................................................................................................... 5
2.2系统用户用例图........................................................................................................... 6
2.2.1管理员用例图..................................................................................................... 6
2.2.2普通用户用例图................................................................................................. 6
2.3功能模块需求分析....................................................................................................... 7
2.4设计的基本思想........................................................................................................... 8
2.5性能需求....................................................................................................................... 8
2.5.1系统的安全性..................................................................................................... 8
2.5.2数据的完整性..................................................................................................... 8
2.6界面需求....................................................................................................................... 8
第三章 系统分析与设计............................................................................. 10
3.1数据库的分析与设计................................................................................................. 10
3.1.1数据库的概念结构设计................................................................................... 10
3.1.2数据库的逻辑结构设计................................................................................... 13
3.1.3数据库的连接原理........................................................................................... 15
3.2中文乱码问题处理..................................................................................................... 15
第四章 系统功能实现................................................................................ 18
4.1系统登陆页面实现..................................................................................................... 18
4.2总体功能模块............................................................................................................. 19
4.2.1问卷信息管理................................................................................................... 20
4.2.2问卷题目管理................................................................................................... 22
4.2.3调查结果统计................................................................................................... 24
4.2.4系统公告管理................................................................................................... 27
4.2.5修改个人密码................................................................................................... 29
4.2.6安全退出系统................................................................................................... 29
4.3普通用户模块............................................................................................................. 30
4.3.1系统主页面实现............................................................................................... 30
4.3.2问卷信息查询................................................................................................... 30
4.3.3用户注册........................................................................................................... 30
4.3.4参与问卷调查................................................................................................... 32
第五章 系统测试........................................................................................ 34
5.1系统测试目的与意义................................................................................................. 34
5.2测试过程..................................................................................................................... 34
5.2.1主页面的登录模块测试................................................................................... 34
5.3其他错误..................................................................................................................... 35
结 论......................................................................................................... 36
参考文献..................................................................................................... 37
致 谢......................................................................................................... 38
系统功能实现
在管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
系统登陆页面实现
1.描述:为了保证系统的安全性,要先使用本系统必须先登陆到系统中,用户需要正确的账号和密码登录本系统。
2.程序运行效果图如图4.1所示:
3.在登陆页面输入用户名和密码以,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码,验证码进行判断,验证通过进入对应的页面,loginservice关键代码:
public String login(String userName,String userPw,int userType)
{
String result="no";
if(userType==0)//系统管理员登陆
{
String sql="from TAdmin where userName=? and userPw=?";
Object[] con={userName,userPw};
List adminList=adminDAO.getHibernateTemplate().find(sql,con);
if(adminList.size()==0)
{
result="no";
}
else
{
WebContext ctx = WebContextFactory.get();
HttpSession session=ctx.getSession();
TAdmin admin=(TAdmin)adminList.get(0);
session.setAttribute("userType", 0);
session.setAttribute("admin", admin);
result="yes";
}
}
if(userType==1)//putongyuangong
{
}
1.描述:系统主页面:左方页面展示了管理员可操作的六大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。
2.程序运行效果图如图4.2所示:
1.描述:管理员点击左侧的菜单“问卷信息管理”,页面跳转到问卷信息管理界面,调用后台的action类查询出所有的问卷信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的J2EE,显示出问卷信息。
2.程序效果图如下图4.4所示
public String wenjuanAdd()
{
TWenjuan wenjuan=new TWenjuan();
wenjuan.setId(String.valueOf(new Date().getTime()));
wenjuan.setMingcheng(mingcheng);
wenjuan.setShijian(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
wenjuanDAO.save(wenjuan);
this.setMessage("添加完毕");
this.setPath("wenjuanMana.action");
return "succeed";
}
public String wenjuanMana()
{
String sql="from TWenjuan";
List wenjuanList =wenjuanDAO.getHibernateTemplate().find(sql);
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("wenjuanList", wenjuanList);
return ActionSupport.SUCCESS;
}
public String wenjuanDel()
{
TWenjuan wenjuan=wenjuanDAO.findById(id);
wenjuanDAO.delete(wenjuan);
this.setMessage("删除完毕");
this.setPath("wenjuanMana.action");
return "succeed";
}
1.描述:点击问卷预览按钮,系统自动显示改问卷的题目信息。
2.程序效果图如下图4.8所示
public String toupiaoAdd()
{
HttpServletRequest request=ServletActionContext.getRequest();
String id=String.valueOf(new Date().getTime());
String title=request.getParameter("title");
String wenjuan_id=request.getParameter("wenjuan_id");
TToupiao toupiao=new TToupiao();
toupiao.setId(id);
toupiao.setTitle(title);
toupiao.setWenjuan_id(wenjuan_id);
toupiaoDAO.save(toupiao);
String[] xuanxiangneirong=request.getParameterValues("xuanxiangneirong");
for(int i=0;i<xuanxiangneirong.length;i++)
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
System.out.println(xuanxiangneirong[i]+"%%");
toupiaoxuanxiangSave(xuanxiangneirong[i], id);//这个地方的id是投票的id
}
request.setAttribute("msg", "添加完毕");
return "msg";
}
public void toupiaoxuanxiangSave(String xuanxiangneirong,String toupiao_id)
{
TToupiaoxuanxiang toupiaoxuanxiang=new TToupiaoxuanxiang();
toupiaoxuanxiang.setId(String.valueOf(new Date().getTime()));
toupiaoxuanxiang.setXuanxiangneirong(xuanxiangneirong);
toupiaoxuanxiang.setPiaoshu(0);
toupiaoxuanxiang.setToupiao_id(toupiao_id);
toupiaoxuanxiangDAO.save(toupiaoxuanxiang);
}
调查结果统计
1.描述:选择一条问卷信息,点击“结果统计”,系统调转到统计页面。
2.程序效果图如下图4.9所示:
String path = request.getContextPath();
List xuanxiangList=(List)request.getAttribute("xuanxiangList");
DefaultCategoryDataset categoryDataset=new DefaultCategoryDataset();
for(int i=0;i<xuanxiangList.size();i++)
{
TToupiaoxuanxiang toupiaoxuanxiang=(TToupiaoxuanxiang)xuanxiangList.get(i);
categoryDataset.setValue(toupiaoxuanxiang.getPiaoshu(),"",toupiaoxuanxiang.getXuanxiangneirong()+"("+toupiaoxuanxiang.getPiaoshu()+")" );
}
JFreeChart freeChart=ChartFactory.createBarChart("投票结果柱状图", "", "", categoryDataset, PlotOrientation.VERTICAL, false, false, false);
TextTitle title=freeChart.getTitle();
title.setFont(new Font("宋体", Font.BOLD, 20));
CategoryPlot plot=(CategoryPlot)freeChart.getPlot();
CategoryAxis categoryAxis=plot.getDomainAxis();//横轴
categoryAxis.setLabelFont(new Font("宋体", Font.BOLD, 11));
categoryAxis.setTickLabelFont(new Font("宋体" , Font.BOLD , 11));
NumberAxis numberAxis=(NumberAxis)plot.getRangeAxis();
numberAxis.setLabelFont(new Font("宋体", Font.BOLD, 20));//纵轴
String tu_mingzi=String.valueOf(new Date().getTime())+".jpg";
String url = request.getSession().getServletContext().getRealPath("tutu")+"\\"+tu_mingzi;
OutputStream os=new FileOutputStream(url);
ChartUtilities.writeChartAsJPEG(os, freeChart, 900, 700);
os.close();
开发环境
开发工具:idea、Navicat
数据库:MySQL8.0
环境配置:jdk1.8 、Tomcat8.5
开发人员:IT012201