《JAVA在线调查系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《JAVA在线调查系统的设计与实现.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-作者xxxx-日期xxxxJAVA在线调查系统的设计与实现【精品文档】JAVA大作业题目:在线调查系统的设计与实现姓名:苏怡舟班级:B13082051学院:数计学院一、该调查问卷具有如下特点:(1)能对调查问卷的结果进行分析汇总,并使需求者能及时了解最新最及时的调查结果。(2) 使用简单,如果需求者不满意我们提供的问卷,需求者还可以根据自己的想法设计问卷。 (3) 支持多种题型,如单选题、多选题等等。(4) 具有灵活性,可以应用于不同的调查场合。此外,该系统主要有人性化设计、系统的安全设置、简单的系统维护方法、使用的高效性、具有错误识别能力等创新点。系统需求分析及规划用户及其功能分析图1.1
2、系统的规划通过对本系统使用对象的调查,了解了各层对象的功能需求,分析得出了本系统规划图,如图1.1所示。业务流程分析随着问卷调查水平的提高,业务范围也逐步扩大,发现原先的流程中存在一些问题。目前的问卷调查流程采用的是传统人工的方式管理,这种管理方式存在着许多缺点,如效率低等;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护数据都带来了不少的困难。本阶段遵循用户参与的原则,对现行的工作流程进行了详细调查,根据调查的资料对业务流程做了具体分析,并给出了系统的选课流程。根据使用者的机构图,下面具体分析各层次的业务流程。1.1.1 用户的业务流程用户对问卷模板的信息进行设计和管理,并录入计
3、算机中存储,具体操作流程如图2.2所示。图1.2问卷模板的设计和管理流程图用户对参加网站的热门测评,并录入计算机中存储,具体操作流程如图2.3所示。图1.3问卷热门测评流程图用户对问卷信息进行统计和分析,并录入计算机中存储,具体操作流程如图2.4所示。图1.4问卷统计分析流程图1.1.2 管理员的业务流程管理员对问卷信息的管理,具体操作流程如图1.5所示。 图问卷信息管理流程管理员对用户信息进行管理,具体操作流程如图1.6所示。 图1.6用户管理流程与问卷调查人员就系统的流程进行了探讨,该流程尽量减少了手工操作,把用户统一集中在互联网上,为他们提供全面的信息需求和操作功能。前面分析了组织结构和
4、业务流程,下面我们就各种用户及其功能性需求进行分析,详细如下:(1)管理员:管理员作为系统的管理者,拥有所有权限,权限设置也只有管理员拥有;(2)普通用户:普通用户具有设计问卷、公开问卷、热门测评、常见问题、问卷投票和查看统计分析等功能;(3)游客:游客具有注册、常见问题、问卷投票和查看统计分析等功能;将系统需求加以总结,得出系统需求如下:(1)系统可以运行在Windows操作系统平台上,并具有友好的用户界面。(2)系统用户类型为:管理员、用户、游客。(3)系统对于一个用户只允许以一种身份登录。分析了具体的业务流程和功能需求之后,下面进行可行性分析。2 系统数据分析在业务流程分析的基础上,对数
5、据流进行了分析,从数据流动过程考察了实际业务的数据处理模式9。存在数据流程不畅等问题。现行的顶层数据流图如图3.1所示。图数据流图具体分析第一层数据流图,主要包括三部分:问卷信息、基本信息、用户信息的录入。方便人员统计和查询信息,都有系统统一管理存储。该层数据流图如图3.2所示。图第一层数据流图分析问卷信息录入。详细介绍如下。管理员登录系统后,系统对问卷信息进行管理。一次录入详细数据流图如图3.3所示。图收费信息数据流图系统的实施会简短数据的流程,并把信息集中统一于系统,方便用户查询和统计,给操作人员带了很大的工作便利。由于论文的篇幅限制不能一一列举数据流图,只给出了一部分比较重要的,其他都是
6、按照此方法绘制的。3 系统设计3.1 系统功能模块划分功能模块划分是描述系统的一个过程,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发的一个关键过程10。在系统分析的基础上,确定了系统的功能结构图,如图3.1所示。图3.1系统功能结构图根据以上的用户操作需求,将系统划分为如下三大功能,并对其模块的划分和功能进行描述。3.1.1 管理员功能管理员主要功能包括:(1)登录(2)用户管理(3)系统处理(4)权限管理(5)问卷调查(6)基本资料管理3.1.2 用户功能(1)登录(2)问卷中心、模板设计、统计分析(3)信息查看(4)密码修改模块划分后,具体清楚了系统所要实现的功
7、能,接下来要选择系统的运行环境和开发模式3.2系统数据库设计数据库设计是系统设计中非常重要的一个环节。数据是一切系统设计的基础,通俗地说,数据库设计就像高楼大厦的根基一样,如果设计的不合理、不完善,将在系统开发过程中,甚至到后期的系统维护、功能变更和功能扩充时,引起较多问题,严重时甚至要重新设计,重做大量已完成工作11。3.2.1 概念结构设计通过功能模块的划分得到的系统实体分类并遵循三范式原则12,对实体之间的依赖关系进行了整合,可以得到如图4.4所示的系统E-R图。图3.2系统E-R图3.2.2 逻辑结构设计逻辑结构设计是概念结构设计的下一阶段,设计根据概念阶段的E-R图转化成系统支持的数
8、据模型,本选课系统采用关系模型。关系模型的逻辑结构是一组关系模式(二维表)的集合。E-R图是由实体,实体属性和实体之间的联系三个要素组成的。所以将E-R图转换为关系模型实际上是要将实体,实体的属性和实体之间的联系转换为关系模型。根据以上原则将问卷调查系统中的E-R图转换为关系模型如下:(1)问卷模板管理(问卷模板编号,问卷模板名称)(2)用户(用户编号,用户名称)(3)问卷管理(问卷编号,问卷名称)(4)问卷分类(分类编号,用户编号)(5)时间(时间编号,时间名称)3.2.3 数据库表设计本系统的数据库中包括10张数据表,记录系统中的数据。部分数据表的字段说明如下所示。根据需求分析以及系统功能
9、的需要,系统信息数据存放在数据表中。下面给出重要数据表的简单描述。(1)zinfo(网站信息表)该表存储了网站的基本信息,主要用于网站信息记录。字段属性描述如表1。表1 网站信息表字段名字段类型字段长度是否主键描述IdVarchar50是编号contentVarchar50否内容(2)wjtype(问卷分类信息表)该表存储了问卷分类的基本信息,主要用于问卷分类基本信息记录。字段属性描述如表2。表2 问卷分类信息表字段名字段类型字段长度是否主键描述Idint4是编号TnameVarchar50否分类名称TbeiVarchar50否备注TcontentVarchar50否内容hotmenVarch
10、ar50否热度(3)wjmbts(问卷模板设置信息表)该表存储了问卷模板设置的基本信息,主要是问卷模板设置的信息的记录,该表的字段属性如表3。表3 问卷模板信息表字段名字段类型字段长度是否主键描述IdVarchar50是编号WjidVarchar50否问卷编号TitleVarchar50否标题XuanxiangVarchar70否选项danduoVarchar50否单多(4)wjmb(问卷模板信息表)该表存储了问卷模板的基本信息,主要是问卷模板信息的记录,该表的字段属性如表4。表4 问卷模板信息表字段名字段类型字段长度是否主键描述Idint11是编号MbnameVarchar160否模板名称M
11、btypeVarchar160否模板类型ContentVarchar80否内容AuthorVarchar80否作者publictypeVarchar80否公布类型(5)wenj(问卷信息表)该表存储了问卷的基本信息,主要是问卷信息的记录,该表的字段属性如表5。表5 问卷信息表字段名字段类型字段长度是否主键描述Idint11是编号FquserVarchar160否参与MbidVarchar160否模板类型SavetimeVarchar80否时间stateVarchar80否状态(6)sysuser(用户信息表)该表存储了用户的基本信息,主要是用户信息的记录,该表的字段属性如表6。表6 用户信息表
12、字段名字段类型字段长度是否主键描述Idint11是编号UnameVarchar80否用户名UpassVarchar80否密码BeiVarchar80否备注SexVarchar80否性别ageVarchar80否年纪UpositionVarchar80否职业AddressVarchar80否地址EmailVarchar80否邮箱stateVarchar80否状态(7)answers(答案信息表)该表存储了答案的基本信息,主要是答案信息的记录,该表的字段属性如表7。表7 答案信息表字段名字段类型字段长度是否主键描述Idint11是编号WjidVarchar80否问卷编号TsidVarchar80否
13、分类编号TanswerVarchar80否答题人SexVarchar80否性别AgeVarchar80否年龄UpositionVarchar80否职业AddressVarchar80否地址savetimeVarchar80否时间3.3系统设计与实现经过数据库设计后,本阶段要进行系统界面设计。设计时要尽量按照用户工作习惯,同时要做到界面友好,让用户操作简单方便。下面将对各个模块进行详细设计。3.3.1 登录模块在登录页面中选择用户类型,输入用户名和密码,然后单击登录按钮,login.jsp页面将负责处理登录请求,验证用户身份和信息,完成登录。用户登录时要选择身份,本系统有二种身份的用户,分别是管
14、理员、用户。问卷结果统计图是整个网络问卷分析的关键,其关系到整个问卷调查的直观,其主要代码如下:String zx = request.getParameter(zx);if(zx!=null)session.removeAttribute(user);%/中间部分代码略去List tslist = dao.select(select * from wjmbts where wjid=+m.get(id)+ order by id); int i=0;for(HashMap h:tslist) i+; % % String xmlcode=; String colors = AFD8F8,F6
15、BD0F,8BBA00,FF8E46,008E8E,D64646,8E468E,588526,B3AA00,008ED6,9D080D,A186BE; String xs = h.get(xuanxiang).toString().split(-); for(int j=0;jxs.length;j+) String csql = select count(*) sum from answers where sex like%+sex+% and uposition like%+uposition+% and addrs like%+addrs+% and age like%+age+% an
16、d wjid=+wjid+ and tsid=+h.get(id)+ and tanswer like%+xsj+%; String sum = dao.select(csql).get(0).get(sum).toString(); xmlcode+= ; String type=radio; if(h.get(danduo).equals(多)type=checkbox; % input type= name=ti value= / (选择数 : ) % xmlcode+=; % var chart = new FusionCharts(/wenjx/FusionC
17、hartsFree/Charts/FCF_Column3D.swf, ChartId, 400, 240); chart.setDataXML(); chart.render(chartdiv); 4.3.3 管理员功能模块(1)问卷管理问卷管理是这个问卷调查系统的重点,主要包括:问卷信息管理、问卷模板管理、问卷分类管理。其中问卷信息管理界面,管理员对问卷信息进行查询、添加、编辑、设置等管理。问卷模板管理界面,管理员对问卷模板进行添加、编辑、设置等管理。(2)注册用户管理注册用户管理模块,管理员对用户的信息进行编辑、修改、删除等管理。3系统数据管理SQL2
18、000数据库的最大特点就是提供了很多便于直接使用的操作函数,可以轻松的将复杂的数据库操作由清晰的函数实现。在系统数据管理这个模块,主要实现了数据备份和数据恢复(即数据库导入)。以上是系统界面的设计,界面不太美观,还需要进一步美化,同时功能也有待进一步完善。到此,同于科技公司无论中心体育场地预约管理系统已基本完成系统设计。从系统规划、系统分析到系统设计,完成了系统开发流程,实现了系统的预期功能。Hibernate封装通用数据操作基类DAO是整个网络问卷调查数据录入的关键,其关系到整个系统的顺利运行,其主要代码如下:public class CommDAO Connection conn = nu
19、ll;public CommDAO()conn = this.getConn();private static Properties config = null; static try config = new Properties(); InputStream in = CommDAO.class.getClassLoader().getResourceAsStream(dbconnection.properties); config.load(in); System.out.println(config.get(dburl); in.close(); catch (Exception e)
20、 e.printStackTrace(); public Connection getConn() try String d = new Date().toLocaleString().substring(0,9); Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); String dburl = jdbc:sqlserver:/localhostSQLEXPRESS:1433; DatabaseName=wenjx; conn = DriverManager.getConnection(dburl,sa,123456);
21、catch(Exception e) e.printStackTrace(); return conn;public int getInt(String sql)int i = 0;try Statement st = conn.createStatement();ResultSet rs = st.executeQuery(sql);if(rs.next()i = rs.getInt(1); st.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return i;publ
22、ic double getDouble(String sql)double i = 0;try Statement st = conn.createStatement();ResultSet rs = st.executeQuery(sql);if(rs.next()i = rs.getDouble(1); st.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return i;public void commOper(String sql)try Statement st
23、 = conn.createStatement(); st.execute(sql); st.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void commOperSqls(ArrayList sql)try conn.setAutoCommit(false);for(int i=0;isql.size();i+)Statement st = conn.createStatement();System.out.println(sql.get(i); st.
24、execute(sql.get(i); st.close();mit(); catch (SQLException e) try conn.rollback(); catch (SQLException e1) e1.printStackTrace();e.printStackTrace();finallytry conn.setAutoCommit(true); catch (SQLException e) e.printStackTrace();public List select(String sql)List list = new ArrayList();try Statement s
25、t = conn.createStatement(); ResultSet rs = st.executeQuery(sql); ResultSetMetaData rsmd = rs.getMetaData(); while(rs.next() HashMap map = new HashMap(); int i = rsmd.getColumnCount(); for(int j=1;j=i;j+) if(!rsmd.getColumnName(j).equals(ID) map.put(rsmd.getColumnName(j), rs.getString(j); else map.pu
26、t(id, rs.getString(j); list.add(map); rs.close(); st.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return list;public void close()try conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();/* 执行一条查询sql,以 List 的形式返回查询的记录,记录条数,和
27、从第几条开始,由参数决定,主要用于翻页 * pageno 页码 rowsize 每页的条数 */public List select(String sql, int pageno, int rowsize) List list=new ArrayList();List mlist=new ArrayList();trylist=this.select(sql);int min = (pageno-1)*rowsize;int max = pageno*rowsize;for(int i=0;ilist.size();i+)if(!(i(max-1)mlist.add(list.get(i);c
28、atch(RuntimeException re)re.printStackTrace();throw re;return mlist;public static void main(String args) new CommDAO();参 考 文 献1 薛华成.管理信息系统M.北京:清华大学出版社,1993.2 薛鹤娟.基于WEB的大学选课系统分析J.希望月报(上半月),2007年11期.3 黄梯云.管理信息系统导论M.机械工业出版社,2006.4 江孝宜,胡海璐,米海生.信息系统开发实例精粹M.电子工业出版社,2006.5 杜娟.信息系统分析与设计M.北京:清华大学出版社,2008.6 王
29、趾成.软件工程(第二版) M.大连理工大学出版社.2008.7 (美)惠腾(Jeffrey L.Whitten),(美)本特利(Lonnie D.Bentley).系统分析与设计方法M.机械工业出版社,2007. 9 刘腾红等.信息系统分析与设计J.科学学报,2006.10 戎伟,张双.Struts-Java流行服务器、框架、工具及整合应用M. 人民邮电出版社,2006年10月11 向传杰 . Java编程案例教程M. 电子工业出版社,2004 年5月12 赵强 . J2EE应用开发(第二版). 电子工业出版社,2008年2月结 论在系统的开发过程中,充分的借鉴了开源社区的优秀代码段和设计思想
30、,使用面向对象的编程方式与JSP技术结合,完整的实现了系统的需求。而且使用到了模版和程序分离的模式,对于系统管理员来说,前台的设计工作将变的更加轻松。而优秀的开源数据引擎SQL2008本身所具有的良好性能,对于繁杂而且庞大的数据处理有明显的优势,这就为系统的使用提供了稳定性和安全性。在过去一段时间的设计和开发过程中,通过主动的收集资料,已有知识的整合,对构建大型系统尤其是问卷应用系统有了进一步的认识,更加熟悉了JSP中的编程思想,对如何进一步提高JSP技术与SQL2008系统的安全性有了更多的思考。然而,做为网络问卷调查与分析系统,在数据库信息管理实现过程中,本身需要有良好的性能来防范可能出现的任何漏洞,对程序代码本身的安全性要求相当高,从这个方面来看,还需要进一步的工作来完善,在确保功能流程的前提下为用户提供体验性好而且可信任的服务。【精品文档】