0007Java程序设计-jsp问卷调查系统-论文
摘 要
随着社会不断进步与发展,生活节奏不断加快,信息已经成为我们生活中不可缺少的一部分,很多企业需要掌握大量的信息来了解特定用户的需求,传统的做法是组织大量的人力物力对用户散发调查表,然后对收集的信息进行统计并得到想要的调查结果,但是这种传统的做法浪费大、效率低、周期长,为了改变这种现象,我们设计了这套基于J2EE的问卷调查系统。
本系统前台主要使用J2EE作为开发语言,后台使用SQServer作为数据库管理系统,开发环境是MyEclipse,服务器采用tomcat。系统的主要功能包括:管理登陆、问卷调查题目及内容选项的添加、修改和查询,调查结果统计等。分为管理员用户、普通用户这二种用户平台。
目 录
第二章 需求分析.......................................................................................... 5
第三章 系统分析与设计............................................................................. 10
第四章 系统功能实现................................................................................ 18
第五章 系统测试........................................................................................ 34
系统功能实现
在管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
系统登陆页面实现
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
本文来自博客园,作者:IT012201,转载请注明原文链接:https://www.cnblogs.com/IT012201/p/17687035.html

浙公网安备 33010602011771号