网络课程设计--办公自动化系统的设计与实现软件生产实习报告书办公自动化系统的设计与实现学号:0905010422姓名:常勇指导老师:姜磊完成日期:2013年3月15日目录第一章前言---------------------------------------------------1第二章可行性分析-------------------------------------------11、社会可行性分析---------------------------------------------12、使用可行性分析---------------------------------------------1第三章系统分析----------------------------------------------11、性能需求------------------------------------------------12、功能需求------------------------------------------------23、用户需求------------------------------------------------------2第四章系统总体设计-----------------------------------------21、功能描述------------------------------------------------22、系统操作流程图-----------------------------------------3第五章系统详细设计--------------------------------------41、数据库设计---------------------------------------------42、系统模块设计-------------------------------------------5第六章系统测试--------------------------------------------91、测试环境-----------------------------------------------92、主要模块测试及结果-------------------------------------9总结-----------------------------------------------------10参考文献------------------------------------------------------11第一章前言随着信息技术的飞速发展和日趋激烈的商业竞争,企业已不再满足于独立、零散的办公自动化应用,企业需要的是协同工作、综合、集成化的解决方案。
而网络是解决由于物理距离造成的信息交流不畅、协商沟通不便的办公瓶颈问题的最佳方式。
企业网上办公自动化通过对各办公自动化要素的闭环整合,实现了工作流、信息流、知识流和办公自动化系统的整合管理,提供了一个科学、开放、先进的信息化办公平台,实现办公自动化,并进行远程办公或在家办公。
企业网上办公自动化将人从繁琐、无序、低序、低端的工作中解放出来从事核心事务,整体提高了单位办事效率和对信息的可控性,降低办公成本,提高执行力,使管理趋于完善第二章可行性分析2.1、社会可行性分析随着中国加入WTO及全球经济一体化进程的加快,世界经济已由工业化经济逐步进入网络信息化时代。
在信息时代来临之季,各企业都紧跟时代的脚步,转变着企业的经营模式、管理模式,从传统的人工管理体制,向信息自动化管理体制过渡。
与此同时,企业的传统式的办公管理模式也在逐步向自动化办公管理模式转变。
网络自动化办公系统就是在这样的大背景下应运而生的。
2.2、使用可行性分析信息时代的到来让人们尝到了“信息爆炸”的滋味,信息的大量拥入让企业在信息处理方便应接不暇,传统的办公模式、对信息的处理方法,早已不能满足企业对信息快速、准确的处理的要求。
一个企业对信息数据的掌握程度、处理能力,体现了一个企业对市场的敏感程度,数据的真实性、准确性直接决定着企业的发展方向。
从传统的办公模式向自动化办公管理模式转变,提高企业的信息处理能力,以增强企业的市场竞争力,也将给社会的信息化建设带来深远而有意义的影响。
第三章系统分析3.1、性能需求系统应该操作简单,界面友好,运行过程便于维护,系统地执行速度要快,安全性要好。
3.2、功能需求本课程设计要求实现办公自动化的基本功能,主要的表有:部门信息、员工信息、用户信息、员工ID信息、文档信息、短信信息等,所设计的办公自动化系统应包含输入输出、查询、插入、删除等基本功能。
系统各功能模块如下:(1)部门信息管理部门信息包括:部门ID、部门名称、部门描述、联系电话、上级部门名称、备注。
(2)员工基本信息管理员工基本信息包括:员工ID、员工名称、员工编号、性别、民族、办公电话、移动电话、职务、部门ID。
(3)用户信息管理用户信息包括:用户名称、真实姓名、用户密码、联系电话、电子邮件。
(4)员工ID信息管理员工ID信息包括:员工编号、员工姓名。
(5)文档信息管理文档信息包括:文档ID、文档名称、文档创建时间、文档作者、文档来源、用户ID。
(6)短信信息管理短信信息管理包括:短信ID、发送者、接收者、发送日期、主体内容、是否阅读、移动电话号码。
其中,部门名称需要和实际存在的部门对应起来,员工编号需要和实际存在的员工编号对应起来。
此外,与企业实际情况相结合会涉及到管理权限的问题:如员工有权登陆查看自己的基本信息,除了密码以外无权修改其他信息,管理员无权查看员工的个人密码。
因此,在数据库设计和前台应用程序设计的时候,应对这些问题给予解决方案。
3.3、用户需求合理的登录,用户根据自己的权限来进行操作。
第四章系统总体设计4.1.功能描述:该信息管理系统可以在Windows xp平台上运行,开发工具采用Visual c++语言开发,其工作流程为:用户登录通过权限判断,普通用户不能浏览、阅读和查询信息,指定用户可以操作,可以进行信息录入、修改和删除的操作。
系统的主要功能特点有:(1)系统登录表单该表单的功能是在系统被访问之前,要对进入系统的用户进行安全性检查,防止非法用户进行系统破坏数据及威胁系统安全,避免不必要的损失。
只有合法的用户在输入正确的密码后方可进入系统。
(2)主界面在该界面窗口中,共有文件、数据、关于等所有系统功能,用户可以操作菜单的方式快捷地使用系统。
(3)更改密码使用本表单可以方便地修改用户的密码,以防密码泄露后对数据的安全性造成威胁。
4.2图4-1系统操作流程图第五章系统详细设计5.1数据库设计部门信息表:dept表5-1用户信息表:employee表5-2通讯录信息表:address_book表5-3短信信息表:messages表5-4新闻信息表:news表5-55.2、系统模块设计1)经过对系统的整体需求分析之后,确定该人事管理系统的模块有如下:图:5-12)项目采用MVC三层体系结构,使用了Javascript,Servlet,ajax和Jsp等技术。
该系统采用的是jdbc连接数据库,封装dao层,这样子不用每次对数据库操作都会运用get()和set()函数,这样提高了程序的设计效率,减少代码量示例代码:/*** 据sql获取数据** @param sql* @return data查询结果集*/public List queryInfoBySql(String sql) {// 用于接收返回List data = new ArrayList();Class cls = this.getObjectClass();conn = DBConnection.getConnection();try {pstmt = conn.prepareStatement(sql);rs = pstmt.executeQuery();// rs存储结果集类ResultSetMetaData rsmd = rs.getMetaData();Class rscls = rs.getClass();int cols = rsmd.getColumnCount();// rs中数据列数while (rs.next()) {Object obj = cls.newInstance();for (int i = 1; i <= cols; i++) {// 据列名拼属性名String fieldName = this.underlineToUpper(rsmd.getColumnName(i).toLowerCase());// 据属性名获得属性对象Field field = cls.getDeclaredField(fieldName);// 据属性名拼该属性的set方法名String setStr = "set"+ Character.toUpperCase(fieldName.charAt(0))+ fieldName.substring(1);// 据set方法名获取set方法对象Method setMethod = cls.getDeclaredMethod(setStr,field.getType());// 据属性类型拼rs的get方法名String rsget = "get"+ Character.toUpperCase(field.getType().getSimpleName().charAt(0))+ field.getType().getSimpleName().substring(1);// 据rs的get方法名获取get方法Method rsgetMethod = rscls.getDeclaredMethod(rsget,int.class);setMethod.invoke(obj, rsgetMethod.invoke(rs, i));}data.add((Object) obj);}} catch (Exception e) {e.printStackTrace();} finally {DBConnection.closeConnStmtRs(conn, pstmt, rs);}return data;}3)框架设计模拟struts2.1搭建框架如图:5-2图:5-2部分代码如下(继承HeepServlet类):/*** 继承HttpServlet类实现doPost()方法来实现动态action* @author wenqier**/public class ActionControl extends HttpServlet {protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { doPost(request, response);}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { // 解析链接url// 获取模块方法名String method = request.getParameter("do");// 获取链接为字符串String uri = request.getRequestURI();// 获取模块类简单名String classSimpleName = uri.substring(stIndexOf("/") + 1, uri.indexOf("."));try {// 获取模块类名String className = ActionConfigManage.getServiceClassName(classSimpleName);// new模块类对象Class cls = Class.forName(className);Object obj = cls.newInstance();// 据方法名获取方法类Method callMethod = cls.getMethod(method, HttpServletRequest.class, HttpServletResponse.class);// 调用方法ActionForward fwd = (ActionForward) callMethod.invoke(obj, request, response);System.out.println(fwd.getName());// 依据fwd的name从config中获取fwd的redirect和targetfwd = ActionConfigManage.getActionForward(classSimpleName, fwd.getName());// 跳转if (fwd.isRedirect()) {response.sendRedirect(fwd.getTarget());} else {request.getRequestDispatcher(fwd.getTarget()).forward(request,response);}} catch (Exception e) {e.printStackTrace();}}}第六章系统测试6.1 测试环境系统软件:Windows 7工具软件:myeclipse、oracle 11g、tomcat6.0。