已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-基于struts+hibernate的网上问卷调查系统摘 要本系统源于xxxxx有限公司的规模不断扩大,难以对教学质量进行考核,不能及时针对学生的饿反映进行教学改革,因此为了提高教学质量,为了解决这种现象就开发出了此在线调查系统。本在线调查系统采用模块化面向对象设计思想,具有以下功能:开始调查、填写调查、查看调查填写进展、结束调查、审核调查、查看调查、生成调查报表等功能,大大提高了教学的效率。在线调查系统给大大提升了工作效率,同时使无纸化办公离我们不在遥远,大大节约了各种调查人员的人力资源,可以及时的将学生反映的问题反映给教学部门,让教学部门针对学生的要求而将教学方式进一步改进,大大提高了教学质量和教学效率。关键词: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 the 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 conclusion 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, significantly 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 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第4章 系统的具体实现实现94.1 登录的实现以admin身份登录9第5章 关键技术及系统安全性能355.1系统关键技术355.2系统安全性能35结 论36附 录36给予系统初始用户名和密码:用户名lith-密码lith;36谢 辞37参考文献136前 言近几年来,随着教育培训机构不断增多,规模不断变大,人员不断的增多,以致于给人工问卷考核带来严重的不变,无法将学员反映的信息反映给授课教师,无法让老师及时根据学员的需求而将教学方式进行调整,而且这种考核效率很差,浪费了大量的人力资源和物质,以至于教学质量逐渐下降,公司开支增多,使公司面临着隐藏的生存危机。为了解决这种现象,我和其他几名同学为本公司力开发了一套在线问卷考察调查系统,它大大节约了各种人力物力资源,使企业进入了无纸化办公的时代,适应了现代化企业办公的需求,同时它能及时将学员反映的信息及时反映给授课教师,大大提高了教学质量。本系统才用sun公司j2ee企业及编程模式,采用可视化的编程环境,简单易懂的编程语言,用较少的代码可以实现大量繁琐复杂的问题的功能,用struts+hibernate框架,大大提高了开发效率。下面将本系统的主要内容介绍如下:第1章和第2章主要介绍了系统实际需求和系统总体设计。第3章介绍了本系统的数据库的设计。第4章介绍了本系统的实现。第5章介绍了本系统的关键技术及系统安全性能。第1章 系统概述及可行性分析1.1系统概述随着美国杰普软件有限公司规模的不断扩大,导致了学员反映的信息无法及时传达给授课教师,同时给教学管理部带来巨大的工作量,而且工作效率很差,为了解决这种问题,我和其他几名同学为本公司开发了此系统,大大提高了教学管理部的工作效率,提高了本公司的教学质量。1.1.1 admin模块该模块有以下功能:. 开始调查:发起一项新的调查。整个系统在同一时间段只能进行一个调查,后开始的调查会将前面没有结束的调查覆盖。. 结束调查:将学员提交的调查明细信息存入数据库。. 删除调查:删除尚未结束的调查,已结束的调查不能删除。. 查看调查:查看所有已审或未审调查。. 维护数据:维护调查所需的 班级、课程、管理员,老师 等初始数据。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是一种利用java 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。在视图层,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经济可行性分析此系统完全由我们几个学生在业余时间开发的,只是象征性的收取了一点报酬。第2章 系统总体设计2.1系统结构总框架设计本网上问卷调查管理系统主要分成三大模块,这些模块又是由若干个子模块构成的,形成一个结构紧凑功能明确完整的网上问卷调查管理系统。系统结构总框架设计如图2-1所示:网上问卷调查管理系统 管理数据添加修改密码管理操作员数据搜索调查审核调查统计报表 系统信息管理密码修改课程管理管理员管理老师管理调查搜索班级管理调查管理教师职务管理超级管理员管理息管理2-1整个系统结构图2.2系统结构流程设计填写调查开始调查查看调查填写进展删除调查结束调查审核调查查看调查生成调查统计报表超级用户登录图2-2 系统结构总流程图2.3数据流程图设计本系统的中心角色是超级管理员、老师和普通管理员。超级管理员开始调查,然后用户就可以进行课程调查,调查之后,超级管理员结束调查,教师和普通管理员就可以进行查看调查信息,教师只可以看自身的信息,普通管理员可以审核所有的调查信息。普通管理员登录审核调查搜索调查统计报表密码修改超级管理员登录老师管理调查搜索调查管理班级管理课程管理管理员管理搜索调查课程列表增加课程管理员列表增加管理员增加班级班级列表开始调查管理调查增加老师老师列表图2-3 系统数据流程图第3章 系统数据库设计3.1 数据库概念结构设计数据库在信息系统中占有及其重要的地位,数据库结构设计的好坏关系到系统的运行效率、存储数据的效率、系统的复杂程度等,合理的数据库结构设计可以提高系统性能。考虑到用户需求的各种实体,本交通局车辆管理系统规划出的实体有用户信息实体、课程信息实体、班级信息实体、问卷调查信息实体,在线调查问卷信息实体。各实体具体描述e-r图如下:用户信息用户id 用户密码用户姓名角色标志图3-1 用户信息实体e-r图课程信息课程名课程id课程描述 图3-2 课程信息实体e-r图班级名班级id班级类型班级信息);图3-3班级信息实体e-r图 问卷调查信息问卷id调查日期问卷创建日期参与调查人数被调查用户id 是否调查过问卷平均分问卷总分已提交调查人图3-4 问卷调查信息实体e-r图在线问卷平均分问卷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班级类型字符型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问卷每道题目分数数值型1第4章 系统的具体实现实现4.1 登录的实现以admin身份登录在浏览器地址栏键入以下地址: http:/localhost/poll/login.jsp(实际使用时将localhost换成poll系统(教师课程调查系统)安装所在机器ip以及端口号,如87:8080), 输入以下内容:用户名:lith 密码:lith(默认初始密码)身份:admin 。 当点击登录时就进入loginaction中,登录成功后就跳到/admin/index.jsp中,就进入登陆后的页面,其中部分代码如下。 图4-1 登录界面部分代码如下:package tarena.action;import javax.servlet.http.httpservletrequest;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.action.actionmessage;import org.hibernate.session;import tarena.pojo.*;import xy.business;import tarena.util.contextutil;import tarena.form.personform;public class loginaction extends action public actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse 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();teacher.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(contextutil.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 != 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();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(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.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.struts.action.actionmapping;import org.hibernate.session;import xy.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.session);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.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.action;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.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(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 = (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(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中的 结束调查操作,执行完之后就进行资源重定向,跳转到根目录的/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 poll = (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.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.settotalscore(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) servletcontext.removeattribute(contextutil.poll);map clientipmap = (map) servletcontext.getattribute(contextutil.client_ip_map);clientipmap.clear();errors.add(info.endpoll, new actionmessage(info.endpoll); else errors.add(error.endpoll, new actionmessage(error.endpoll);saveerrors(request.getsession(), errors);return mapping.findforward(return);4.2.14 正式开始调查部分的删除调查部分的子部分当点击删除调查时,请求就进入managerpollaction中,执行这个action中的 结束调查操作,执行完之后就进行资源重定向,跳转到根目录的/info.jsp页面中,部分代码如下。public actionforward delete(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) servletcontext servletcontext = request.getsession().getservletcontext();servletcontext.removeattribute(contextutil.poll);map clientipmap = (map) servletcontext.getattribute(contextutil.client_ip_map);clientipmap.clear();actionerrors errors = new actionerrors();errors.add(info.deletepoll, new actionmessage(info.deletepoll);saveerrors(request.getsession(), errors);return mapping.findforward(return);4.2.2 管理调查部分管理调查查看当前在问卷调查的情况的,当点击管理调查时,请求进入listpollingacion中,这个action是个转发请求的 action,将当前的请求转发到一个/admin/listpolling.jsp页面。此时页面进行刷新,进一步统计参与调查人数和已提交调查人数。图4-4 搜索调查的界面4.3 调查搜索模块4.3.11 准备搜索调查部分当点击搜索调查时,进入preserarchpollaction中,这个action查询出所有的老师,所有的课程和班级信息,让用户根据查询到的信息进行操作,然后跳转到/poll/searchpoll.jsp这个页面,部分代码如下:package tarena.action;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.struts.action.actionmapping;import org.hibernate.session;import xy.business;import tarena.util.contextutil;public class presearchpollaction extends action public actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) session session = (session)request.getattribute(contextutil.session);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.setattribute(contextutil.all_course, allcourse);servletcontext.setattribute(contextutil.all_teacher, allteacher);return mapping.findforward(return);4.3.12 开始搜索部分图4-5 搜索问卷调查的界面当点击搜索时就进入searchpollaction中,它根据相应的条件进行查询,查询后将结果返回到/poll/listpolling.jsp页面中,部分代码如下:package tarena.action;import java.util.list;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.session;import tarena.pojo.*;import xy.business;import tarena.util.contextutil;import java.sql.date;public class searchpollaction extends action public actionforward execute(actionmapping mapping,actionform form,httpservletrequest request,httpservletresponse response) poll poll = new poll();date startdate = null;date enddate = null;string orderby = request.getparameter(orderby);if(!(request.getsession().getattribute(contextutil.person) instanceof admin) poll.setstatus(y);if(!request.getparameter(classesid).equals() integer cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店多元化客源开发策略培训
- 地产合同范本库
- 发货合同范本俄语
- 家具品牌加盟合同范本
- 甘肃省陇南市(2024年-2025年小学五年级语文)人教版专题练习((上下)学期)试卷及答案
- 学校教师劳动协议合同范本
- 收购旧机床设备合同范本
- 物联网技术支持合同范本
- 巡逻摩托车维修合同范本
- 专题19 作文(知识梳理+考点精讲精练+实战训练)(含答案解析)
- 【课件】Unit4Readingforwriting课件高中英语人教版(2019)必修第二册
- 一年级海洋教育教案
- 分布函数(课堂PPT)
- 聚氨酯硬泡沫配方及计算
- 国家开放大学电大《物流信息系统管理》期末题库及答案
- 中国联通M2M UICC卡技术规范
- 田径运动会的编排和记录
- 反歧视、反骚扰、反强迫管理程序
- 质控图与质控规则
- 小学科学月相变化(课堂PPT)
- 220KV变电站工程标准化工艺施工实施细则DOC
评论
0/150
提交评论