快递信息管理系统的设计和实现毕业论文.docx
《快递信息管理系统的设计和实现毕业论文.docx》由会员分享,可在线阅读,更多相关《快递信息管理系统的设计和实现毕业论文.docx(54页珍藏版)》请在冰豆网上搜索。
快递信息管理系统的设计和实现毕业论文
快递信息管理系统的设计和实现毕业论文
1绪论
随着时代的发展。
互联网改变了我们的生活。
而在其中,电商作为一个重要的互联网行业对于人们日常生活的重要性不言而喻。
现在不少的创业公司都会选择电商这一行业作为首选。
而电商的一个重要的助力就是快递行业。
目前快递行业非常火爆。
每年的双十一时期,一天将产生上亿件快递。
这个数字无疑是非常惊人的。
因此在那段时间时间,效率高才可以得到更高的收入。
而在平时的生活中,快递公司的管理也是一个很大的难题。
而本次的快递信息管理系统就可以帮助广大的快递公司更好地管理公司的快件的流程、网点信息等。
帮助快递公司提高办公的效率,这样才可以获得更高的收入。
1.1快递信息管理系统的现状研究
无论从那个方面来讲。
快递信息管理系统的现状比起快递行业还是不足。
很多大物流公司的主页还是停留在那种简单的查询页面阶段。
查询之后的快件信息的显示的页面的排版不是很美观。
有的时候查出来的数据每行都是斜的。
这对于用户来说简直是个灾难。
由于互联网的快速发展,现在用户的口味还是比较挑剔的,如果一个页面的功能和外表都不好。
这对于用户的印象分会给的很低。
而在快递公司部管理系统的模块中。
讲究的就是物流的管理和运转技术了。
得益于当今社会硬件技术的发展。
各种终端设备开始出现。
现在的快递管理并不是通过人手工录入的方式。
而是通过一小小的快递单就可以读出用户的信息。
采用各种带有扫描功能的机器可以自动更改快件的状态而不是通过手工输入。
这样对于快件管理的规度有了极大的提升。
并且就效率来说提升得还是很大的。
不过,有的时候系统对于网点之间的选择存在比较大问题。
这个要归功于算法类的研究方面快件公司的研究还不是很有效。
有时候明明可以有更好的路线但是系统偏偏会选择那个路径和时间都不是最好的。
更有甚者有时候快件会在路上耽搁很长时间。
比如本来两三天的时间可以到但是在路上花了半个月才到用户的手中。
这对于用户来说简直是灾难。
所以还有很多地方还是有待加强的。
1.2快递信息管理系统的研究意义
快递信息管理系统是一个办公自动化的很好的例子。
以前没有这种类型的软件的时候。
人们只能靠人工来进行数据的记录。
而再往后的时候,人们有软件使用时使用的却是那种与硬件结合得不是很好的系统。
还是依靠人在电脑前操作。
而现在处于一个很好的年代,软件和硬件设备都比较齐全。
我们可以利用软件来实现很多功能。
硬件终端技术的发展也给人们带来了福音。
我们只要用终端扫描特定的东西就可以得到相关的信息。
而且现代面向对象的编程以及大量框架的出现已经可以将很多的业务逻辑用代码来抽象。
利用代码来模拟快件管理的所有步骤已经成为了理想的方法。
另一方面,现在社会快递行业还是比较红火的。
而伴随着电子商务这个行业在中国的持续发展。
快递行业也会有一个很好的发展前景。
而从亚马逊实验无人机送货这一事件可以看出快递行业真的是一个很讲究效率的行业。
如果你慢,那么你将失去大量的用户。
所以,提高效率将会成为最近时间快递公司的大问题。
而通过研究本课题可以更加深入地了解到快递行业的流程以及容易出现问题的地方。
从而可以想办法帮助他们提高效率。
开发出一套有实际使用价值的软件,帮助快递企业占得先机。
1.3快递信息管理系统的主要容及结构
本次开发的快递信息管理系统主要的功能有员工管理、个人信息管理、网点管理、快件管理、快件查询几个人大模块。
围绕这几个个模块之间进行操作。
同时还有统计公司总信息的功能。
主要功能就是网点、员工的增删该查以及围绕快件状态进行的操作。
员工还可以修改自己的个人信息、用户名以及密码等操作。
还有前台和后台快件的查询。
开发的数据库采用的是MySql5.6。
开发语言采用的是JAVA。
开发架构为MVC架构,框架采用的是Struts2+Spring2.5+Hibernate3.前台数据展示采用的是JSP技术。
服务器用的是Tomcat6。
另外系统还进行了一定权限管理。
不同等级的用户拥有的权限不同。
对应于系统中就是看到的界面不同。
因为不同权限的人看到的数据以及操作界面还是有一定的区别的。
而只有登陆的用户才可以进入到管理主页面中,否则会转到登录的页面。
2.快递信息管理系统主要技术概述
2.1开发工具
本次软件开发用的是JavaEE技术。
开发工具用的是Eclipse4.3。
eclipse是一个开源的可扩展的开发平台,其本身是用Java语言开发的。
不过本身只是作为一个框架和一组服务存在的。
开发人员可以通过添加插件的功能来让这个开源的IDE的功能更加强大。
由于它在使用时可以添加大量的插件,所以有了更强大的功能。
它最初是由IBM公司开发的用于替代VisualAgeforJava而开发的而作为下一代的IDE的开发环境。
2001年,IBM公司宣布将其贡献给开源组织。
现在由Eclipse基金会(EclipseFoundation)管理。
软件刚开始开发的时候只是用作Java的开发工具。
现在已经扩展到了其他的语言例如C++、Python等。
并且已经吸引到越来越多的公司和人参与到其中一起进行开发。
作为一个WEB系统,服务器是必不可少的。
本次软件开发采用的服务器是Tomcat.是Apache软件基金会的一个开源软件。
由Apache、Sun等其他一些公司共同开发而成。
因为其技术先进、性能稳定,并且作为开源软件,免费这一好处是天生的。
因此受到了很多软件开发商和开发人员的喜爱。
成为了一个比较流行的Java服务器。
作为一个开放源代码的服务器。
它属于那种轻量级服务器。
如果系统的规模不是特别大,并且并发量不多的话。
这个服务器无疑是一个很好的选择。
是开发和调试Jsp程序的首选服务器。
2.2数据库
2.2.1系统数据库介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
它在六十多年前产生。
在信息飞速发展的90年代,数据库的发展也非常迅速。
从简单的存储表格的小型数据库到进行海量存储的大型数据库在现在的应用是非常广泛的。
在整个互联网时代,数据无疑是一笔宝贵的财富。
因此可以预见到数据库的发展在进来还会持续很长一段时间。
本次开发采用的是MySql数据库。
它是一个应用非常广泛的中小型数据库。
可以收说是比较适合小型系统的开发使用。
不久之前传出国著名的互联网公司阿里巴巴在公司部开启的去IOE的活动。
其中数据库的替代者就是这个MySql数据库。
由此看来他的性能还是毋庸置疑的。
而作为一个性能很出色的关系型数据库。
其特点是关联的数据是保存在不同的表中而不是将他们放在同一个仓库中,这样就提高了速度和灵活性。
而且MySql所使用的Sql语句是标准的访问数据库的标准化语言。
同时由于其体积小、速度比较、成本较低。
尤其是他是一个开源的软件。
也就是说使用者可以不用支付任何费用便可以使用它。
同时还能看到他的源代码,所以安全性大大提升。
2.2.2Hibernate访问数据库
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate框架的作用主要在于处理程序对于数据库的访问的请求。
Hibernate作为一个开源的轻量级的JavaEE框架。
在JDBC的基础上进行了一定程度的封装。
让开发人员可以使用面向对象编程的思维来进行数据库的操作,这一点让很多程序员非常喜爱。
并且该框架的性能也有一定的保证。
只要不是用于非常大量的数据的处理都可以应付。
由于封装了JDBC操作,所以大大简化了开发人员的工作。
开发人员不需要再去打开关闭数据库连接,不用将得到的数据进行类型处理。
这些Hiberante都会帮我们实现。
我们只要按照API操作输入便可以得到想要的结果。
并且它在B/S、C/S系统中都可以使用。
2.3JSP简介
JSP全名叫做JavaServerPages.其实际上是一个简化的Servlet。
在运行的时候服务器也是将它转换成一个servlet的。
它是由Sun公司倡导并且建立的一种动态页面的技术标准。
与此类似的标准是微软的Asp技术。
并且用它开发的应用是跨平台的,既可以在Linux下运行,也可以在其他类型的操作系统下运行。
由于它是在Html的基础上增加了一些东西。
所以客户端只要有浏览器就可以进行浏览。
与Servlet一样,JSP也是由服务器来运行的。
在服务器端执行结束之后,通常会给用户返回一个Html的页面。
Servlet技术是Jsp技术的基础。
并且在应用系统中,Servlet负责后台的逻辑操作,而JSP负责的是前台数据的展示。
所以开发中一般两个共同使用来完成指定操作。
并且他有Java的平台无关性的有点,因此安全可靠,可移植性比较好。
很适合用来进行WEB应用的开发。
Jsp置对象
1.request对象
这个对象封装了用户在前台页面提交的信息,调用该对象可以获得封装的数据及信息。
2.response对象
对客户端的请求做出响应的对象,主要用于向客户端对发送请求信息处理的结果以及数据。
3.session对象
session对象是一个很特殊的JSP置对象,它在第一个JSP页面被访问时自动创建,在特定的时间段存在,不过如果长时间没有用,服务器会将这个对象自动销毁。
当客户打开浏览器访问页面连接到服务器开始,到客户关闭浏览器,被称为一个会话。
当用户访问一个服务器时,可能会在几个页面之间反复连接。
还可能反复访问同一个页面,服务器应当有办法知道访问这是同一个客户,并且知道访问用户的信息,这就是session对象的作用。
4.application对象
服务器启动后就产生了这个application对象,通俗的说这就是当前访问的整个WEB应用程序。
无论什么时候访问页面,只要服务器没有关闭或重启,这个对象都是启动服务器时创建的那个。
但与session不同的,所有用户访问的application对象都是同一个。
所以该对象只能放公共的数据。
5.out对象
这是一个输出流对象,用来向客户端输出数据的。
out对象用于在页面中各种数据的输出工作。
6.pagejava.lang.Object
JSP网页本身,page对象是指当前页面转换后的Servlet类的实例。
7.Config
该实例代表该JSP页面的配置信息。
8.Exception
该对象表示页面中的异常和错误。
9.pageContext
该对象表示该JSP页面的上下文,使用它可以访问当前页面中共享的数据。
2.4Struts2+Hibernate+Spring简介
Struts2作为Struts的下一代产品,在struts1和WebWork的基础上进行了合并。
但是Struts2的结构与Struts1差别巨大。
可以说这两个框架从结构上来说完全是两个产品。
Struts2以WebWork为核心,利用拦截器来处理请求,这样的设计可以让业务逻辑控制器可以和ServletAPI完全脱离开。
而作为对比struts1的处理请求的方式则是和ServletAPI紧密结合在一起。
所以Struts2倒是可以理解为WebWork的下一代产品。
这是因为虽然从Struts1到Struts2变化非常大,但是相对于WebWork来说,Struts2的变化很小。
不过三个框架都是非常优秀的MVC框架。
而现在来说用struts1的已经不多,现在Struts2的应用还是很广泛的。
主要是由于他有以下的有点:
1struts2属于无侵入式设计,不依赖ServletAPI。
2提供了拦截器,而我们利用拦截器可以进行AOP即面向切面编程,实现例如权限拦截等功能。
3提供类型转换器,可以把用户传过来的数据根据我们的需要转换成其他的类型。
4支持多种表现层技术,例如:
Jsp、treeMaker等。
5输入检校可以对指定方法进行检校。
6提供了全局围、包围以及国际化资源文件管理的功能。
Hibernate是一个开源的的OR-Mapping框架,对JDBC进行了一定的对象封装,使得开发人员可以的使用面向对象编程思维来操作数据库。
Hibernate可以应用在任何可以使用JDBC的地方,既可以在c/s程序中使用,也可以在Web应用中使用。
Spring是一个非常著名的开源框架。
它是基于Core来构建多层JavaEE系统的,简化企业开发是它产生的主要目的.它用一种非侵入式的方式来管理开发人员的代码,Spring提倡“最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring。
这个框架的主要特点就是他的分层架构,这个特性允许开发人员可以自己选择使用哪些组件来进行开发。
Spring使用的是最基本的JavaBean来完成那些以前只可能由EJB框架完成的事。
然而,Spring的用途却不仅仅局限于在服务器端的开发。
从简单性、可测试性和松耦合的角度来看,任何类型的Java程序都可以从采用spring框架开发中获益。
那是因为其核心是控制反转(IoC)和面向切面(AOP)编程。
3.快递信息管理系统的可行性分析及需求分析
3.1系统可行性分析
本节从技术的可行性,经济的可行性以及操作的可行性三个方面来说明本管理系统的可行性。
3.1.1技术可行性
就硬件方面来说,现在计算机的存增加了很多,运算速度成倍提升,另外现在cpu的多核心技术运用的非常成熟。
工艺也比以前要进步许多。
存的提升不仅体现在存量的增加。
存的运算速度也是非常迅速的。
硬盘的容量在现在来说已经算是在一个比较合理的围。
另外在大型的存储应用中,可以多块硬盘一起工作。
所以足够支撑一个的运营.
从软件开发的角度来说,Java语言现在发展的很好。
从服务器,个人电脑,手机都可以看到他的大量应用。
可以说Java语言是现在最火的编程语言之一。
Java作为一种可以编写跨平台应用软件的面向对象的编程语言。
在移动端以及Web应用领域可以说是最成功的语言。
JavaEE作为java用来编写WEB应用程序的分支。
在线代社会中应用非常广泛。
大型的系统例如银行电信的系统都采用Java语言编写。
不仅是由与其高超的性能,还有他的安全性是其他很多语言比不上的。
从数据库的角度来说,MySql数据库现在的应用非常多。
很多中小型系统都采用它作为主数据库。
由于它是开源的,并且性能也是比较好的更加兼具体积小的优点,成为很多开发人员喜欢才用的数据库。
作为一个关系型数据库的典型代表,该数据库的特点是将数据依据类型用不同的表去存储。
在WEB应用方面Mysql可以说是最好的数据库之一。
对于一般的应用开发来说,他的性能可以说是绰绰有余。
在这个系统的开发中,我们要用一个数据库来存放相关信息,比如员工、快件等信息。
通过上文的分析,这一点MySql数据库绝对可以胜任。
另外还要制作分别针对公司员工和用户的网页。
即后台页面与前台页面。
就可以可实现相关功能。
对于后台,我们可以用Java和MYSQL来实现。
至于网页可以用jsp来实现各种功能以及进行前台的数据展示。
还可以用Javascript来辅助实现特定的功能。
从上文的分析可以得出结论Java语言对于后台管理以及前台页面的实现绝对可以完成。
所以在技术上该系统是可行的。
3.1.2经济可行性
从经济角度看,快递信息管理系统对系统的投资不是很大,只需要很少的投入便可以得到一个可以极大地提升办公效率的软件。
另外系统应用后节约的人力物力绝对要比该系统开发时投入的费用要多。
在以前没有类似系统的时候,若采用的是人自己去管理。
造成的结果是效率低下,并且不方便管理,而用人去干活有时还比较容易出现错误。
有了这个管理系统之后情况会大为改观。
软件的效率绝对比人要高同时不容易出现错误,并且所有的操作在电脑上都有据可查。
从本系统开发带来的效益的角度出发,系统开发成功会减低人员费用的支出,办公用品的支出,同时,规了管理的流程。
让每个人各司其职。
从开发的角度上讲,这个系统的功能并不复杂,并且用到的技术也是比较成熟的技术。
Java做管理系统是一个很常见的应用领域。
现在管理系统领域里Java和.net绝对是首选。
而java写的系统一般并发性和安全性方面比后者还是强很多。
在开发中我们只需要尽快理清快件管理的流程和各种业务逻辑,而后可以在很短的时间利用代码模拟功能从而完成整个系统的编写。
而快递信息管理系统的模块并不多,所以编写系统用到的花费很少。
从维护角度讲,本系统只需要将后台应用挂到服务器上即可正常工作。
修改和维护都在后台进行,维护并不需要太大的花费。
本系统对于维护的成本要求不高。
因此在经济上是可行的。
3.1.3操作可行性
本系统大概需要1个月的时间完成。
第一个星期主要是以看书以及收集有关快递行业方面的资料为主。
在这个时间段我们必须理清大概的业务逻辑和流程。
并且对比较复杂的流程和逻辑予以记录。
同时要明确系统的模块以及每个模块的功能。
接下来就是对系统的分析,设计出系统的详细的结构和模块。
画出软件的顶层和第二层的流程图。
并且设计出实体类,然后对数据库进行设计。
确定要用到的技术和框架。
做好准备工作之后。
便是编码的开始了,首先搭建开发环境,编写实体类以及数据库的操作,而后是逻辑处理操作。
最后测试下jsp前台的显示的效果。
最后是设计前台界面。
所以该系统的开发对于熟悉Javaee编程的作者来说是可行的。
3.2系统功能分析
3.2.1用户模块部分的主要功能
本次开发的快递信息管理系统侧重后台操作。
在前台可以进行的操作比较有限,主要有以下操作:
1.快件查询
作为一个快递公司,最基本的功能肯定就是用户对于自己快件的查询了。
因为每个人都想随时掌握自己东西动态。
在查询结果中如果存在就显示相关信息,没有要进行友好提示。
显示快件信息时要显示快件的历史流转记录包括快件到达每个网点的时间、状态以及下一个网点的信息。
2.公司主页的显示
为了能更方便地推广自己的公司,很多公司都会在网上挂上自己公司的主页。
这样一
来可以让用户更加了解自己的公司。
二来可以给自己公司做个广告。
还可以展示公司的动态及信息。
3.2.2管理员模块部分的主要功能
1.员工管理
作为一个管理系统,对于自己公司员工的管理是必不可少的。
通过该系统可以添加、删除、修改以及查询员工的信息。
并且该系统对于员工还是有一定分级的,不同等级的员工拥有的权限不同。
最底层员工等级最低,可以进行的操作数最少。
等级越高,可以进行的操作自然越多。
而权限的等级体现在看到的界面不一样。
高等级用户看到的界面有更多的超和按钮。
2.用户名、密码管理以及个人信息管理
每个员工在系统里都有唯一的用户名,作为用户登录时所用,并且用户名在用户被添加之后只能被用户修改一次。
另外用户也可以在系统里对自己的登陆密码进行修改操作。
员工登陆系统之后可以修改自己的相关信息。
3.网点管理
网点作为快递公司运输中转站,他们的地位是非常重要的。
在系统中我们可以方便地添加、删除、修改以及查询网点的信息。
如同员工操作那样。
不同类型的网点操作也是需要一定的权限的。
不同等级用户可以对网点进行的操作不同。
另外,显示每个每个网点还可以查看快件总数、问题件总数、退单总数等信息。
不过也需要一定的用户等级才可以查看这些高级一点的信息。
4公司信息单显示
这个是用来显示公司总的信息单。
包括快件总数、问题件总数、退单总数、今年总收入和今年已处理快件数量等信息。
这个信息只有公司的高层员工登陆之后才可以看到。
5快件管理
这个是该系统的核心也是难点所在。
主要功能有快件的添加、修改状态、查询。
其中查询可以通过多种关键字查询,包括根据单号查询,根据目的地查询,寄件地址、根据发件人查询,根据收件人查询。
同时查询还是有围的,分别为查询当前网点和查询所有网点。
而快件状态的改变则是整个系统的关键所在。
快件状态包括待审核、待发出、已发出、正派送、已签收、退单、问题件七个状态。
在快件的物流过程中始终围绕这几个状态不停地改变。
直到最后变为已签收状态。
而在快件查询中我们要在页面中显示浏览每个快件的历史记录的超。
在这个页面中我们可以浏览每个快件的物流历史记录。
3.3数据流图
3.3.1顶层数据流图
顶层的数据的数据流图如图3.1所示。
后台员工操作改变快件的状态。
根据实际情况操作来改变快件的状态。
而在前台用户通过前台查询页面查询自己快件的状态。
图3.1顶层数据流图
3.3.2一层数据流图
一层数据流图如图3.2所示,不过将系统划分为员工管理、网点管理、快件管理、个人信息管理以及前台的快件查询等五大模块。
也将每个模块用到的数据库写明了。
图3.2一层数据流图
3.3.3二层数据流图
将顶层数据流图展开后得到了员工管理、网点管理、快件管理、个人信息管理以及前台的快件查询等五大模块。
将一层数据流图展开之后得到每个模块的详细的数据流图。
(1)员工管理模块包括对员工增删改查以及重置密码等功能,不过要有一定权限才可以进行每个操作。
如图3.3
图3.3员工管理模块
(2)网点管理模块包括对网点增删改查等功能,同样也要有一定权限才可以进行每个操作。
如图3.4
图3.4网点管理模块
(3)快件管理模块包括对快件的增加、改变状态、查询、问题件管理以及退单管理等五个功能模块,同样也要有一定权限才可以进行每个操作。
并且快件的状态分为审核、待发出、已发出、正派件、已签收、退单和问题件。
快件的最终状态一定是已签收。
问题件处理完毕之后状态也要改为已签收。
退单则是将收件与发件信息互换,并且开始新的一轮物流。
如图3.5
图3.5快件管理模块
(4)个人信息管理模块包括用户信息修改、密码修改、用户名修改三个功能。
如图3.6。
图3.6个人信息管理模块
(5)用户查询模块只包括用户查询快件的功能。
如图3.7
图3.7前台用户查询模块
4.快递信息管理系统的总体设计
主要功能,如图4.1所示:
图4.1系统架构图
从上图可以明显看出本系统的结构。
快递信息管理系统的功能侧重于快件管理这块,所以这块的业务逻辑比较复杂。
模块也比较多。
4.1用户模块介绍
图4.2用户功能模块图
从上图可以看出,用户模块的规模比较小,只有一个前台供用户查询的功能。
这也是本系统提供给用户查询快递信息的界面。
4.2管理模块介
图4.3管理功能模块图
从图4.3看出后台管理三大模块包括:
(1)员工管理:
其包括员工的添加、删除、修改以及查询员工的信息。
员工添加员工时,只能添加员工等级比自己低的员工。
所以只有员工等级在1级即最低级以上的员工才可以进行员工的添加操作。
修改员工时也是同一个道理,一个员工只能修改比自己等级低的员工的信息。
1级以上才可以进行员工修改操作。
删除也是只能删除比自己等级低的员工。
查询用户的功能是所有员工都可以进行的。
另外员工还可以修改自己的用户名以及密码等特殊信息。
用户被新增之后默认的用户名是自己的。
用户可以进行一次用户名的修改。
用户名一经修改就不能再次修改了。
并且用户名要做到唯一性。
修改密码则要先输入原密码验证再输入两次新密码才可以成功修改。
(2)网点管理:
其中包括网点的添加、删除、修改以及查询网点的信息。
另外还有显示网点的快件总数、问题件总数、退单总数以及总收入等相关类型的统计类信息。
(3)快件管理:
这是整个系统的核心。
包括揽件、快件列表、快件物流、问题件管理、退单管理以及快件后台查询等。
其中快件查询是一个比较重要的小