1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第36页 共36页第一章 系统需求分析31.1 系统的背景介绍31.2 系统的可行性研究31.2.1数据库设计方法简述31.2.2操作可行性41.2.3技术可行性51.2.4经济可行性分析51.2.5综合评价61.3系统业务流程的调查和分析61.3.1系统业务流程分析7图1-1 快递管理业务流程图7图1-2 快递管理业务流程简图81.3.2 系统规划81.4 系统数据流程的调查和分析9图1-3 快递管理数据流程图91.5 数据库设计101.5.1 概念结构设计101.5.2逻辑结构设计111.5.3物理结构设计111.6 数据字
2、典15第二章 系统设计182.1 功能结构图182.2 代码设计192.3 输入输出设计202.3.1、输入设计202.3.2、输出设计21第三章 系统实现223.1登录模块设计223.1.1设计步骤223.1.2程序代码设计223.2主界面设计233.3数据模块设计233.4信息录入模块设计233.5信息统计模块设计253.6信息查询模块设计303.6.1快件接收查询303.6.2快件派送查询313.6.3未派送快件查询323.7报表设计33第四章 心得体会34第一章 系统需求分析1.1 系统的背景介绍 A、B、C、D家物流公司拟共同出资在大学城建立一个快递集散中心,解决大学城交通不方便,但
3、是快递需求大的问题。公司在大学城建立一个仓库用于中转和暂存,仓库流转率较高。仓库接收各物流公司送过来的快件并通过条形码、RFID等信息化设备完成入库,同时可根据大学城单位或社区为目的地进行分类存储,方便安排送货。仓库存储时间不能超72小时。仓库暂存客户送来的快件,并按客户选择的物流公司存储。存储时间不能超过48小时。为保证配送准确性减少配送引起的纠纷。要求仓库按先进先出原则进行配送。入库出库数据必须定期审核备查。对车辆配载情况,使用情况等进行跟踪。人员、物件、车辆信息必须进入数据库统一管理,并可根据股东要求报送相关报表。为了完成上述快递集散中心的运行,现设计大学城快递集散中心物流信息管理系统,
4、方便日常事物的开展。1.2 系统的可行性研究1.2.1数据库设计方法简述数据库设计是为了有效地存储数据及信息的查询更新删除等管理操作而设计的数据环境。 1.需求分析阶段准确了解与分析用户需求如数据、处理。建立一个检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低的物流管理信息系统 减轻工作人员的负担。2.概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。3.逻辑结构设计阶段将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。4.数据库物理设计阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。5.数据库
5、实施阶段运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果。建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。6.数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。1.2.2操作可行性 作为一个实际存在的业务,系统设计的目的,以及所包括的信息内容功能都能够比较清晰地获得。通过合理的系统分析,能够基本上获得系统的需求,并且按照系统的需求进行之际的系统设计工作。1.2.3技术可行性1系统描述 本系统是以计算机软件技术为基础,利用VisualFoxpro编程技术进行编程设计的软件系统。2系统功能
6、本系统具有输入、输出、查找、配送等功能,完成信息的显示。3系统用户及其特点 本系统的使用对象是企业的管理人员和库存工作人员,只要懂得计算机的基本操作就能够使用本系统。4系统运行环境 Windows2000以上操作系统,VF软件系统,需要懂一定编程知识人员。5技术可行性分析 本企业拥有足够量的必须计算机软硬件,并且拥有熟悉计算机技术员工,因此本企业具备本系统的运行条件。1.2.4经济可行性分析1费用估计 (1)计算机若干台以及必要支持软件 (2)系统的开发费用及安装费用 (3)人员培训费用 (4)系统日常运行耗费2效益估计 (1)直接效益 本系统的应用可以减少信息处理的成本,提高企业运营效率,降
7、低运营成本。 (2)间接效应 本系统的应用可以改善信息获得性,提高执行者的办事效率。1.2.5综合评价 本系统的特点是成本较低,给企业所带来的效益要高于系统应用的费用,因此,本系统在经济上是可行的。1.3系统业务流程的调查和分析本系统服务于快递公司的业务。处理单据,数据统计,报表打印,单据查询以及数据库维护等系统功能有:1 数据的添加、删除和修改2 派送单查询、接收单查询、投诉单查询以及未派送的快件查询等查询功能。3 对某一段时间内的数据进行统计4 打印详细报表5 基本资料维护及用户权限等6 数据库的备份与还原1.3.1系统业务流程分析图1-1 快递管理业务流程图图1-2 快递管理业务流程简图
8、1.3.2 系统规划3.2.2.1系统处理范围 单据处理、数据统计、 单据查询、报表打印、数据库维护、权限管理3.2.2.2系统功能1)数据的录入(添加、删除和修改)2)派送单、接收单、投诉单等的查询3)某一段时间内的数据进行统计4)打印详细报表5)基本资料的维护6)数据库的备份与还原7)权限管理 1.4 系统数据流程的调查和分析图1-3 快递管理数据流程图1.5 数据库设计1.5.1 概念结构设计(1)数据库表图4-1数据库表(2) E-R图1.5.2逻辑结构设计收件单(接收单号,发站,运输方式,快递员号)派送单(派送单号,接收单号,发站,运输方式,快递员号,)中转单 (中转单号,发站,运输
9、方式,快递员号)投诉单(投诉单号,派送单号,接收单号,货物编号,原因)快递员(编号,姓名,手机,住址,宅电)品名维护(编号,品名,备注)备注维护(编号,备注)1.5.3物理结构设计(1)创建数据库 使用vf创建数据库“KD”再在数据库KD中新建9张数据表。综合快递物流信息系统表汇总序号表名称功能描述1fj_lr派送单记录表2js_lr接收单记录表3ts_lr投诉单记录表4zz_lr中转记录表5Sender品名信息表6 User1用户信息表7 Memo备注信息表8Kuaidiyuan快递员信息表9权限管理权限管理表(2)设计数据表 表名:fj_lr 派送单记录表字段名代表意义数据类型是否允许空值
10、主键fj_id派送单编号Varchar(15)否Keystation发站名称nvarchar(10)否 send_mode运输方式nvarchar(10)否name品名nvarchar(10)否weight重量Numeric(9)否sender送货人nvarchar(10)rece_person收货人nvarchar(10)否rece_addr收货人地址nvarchar(60)否rece_tel收货人电话nvarchar(20)否thing备注nvarchar(60)fjfee派送费Float(8)否ps_data派送日期Datatime否Js_id接收单号Varchar(15)否id快递员i
11、dVarchar(15)否表名:js_lr 接收单记录表字段名代表意义数据类型是否允许空值主键js_id接收单号Varchar(15)否Keystation发站名称nvarchar(10)send_mode运输方式nvarchar(10)否name品名nvarchar(10)否weight重量Numeric(9)否sender送货人nvarchar(10)rece_person收货人nvarchar(10)否rece_addr收货人地址nvarchar(60)否rece_tel收货人电话nvarchar(20)否Memo1备注nvarchar(60)fjfee派送费Float(8)否js_da
12、ta接收日期Datatime(8)否id快递员idVarchar(15)否表名:ts_lr 投诉单记录表 字段名代表意义数据类型是否允许空值主键Ts_id投诉单编号Varchar(15)否Keyfj_id派送单编号Varchar(15)js_id接收单号Varchar(15)customer客户名nvarchar(20)customer_addr客户地址nvarchar(40)customer_tel客户电话nvarchar(20)Memo1备注原因nvarchar(40)否Ts_date投诉日期Datatime(8)否表名:Sender品名信息表字段名代表意义数据类型是否允许空值主键Id编号
13、Char(10)否Keymane品名Char(20)否表名:Memo 备注信息表字段名代表意义数据类型是否允许空值主键id编号Nvarchar(4)否Keymemo备注Nvarchar(50)表名: zz_lr 中转记录表字段名代表意义数据类型是否允许空值主键zz_id接收单号Varchar(15)否KeyStart_station发站名称nvarchar(10)end_station终站名称nvarchar(10)send_mode运输方式nvarchar(10)否name品名nvarchar(10)否weight重量Numeric(9)否rece_person收货人nvarchar(10)
14、否rece_addr收货人地址nvarchar(60)否rece_tel收货人电话nvarchar(20)否Memo1备注nvarchar(60)zz_data接收日期Datatime(8)否表名:User1用户信息表字段名代表意义数据类型是否允许空值主键id编号Nvarchar(4)否Keymane姓名Nvarchar(10)password 密码Nvarchar(10)表名:Kuaidiyuan快递员信息表字段名代表意义数据类型是否允许空值主键id编号Nvarchar(15)否Keymane姓名Nvarchar(10)否Tel手机Varchar(20)否Addr住址Nvarchar(40)
15、Phone宅电Varchar(20)1.6 数据字典数据字典的组成 数据字典有6类条目:数据项、数据结构、数据流、数据处理、数据存储和外部实体。(1)数据项是数据的最小单位,是不可再分的数据单位。如学号,姓名等。对数据项的描述一般包括:数据项的编号、名称、别名和简述,数据项的类型、长度和取值范围等。表一:数据项描述派送单编号数据项编号I01-01数据项名称fj_id别名派送单编号简述用于记录派送单的代码类型及宽度Varchar(15)取值范围000000000000000999999999999999相关数据结构派送单记录表、投诉单记录表表二:数据项描述运输方式数据项编号I01-02数据项名称
16、send_mode别名运输方式简述用于描述采用何种运输方式类型及宽度nvarchar(10)相关数据结构派送单记录表、接受单记录表、中专记录表(2)数据结构数据结构描述了数据项之间的关系,由数据项或者数据结构组成。一个简单的数据结构由数据项组成,而复杂的数据结构则包含了其他数据结构对数据结构的描述包括:数据结构的编号、名称、简述、数据结构的组成等。表三:数据结构描述品名信息数据结构编号DS02-01数据结构名称品名信息简述用于描述货物信息组成编号、品名相关数据流派送单、接收单、中转单相关数据处理录入、修改及删除出处理表四:数据结构描述快递员信息数据结构编号DS02-02数据结构名称快递员信息简
17、述用于描述快递员的信息组成编号、姓名、手机、住址、宅电相关数据流派送单、接收单、中转单相关数据处理录入修改及删除处理表五:数据结构描述用户信息数据结构编号DS02-03数据结构名称用户信息简述用于描述此软件的用户的信息组成编号、姓名、密码相关数据流派送单、接收单、中转单相关数据处理录入、修改及删除处理表六:数据结构描述备注信息数据结构编号DS02-04数据结构名称备注信息简述用于描述备注组成编号、备注相关数据流派送单、接收单、中转单、投诉单相关数据处理录入、删除及修改处理(3)数据流数据流用来描述数据的流动过程,由一个或一组固定的数据项组成。可以是一个已定义的数据结构,也可以由若干数据项组成。
18、表七:数据流描述派送单数据流编号F03-01数据流名称派送单简述快递公司根据接收单开出此单,根据此单进行派送数据流来源首发站数据流去向快件派送及中转管理模块数据流组成派送单编号、发站名称、运输方式、品名、重量、送货人、收货人、收货人地址、收货人电话、备注、派送费、派送日期、接收单号、快递员id表八:数据流描述接收单数据流编号F03-02数据流名称接收单简述接收物品后的登记单据数据流来源快件接收登记数据流去向快件接收管理模块数据流组成接收单编号、发站名称、运输方式、品名、重量、送货人、收货人、收货人地址、收货人电话、备注、派送费、接收日期、快递员id表九:数据流描述投诉单数据流编号F03-03数
19、据流名称投诉单简述用于登记用户的投诉情况数据流来源发件人数据流去向客户投诉管理数据流组成投诉单编号、派送单编号、接收单号、客户名、客户电话、客户地址、投诉原因、投诉日期表十:数据流描述中转单数据流编号F03-04数据流名称中转单简述用于登记快件的中转记录数据流来源快递中转站数据流去向快件派送管理模块数据流组成接收单号、发站名称、终站名称、运输方式、品名、重量、收货人、收货人地址、收货人电话、备注、接受日期第二章 系统设计2.1 功能结构图图2-1系统功能结构图2.2 代码设计接收单号代码表接收单号201401010012014年1月1号接收的第1个单子201401010022014年1月1号接
20、收的第2个单子201401010032014年1月1号接收的第3个单子派送单号代码表 派送单号201401010012014年1月1号派送的第1个单子201401010022014年1月1号派送的第2个单子201401010032014年1月1号派送的第3个单子投诉备注代码表类型号1运输途中丢失,运输公司负责赔偿2不全3破损4丢了5包装导致物品破损,由快递公司负责赔偿6没有货物代码表种类号001书籍002箱包003衣物004日用品005灯具006食品007电器008饮料009其他2.3 输入输出设计2.3.1、输入设计(1)输入设计的任务根据具体业务要求,确定适当的输入形式,使信息系统获取管理
21、工作中产生的正确信息。(2)输入设计的内容1输入界面设计。根据具体业务要求确定(详见主界面设计和各模块设计)。2.输入设备选择:键盘-磁盘输入装置。数据录入员通过工作站录入,经拼写检查和可靠性验证后存入磁记录介质 。图2-2 信息录入界面2.3.2、输出设计(1)输出设计的内容1.输出信息使用情况。信息的使用者、业务统计、业务查询、信息量等。2.输出信息内容。派送单据、业务单据、统计业务量等。3.输出格式。如表格、报告等。4.输出设备和介质,设备:如打印机、显示器等;介质:如磁盘、磁带、纸张等。图2-3信息查询输出图第三章 系统实现3.1登录模块设计 启动程序,首先进入登录模块,该模块用来确认
22、用户身份,保证数据的安全性。在该模块中使用了TDBLookupListBox组件,该组件能将被查找字段的值自动添加到它的列表中,用户可以在该组件中选取用户名进行登录。3.1.1设计步骤1)新建窗体,设置BorderStyle属性(边框类型)为“bsNone”,在窗体上放置一个TImage组件,设置其Stretch属性为“true”图片放大或缩小以TImage组件边框为准,pictures属性选择图片(背景图片)。2)在TImage组件上放置一个TDBLookupListBox组件,设置Ctl3D属性为“False”;设置ListSourse属性为“dm.dsuser1table”;设置KeyF
23、ield属性为“name”;设置ListField属性为“name”。在窗体上添加一个TEdit组件,设置Ctl3D属性为“False”;设置passwordChar属性为“*”。3)在TImage组件上放置两个TBitBtn组件,为了按钮的美观,设置其Glyph属性加载按钮图片。3.1.2程序代码设计主要的代码在单击【登录】按钮和【取消】按钮。单击【登录】按钮,系统在数据库中查找与用户输入的“用户名”和“密码”相符的记录。如果有,则用户可以登录,如果没有且输入3次都不正确,系统将自动退出。单击【取消】按钮,退出系统。(代码详见附录)3.2主界面设计主窗体设计在系统中占据很重要的地位,因为只有
24、界面友好、操作方便的软件才能被用户所接受。本系统使用TSpeedButton组件作为工具栏按钮,使用TTreeView组件作为功能目录树,使用TStatusBar组件显示当前系统状态信息。3.3数据模块设计数据模块是将连接和处理数据的数据库组件统一规范管理的模块,在设计期间数据模块是以窗口的形式显示在界面中的。但是不可以向数据模块中加入可视化组件,因为该模块不会在系统运行时显示出来。使用数据模块进行数据库设计与数据处理有以下优点:1便于数据库的移植2增加了程序的清晰性 3可以最大程度的实现代码重用总之,可以将数据集全部放在数据模块中,这样可以方便地设置数据关联等,而且数据处理起来也相对方便,因
25、为不需要在工程文件中去寻找对应的数据集。 3.4信息录入模块设计信息录入模块包括快件接收录入、快件派送录入、快件中转录入和客户投诉录入等板。图3-8 快件派送录入界面图3-9 快件接收录入图3-10 快件中转录入图3-11客户投诉录入3.5信息统计模块设计信息统计模块包括快件接收统计、快件派送统计、快件中转统计、客户投诉统计和大客户运量统计等板块。其中未派送统计是多表联系查询统计。派送统计:主要负责功能是统计在某一段时间内的派送的物品的重量和派送费用并且有相应的打印模块可以打印报表。相应的主要代码:procedure Ttj_paisong.BitBtn1Click(Sender: TObje
26、ct);begin if self.DateTimePicker1.Dateself.DateTimePicker2.Date then begin messagebox(self.Handle,起始日期不能大于终止日期,提示信息,mb_iconinformation); Exit; end; dm.search1.Close; dm.search1.Parameters.ParamByName(date1).Value:=formatdatetime(yyyy-mm-dd,self.DateTimePicker1.Date ); dm.search1.Parameters.ParamByNa
27、me(date2).Value:=formatdatetime(yyyy-mm-dd,self.DateTimePicker2.Date ); dm.search1.Open ; dm.search0.Close; dm.search0.CommandText:=select sum(weight) 总重量,sum(fjfee) 派送费合计 from fj_lr where ps_date =cast(:date1 as datetime)+ and ps_date=cast(:date1 as datetime) and js_date=cast(:date1 as datetime) +
28、and ps_date=cast(:date1 as datetime) and ps_date=cast(:date1 as datetime) and ps_date=cast(:date1 as datetime) and js_date=cast(:date1 as datetime) and js_date=cast(:date2 as datetime) and js_id not in(select js_id from fj_lr where fj_lr.js_id=js_lr.js_id) ; dm.search0.Open ; dbedit1.DataSource:=dm.
29、dssearch0 ; dbedit1.DataField:=总重量;end;3.7报表设计报表是管理系统中最为重要的组成部分之一,它是一种主要的数据输出手段,可以把数据打印出来以供查询或备份保留。设计步骤:1.在工程中新建一个窗体。 2.在窗体中添加TQuickRep组件,即报表的主体。3.在该窗体的implementation(实现部分)加语句uses dmunit;(数据模块窗体明)(这是关键一步,否则数据模块的信息无法在他的“Object Inspector”窗口中显示)。4.设置TQuickRep组件的DataSet属性为“(数据库中相应表)”报表的设计5.最后一步,也是将报表与调用
30、它的窗体连接的关键,先在调用它的窗体的implementation(实现部分)加语句uses 报表窗体名;再在调用它的窗体的连接按钮(常常为打印按钮)中加代码:窗体名.TQuickRep组件名.Preview; 第四章 心得体会这次实训我学到了多知识,开发设计一个系统是有相当高的难度的,要求能够利用系统分析的过程与方法,结合企业物资管理子系统业务流程图、数据流程图、数据字典所学的知识,并结合网络,图书馆搜集到的各种各样的材料,进行分析取舍对整体管理信息系统的结构功能。从系统的需求分析到系统的设计再到系统的实现都必须要细心,尤其是在代码设计这一部分,三年多来所学到的知识都在这一块儿联系综合起来了,平常学习考试的难度和这种相比起来简直是太简单了,我们平常运用到的就是基础的知识和操作技巧,要自己动手做时还得翻翻书多问问摸索才可以做好。小组作业的经历总是美好的 ,大家一块儿讨论,分配任务,组合修改,各抒己见感觉挺不错的。这次课程设计使我有了一次通过理论联系实际,来解决实际问题的经历,它培养了自己分析问题,解决问题的能力,以及上网检索信息的能力。其实学到的知识其实是次要的,重要的是我们探索知识的过程,这个过程便是一个人自主学习能力的体现,以及小组合作团队的实践。第 36 页 共 36 页