快递管理系统应用管理模块
实 训 报 告
课程名称: 编程强化(快递管理系统)
专业: 软件技术 班级:
学号: 姓名:
指导教师: 成绩:
完成日期: 2011-1-13
任 务 书
实训题目:基于三层架构的快递管理系统的设计与实现
------应用管理功能模块
实训目的:ATA 企业化实训与ATA IT新专业紧密结合,学生实训时,可以把
课堂知识点串连起来,起到融会贯通,学以致用的作用。与传统专业相比,学生在学习基础知识和必要的技能准备后,通过ATA 企业化实训快递管理系统的锻炼,可以进一步提高职业技能和综合素质,积累真实企业环境下的团队合作能力,实现从学生到复合实用型人才的本质转变。
实训要求:应用管理模块的功能满足如下要求,并注意代码编写规范:
1. 根据要求编写存储过程 2. 实体层的编写 3. 数据访问层的编写 4. 业务层的编写 5. 用户层的编写
摘 要
本文是一个针对小型快递公司所开发的小型信息管理系统,全称快递管理系统。快递是跨地区、跨行业的运作系统,标准化程度的高低不仅关系到各种快递功能,要素之间能否有效衔接和协调发展,也在很大程度上影响着全社会快递效率的提高。
本应用管理模块采用Microsoft Visual Studio .NET 2005和Microsoft SQL Server2000,基于三层架构进行设计与实现的。主要包括客户管理、城市管理、线路管理功能模块。其中客户管理主要实现的功能是对客户的基本信息进行添加、修改和删除;城市管理主要实现的功能是对主要城市和范围城市的基本信息进行修改、添加和删除主要城市对应的范围城市,就是该交货点的中转地;线路管理主要实现的功能有:对起运站-到达站的信息管理,包括线路的历程和抵运时间。
本系统采用了统一的界面,并且提供了大量的操作提示以及出错信息,大大的方便用户使用本软件,同时也减少了出错的可能,确保了数据的正确性、完整性和一致性。本软件系统使得管理的信息化,减少了人力成本的付出,一定程度上提高了快递系统的效益。
关键词:快递管理系统;三层架构;ASP.NET
目 录
引 言.......................................................................................................................... 1 1 系统分析 ................................................................................................................... 2
1.1 1.2 1.3
需求分析 . ....................................................................................................................2 功能分析 . ....................................................................................................................2
可行性分析 . ................................................................................................................2 1.3.1 操作可行性 . ........................................................................................................................... 2 1.3.2 经济可行性 . ........................................................................................................................... 2 1.3.3 技术可行性 . ........................................................................................................................... 2
1.4 开发工具简介 .................................................................................................................3 1.4.1 C#概述 . ................................................................................................................................. 3 1.4.2 SQL Server 2005概述 ....................................................................................................... 4 1.5 架构简介 .........................................................................................................................4
2 系统总体设计 ......................................................................................................... 5
2.1 系统功能结构设计 .........................................................................................................5 2.2 数据库设计 ...................................................................................................................5 2.2.1 数据表设计 . ........................................................................................................................... 5 2.2.2 存储过程设计 . ....................................................................................................................... 7
3 系统详细设计与实现 ........................................................................................... 12
3.1 客户信息添加模块 .......................................................................................................12 3.2客户信息查询模块 ........................................................................................................13 3.3 客户信息编辑模块 .......................................................................................................14 3.4 城市信息维护模块 .......................................................................................................15 3.5 线路信息添加模块 .......................................................................................................16 3.6 线路信息查询模块 .......................................................................................................17 3.7 线路信息编辑模块 .......................................................................................................18
结 论 ..................................................................................................................... 19 参 考 文 献 ............................................................................................................... 20
引 言
快递是跨地区、跨行业的运作系统,标准化程度的高低不仅关系到各种快递功能,要素之间能否有效衔接和协调发展,也在很大程度上影响着全社会快递效率的提高。本软件系统使得管理的信息化,减少了人力成本的付出,一定程度上提高了快递系统的效益。
本系统采用了统一的界面,并且提供了大量的操作提示以及出错信息,大大的方便用户使用本软件,同时也减少了出错的可能,确保了数据的正确性、完整性和一致性。本系统中所用到的开发技术ASP.NET 以及ADO.NET 的特点、结构框架以及使用方法。接着对快递管理系统的可行性进行了分析,然后对系统的设计思想、设计目标与系统的整体结构进行了明确的规划。最后对系统的主要页面、数据库、应用程序的设计与实现作了较为详细的讲解。
发展最迅速的数据库技术领域,其自身已经形成了一整套独有的理论,并广泛地应用于人们的生产和生活中。数据库技术与网站的结合是当今Web 技术的一个热点。有了数据库的支持,可以扩展网页的功能,可以方便地设计出交互式页面,可以构造功能强大的后台管理系统,可以为网站的更新、维护提供极大的方便。因此,作为网络开发者或管理者,数据库知识是必不可少的。
本文分为三章来介绍快递管理系统的设计与实现。第一章系统分析,在系统分析中主要是系统的需求分析、系统的功能分析、可行性分析、开发工具简介、架构简介等;第二章系统总体设计,提出系统功能模块的细分和数据库的详细设计等;第三章系统详细设计与实现,主要包括系统功能子模块的设计与实现、设计理念、实现功能和最终得到的结果等。
1 系统分析
1.1 需求分析
随着快递公司业务的发展,快递业务具有客户量大、分散、件数多、重量小、时效性强、市场竞争激烈等特点,业务量不断增多,跨区域工作的需求,客户需要一种能够运行于B/S模式的快递管理系统,如何设计快递管理系统已经成为快递公司非常关注的问题,因此开发一套好的快递管理软件,不但能大大降低工作人员的劳动强度,还能快递公司管理水平。
1.2 功能分析
应用管理模块的主要功能有客户管理、城市管理、线路管理功能模块。其中客户管理主要实现的功能是对客户的基本信息进行添加、修改和删除;城市管理主要实现的功能是对主要城市和范围城市的基本信息进行修改、添加和删除主要城市对应的范围城市,就是该交货点的中转地;线路管理主要实现的功能有:对起运站-到达站的信息管理,包括线路的历程和抵运时间。
1.3 可行性分析
1.3.1 操作可行性
本系统性能稳定,简单易用易懂、功能完善,有利于公司管理人员的使用,大大提高管理的效率。 1.3.2 经济可行性
本系统的制作是在计算机上进行,所有模块的制作都由安装在计算机上的软件完成,无需要经济上的投入,因此在经济上是可行的。 1.3.3 技术可行性
Microsoft SQL Server2005具有上手容易、可兼容性良好、扩展性强并且易于操作等诸多优点。Microsoft Visual Studio .NET 2005采用了可视化面向对象工具开发,其窗口、界面简洁易懂,易于操作。所以系统在操作上是可行的。
1.4 开发工具简介
Visual Studio.NET是一个功能强大、高效并且可以扩展的编程环境,是一个构建企业分布式应用的开发平台,基于Web 服务的技术得到了Visual Studio.NET 的大力支持。使用Visual Studio.NET开发平台可以构建Windows 应用程序、 Web应用程序以及Web 服务。使用Visual Studio.NET构建分布式应用程序将更加简单、高效而且稳定。 1.4.1 C#概述
C#是一种最新的、面向对象的编程语言。C#使得程序员可以快速地编写各种基于Microsoft.NET 平台的应用程序,Microsoft.NET 提供了一列的工具和服务来最大程度地开发利用计算机与通讯领域。并以安全、稳定、简单、优雅等特点在计算机领域站稳头角。并且,C#还在继承C 和C++强大功能的同时去掉了一些复杂特性(例如没有宏和模版,不允许多重继承)。秉持着简单的可视化操作和高运行的效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET 开发的首选语言。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet 进行调用。
最重要的是,C#使得C++程序员可以高效的开发程序,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
新兴的网络经济迫使商务企业必须更加迅速的应对竞争的威胁。开发者必须不断缩短开发周期,不断推出应用程序的新版本,而不仅仅是开发一个“标志性”的版本。
C#在设计时就考虑了这些问题。它使开发者用更少的代码做更多的事,同时也不易出错。C#语言的开发成功,对微软未来的发展有着非常重要的意义。
Visual Studio.NET C# 的特点:语法更简单;保留了C++的强大功能;快速应用开发功能;语言的自由性;强大的WEB 服务器控件;支持跨平台;与XML 相融合。
1.4.2 SQL Server简介
SQL Server 是基于结构化查询语言的可伸缩的关系数据库,它支持Internet 应用程序的可扩展标记语言、并由数据库、关系数据库、结构化查询语言和可扩展标记语言等部分组成。
SQL Server 以其卓越的性能逐渐成为Windows 操作系统平台下进行数据库应用开发中较为理想的选择之一。它是一个后台数据库管理系统,其功能强大、操作简便,日益为广大数据库用户所喜爱,越来越多的开发工具提供了与SQL Server 的接口。了解和掌握SQL Server的功能,对于一个数据库开发管理人员来说非常必要[2]。
SQL Server 常见版本有:企业版(Enterprise Edition) 、标准版(Standard Edition) 、个人版(Personal Edition)和开发者版(Developer Edition)。
1.5 架构简介
在所谓三层架构分为的三层:表现层、数据存取层、业务逻辑层。且这三层是通过实体层连接起来的。三层结构原理是在三个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
表现层:web 界面,为用户提供信息,触发用户的指令和用户进行交互;业务逻辑层:调用数据存取层的方法,出路表现层触发的任务; 数据存取层:和数据库打交道,把数据提取或保存到数据库; 实体层:具体的了的集合,三层之间是通过实体层联系起来的。
2 系统总体设计
2.1 系统功能结构设计
1、应用模块功能描述:应用管理的主要功能是对系统中基本信息进行管理,包括客户管理、城市管理和线路管理等功能。功能模块图如图2.1所示:
图2.1应用管理的功能模块图
2、应用管理的业务描述:
应用管理的主要功能是对系统中的基本信息管理。包括客户信息、城市信息以及线路信息等功能。客户管理主要是对客户基本信息进行添加、修改和删除;城市管理主要实现的功能是对主要城市和范围城市的基本信息进行修改、添加和删除主要城市对应的范围城市,就是该交货点的中转地;线路管理主要实现的功能有:对起运站-到达站的信息管理,包括线路的历程和抵运时间。
2.2 数据库设计
2.2.1 数据表设计
所做的模块主要涉及到客户基本信息表、地区城市表、城市扩充表、线路信息表四个表,本模块应该能够将表中信息导出并显示出来,管理员应对相应信息进行查询,添加,删除,修改都涉及到这四个表,对应删除,修改添加能改变表里面的信息,并将其存到数据库中。
1、客户基本信息表:用于存放客户基本信息,包含客户编号、客户名称、电话、传真、地址、邮编、联系人、联系人手机、客户类型、企业性质、企业规模、电子邮件等。如表2.1所示。
表2.1 客户基本信息表
名称 PKID 客户编号 客户名称 电话 传真 地址 邮编 联系人 联系人手机 客户类型 企业性质 企业规模 电子邮件
字段 PKID CustomerCode Customer Phone Fax Address PostCode Linkman LinkmanMobile CustomerType EnterpriseProperty EnterpriseSize Email
数据类型 int varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50) varchar(50)
2、地区城市表:用于存放地区城市相关信息。如表2.2所示。
表2.2地区城市表
名称 PKID 城市
字段 PKID City
数据类型 int varchar(50)
3、城市扩充表:用于存放城市扩充相关信息。如表2.3所示。
表2.3城市扩充表
名称 PKID 城市PKID 范围城市
字段 PKID CityPKID RangeCity
数据类型 int int varchar(50)
4、线路信息表:用于存放线路信息相关信息。如表2.4所示。
表2.4线路信息表
名称 PKID 起点 终点 里程 抵运时间
字段 PKID StartStation EndStation Distance FetchTime
数据类型 int varchar(50) varchar(50) real real
2.2.2 存储过程设计
应用管理模块主要包含6个存储过程,其存储过程有uspCreateCityInfor ,uspCreateCustomer,uspDeleteCustomer,uspGetCustomer,uspGetCustomers,us pUpdateCustomer 。
1、存储过程uspGetCustomers 是获取多条客户信息,如表2.5所示。
表2.5 uspGetCustomers存储过程
存储过程名 功能描述 输入参数
uspGetCustomers 获取多条客户信息
@Customers varchar(50), --客户名称 @Linkman varchar(50), --联系人 @pageIndex int, --待读取的页索引 @pageSize int, --每页显示的记录数
输出参数 返回值 结果集
@recordCount int out --总计录数
无
Customer, --客户名称 Phone, --电话 Address, --地址 Linkman --详细人 LinkmanMobile --联系人手机
涉及到的表
1. 客户基本信息表:Basic_CustomerInfor
操作说明
2、存储过程uspGetCustomer 是获取单条客户信息,如表2.6所示。 表2.6 uspGetCustomer存储过程
存储过程名 功能描述 输入参数 输出参数 返回值 结果集
uspGetCustomer 获取单条客户信息
@PKID int, --票据ID 无 无
CustomerCode, --客户编号 Customer, --客户名称 Phone, --电话 Fax , --传真 Email, --电子邮件 PostCode, --邮编 Address, --地址 LinkMan , --联系人 LinkManMobile , --联系人手机 EnterpriseProperty , --企业性质 EnterpriseSize --企业规模
涉及到的表 操作说明
1. 客户基本信息表:Basic_CustomerInfor
1. 从客户基本信息表中查询结果集包含的所有字段 过滤条件:PKID = @PKID
3、存储过程uspCreateCustomer 是增加客户信息,如表2.7所示。 表2.7 uspCreateCustomer存储过程
存储过程名 功能描述
uspCreateCustomer 增加客户信息
输入参数 @CustomerCode, varchar(50) --客户编号 @Customer, varchar(50) --客户名称 @Phone, varchar(50) --电话 @Fax, varchar(50) --传真 @Email, varchar(50) --电子邮件 @PostCode, varchar(50) --邮编 @Address, varchar(50) --地址 @LinkMan, varchar(50) --联系人 @LinkManMobile, varchar(50) --联系人手机 @EnterpriseProperty, varchar(50) --企业性质 @EnterpriseSize varchar(50) --企业规模
输出参数 返回值
@PKID int output --客户ID 0 – 成功 0 – 失败
结果集 涉及到的表 操作说明
无
1. 客户基本信息表:Basic_CustomerInfor 1. 字段值 = 相应输入参数值
4、存储过程uspUpdateCustomer 是修改客户信息,如表2.8所示。 表2.8 uspUpdateCustomer存储过程
存储过程名 功能描述 输入参数
uspUpdateCustomer 修改客户信息
@PKID int --客户ID @CustomerCode, varchar(50) --客户编号 @Customer, varchar(50) --客户名称 @Phone, varchar(50) --电话 @Fax, varchar(50) --传真 @Email, varchar(50) --电子邮件 @PostCode, varchar(50) --邮编 @Address, varchar(50) --地址
@LinkMan, varchar(50) --联系人 @LinkManMobile, varchar(50) --联系人手机 @EnterpriseProperty, varchar(50) --企业性质 @EnterpriseSize varchar(50) --企业规模
输出参数 返回值
无 0 – 成功 0 – 失败
结果集 涉及到的表 操作说明
无
1. 客户基本信息表:Basic_CustomerInfor 1. 更新字段:字段值 = 相应输入参数值 过滤条件:PKID = @PKID
5、存储过程uspDeleteCustomer 是删除客户信息,如表2.9所示。 表2.9 uspDeleteCustomer存储过程
存储过程名 功能描述 输入参数 输出参数 返回值
uspDeleteCustomer 删除客户信息
@PKID int --票据ID 无 0 – 成功 0 – 失败
结果集 涉及到的表 操作说明
无
1. 客户基本信息表:Basic_CustomerInfor 1. 过滤条件:PKID = @PKID
6、存储过程uspCreateCityInfor 是增加城市信息,如表2.10所示。 表2.10 uspCreateCityInfor存储过程
存储过程名 功能描述
uspCreateCityInfor 增加城市信息
输入参数 输出参数 返回值
@City varchar(50) --城市名称 @PKID int output --城市ID 0 – 成功 0 – 失败
结果集 涉及到的表 操作说明
无
1. 地区城市表:Basic_CityInfor 1. 向地区城市表中插入一条新记录 City = @City
3 系统详细设计与实现
3.1 客户信息添加模块
客户信息添加模块是向客户基本信息表中增加一条客户基本信息。在此页
面需填写客户编号、客户名称和电话,传真、电子邮件、邮编、地址、联系人、联系人手机、企业性质和企业规模。点击添加按钮实行添加。实现了对客户基本信息的增加功能。界面如图3.1所示。
图3.1客户信息添加界面
实现过程:
在本界面中只放置了TextBox 控件、Imagebutton 控件来实现了添加功能。先实例化CustomerBusiness 调用里面地方法,后再调用DataAccess 层的CreateCustomer 方法建立与存储过程之间联系,后在执行存储过程。
客户信息查询模块实现对客户信息的查询功能。首先填入客户名称,或者填入联系人,再按搜索按钮进行搜索。界面如图3.2所示。
图3.2客户信息查询界面
实现过程:
在本界面中放置了TextBox 控件、GridView 控件、用户控件、和Imagebutton 等控件来实现查询功能。GridView 控件用于显示数据库的数据。先实例化CustomerBusiness 类,再调用GetCustomers ()方法,再调用执行存储过程的方法执行uspGetBillDispenses 存储过程,存储过程中可以实现模糊查询还有进行分页。最后通过使用DataBind 绑定到页面的GridView 控件上以显示数据,如果进行页面跳转的话还要调用用户控件里面的方法。
客户信息编辑模块实现对客户信息的修改和删除功能。首先是从客户信息查询模块中跳转过来,并传来了参数,通过这个参数可以直接进行修改和删除功能,并还可以进行返回。界面如图3.3所示。
图3.3客户信息编辑界面
实现过程:
本页面使用了TextBox 控件、Imagebutton 等控件,通过客户信息编辑模块传过来的参数,先实例化CustomerBusiness 类,调用数据层中的UpdateCustomer 和DeleteCustomer 方法,在进行存储过程的调用执行,分别进行修改和删除。
城市信息维护模块实现对城市信息的管理功能。选择主要城市,可以进行编辑;再选择范围城市进行编辑。界面如图3.4所示。
图3.4城市信息维护界面
实现过程:
本页面使用了TextBox 控件、ListBox 控件、Imagebutton 等控件,通过ListBox1选中的值,先实例化CityInforBusiness 类,调用数据层中的UpdateCityInfor 和DeleteCityInfor 方法,在进行存储过程的调用执行,分别进行修改删除。ListBox2中的值是通过GetCityScopes 方法来对ListBox1中选中的值进行绑定。先实例化CityScopesBusiness 类,调用数据层中的UpdateCityScopes 方法,在进行存储过程的调用执行,进行添加。
线路信息添加模块实现对线路信息的添加功能。首先选择起点城市,然后选择终点城市,再填写里程和抵运时间,按添加按钮进行添加。界面如图3.5所示。
图3.5线路信息添加界面
实现过程:
本页面使用了TextBox 控件、Imagebutton 控件、DropDownList 控件,通过线路信息添加模块传过来的参数,先实例化LineInforBusiness 类,调用数据层中的CreateLineInfor 方法,进行添加。
线路信息查询模块实现对线路信息的查询功能。首先选择起点城市,然后选择终点城市,再按搜索按钮进行搜索。界面如图3.6所示。
图3.6线路信息查询界面
实现过程:
本页面使用了TextBox 控件、Imagebutton 等控件、用户控件、GridView 控件、DropDownList 控件,通过线路信息查询模块传过来的参数,先实例化LineInforBusiness 类,调用数据层中的GetLineInfor 方法,在进行查询。
线路信息编辑模块实现对线路信息的修改和删除功能。首先选择要编辑的线路,然后在编辑界面中进行修改和删除。界面如图3.7所示。
图3.7线路信息编辑界面
实现过程:
本页面使用了TextBox 控件、Imagebutton 控件、DropDownList 控件,通过线路信息编辑模块传过来的参数,先实例化LineInforBusiness 类,调用数据层中的UpdateLineInfor 和DeleteLineInfor 方法,在进行存储过程的调用执行,分别进行修改删除。
结 论
在本系统制作的过程中,出现了所做的程序的诸多不足之处,如程序功能方面、异常处理方面、程序流程等方面,针对发现的问题做了透彻的研究,对所出现的问题有一定的见解和解决问题的设计想法,并在发现问题的同时,也在不断地总结经验,努力将程序的不完善之处改善,在完善程序的过程中不仅提高了差错查找能力、编程能力,而且提高了独立思考问题、分析问题以及解决问题的能力,为今后的学习打下了良好的基础,为今后步入社会作好了准备。
本功能模块主要完成了对客户信息、城市信息和线路信息进行添加、查询和编辑功能 。
在整个模块的设计过程中,仍有以下问题没有解决:
1、三层架构中的逻辑层问题,对于层与层之间的调用最后返回到页面上因为调用到很多层使得当数据量大的时候执行效率大大的下降。三层构架虽然条理清晰,但是重复内容过多,复杂不够简单, 执行时效率不高。
2、存储过程出现了“参数没有定义”的错误,后边的数据层、业务层等调用了存储过程未定义的数据或方法。
3、数据层调用存储过程的时候,调用的数据域存储过程不符。 4、WEB 层,执行后出现很多错误,例如:不存在类名、该方法未定义、索引超出最大范围、XX 不存在,这样的错误其原因就是注意用所给的东西原来的名称,不要更改否则将调用不了。
5、在浏览器页面中打开界面时,页面显示“索引超出范围。必须为非负值并小于集合大小,参数名: index”。
参 考 文 献
[1] 网页设计从入门到精通. 中国水利水电出版社. 出版日期:2009年10月.
[2]微软院校课程系列教材.Web 应用程序设计. 高等教育出版社. 2002:P320
[3] 周良忠.C# Primer Plus.[M].人民邮电出版社,2002:P2
[4] 微软院校课程系列教材..NET Framerwork 2.0程序设计语言. 高等教育出版社. 2002:P120
[5] Karli Watson Christian Nagel.C#入门经典(第3版).[M].清华大学出版社,2006:P102
[6] Microsoft.C#程序设计语言.[M]高等教育出版社,2003年8月:P22
[7] 萨师煊,王珊. 数据库系统概论.[M].高等教育出版社,2004:P48
[8] Rod Johnson,Juergen Hoeller.J2EE Development without EJB[M].Wiley Publishing , 2004:178-223
[9]Michael Waidner.Open Issues In Secure Electronic Commerce[M].Computer Science/Mathematics,2001:37-56