Struts+Hibernate的网上问卷调查分析.docx

上传人:牧羊曲112 文档编号:1723766 上传时间:2022-12-16 格式:DOCX 页数:44 大小:948.46KB
返回 下载 相关 举报
Struts+Hibernate的网上问卷调查分析.docx_第1页
第1页 / 共44页
Struts+Hibernate的网上问卷调查分析.docx_第2页
第2页 / 共44页
Struts+Hibernate的网上问卷调查分析.docx_第3页
第3页 / 共44页
Struts+Hibernate的网上问卷调查分析.docx_第4页
第4页 / 共44页
Struts+Hibernate的网上问卷调查分析.docx_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《Struts+Hibernate的网上问卷调查分析.docx》由会员分享,可在线阅读,更多相关《Struts+Hibernate的网上问卷调查分析.docx(44页珍藏版)》请在三一办公上搜索。

1、2008届 分类号:TP311 单位代码:10452 学士学位毕业设计(论文)基于Struts+Hibernate的网上问卷调查系统 - -超级管理员模块姓 名 李统华 学 号 200412530330 年 级 2004级 专 业 计算机科学与技术系(院) 信 息 学 院 指导教师 孙哓艳 2008年4月THE MANAGEMENT SYSTEM OF VEHICLES BASED ON VISUALFOXPRObyLi TonghuaSupervisor: Sun XiaoyanApril 2008诚 信 声 明本人呈交给临沂师范学院的这篇毕业论文,除了所注参考文献和世所公认的文献外,全部是

2、本人在指导老师指导下的设计成果。 学生签名:日 期:经检查该毕业设计(论文)为独立完成,不存在抄袭现象。 指导老师签名:日 期:摘 要本系统源于美国杰扑普软件有限公司的规模不断扩大,难以对教学质量进行考核,不能及时针对学生的饿反映进行教学改革,因此为了提高教学质量,为了解决这种现象就开发出了此在线调查系统。本在线调查系统采用模块化面向对象设计思想,具有以下功能:开始调查、填写调查、查看调查填写进展、结束调查、审核调查、查看调查、生成调查报表等功能,大大提高了教学的效率。在线调查系统给大大提升了工作效率,同时使无纸化办公离我们不在遥远,大大节约了各种调查人员的人力资源,可以及时的将学生反映的问题

3、反映给教学部门,让教学部门针对学生的要求而将教学方式进一步改进,大大提高了教学质量和教学效率。关键词:MVC、Struts、Hibernate JSP+Servlet、Oracle、javaAbstractThe system originated from the Briup Software Ltd. have been expanding, not on teaching quality assessment, not the hungry in time for students to reflect the teaching reform, in order to improve t

4、he quality of teaching, in order to solve this phenomenon on the development of this Online Survey System. This online survey system is modular object-oriented design, has the following functions: to initiate an investigation, fill out surveys to see progress in completing investigations, the conclu

5、sion of the investigation, the audit investigation to see investigation, survey generated statements, and other functions, thereby greatly increasing the efficiency of teaching. On-line survey system to greatly enhance the work efficiency, while making the paperless office is not far away from us, s

6、ignificantly saving the investigating officers of the various human resources, students would be timely to reflect the problems reported to the teaching sector, so that teaching departments for students The request will further improve teaching methods, greatly improving the quality of teaching and

7、teaching efficiency.Key words: MVC、Struts、Hibernate JSP+Servlet、Oracle、java目 录摘 要1Abstract2目 录3前 言1第1章 系统概述及可行性分析21.1系统概述21.1.1 Admin模块21.1.2 Manager模块21.1.3 Teacher模块21.2 可行性分析21.2.1技术可行性分析21.2.2环境可行性分析31.2.3经济可行性分析3第2章 系统总体设计42.1系统结构总框架设计42.2系统结构流程设计42.3数据流程图设计5第3章 系统数据库设计63.1 数据库概念结构设计63.2 数据库逻辑结

8、构设计8第4章 系统的具体实现实现94.1 登录的实现以admin身份登录9第5章 关键技术及系统安全性能355.1系统关键技术355.2系统安全性能35结 论36附 录36给予系统初始用户名和密码:用户名lith-密码lith;36谢 辞37参考文献1前 言近几年来,随着教育培训机构不断增多,规模不断变大,人员不断的增多,以致于给人工问卷考核带来严重的不变,无法将学员反映的信息反映给授课教师,无法让老师及时根据学员的需求而将教学方式进行调整,而且这种考核效率很差,浪费了大量的人力资源和物质,以至于教学质量逐渐下降,公司开支增多,使公司面临着隐藏的生存危机。为了解决这种现象,我和其他几名同学为

9、本公司力开发了一套在线问卷考察调查系统,它大大节约了各种人力物力资源,使企业进入了无纸化办公的时代,适应了现代化企业办公的需求,同时它能及时将学员反映的信息及时反映给授课教师,大大提高了教学质量。本系统才用Sun公司J2EE企业及编程模式,采用可视化的编程环境,简单易懂的编程语言,用较少的代码可以实现大量繁琐复杂的问题的功能,用Struts+Hibernate框架,大大提高了开发效率。下面将本系统的主要内容介绍如下:第1章和第2章主要介绍了系统实际需求和系统总体设计。第3章介绍了本系统的数据库的设计。第4章介绍了本系统的实现。第5章介绍了本系统的关键技术及系统安全性能。第1章 系统概述及可行性

10、分析1.1系统概述随着美国杰普软件有限公司规模的不断扩大,导致了学员反映的信息无法及时传达给授课教师,同时给教学管理部带来巨大的工作量,而且工作效率很差,为了解决这种问题,我和其他几名同学为本公司开发了此系统,大大提高了教学管理部的工作效率,提高了本公司的教学质量。1.1.1 Admin模块该模块有以下功能:. 开始调查:发起一项新的调查。整个系统在同一时间段只能进行一个调查,后开始的调查会将前面没有结束的调查覆盖。. 结束调查:将学员提交的调查明细信息存入数据库。. 删除调查:删除尚未结束的调查,已结束的调查不能删除。. 查看调查:查看所有已审或未审调查。. 维护数据:维护调查所需的 班级、

11、课程、管理员,老师 等初始数据。1.1.2 Manager模块manager 角色用户可以审核调查,查看所有的已审调查以及生成调查报表。系统可以拥有多个 manager角色用户。接下来介绍的任何操作均需要先成功登录。登录过程和 admin 角色同。1.1.3 Teacher模块teacher 角色用户可以查看所有和自己相关的调查和修改密码。系统可以拥有多个 teacher角色用户。1.2 可行性分析1.2.1技术可行性分析运用Sun公司开发的J2EE体系结构,采用MVC三层架构的模式,在设计模式上,将使用当前流行的Struts框架,采用Hibernate作为ORM框架,J2EE是一种利用Jav

12、a 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。 Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge

13、。在视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件想结合。Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,可以将一个java对象保存到数据库。它是一个独立的对象持久层框架。1.2.2环境可行性分析在软件环境方面,系统的开发环境如下:操作系统:Suse Linux;Web应用服务器:Tomcat 5.0.28;数据库:Oracle 10.0g, 运行在远程Sun Solaris 10服务器上;开发工具:Eclipse 3.2, MyElcipse插件;。1.2.3经济可行性

14、分析此系统完全由我们几个学生在业余时间开发的,只是象征性的收取了一点报酬。第2章 系统总体设计2.1系统结构总框架设计本网上问卷调查管理系统主要分成三大模块,这些模块又是由若干个子模块构成的,形成一个结构紧凑功能明确完整的网上问卷调查管理系统。系统结构总框架设计如图2-1所示:网上问卷调查管理系统 管理数据添加修改密码管理操作员数据搜索调查审核调查统计报表 系统信息管理密码修改课程管理管理员管理老师管理调查搜索班级管理调查管理教师职务管理超级管理员管理息管理2-1整个系统结构图2.2系统结构流程设计填写调查开始调查查看调查填写进展删除调查结束调查审核调查查看调查生成调查统计报表超级用户登录图2

15、-2 系统结构总流程图2.3数据流程图设计本系统的中心角色是超级管理员、老师和普通管理员。超级管理员开始调查,然后用户就可以进行课程调查,调查之后,超级管理员结束调查,教师和普通管理员就可以进行查看调查信息,教师只可以看自身的信息,普通管理员可以审核所有的调查信息。普通管理员登录审核调查搜索调查统计报表密码修改超级管理员登录老师管理调查搜索调查管理班级管理课程管理管理员管理搜索调查课程列表增加课程管理员列表增加管理员增加班级班级列表开始调查管理调查增加老师老师列表图2-3 系统数据流程图第3章 系统数据库设计3.1 数据库概念结构设计数据库在信息系统中占有及其重要的地位,数据库结构设计的好坏关

16、系到系统的运行效率、存储数据的效率、系统的复杂程度等,合理的数据库结构设计可以提高系统性能。考虑到用户需求的各种实体,本交通局车辆管理系统规划出的实体有用户信息实体、课程信息实体、班级信息实体、问卷调查信息实体,在线调查问卷信息实体。各实体具体描述E-R图如下:用户信息用户Id 用户密码用户姓名角色标志图3-1 用户信息实体E-R图课程信息课程名课程Id课程描述 图3-2 课程信息实体E-R图班级名班级Id班级类型班级信息);图3-3班级信息实体E-R图 问卷调查信息问卷Id调查日期问卷创建日期参与调查人数被调查用户Id 是否调查过问卷平均分问卷总分已提交调查人图3-4 问卷调查信息实体E-R

17、图在线问卷平均分问卷Id此次问卷是否提交每题分数在线调查问卷信息实体信息在线问卷Id问题和意见 图3-5 在线调查问卷信息实体的E-R图3.2 数据库逻辑结构设计将以上的数据库概念结构转化为关系数据模型,即数据库的逻辑结构。各个数据表的字段设置如下表所示:表3-1 用户信息表字段号字段名 类型宽度小数索引1用户Id数值型4主键2用户姓名字符型20唯一3用户密码字符型304角色标志字符型30表3-2 课程信息表字段号字段名 类型宽度小数索引1课程Id数值型2主键2课程名字字符型303课程描述字符型50表3-3 班级信息表字段号字段名 类型宽度小数索引1班级Id数值型3主键2班级名字字符型303班

18、级类型字符型20表3-4 调查后问卷信息表字段号字段名 类型宽度小数索引1问卷Id数值型10主建2被调查老师的Id数值型4外键3被调查课程的Id数值型2外键4被调查班级的Id数值型3外键5被调查人的Id数值型4外键6调查的日期日期型7提交的人数数值型28问卷创建日期日期型9参与调查人数字符型2 10问卷平均分数值型211问卷总分问卷总分512问卷是否提交字符型1表3-5 在线问卷调查信息表字段号字段名 类型宽度小数索引1在线问卷Id数值型10 主键2问卷Id数值型10外键3不会的问题字符型40004问卷是否提交过字符型15此问卷平均分数值型36对教师的意见字符型40007问卷每道题目分数数值型

19、1第4章 系统的具体实现实现4.1 登录的实现以admin身份登录在浏览器地址栏键入以下地址: (实际使用时将localhost换成poll系统(教师课程调查系统)安装所在机器IP以及端口号,如192.168.0.187:8080), 输入以下内容:用户名:lith 密码:lith(默认初始密码)身份:admin 。 当点击登录时就进入loginAction中,登录成功后就跳到/admin/index.jsp中,就进入登陆后的页面,其中部分代码如下。 图4-1 登录界面部分代码如下:package tarena.action;import javax.servlet.http.HttpServ

20、letRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts

21、.action.ActionMessage;import org.hibernate.Session;import tarena.pojo.*;import tarena.proxy.Business;import tarena.util.ContextUtil;import tarena.form.PersonForm;public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, Ht

22、tpServletResponse response) PersonForm personForm = (PersonForm) form;ActionErrors errors = new ActionErrors();Session session = (Session)request.getAttribute(ContextUtil.SESSION);switch (personForm.getFlag().charAt(0) case t:Teacher teacher = new Teacher();teacher.setName(personForm.getName();teach

23、er.setPassword(personForm.getPassword();System.out.println(findTeacher is +Business.findTeacher(session, teacher.getName();Teacher aTeacher = Business.findTeacher(session, teacher.getName();if (aTeacher != null& aTeacher.getPassword().equals(teacher.getPassword() request.getSession().setAttribute(Co

24、ntextUtil.PERSON, aTeacher);return new ActionForward(ContextUtil.TEACHER_INDEX_PATH, true);break;case m:Manager manager = new Manager();manager.setName(personForm.getName();manager.setPassword(personForm.getPassword();Manager aManager = Business.findManager(session, manager.getName();if (aManager !=

25、 null& aManager.getPassword().equals(manager.getPassword() request.getSession().setAttribute(ContextUtil.PERSON, aManager);return new ActionForward(ContextUtil.MANAGER_INDEX_PATH, true);break;case a:Admin admin = new Admin();admin.setName(personForm.getName();admin.setPassword(personForm.getPassword

26、();Admin aAdmin = Business.findAdmin(session, admin.getName();if (aAdmin != null& aAdmin.getPassword().equals(admin.getPassword() request.getSession().setAttribute(ContextUtil.PERSON, aAdmin);return new ActionForward(ContextUtil.ADMIN_INDEX_PATH, true);break;errors.add(error.login, new ActionMessage

27、(error.login);saveErrors(request.getSession(), errors);return mapping.getInputForward();4.2. 调查管理模块的设计4.2.11 准备开始调查功能的设计当点击开始调查时就进入preStartPollAction中,这个Action将所有的班机,课程和老师查询出来,让超级管理员对调查问卷进行设置,设置完之后开一正式开始调查,其中准备调查部分代码如下:图 4-2 开始准备调查界面package tarena.action;import java.util.Map;import javax.servlet.Ser

28、vletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.hibernate.Se

29、ssion;import tarena.proxy.Business;import tarena.util.ContextUtil;public class PreStartPollAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) Session session = (Session)request.getAttribute(ContextUtil.S

30、ESSION);Map allTeacher = Business.findTeacher(session);Map allClasses = Business.findClasses(session);Map allCourse = Business.findCourse(session);ServletContext servletContext = request.getSession().getServletContext();servletContext.setAttribute(ContextUtil.ALL_CLASSES, allClasses);servletContext.

31、setAttribute(ContextUtil.ALL_COURSE, allCourse);servletContext.setAttribute(ContextUtil.ALL_TEACHER, allTeacher);return mapping.findForward(return);4.2.12开始调查部分当点击开始调查时,就调用startPollAction,这个Action将被调查的班级信息,课程信息,老师信息设置成调查的 问卷,此时页面就跳转到/admin/listpolling.jsp页面上了。此时用户就可以进行网上问卷调查了。部分代码如下:package tarena.a

32、ction;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.

33、struts.action.ActionMapping;import tarena.pojo.*;import tarena.util.ContextUtil;public class StartPollAction extends Action public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) Integer classesID = new Integer(request.getParameter

34、(classesID);Integer courseID = new Integer(request.getParameter(courseID);Integer teacherID = new Integer(request.getParameter(teacherID);ServletContext servletContext = request.getSession().getServletContext();Map teacherMap = (Map)servletContext.getAttribute(ContextUtil.ALL_TEACHER);Map courseMap

35、= (Map)servletContext.getAttribute(ContextUtil.ALL_COURSE);Map classesMap = (Map)servletContext.getAttribute(ContextUtil.ALL_CLASSES);Poll poll = new Poll();Teacher teacher = (Teacher)teacherMap.get(teacherID);Course course = (Course)courseMap.get(courseID);Classes classes = (Classes)classesMap.get(

36、classesID);poll.setClasses(classes);poll.setCourse(course);poll.setTeacher(teacher);poll.setCreatedDate(new java.util.Date();servletContext.setAttribute(ContextUtil.POLL, poll);return mapping.findForward(return);图4-3 正式开始调查的界面4.2.13 正式开始调查部分的结束调查部分的子部分当点击结束调查时,请求就进入ManagerPollAction中,执行这个Action中的 结束

37、调查操作,执行完之后就进行资源重定向,跳转到根目录的/info.jsp页面中,结束调查的部分代码如下。public ActionForward end(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ServletContext servletContext = request.getSession().getServletContext();int availableNum = 0;double totalScore = 0.0d;Poll pol

38、l = (Poll) servletContext.getAttribute(ContextUtil.POLL);Set pollLineSet = poll.getPollLineSet();for (Iterator it = pollLineSet.iterator(); it.hasNext();) PollLine pollLine = (PollLine) it.next();if (pollLine.getIsValid().equals(y) availableNum+;totalScore += pollLine.getC1().doubleValue()+ pollLine

39、.getC2().doubleValue()+ pollLine.getC3().doubleValue()+ pollLine.getC4().doubleValue()+ +pollLine.getC5().doubleValue()+ pollLine.getC6().doubleValue()+ pollLine.getC7().doubleValue();poll.setAmount(new Integer(poll.getPollLineSet().size();poll.setAvailableNum(new Integer(availableNum);poll.setTotal

40、score(new Integer(int)totalScore);poll.setAvgScore(new Double(Math.round(totalScore/ poll.getAvailableNum().intValue() / 7 * 100) / 100.00);poll.setStatus(n);ActionErrors errors = new ActionErrors();Session session = (Session)request.getAttribute(ContextUtil.SESSION);if (pollLineSet.size() 1) errors.add(warn.endpoll, new ActionMessage(warn.endpoll); else if (Business.savePoll(session, poll) servletCon

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号