c++c语言程序设计计教程这本书的第十章 综合项目物流货仓管理系统

对不起,您要访问的页面暂时没有找到,您可以:折扣价格¥31.50元
原价:¥45.00元 (7折)
最近30天销量:月销867笔
商品来源:
购物咨询(商品客服):
由卖家 辽宁音像出版社图书专营店 从 辽宁 沈阳 发货
推荐版块:&
提醒:商品/服务由天猫商家辽宁音像出版社图书专营店提供
第1章初识C++1.1c++简介
1.1.1c++的发展史
l.1.2c++的特点
1.1.3c++应用领域
1.2第一个c++程序
1.3c++对c语言的扩充
1.3.1bool类型
1.3.2c++中的类型转换
1.3.3C十+中的字符串——string
1.3.5动态分配内存(new与(telete)
1.3.6默认参数
1.3.7内联函数
1.3.8重载函数
第2章类与对象
2.1面向对象程序设计
2.1.1面向过程程序设计
2.1.2面向对象程序设计
2.1.3面向对象的基本概念
2.2类与对象
2.2.1类和对象的关系
2.2.2类的定义
2.2.3类的成员
2.2.4对象的创建与使用
2.2.5this指针
2.2.6类的成员的访问控制
2.3构造函数和析构函数
2.3.1构造函数
2.3.2包含对象成员的类的构造函数
2.3.3析构函数
2.3.4拷贝构造函数
2.3.5深拷贝与浅拷贝
2.4类中特殊的成员变量
2.4.1用Staffc修饰数据成员
2.4.2用const修饰数据成员
2.5类中特殊的成员函数
2.5.1静态成员函数
2.5.2用c&3nst修饰的成员函数
2.5.3类中的内联函数
2.6.1友元函数
2.6.2友元类
第3章继承与多态
第4章运算符重载
第6章I/O流
第7章异常与断言
第8章初识STL
第9章设计模板与C++11新特性
第10章综合项目——物流货仓管理系统
附录String类常用的一些函数
传智播客高教产品研发部编著的《C++程序设计教程(工业和信息化人才培养规划教材)》从初学者的角度出发,以面向对象的程序设计思想为主线,以通俗易懂的语言详细讲解了c++语言,引导读者以最自然的方式,将人类习惯的面向对象的思维方式运用到程序设计中。全书共10章。第1章主要讲解了C++语言相对于C语言在基础知识上的扩充。第2~7章分别讲解了类与对象、继承与多态、运算符重载、模板、I/0流和异常与断言,这一部分是C++语言的核心内容,熟练掌握这些知识,是C++程序开发的基本要求。第8~9章分别讲解了STL、设计模式与c++11的一些新特性。作为C++程序员,这一部分内容或早或晚都必须要学习,熟练掌握它们可使程序开发更加得心应手。第10章为项目实战,结合前面所学知识,开发了一个企业级项目一一物流管理系统,让编程人员切身感受真正的项目开发流程!本书附有配套视频、源代码、习题、教学课件等资源,而且为了帮助读者更好地学习本书讲解的内容,还提供了在线答疑,并承诺在3小时内针对问题给予解答。本书既可作为高等院校本、专科计算机相关专业的教材,也可作为社会培训教材,是一本适合广大计算机编程爱好者的优秀读物。本书适合作为高等院校本、专科计算机相关专业程序设计类课程教材使用,也可供爱好者自学使用。
版权所有. 京ICP备号武 汉 纺 织 大 学 JAVA 课程设计题 学目 院物流管理系统的设计与实现 数计学院 计科 1022 班 周珺 吴昕怡专业班级 学生姓名 指导教师 成 绩2013 年 1 月 4 日 齐齐哈尔大学毕业设计(论文)摘 要物流信息管理系统是一个企业不可缺少的一部分,它的内容对于企业的决策者和管 理者来说都是至关重要的,因此,物流信息管理系统应该能够为用户提供充足的信息和 快捷的查询手段,但一直以来人们使用传统的人工方式管理物流,这种管理方式存在着 许多缺点,诸如效率低,保密性差等,而且将会产生大量的文件和数据,这对于查找、 更新和维护都带来了不少的困难。企业信息管理通常比较复杂,由于各类信息繁多难以 集中,利用计算机支持企业高效率完成企业信息管理,是适应现代企业制度要求,推动 企业信息管理走向科学化、社会化、规范化和自动化,从而提高企业信息管理效率。 本文首先介绍了以 JAVA 语言实现的运通物流管理系统的开发过程,以及开发中所 用到的技术,并对系统进行了分析设计,最后通过相应的开发平台进行实现。该系统达 到了数据的一致性和安全性,应用程序功能完备,符合了物流信息管理系统作为典型的 信息管理系统的要求。用户可以对物流信息进行新增、查询、修改以及数据分析统计等 操作,为了达到企业内部的要求,本系统也对人事信息和客户信息进行了管理,使物流 信息系统更加完善。 关键词: 物流;信息管理;JAVAI 齐齐哈尔大学毕业设计(论文)AbstractLogistics information management system is an integral part of an enterprise. Its content for business decision makers and managers, are crucial, therefore, logistics information management system should be able to provide sufficient information and efficient query means. But it has been the use of traditional manual management of logistics, such management, there are many shortcomings, such as low efficiency, poor confidentiality, and over time, will produce a large number of documents and data, for search, update and maintain all brought many difficulties. Enterprise information management is often complex and difficult to concentrate as many types of information, efficient use of computer support companies to complete enterprise information management, is to adapt to the modern enterprise system, enterprise information management to promote scientific, social, standardization and automation to enhance enterprise information management efficiency. This paper introduces the operation of the JAVA language through the development process of the logistics management system, design and system analysis, and finally through the appropriate platform for implementation. The system has reached the consistency and security of data, application functions, in line with the logistics information management system as a typical management information systems. Logistics information for the user can add, query, modify, and data analysis, statistics, etc, in order to achieve the requirements of the enterprise, the system also on the personnel information and customer information to the management, logistics information management more perfect. Key words :Logistics; Information management;JAVAII 齐齐哈尔大学毕业设计(论文)目 录摘要 ..................................................................................................................................................I Abstract ....................................................................................................................................... II 第1章 1.1 1.2 1.3 第2章 2.1 2.2 2.3 2.4 第3章 3.1 3.2 3.3 绪论 ............................................................................................................................. 1 选题依据和意义....................................................................................................... 1 本课题在国内外的研究现状 ................................................................................ 1 课题研究的内容及拟采取的方法 ....................................................................... 2 系统开发模式、工具及环境 ................................................................................ 3 系统开发模式 ........................................................................................................... 3 系统开发环境的选择.............................................................................................. 3 系统运行环境的选择.............................................................................................. 3 系统实现过程中技术的选择 ................................................................................ 3 需求分析—软件需求规格说明书 ....................................................................... 4 引言 ............................................................................................................................. 4 背景 ............................................................................................................................. 4 任务概述 .................................................................................................................... 5 目标 ..................................................................................................................... 5 用户的特点 ....................................................................................................... 5 对性能的规定 ................................................................................................... 6 系统用例图 ....................................................................................................... 63.3.1 3.3.2 3.4 3.4.1 3.4.2 3.5 第4章 4.1 4.2 4.3 4.4 第5章 5.1 5.2 5.3 第6章 6.1 6.2需求规定 .................................................................................................................... 5运行环境规定 ........................................................................................................... 9 系统总体设计 ......................................................................................................... 10 设计目的 .................................................................................................................. 10 系统模块结构设计: ............................................................................................... 10 系统功能结构描述 ................................................................................................ 11 系统功能机构图..................................................................................................... 11 系统的数据库设计 ................................................................................................ 14 数据库的概念 ......................................................................................................... 14 数据库的选择 ......................................................................................................... 14 数据库设计 .............................................................................................................. 14 系统开发技术介绍 ................................................................................................ 22 JAVA 开发语言的选择 .......................................................................................... 22 MVC 设计模式描述 ................................................................................................. 24III 齐齐哈尔大学毕业设计(论文)6.3Struts2,Hibernate 技术描述 ........................................................................ 25 Struts2 描述 .................................................................................................. 25 Hibernate 描述 ............................................................................................. 276.3.1 6.3.2 6.4 第7章 7.1 7.2 7.3SQL 语言描述 .......................................................................................................... 27 系统的详细设计与实现 ....................................................................................... 28 架构 Struts2 框架和描述 .................................................................................. 28 架构 Hibernate 框架和描述 .............................................................................. 29 系统功能的实现..................................................................................................... 30 系统的登录功能实现 ................................................................................... 31 运通物流系统首页面设计 .......................................................................... 31 人事管理模块实现........................................................................................ 32 货物信息管理实现........................................................................................ 35 车辆信息管理实现........................................................................................ 40 订单信息查询 ................................................................................................. 46 费用统计 ......................................................................................................... 487.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.3.7结论 ............................................................................................................................................... 49 参考文献 ...................................................................................................................................... 50 致谢 ............................................................................................................................................... 51IV 齐齐哈尔大学毕业设计(论文)第1章1.1 选题依据和意义绪 论此次毕业设计的选题主要来源于对齐齐哈尔市周边中小型物流公司和超市走访, 了 解到仍然有很多中小企业和超市对物流管理方面仍然处于纸和笔的操作。因此,在种种 因素的影响下,使其部分物流管理仍然处于业务处理繁琐,工作效率低下的状态。为了 达到信息化仓储、运输、车辆调度等管理,基于 java 的物流管理系统能够解决这一问 题,并实现人机结合的方式,这也将是现代工作方式的主流。 管理信息系统作为各项技术、业务、高水平管理及工作自动化的方法和式,正在广 泛应用,它是为了实现系统的硬件、系统软件、应用软件及数据的共享,已经成为越来 越破切的任务。 人们生活工作与通信,目前都与信息的日益紧密,但很多的国内企业的仓库作业没 有达到信息化,因此为实现信息数字化,开发中小型物流管理系统正是实现利用现有的 信息基础设施,重点开发和推广应用于各类科技经济等数据库和网络资源服务系统,以 便取得更大的社会效益有着总要的意义和价值。1.2本课题在国内外的研究现状中国物流业近几年才开始起步,并进入发展期。由于我国计算机软件技术的发展迅速,也同时也解决了国内很多生产和管理技术的提升。因此,多数软件公司都以应用软 件开发为主,实现办公自动化软件的推广和应用。多数以中小型企业管理软件为主,不 论是制造还是运输、销售、仓储等方面都离不开计算机软件的管理。目前国内的物流管 理系统都是根据公司规模的差距使物流管理系统的管理的内容也不尽相同, 但是主要目 的都是要以计算机为载体来解决当前庞大的数国外物流的发展不仅与社会经济和生产 力的发展水平有关,同时也与科学技术发展的水平有关。国外的物流管理系统, 随着 新经济和现代信息技术的迅还发展,不论是物流管理软件系统的开发,还是其他应用型 软件开发,在实现的功能上都达到了很高的水平。1.3课题研究的内容及拟采取的方法研究内容及方法:物流管理系统包含的内容非常的广泛,但是对于不同的公司对软件功能的需求有所不同,所以我们对物流管理系统的功能模块的构思和设计也有所不1 齐齐哈尔大学毕业设计(论文)同。主要运用 Java web 应用技术来实现该系统的功能,通过动态页面 jsp 来实现页面 的显示和验证, 应用 Hibernate 框架和 Struts2 框架来封装从而实现与数据库的交互和 页面跳转达到了快速的软件开发。2 齐齐哈尔大学毕业设计(论文)第2章2.1 系统开发模式系统开发模式、工具及环境在软件系统开发模式中,一般采用 mvc 模式,即视图层,逻辑层和控制层,但是在 项目开发中,目前已经不局限于这种模式。 对于本系统的开发模式,我此次采用的是 重新构建 MVC 架构: 1.系统开发模式主要分五层:JSP(HTML)视图层[13]、Struts2(使用它对动作 Action的跳转进行管理)控制层、 具体的业务逻辑 (javaBean)数据持久层 、 (DAO, 基于 Hibernate 的 DAO) 、service 层(该层用来负责为模式层提供对应的 DAO 的接口,而不是直接在模 式层中进行调用,降低对数据持久层的依赖度) 。 2.service 层的介绍:本次应用 service 层,主要是对数据持久层进行再次的封装, 使得上层的操作不用理解底层的具体使用, 只需要通过 service 提供相应的接口方法即 可。这种做法降低了各层之间的耦合度。2.2系统开发环境的选择本次系统的开发环境我选择 MyEclipse 7.0 软件作为编写程序的软件。该软件广泛应用于软件开发行业。由于版本的问题,MyEclipse6.0 以下版本不支持 Hibernate 框架, 所以我此次选择 7.0 版本。 MyEclipse 企 业 级 工 作 平 台 ( MyEclipse Enterprise Workbench , 简 称 MyEclipse)是对 Eclipse IDE 的扩展,利用它我们可以在数据库和 JavaEE 的开发、 发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的 JavaEE 集成开发环境, 包括了完备的编码、 调试、 测试和发布功能, 完整支持 HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。2.3系统运行环境的选择系统运行环境,运通物流管理系统是基于 Java Web 应用的系统软件,那么它就离不开服务器对它的支持,所以在服务器上我选择 tomcat6.0 版本,在对 Java 代码的编译 上,本系统应用的是 Sun 公司出品的 Jdk6.0 版本。 Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的3 齐齐哈尔大学毕业设计(论文)一个核心项目, Apache、 由 Sun 和其他一些公司及个人共同开发而成。 由于有了 Sun 的 参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持 最新的 Servlet 2.4 和 JSP 2.0 规范。因为 Tomcat 技术先进、性能稳定,而且免费,因 而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。目前最新版本是 6.0。2.4系统实现过程中技术的选择目前软件开发都是基于框架开发的,目的是为了达到开发的快捷性,所以本次对运通物流管理系统的开发上,我也运用了这样的开发手段。 应用的技术简介: 在当今企业级的开发环境之下处理面向对象与关系数据库的转化 是非常繁琐也相当费时的。 1.Hibernate 是适合与处理对象关系映射的一个工具。Hibernate [2]是「对象/关系对 应」 (Object/Relational Mapping)的解决方案,简写为 ORM,简单的说就是将 Java 中 的对象与对象关系,映像至关系型数据库中的表格与表格之间的关系,ORM 这个术语 指代一种映射数据的技术,它能够通过基于 SQL 的语法映射对象模型的数据到关系模 型数据。这样就简化了对数据库的操作。 2.struts2 框架:Struts 是一个 MVC 框架(Framework),用于快速开发 Java Web 应 用。 对于这两种技术,主要对项目的类,和方法,对象进行封装,因为在 Java 编程中, 时刻都要将“封装”考虑在项目开发的整个过程中。这也降低了系统模块与模块,类与 类之间的耦合度,使系统的结构更稳定。4 齐齐哈尔大学毕业设计(论文)第3章3.1 引言需求分析—软件需求规格说明书需求分析是软件开发的重要组成部分,需求分析是用户对软件功能需求的描述,通 过详细了解用户对软件功能的要求从而达到软件需求面向用户的目的。 该软件需求规格 说明书正是对用户需求做的详细分析的文档。 以便作为程序员今后编写该软件时进行参 考。3.2背景编写背景:因对该运通管理系统的功能进行用户需求分析,从而编写该文档,该文档是对运通管理系统的功能进行描述和可行性分析,达到正确的功能描述的目的。3.3任务概述3.3.1 目标通过对运通管理系统用户的功能需求,编写需求文档,来记录分析该系统的具体功 能和逻辑。 从而达到实现系统登录,入库管理,出入管理,库存管理,人事管理,以 及车辆调度管理等模块的实现。为今后编写该软件程序做准备。 运通管理系统,主要是为了方便对物流过程中对货物流通进行科学化管理,方便管 理过程中的繁琐过程,提高物流管理的效率,通过客户的订单的生成,其他的一系列任 务直接由操作员在电脑前完成所有繁琐操作。3.3.2 用户的特点该系统是对企业内部人员使用的应用软件,它是基于 web 应用的,因此面向的用户 是企业内部人员。 具备基础的计算机知识的人即可对本系统进行操作。 该系统包含了对企业内部的人事管理、客户信息管理、车辆调度和货物出入库信息 管理、以及对货物状态的全程监管。确保了货物的流通状态的管理的顺畅。3.4需求规定能够完全实现对公司产品流通过程中所有业务的包含, 实现综合的管理和简单的操作即可,使操作简单化,可视化。在对系统要求方面要达到系统的稳定性。5 齐齐哈尔大学毕业设计(论文)3.4.1 对性能的规定对系统的时间性要求:要求系统能够有快捷的操作响应。对系统编写代码是,优化 系统结构和层次,达到提高系统性能的可操作性,提高系统效率。 对精度要求:对数据库信息的存储,减少对数据库信息的冗余。减少页面缓存。3.4.2 系统用例图系统用例图(Use Case Diagram)是在软件需求分析到最终实现的第一步,也是软件 开发中重要的组成部分。 用例图定义:由参与者(Actor) 、用例(Use Case)以及它们之间的关系构 成的用于描述系统功能的动态视图称为用例图。 用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模 型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、 子系统或类的功能行为进行建模。 用例图展示了用例之间以及同用例参与者之间是怎样相互联系的。用例图用 于对系统、子系统或类的行为进行可视化,使用户能够理解如何使用这些元素, 并使开发者能够实现这些元素。 以下是系统的用例图,使用用例图主要原因是它具有三个主要的作用: (1)获取 需求; (2)指导测试; (3)还可在整个过程中的其它工作流起到指导作用。 1.登录模块用例图:图 3-1 登录模块用例图图 3-1 登陆了模块用例图: 主要来描述系统的操作人员通过访问主页面来登录本系6 齐齐哈尔大学毕业设计(论文)统。此图也描述了系统的整个功能组成部分。 2.人事管理模块用例图:图 3-2 人事管理模块用例图图 3-2 人事管理模块用例图: 此图描述的是系统人事管理模块下的子系统的功能 描述。通过访问系统的人事管理功能模块,来进行对员工信息管理,对客户信息管理。 从而对员工信息和客户信息进行操作。3.货物信息管理用例图: 图 3-3 货物信息管理模块用例图:此图是对货物信息管理模块的用例进行描述,该 模块主要包含货物出库,货物入库和盘点三个功能点,此图详细的描述了该系统货物信 息管理中子系统的关系和功能点。7 齐齐哈尔大学毕业设计(论文)更新入库信息更信出库信息 查看在途货物信息货物入库 删除已处理订单 备份记录货物出库 货物信息管理模块 运通系统用户 货物基本信息查询修改货物信息查询在库货物信息生成客户订单 库存盘点 显示货物信息修改错误的订单图 3-3 货物信息管理模块用例图4.车辆信息管理用例图:图 3-4 车辆信息管理模块用例图8 齐齐哈尔大学毕业设计(论文)图 3-4 车辆信息管理模块图:主要为客户描述车辆信息模块下的铁运、汽运、空运 以及对车辆分配的功能描述。 5.货物信息查询模块用例图:图 3-5 货物基本信息查询管理模块用例图图 3-5 货物基本信息查询管理模块用例图: 用于描述用户对货物信息的查询操作描 述。 6.盘点信息模块用例图:图 3-6 盘点信息管理模块用例图图 3-6 盘点信息管理模块用例图:主要描述盘点库存功能用例内容,来对其子系统 的概要描述。此模块包含对货物信息的费用计算。3.5运行环境规定要对 Windows XP 或 Windows 7 系统兼容。系统必须具备安装 Oracle10g 和 Tomcat6.0 的基本硬件要求。9 齐齐哈尔大学毕业设计(论文)第4章4.1 设计目的系统总体设计系统设计又称为物理设计,是开发管理信息系统的第二阶段,本章是总体设计,其 任务是设计系统的框架和概貌,此阶段是开发人员进行的工作,他们将系统设计阶段得 到的目标系统的逻辑模型转换为目标系统的物理模型, 该阶段得到工作成果――系统总 体设计是下一个阶段系统实施的工作依据。4.2系统模块结构设计图 4-1 是系统模块结构图,主要描述对此系统的功能结构的总体描述。该系统包含 登录模块,人事管理模块,货物信息管理模块,车辆信息管理模块,货物信息查询以及 费用统计等。此图采用 Microsoft Office Visio 2003 软件来生成的。 它详细的描述 了本系统中各个模块的应用功能内容。业 务 系 统轻 舟 装 饰 BSS轻舟装 饰客户 管理系 统龙发 装饰 报价 系统东易 日盛 客服 系统龙发装 饰仓库 管理系 统决策 支持 系统。 。 。BtoB电子商务 SaaS运营平台 供求信息发布 电子订单 电子支付 物流 企业用户管理 系统定制 系统后台支持BtoC电子商务 家装门户 网上建材商城 基础服务平台 家装知识库 论坛中 心 数 据 库支撑数据库主数据库甲企业库已企业库图 4-1 系统模块结构图10 齐齐哈尔大学毕业设计(论文)4.3系统功能结构描述1.用户登录模块:实现用户登录后可对用户名和密码进行修改。并要求用户的验证 在数据库后台进行验证,不是前台页面中对用户名和密码进行检验。为了达到安全性, 系统登陆后不能再通过 web 浏览器的后退按键会退到此登陆页面。 2.人事管理模块:任何操作都离不开人员,因此对人员管理方面要实现对员工的 信息的添加和更新删除等操作。另一方面是对客户信息的管理,也要具有查询和修改的 功能。 3.货物信息模块: 要对货物入库和出库进行管理,对已经处理完的内容进行删 除,并存入其他表中,达到数据有据可寻的目的。 另一点是对库存的信息进行定期盘 点。对在途货物信息进行监控。 4.对公司运输车辆进行管理:主要是对车辆的调度,都要具备增加和更新的功能。 对订单中采用车辆运输的部分,进行车辆分配。 5.对本系统基本信息的综合查询功能:按照订单查询,按车牌号查询车辆,按日 期查询盘点内容等。4.4系统功能流程图该图主要是对系统的功能流程的描述:当系统的客户有货物运输需求时,系统的管 理员会对客户的需求进行分析,从而对客户的信息进行编辑。首先生成客户订单,客户 订单中主要包含了客户的基本信息,比如客户的编号、客户的所属公司、客户的公司的 所在地以及客户的联系方式等。 当客户订单生成后,会对客户的收货人进行添加。客户的收货人主要是对货物到达 目的地后接受货物的人员的信息进行管理。主要包含联系人的姓名、地址、电话、以及 Email 等信息。 客户订单以及客户的联系人已经产生,那么此时就要对订单详细进行编辑,客户订 单详细主要是对运输的货物进行详细的描述,包含数量,类别,货物名,货物条形码, 以及货物的颜色,体积等内容。 它是对货物的信息的一个详细的描述,为系统管理员 提供货物的详细信息作依据。 此时是货物的入库操作,当货物到达仓库后,要对货物进行货物入库操作,此时要 记录货物是属于哪个订单货物,此时管理员要对其进行记录。 当货物入库后,系统操 作员可以查看在库货物的信息。 当货物出库时,要记录出库货物是属于哪个订单的,同时要分配出库货物订单运输 方式,管理员根据货物订单要求的运输方式分配相对应的运输方式。此操作包含汽运, 铁运以及空运等方式, 每次分配操作时, 同时记录一条数据, 使此数据和订单一一对应。11 齐齐哈尔大学毕业设计(论文)当货物出库分配运输方式后一律可以看做是“在途”状态。生成客户订单货物入库生成客户信息 客户需求生成订单详细信息 分析货物出库 铁运生成收货人信息 系统用户分配运输方式空运车辆信息根据车辆信息分配车辆汽运货物管理订单管理图 4-2 系统功能流程图分配运输方式时,铁运信息根据铁路运输的车次进行分配,空运按照不同时间的航12 齐齐哈尔大学毕业设计(论文)班进行分配,汽运管理信息是按照本公司内部的车辆进行有序化管理的。汽运管理分配 的就是本公司内部的车辆,不同车辆的详细信息可以通过系统来管理。 在货物到达目的地时,收货人确认收货后,操作员改变货物“在途”状态,其订单 上由操作员编辑货物是“否到达目的地”一项来标注货物订单。此时货物的订单就已经 处理完毕。13 齐齐哈尔大学毕业设计(论文)第5章5.1 数据库的概念系统的数据库设计当人么从不同角度描述数据库的概念是,往往会有不同的概念。例如,有人称数据 库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又比如说数据库 是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该 定义侧重于数据的组织)。也有人将数据库当做是“一个数据仓库”。当然,这些描述 都很形象,但是并不是那么严谨。严格地说,数据库是“按照数据结构来组织、存储和 管理数据的仓库”。 本系统将使用一直以来使用都最为广泛的关系模型作为数据库的建设依据。在用户 的观点下,关系模型中数据的逻辑结构是一张二维表,一个关系对应通常说的一张表, 并且关系的每一个分量必须是一个不可分的数据项。而一个基于关系模型的数据库则是 由若干个二维表组成的。 对于一些大型和中型的数据库, Oracle, Server
如 SQL 等都属于关系型数据库,同时它们所带有的数据库管理工具是其他小型数据库所没有 的,而同时这些工具又为管理员的工作节省了很多的时间和财力。5.2数据库的选择在选择数据库上,我选择目前市场上占有率最大的 Oracle 数据库,这次我应用的是 Oracle 10g. 我们以前使用数据库连接,都是使用单联接(或单例模式) ,但是在大 并发量出现的时候, 总有可能会达到数据库连接数的上限。 那么应用数据池 (DATA POOL) 可以解决系统因访问量过多而崩溃的问题。 但是使用了数据池并不是为了解决连接数据 库速度的问题,而是为了实现数据连接的稳定性和提高并发的能力。但是由于此系统是 用于企业内部的, 访问量的并发性要求不高, 因此此系统部分内容采用数据库的单链接。5.3数据库设计概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体-联系模型,即 E-R 模型,它是用 E-R 图来描述现实世界的概念模型。E-R 图中用矩形表示实 体;用菱形表示联系。如图:5-1 系统 E-R 图。14 齐齐哈尔大学毕业设计(论文)图 5-1 系统 E-R 图该图只是描述了系统的实体与实体之间的关系,并没有添加实体的属性内容。由图 可知,系统的管理员对系统员工信息、货物入库出库信息、车辆信息、以及货物订单和 客户信息都是一对多的关系。 Office Visio 2003 或者 Office Visio2010 是一种便于 IT 和商务专业人员就复 杂信息、系统和流程进行可视化处理、分析和交流的构图软件。因此这里用了此软件来 画各种流程图,而不是用 Microsoft Word2003 或者是 Microsoft Word2007,因为这会 使开发更加的快捷,而不至于因构图而浪费时间。为了清楚简便的描述出实体与其性之 间的关系,用 Microsoft Office Visio 2003 软件生成了一张包含实体属性的完 E-R 图,见图 5-2 和图 5-3。15 齐齐哈尔大学毕业设计(论文)ytrenshi PK ytrenshi_worknum ytrenshi_name ytrenshi_sex ytrenshi_chusheng ytrenshi_cardno ytrenshi_address ytrenshi_tel tyrenshi_bumennum ytbumen PK khdingdan PK khdingdan_dnum khdingdan_knum khdingdan_ystype khdingdan_fh khdingdan_shrnum khdingdan_ftime khdingdan_dtime khdingdan_stime hkdingdan_type hkdingdan_czyuan hkdingdan_czadd khdingdan_beizhu PK shouhren shouhren_num shouhren_gongsi shouhren_name shouhren_address shouhren_tel shouhren_email shouhren_ding shouhren_type shouhren_beizhu ytbumen_num ytbumen_nameoutputimage PK output_num output_ddnum output_cpleibie output_cpname output_suoshu output_cpnum output_cptiao output_cpxianghao output_yckshuliang output_shijichuku output_danwei output_outtime output_outtype output_outtype output_mddtype output_beizhuddxiangxi PK dd_id dd_ddnum dd_cpnum dd_cptm dd_cpleibie dd_cpname dd_cpyanse dd_cptiji dd_cpshuliang dd_cpdanwei dd_xianghao dd_ysfangshi dd_ysbianhao dd_beizhukucunxinxi PK PK kucun_num kucun_ddnum kucun_leibie kucun_cpname kucun_suoshu kucun_cpnum kucun_tiaoxing kucun_xianghao kucun_cpshuliang kucun_rukushu kucun_danwei kucun_rktime kucun_ckshu kucun_beizhuinputimage PK input_num input_ddnum input_cpleibie input_cpname input_suoshu input_cpnum input_cpxianghao input_cpshuliang input_shijiruku input_danwei input_rutime input_rutype input_beizhuytclient PK ytclient_num ytclient_gsname ytclient_gsadd ytclient_per ytclient_tel ytclient_email ytclient_dingnum ytclient_beizhukulishi PK kulishi_rnum kulishi_dnum kulishi_cpleibie kulishi_cpname kulishi_suoshu kulishi_cpnum kulishi_cptiao kulishi_cpxiang kulishi_cpshu kulishi_rkshu kulishi_danwei kulishi_rutime kulishi_chutime kulishi_beizhuzaitu PK zaitu_id zaitu_chunum zaitu_dingnum zaitu_beizhu图 5-2 系统表的完整关系模型16 齐齐哈尔大学毕业设计(论文)ddxiangxi1 PK dd_id dd_ddnum dd_cpnum dd_cptm dd_cpleibie dd_cpname dd_cpyanse dd_cptiji dd_cpshuliang dd_cpdanwei dd_xianghao dd_ysfangshi dd_ysbianhao dd_beizhu check PK check_id check_ddnum check_yunfei check_cunfei check_banfei check_zonge check_time check_beizhukongyun PK kongyun_id qiyun PK qiyun_id qiyun_ddnum qiyun_chenum qiyun_zhongzhuan qiyun_ctime qiyun_dtime qiyun_siji qiyun_peiyuan qiyun_beizhu kongyun_ddnum kongyun_banci kongyun_zhongzhuan kongyun_qtime kongyun_dtime kongyun_tidan kongyun_peiyuan kongyun_beizhutieyun PK tieyun_id tieyun_ddnum tieyun_checi tieyun_zhongzhuan tieyun_ctime tieyun_dtime tieyun_peiyuan tieyun_beizhuytrenshi PK ytrenshi_worknum ytrenshi_name ytrenshi_sex ytrenshi_chusheng ytrenshi_cardno ytrenshi_address ytrenshi_tel tyrenshi_bumennumcheliang PK cheliang_num cheliang_zai cheliang_long cheliang_w cheliang_h cheliang_siji cheliang_gongnum cheliang_type图 5-3 系统表的完整关系模型以上两个图 5-2 和图 5-3 描述了运通物流管理系统的表与表之间的字段的关系, 它 更 鲜 明 的 显 示 了 表 结 构 的 关 系 。 例 如 : 系 统 的 人 事 表 ytrenshi 与 车 辆 信 息 表 chenliang 对应的主外键关系一目了然,cheliang 表中主键是 cheliang_num 外键是 cheliang_siji (员工编号) ,对应 ytrenshi 表中的主键 ytrenshi_worknum 关系。17 齐齐哈尔大学毕业设计(论文)系统表的建立:表 5-1 用户表 ytuser 字段描述 字段名 数据类型 是否为空 主 键 PK编号 用户名 用户密码ytuser_id ytuser_name ytuser_pwdvarchar2(10) varchar2(30) varchar2(30)notnull notnull notnull表 5-1 用户表中主键是用户编号,其中用户名唯一,不能为空,用户密码不能为 空,其中用户名和用户密码是用户进入系统的为一标识。表 5-2 人事表 ytrenshi 字段描述 字段名 数据类型 是否为空 主 键 PK工作证号 姓名 性别 出生年月 身份证号 居住地址 联系电话 部门编号ytrenshi_worknum ytrenshi_name ytrenshi_sex ytrenshi_chusheng ytrenshi_cardno ytrenshi_address ytrenshi_tel tyrenshi_bumennumvarchar2(30) varchar2(30) varchar2(30) varchar2(50) varchar2(30) varchar2(50) varchar2(20) varchar2(30)notnull notnull notnull notnull notnull notnull notnull notnullFK表 5-2 是系统的人事表信息, 它存储了该系统的使用的公司的整体员工信息。 其 中员工的工作证号是主键,它存储了员工的姓名、性别、出生年月、省份证号、居住 地址、联系方式、部门编号等信息,其中部门编号是外键。由于任何一个系统或者一 个企业都离不开人员,因此此处设计一个对企业内部人员信息的表,其中部门编号标 识了员工所在的部门,部门编号是部门表的主键,那么此处可以通过部门编号来查询 部门信息。从而查看员工所在的部门信息。表 5-3 用户部门表 ytbumem 字段描述 部门编号 部门名称 字段名 ytbumen_num ytbumen_name 数据类型 varchar2(30) varchar2(30) 是否为空 notnull notnull 主 键 PK表 5-3 用户部门表 主要由部门编号和部门名称组成,其中部门编号是主键。它 存储了部门信息的详细内容。表 5-4 客户信息表 ytclient18 齐齐哈尔大学毕业设计(论文) 字段描述 客户编号 公司名称 公司所在地址 联系人姓名 联系电话 email 订单号 备注 字段名 ytclient_num ytclient_gsname ytclient_gsadd ytclient_per ytclient_tel ytclient_email ytclient_dingnum ytclient_beizhu 数据类型 varchar2(30) varchar2(30) varchar2(50) varchar2(30) varchar2(20) varchar2(30) varchar2(50) varchar2(100) 是否为空 notnull notnull notnull notnull notnull notnull notnull 主 键 PK表 5-4 客户信息表主要存储客户的基本信息,主要由客户编号、公司名称、公司 所在地址、联系人姓名、联系电话、Email 和订单号、备注组成。它主要是存储客户 的基本信息。表 5-5 收货人信息表 shouhren 字段描述 字段名 数据类型 是否为空 主 键 PK编号 收获公司 收货人 所在地 联系电话 email 订单号 收获状态 备注shouhren_num shouhren_gongsi shouhren_name shouhren_address shouhren_tel shouhren_email shouhren_ding shouhren_type shouhren_beizhuvarchar2(30) varchar2(30) varchar2(30) varchar2(50) varchar2(30) varchar2(50) varchar2(50) varchar2(10) varchar2(100)notnull notnull notnull notnull notnull notnull notnull notnull表 5-5 收货人信息表,主要存储收货人的基本信息。 其中主键是收货人编号。表 5-6 客户订单表 khdingdan 字段描述 客户编号 订单编号 运输方式 发货目的地 收获人编号 预发时间 遇到达时间 订单生成时间 字段名 khdingdan_knum khdingdan_dnum khdingdan_ystype khdingdan_fh khdingdan_shrnum khdingdan_ftime khdingdan_dtime khdingdan_stime 数据类型 varchar2(50) varchar2(50) varchar2(30) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) 是否为空 notnull notnull notnull notnull notnull notnull notnull notnull 主 键 PK19 齐齐哈尔大学毕业设计(论文) 是否已经发货 操作员姓名 操作员人所在地 备注 hkdingdan_type hkdingdan_czyuan hkdingdan_czadd khdingdan_beizhu varchar2(10) varchar2(30) varchar2(50) varchar2(100) notnull notnull notnull表 5-6 客户订单表主要描述的是客户编号、 客户发货时间、 到达时间等基本信息, 为订单详细信息提供客户的基本信息作简单描述和存储。表 5-7 订单详细表 ddxiangxi 字段描述 订单序号 订单编号 产品编号 产品条形码 产品类别 产品名称 产品颜色 产品体积 产品数量 单位 产品箱号 运输方式 运输编号 备注 字段名 dd_id dd_ddnum dd_cpnum dd_cptm dd_cpleibie dd_cpname dd_cpyanse dd_cptiji dd_cpshuliang dd_cpdanwei dd_xianghao dd_ysfangshi dd_ysbianhao dd_beizhu 数据类型 varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(30) varchar2(20) varchar2(50) varchar2(20) varchar2(50) varchar2(100) 是否为空 notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull 主 键 PK表 5-7 订单详细表,主要存储订单的详细信息,它主要是对货物信息的描述。通 过客户订单的订单编号可以查找到详细的订单内容。也就是这个表的内表 5-8 入库信息表 Inputimage字段描述字段名数据类型主 键notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull PK入库编号 订单号 产品类别 产品名称 产品所属公司 产品编码 产品箱号 产品总数量 实际入库数量 单位input_num input_ddnum input_cpleibie input_cpname input_suoshu input_cpnum input_cpxianghao input_cpshuliang input_shijiruku input_danweivarchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(10)20 齐齐哈尔大学毕业设计(论文) 入库时间 入库是否已完成 备注 input_rutime input_rutype input_beizhu varchar2(50) varchar2(10) varchar2(50) notnull notnull表 5-8 入库信息表主要存储已经入库的货物信息,也就是货物信息的详细记录。 其中主键是入库编号。由系统自动生成。表 5-9 出库信息表 outputimage 字段描述 出库编号 订单号 产品类别 产品名称 产品所属公司 产品编号 产品条形码 产品箱号 应出库总数量 实际出库数量 单位 出库时间 是否已完全出库 是否已到达目的地 备注 字段名 output_num output_ddnum output_cpleibie output_cpname output_suoshu output_cpnum output_cptiao output_cpxianghao output_yckshuliang output_shijichuku output_danwei output_outtime output_outtype output_mddtype output_beizhu 数据类型 varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(30) varchar2(30) varchar2(10) varchar2(50) varchar2(10) varchar2(10) varchar2(100) 是否为空 notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull notnull 主 键 PK表 5-9 出库信息表,主要存储出库信息记录。标识货物的状态,是否已经完成出 库货物的操作。表 5-10 库存信息表 Kucunxinxi 字段描述 字段名 数据类型 是否为空 主 键 PK入库编号 订单号 产品类别 产品名称 产品所属公司 产品编号 产品条形码 产品箱号 产品数量kucun_num kucun_ddnum kucun_leibie kucun_cpname kucun_suoshu kucun_cpnum kucun_tiaoxing kucun_xianghao kucun_cpshuliangvarchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(50) varchar2(30) varchar2(30)notnull notnull notnull notnull notnull notnull notnull notnull notnull21 齐齐哈尔大学毕业设计(论文) 实际入库数量 单位 入库时间 出库数量 备注 kucun_rukushu kucun_danwei kucun_rktime kucun_ckshu kucun_beizhu varchar2(30) varchar2(10) varchar2(50) varchar2(30) varchar2(100) notnull notnull notnull notnull表 5-10 库存信息表主要存储已经入库的信息。 在这里它是辅助入库信息的记录的, 为了达到便于用户查询的目的建立的一张信息表。22 齐齐哈尔大学毕业设计(论文)第6章6.1系统开发技术介绍JAVA 开发语言的选择现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行,使用最多,最为先进的可用作企业级开发语言的产品有: SUN 公司的 Java Microsoft 公司的 Visual Basic Microsoft 公司的 Visual C Borland 公司的 Delphi Powersoft 公司的 PowerBulider 在目前市场上这些众多的程序开发工具中,有些强调语言的弹性与执行效率;有些 偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满 足了不同用户的不同需求。我的网站选择 Java 语言开发,其原因基于以下几点: Java 是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、可移 植的、性能很优异的[12]、多线程的、动态的语言。 1. 简单 Java 的风格类似于 C++,并且摒弃了 C++中容易引发程序错误的地方,如指针和内 存管理。 此外 Java 提供了丰富的类库。 2. 面向对象 面向对象可以说是 Java 最重要的特性。Java 语言的设计完全是面向对象的。Java 支持静态和动态风格的代码继承及重用。 3. 分布式[14] Java 包括一个支持 HTTP 和 FTP 等基于 TCP/IP 协议的子库。因此,Java 应用程序 可凭借 URL 打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。 4. 健壮 Java 致力于检查程序在编译和运行时的错误。Java 自己操纵内存减少了内存出错 的可能性。Java 提供 Null 指针检测数组边界、检测异常出口、字节代码校验。 5. 安全 Java 的安全性可从两个方面得到保证。一方面,在 Java 语言里,像指针和释放内 存等 C++功能被删除,避免了非法内存操作。另一方面,当 Java 用来创建浏览器时,语 言功能和浏览器本身提供的功能结合起来,使它更安全。23 齐齐哈尔大学毕业设计(论文)6.结构中立 为了建立 Java 作为网络的一个整体,Java 将它的程序编译成一种结构中立的中间 文件格式。只要有 Java 运行系统的机器都能执行这种中间代码。Java 源程序被编译成 一种高层次的与机器无关的 byte-code 格式语言,这种语言被设计在虚拟机上运行,由 机器相关的运行调试器实现执行。 7. 可移植的 Java 的可移植性一直是 Java 程序设计师们的精神指标, 也是 Java 之所以能够受到 程序设计师们喜爱的原因之一, 最大的功臣就是 JVM 的技术。 JAVA 编译器产生的目标代 码(J-Code) 是针对一种并不存在的 CPU--JAVA 虚拟机(JAVA Virtual Machine),而不 是某一实际的 CPU。JAVA 虚拟机能掩盖不同 CPU 之间的差别,使 J-Code 能运行于任何 具有 JAVA 虚拟机的机器上。 8. 高性能 Java 可以在运行时直接将目标代码翻译成机器指令。Sun 用直接解释器一秒钟内可 调用 300,000 个过程。翻译目标代码的速度与 C/C++的性能没什么区别。 9. 多线程[16] Java 支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。线程,有 时也称小进程,是一个大进程里分出来的小的独立的进程。 10. 动态 Java 的动态特性是其面向对象设计方法的发展。 它允许程序动态地装入运行过程中 所需要的类,这是 C++语言进行面向对象程序设计所无法实现的。Java 编译器不是将对 实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传 递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。6.2MVC 设计模式描述MVC[12]是 Model-View-Controller 的简称,它是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。 视图是用户看到并与之交互的界面,作用包括向用户显示相关的数据、接受用户的 输入、向模型查询业务状态、接受模型发出的数据更新事件,从而对用户界面进行同步 更新。 模型表示业务数据和业务逻辑,是应用程序的主体部分。一个模型能为多个视图提 供数据,因此提高了代码的可重用性。 控制器接受用户的输入并调用模型和视图去完成用户的需求。当 Web 用户单击 Web 页面中的递交按钮来发送 HTML 表单时,控制器本身不输出任何东西和做任何处理。控24 齐齐哈尔大学毕业设计(论文)制器接收请求并决定调用哪个模型组件去处理请求, 然后决定调用哪个视图来显示模型 处理返回的数据。 MVC 的优点表现在如下几个方面: 1.首先,最重要的一点是多个视图能共享一个模型。同一个模型可以被不同的视 图重用,大大提高了代码的可重用性。 2.由于 MVC 的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这 种设计思想能构造良好的松偶合的构件。 3.此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同 的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。 MVC 处理过程的结构图,见图 6-1。图 6-1 MVC 模式图6.3Struts2,Hibernate 技术描述6.3.1 Struts2 描述Struts2[9] 是目前 Java Web MVC 框架中不争的王者。Struts2 由一组相 协作的类(组件)、Serlvet 以及 jsp tag lib 组成。由于 Struts 实质上就是在 JSP Model2 的基础上实现的一个 MVC 框架,所以基于 struts 构架的 web 应用程序基本上符25 齐齐哈尔大学毕业设计(论文)合 JSP Model2 即 MVC 的设计标准。其中的模型是 JavaBean,控制器是 ActionServlet、 Action,视图是 JSP、Struts 客户化标签。 Struts2 的体系与 Struts1 体系的差别非常大,因为 Struts2 使用 WebWork 的 设计核心,而不是 Struts1 的设计核心。Struts2 中大量使用拦截器来处理用户的 请求,从而允许用户的业务逻辑控制器与 Servlet API 分离。 Struts2 控制器组件主要包括:充当 Struts2 框架的中央控制器的 ActionServlet 组件、充当每个子应用模块的请求处理器的 RequestProcessor 组件、负责处理一项具 体的业务的 Action 组件。其工作流程如图 6-2:图 6-2 Struts2 流程图Struts2 的 另 一 特 点 是 使 用 ActionForm Bean , ActionForm Bean 也 是 一 种 JavaBean, 除了具有一些 JavaBean 的常规方法, 还包含一些特殊的方法, 用于验证 HTML 表单数据以及将其属性重新设置为默认值。Strut2s 框架利用 ActionForm Bean 来进行 View 组件和 Controller 组件之间表单数据的传递。JSP 文件使用 Struts2 标签读取修 改后的 ActionForm Bean 的信息,重新设置 HTML 表单。26 齐齐哈尔大学毕业设计(论文)6.3.2 Hibernate 描述Hibernate 是连接 Java 应用程序和关系数据库的中间件,它封装了 JDBC,实现了 Java 对象的持久化;封装了所有数据访问细节,使业务逻辑层专注于业务逻辑。并且通 过对象关系映射(Object Relational Mapping,简称 ORM)解决了面向对象与关系数据 库之间存在的互不匹配的现象。如图 6-3:如图 6-3 Hibernate 流程图6.4SQL 语言描述SQL(Structure Query Language 结构化查询语言)自 1974 年被提出,至今已经是世界上最流行的关系数据库的标准语言。 SQL 语言的分类 1. DDL(Data Definition Language)数据定义语言,其作用包括创建数据库对象、 删除数据库对象、修改数据库对象(create、drop、alter)。 2. DML(Data Manipulation Language)数据操纵语言,其作用包括查找数据信息、 插入数据信息、删除数据信息、更改数据信息(select、 insert、 delete、 update)。3. DCL (Data Control Language) 数据控制语言, 作用主要对是授权数据库对象 (grant, revoke) 。27 齐齐哈尔大学毕业设计(论文)第7章7.1系统的详细设计与实现架构 struts2 框架和描述1.在项目的 lib 目录下加载以下 struts2 相关类包如图 7-1。图 7-1 struts2 相关类包其中这几个包都是 struts2 配置文件需要的,struts2-core-2.1.6 他类包是配合 struts2 进行其他操作的相关辅助类包。 2.配置一个 struts.xml 文件,到 src 包下:是 struts2 的核心包,其&?xml version=&1.0& encoding=&UTF-8&?& &!DOCTYPE struts PUBLIC &-//Apache Software Foundation//DTD Struts Configuration 2.0//EN& &http://struts.apache.org/dtds/struts-2.0.dtd&& &struts& &package name=&default& extends=&struts-default&& &action name=&login& class=&LoginAction&& &result name=&success&&/success.jsp&/result& &result name=&error&&/error.jsp&/result& &/action& &/package& &/struts&28 齐齐哈尔大学毕业设计(论文)3.配置 web.xml 文件内容: &?xml version=&1.0& encoding=&UTF-8&?& &web-app version=&2.5& xmlns=&http://java.sun.com/xml/ns/javaee& xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xsi:schemaLocation=&http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&& &filter& &filter-name&struts2&/filter-name& &filter-class&org.apache.struts2.dispatcher.ng.filter .StrutsPrepareAndExecuteFilter &/filter-class& &/filter& &filter-mapping& &filter-name&struts2&/filter-name& &url-pattern&/*&/url-pattern& &/filter-mapping& &welcome-file-list& &welcome-file&index.jsp&/welcome-file& &/welcome-file-list& &/web-app& 此处配置 web.xml 文件的目的是为了配置 Sturts2 的入口,系统是通过 web.xml 文件 来找到 Struts2 的。 的配置文件的位置以及其他相关的内容的。所以配置此内容是必须有7.2架构 Hibernate 框架和描述1.右键项目名,点击 Myeclipse,再点击 AddHibernate…导入 Hibernate 相关类包。同时在 src 包下建立 hibernate.cfg.xml 配置文件。 2.由于 hibernate 自身分装了配置数据库驱动,在配置 hibernate 框架的同时,利用 hibernate 自身的特点, 来建立数据库的链接, 如图 7-2。 7-2 主要显示的是配置 Hibernate 图 时候要配置的数据库驱动操作。 它显示了数据库的驱动的类型和数据库用户的用户名等 信息。29 齐齐哈尔大学毕业设计(论文)图 7-2 配置 Hibernate 链接3.在 Hibernate 配置文件下(hibernate.cfg.xml)中配置数据池操作如下: &property name=&c3p0.max_size&&50&/property& &property name=&c3p0.min_size&&10&/property& &property name=&c3p0.timeout&&1000&/property& &property name=&c3p0.max_statements&&50&/property&7.3系统功能的实现7.3.1 系统的登录功能实现图 7-3 系统登录功能图30 齐齐哈尔大学毕业设计(论文)系统登录功能页面主要是通过Macromedia Dreamweaver 8 软件来实现的前台页面。 通过css样式和div标签实现页面的组合。系统登录的用户名和密码都是通过系统的数据 库的表Tyuser中的username和password两个字段来控制的。在后台处理上,为了达到系 统的安全性,当系统用户进入系统后,不能通过Web页面的后退按钮再次返回该页面。系 统的&form &&/form&标签通过action属性也就是&form action=&login_test& method=&post&& 来跳进struts2的配置文件,通过配置文件找到action方法:test()方法来操作的。通过类 LoginAction中的自定义的方法来实现用户信息的验证。执行SQL语句: String sql=&select ytuser_name,ytuser_pwd from ytuser where ytuser_name=? and ytuser_pwd=?&; pst=conn.prepareStatement(sql); 如果通过验证则跳入系统的菜单页面,如果不成功则跳入一个提示页面,五秒后自动返 回登录页面。7.3.2 运通物流系统首页面设计图 7-4 系统功能首页图 7-4 显示的是系统的首页面, 它显示了系统的主要功能。 系统的功能菜单采用 js 来控制下拉菜单的弹出效果,在点击系统功能菜单的选项,并弹出子菜单。通过点击子 菜单的功能目录,系统的右侧页面会显示系统的操作功能。7.3.3 人事管理模块实现1.员工信息管理(如图 7-5) :31 齐齐哈尔大学毕业设计(论文)图 7-5 员工信息管理人事管理包含员工信息管理和客户信息管理,在员工信息管理中,主要是对员工信 息表进行操作,该表记录了企业内部员工的基本信息。主要包含员工信息的多条分页查 询,新增员工信息以及按照工作证号来查询员工信息。在新增员工信息的页面上(如图 7-5)可以添加新的部门名称和部门编号,同时此页面显示部分部门信息,供新增员工 信息时对部门选择提供参考。 主要通过以下代码跳入方法体内: &li& &a href=&RenshiChaxun_fenye?pageNow=1& target=&mainFrame&&员工信息管理&/a& &/li&&li& &a href=&khAdd_fenye?pageNow=1& target=&mainFrame&& 客户信息管理&/a& &/li&图 7-6 新增员工、部门信息查询32 齐齐哈尔大学毕业设计(论文)在 对 系 统 信 息 的 分 页 查 询 中 , 利 用 Hibernate 的 setFirstResult ( ) 和 setMaxResults() 实现分段查询。 2.客户信息管理(如图 7-7) : 客户信息管理主要是对公司客户的基本信息进行录入和查询等操作, 为了以后方便 的快捷的来处理客户关系信息具有辅助性作用。图 7-7 客户信息管理首页图 7-7 是客户信息管理功能页面,主要是记录客户的基本信息,包括客户的公司、 公司的 所在地、联系人姓名、联系电话、Email 和订单号。当点击客户信息管理菜单选项时, 首先出现的是分页查询客户信息,其中可以查看到不同客户对应不同的订单号,通过订 单号以便查询到订单的详细信息,本功能是对客户信息表进行基本操作,订单号对客户 编号是多对一的关系。通过后面的功能模块可以详细的了解到这种关系的存在。在对客 户信息进行新增(如图 7-8)新增客户信息时,客户编号由系统自动生成,生成方式是 由数据库的序列来完成。点击复选框,多条选择,可以进行批量的删除。在通过客户编 号来查询单条客户信息时,可以对此条信息进行删除操作。跳入方法体内的链接如下: &td class=&STYLE1&& &div align=&center&&&img src=&page/renshi/images/22.gif&width=&14&height=&14&/& &/div&&/td&&td class=&STYLE1&&&div align=&center&&&a href=&page/renshi/ygaddKhmessage.jsp&&新增&/a& &/div& &/td&33 齐齐哈尔大学毕业设计(论文)图 7-8 新增客户信息点击确定按钮后调回分页查询页面。另一方面是对客户编号查询客户的信息。输入客户 编号可以查询单条的客户信息如图(7-9) 。图 7-9 按客户编号查询通过对客户信息的单条查询,可以方便的快捷的查询到所要了解的客户内容。并通过查 询后的结果进行编辑客户信息(如图 7-10) 。图 7-10 编辑客户信息此时通过查询到的单条的客户信息编号会传到编辑客户信息页面。其中客户编号是 readonly 属性的,客户编号一旦生成,即不可已修改,只能删除,这样确保了客户编号 的正确和可靠。34 齐齐哈尔大学毕业设计(论文)7.3.4 货物信息管理实现货物信息管理主要是对客户的货物进行入库、出库、在库货物处理以及对订单的生 成编辑等操作。 1.客户订单管理(如图 7-11) : 该功能主要是对客户订单进行系统化的管理。货物信息管理后弹出子菜单,再点击 客户订单管理此时出现客户订单表的分页查询信息。此模块主要是对客户信息表、订单 详细信息表、 联系人信息表的操作。 其中客户信息显示了客户的编号, 订单号运输方式, 发货目的地信息以及一些时间的记录。其中是否已发货标识了客户货物的返货状态,以 便实时跟踪货物的流动状态。图 7-11 客户订单管理新增客户订单(如图 7-12)时,同时对客户的详细订单(如图 7-14)和联系人信息进行 新增 (如图 7-13) 在点击添加客户订单时订单编号分别传入新增详细订单页面和联系 。 人页面,这样使订单编号一致。 此 处 页 面 使 用 了 EL 表 达 式 , 从 Struts2 的 配 置 文 件 找 到 对 应 的 方 法 , ActionContext.getContext().getSession().put(“list”, ”list”);通过此方法将 对象传入页面。使要显示的内容显示在页面上。35 齐齐哈尔大学毕业设计(论文)图 7-12 新增客户订单新增客户订单时同时生成订单编号和客户编号,标识发货的目的等信息。新增客户信息 后进行新增收货人信息,也就是对联系人信息的新增。此时订单号已经传入此页面,当 点击确定时完成收货人信息的新增跳入新增详细订单页面。图 7-13 新增联系人信息详细订单是记录详细订单的内容,包括此次订单中要运输的货物类型和名称数量等信 息。它是对客户订单的详细描述,记录了订单的详细内容。36 齐齐哈尔大学毕业设计(论文)图 7-14 详细订单信息新增在确定提交新增详细订单信息时,调回分页查询客户信息页面。在编辑客户信息时,同 样不可以编辑订单编号。订单编号仍然是只读类型。此功能模块中不包含对详细订单和 联系人信息的编辑修改,此功能在其他模块操作。 但是在删除客户订单的信息时,同 时删除跟客户订单编号相同的详细订单和联系人信息。 此功能中要到了 Oracle 数据库 的触发器。 另一方面, 在按照客户订单进行单条信息查询时, 查询出单条客户信息时候, 也可点击查看跟此信息有关的订单明细信息和联系人信息(如图 7-15)图 7-15 查询单条客户信息2.货物入库管理37 齐齐哈尔大学毕业设计(论文)入库管理主要是对入库信息表的增删改查,它记录了货物入库的详细信息。再点击 货物入库按钮时,此时会进入分页查询入库货物的详细信息。此页面包含了按入库编号 进行单条入库信息的查询,每条信息都可以点击“查看客户信息”都可以产看到此条入 库信息的客户信息详情。如图 7-16 所示:图 7-16 货物入库图 7-17 新增产品入库信息图 7-17 是产品入库信息的新增,它主要是对入库产品的新增操作。 3.货物出库 货物出库管理是对在库货物的出库操作,其中它标识了货物出库的情况,对货物的 状态进行跟踪处理(如图 7-18)38 齐齐哈尔大学毕业设计(论文)图 7-18 货物出库货物出库管理页面主要显示了对货物出库的分页查询,主要向用户显示了出库编号、订 单号、产品名称、产品编号、产品应出库数量、实际出库数量、单位、出库时间、出库 完成状况、是否到达目的地等信息。 其中应出库数量和实际出库数量标识了出库完成 状态,当两个数目一致时,应当及时对货物信息进行出库完成处理,此时出库是否已经 完成这项,要通过修改按钮来进行修改,完成出库。当货物出库时,一直到货物到达目 的地这段时间内,都属于未到达目的地,用“是否到达”这项来标识货物状态。在对货 物出库信息进行新增和修改时。保持订单编号不变。如图 7-19 和 7-20 所示,分别为出 库信息新增以及出库信息编辑操作。图 7-19 新增出库信息新增出库信息的出库编号由序列自增完成。39 齐齐哈尔大学毕业设计(论文)图 7-20 编辑出库信息当点击“编辑”时,此时通过前台的&a &&/a&中的 href 属性来传要编辑的整个信息, 传入到此页面。以便用户来方便修改出库信息。默认的出库完成和是否在途都为 N,对 出库信息不论修改还是删除操作完成后,一旦成功都返回分页查询出库信息页面。 4.库存盘点 库存盘点主要是查询在库货物的信息。按产品类别、产品名、产品数量称等信息对 货物进行分类查询(如图 7-21) 。图 7-21 库存盘点库存盘点操作中, 对在库货物进行分页查询, 而且跟其它分页查询一样, 都可跳页查询。7.3.5 车辆信息管理实现车辆信息管理主要是实现货物的运输管理、汽运管理、空运管理、铁运管理以及车 辆信息管理操作(如图 7-22) 。40 齐齐哈尔大学毕业设计(论文)图 7-22 车辆信息管理1.货物运输管理 货物运输管理主要功能是对货物运输方式的管理,当订单生成后,要对订单的客户 要求对其货物采取运输方式的管理,以便满足客户的需求。如图 7-23 所示,其中显示 的订单号、运输方式、运输编号、备注等信息是在客户订单中查询到的信息,对其订单 号一致的订单分配不同的运输方式,每种运输方式的生成,都是对其他表的新增。但是 每条信息的新增,都要和此时分页查询到的订单编号和运输方式匹配。如图所示如图 7-24,分配汽运管理信息,对汽运信息表进行新增。如图所示如图 7-25,分配铁运管理 信息,对铁运信息表进行新增。如图所示如图 7-26,分配空运管理信息,对空运信息表 进行新增。图 7-23 货物信息查询41 齐齐哈尔大学毕业设计(论文)图 7-24 汽运分配图 7-25 铁运分配42 齐齐哈尔大学毕业设计(论文)图 7-26 空运分配在添加运输方式时, 每条信息的订单号都是由页面的订单部分信息分页查询得到的订单 号一致,运输编号都是由不同运输方式的序列由数据库自动生成。此模块只是对其运输 方式的分配(新增运输方式信息)不包含对运输方式表信息的修改。 2.汽运管理 汽运管理是对所有汽运方式的订单进行查询(对所有汽运表信息分页查询)如图7-27:图 7-27 空运管理空运信息管理不仅仅是对以汽运运输方式为主的所有信息查询, 还有对已经分配了汽运43 齐齐哈尔大学毕业设计(论文)方式的订单进行修改运输方式。也就是在汽运表中删除已存在的订单信息,根据主键汽 运标号删除,在货物运输管理中新增其他运输费方式即可完成对其修改分配方式的操 作。在汽运信息管理中,对单条信息修改的是车牌号,中转城市,出发时间以及到达时 间,司机和配总员等信息。实际上此系统对汽运管理上,都使用的是本公司自带的汽车 或者货车来进行分配。因此后面多了一个车辆管理信息的功能模块。 3.铁运管理 铁运管理是对所有铁运方式的订单进行查询 (对所有铁运表信息分页查询) 如图 7-28 所示:图 7-28 铁运管理铁运管理和汽运管理的主要功能是一致的,但是在存储字段上有区别。它记录的铁运的 车次,以便收货人方便的取货。 4.空运管理 空运管理主要是对空运方式运输的货物进行处理。如图 7-29 空运管理:图 7-29 空运管理44 齐齐哈尔大学毕业设计(论文)空运管理是对已分配运输方式的订单的运输方式的详细描述和查询。 它反映了空运方式 的基本信息。 5.车辆信息管理 车辆信息管理主要是对公司内部车辆的信息进行管理以及对司机和车辆的分配管 理如图 7-30。图 7-30 车辆信息管理车辆信息管理主要是对车辆信息表的处理, 其中它存储了车牌号、 汽车的载重量、 车长、 车高、车宽、以及司机和司机的工作证件号,其中还包含状态, “状态”字段主要是为 了表示此司机和此车牌号的汽车已经被使用。 这样能详细的看到车辆的状态和司机是否 在途中运输货物,通过车辆信息管理,这些信息可一目了然。当公司已经购买新车时, 也可对此信息进行新增(如图 7-31) 。图 7-31 添加车辆信息45 齐齐哈尔大学毕业设计(论文)7.3.6 订单信息查询订单信息查询主要是对订单详细表的分页查询, 前几个模块只是对其按订单编号单 条查,其中有订单查询,在途订单查询,已处理订单查询(如图 7-32) 。如图 7-32 订单查询1.订单查询 订单查询主要是对所有订单进行分页查询, 以便系统用户进行多条查询时方便比对 信息如图(7-33) 。图 7-33 订单查询此页面的功能只是显示订单详细的信息内容。46 齐齐哈尔大学毕业设计(论文)2.在途订单查询 该功能模块是对订单未处理完的并且订单上的货物处于运输状态的货物订单进行 查询。这样可以实时跟踪货物的状态。以方便对货物的管理如图 7-34。图 7-34 在途订单查询3.已处理订单查询 该功能是对收获人已经收到货物,订单已经完成,也就是说此时与客户都已经完 成货物的运输处理等信息时的订单状态。查询已经处理完毕的订单信息如图 7-35。图 7-35 订单信息47 齐齐哈尔大学毕业设计(论文)7.3.7 费用统计该功能模块是对费用进行统计。主要是对运输过程中和存储过程中的费用统计,其 中总利润是运输费、存储费、搬运费之和的 50%计算的结果,费用统计页面如图 7-36 所示。图 7-36 订单费用统计当便于费和其他费用发生变化时,可点击“编辑”按钮来更改部分费用信息。总给用和 利润仍然是系统自动计算的结果。48 齐齐哈尔大学毕业设计(论文)结 论在前面几章中,我们对运通物流管理系统的建设过程从需求分析、设计、实现等阶 段分别做了介绍。也对基于 Java 的运通物流管理系统的基本功能的实现以及实现此系 统所应用到的技术进行了描述, 此系统主要应用到了 Hibernate 和 Struts2 框架以及 MVC 结构、工厂模式等技术。 通过对此系统的人事管理、货物信息管理、车辆信息管理、订单查询等功能的实现 过程的介绍,我们深深的体会到了软件开发过程中需求分析,数据库库设计以及详细设 计过程中的工作流程。在项目的开发过程中采用规范的软件工程的开发流程,因此在需 求分析及数据库设计部分做了大量的工作, 这些对本系统后期的编码过程起到了指导作 用,在本文中也有所体现。 在设计和实现该系统的过程中,由于系统的功能有限,因此并不能真正的投产于一 个企业内部使用,一个项目由开始进行功能需求到最终的实现都需要很长的时间,并且 项目的开发过程并不是一人能够完成的,因此此系统只是模拟了现代物流的基本内容。 但是,通过此次毕业设计是我受益匪浅,通过对运通物流管理系统的需求分析,不仅了 解的小型企业物流的计本流程, 而且更重要的是真正的体会到了软件开发流程中需求分 析的重要性。 本系统也将会在今后的应用中逐步完善,做到尽善尽美。49 齐齐哈尔大学毕业设计(论文)参考文献[1] 林上杰,林康司.JSP2.0 技术手册. 北京:电子工业出版社,2005.04. [2] 孙卫琴.精通 Hibernate. 北京:电子工业出版社,2006.09. [3] 林信良.Spring 技术手册. 北京:电子工业出版社,2006.06. [4] 林信良.Java JDK6 学习笔记. 北京:清华大学出版社,2007.04:P2-9. [5] [6] LI Y D,GU PH . Inspection of free-form shaped parts[J]. Robotics and Computer-Integrated Manufacturing,-430. 史济民,顾春华,李昌武等.软件工程——原理、方法与应用.第二版. 北京:高等 教育出版社,2002.12. [7] 周政宏.Java 程序设计方法与实例[J].科学出版社,-90. [8] 武晓军.JavaScript/VBScript 网页编程实例解析[J]. 清华大学出版社,2001-1, 48-50. [9] 方小明.基于 Struts 的 Java Web 应用开发(一)[P].软件报, . [10] John Carnell.Bjarki Holm.Oracle8i 应用高级编程[J].清华大学 2001-1. [11] 网冠科技.JavaScript 时尚编程百例[M].北京:机械工业出版社,2007-1. [12] 孙卫琴.精通 Struts:基于 MVC 的 Java Web 设计与开发[J]. 北京:电子工业出 版社,2004.08. [13] (美)Marty Hall,Larry Brown.Servlet 与 JSP 核心编程[M].第二版.赵学良译. 北京:清华大学出版社,2004.06. [14] Bruce Eckel. Third Edition. January,,10:233-410 . [16] Holger Cartner, Andreas Bergmann, Jochen Schmidt. Object-Oriented modeling of data sources as a tool for the intergration of heterogeneous geoscientific information. Computers& Geosciences [J] 27(5. [15] Elliote Rusty Harold David Flanagan,Java Network Programming. O'Reilly[J]50 齐齐哈尔大学毕业设计(论文)51

我要回帖

更多关于 有物流之殇这本书么 的文章

 

随机推荐