物流信息系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章系统需求分析 ................................... 2...
1.1 系统的背景介绍 (2)
1.2 系统的可行性研究 (2)
错误! 未定义书签。
错误! 未定义书签。
错误! 未定义书签。
错误! 未定义书签。
错
误! 未定义书签。
1.3 系统业务流程的调查和分析 (4)
.......................................................... 错误! 未定义书签。
图1-1 快递管理业务流程图. (7)
图1-2 快递管理业务流程简图 (8)
1.3.2 系统规划 (5)
1.4 系统数据流程的调查和分析 (5)
图1-3 快递管理数据流程图 ................................ 错误! 未定义书签。
1.5 数据库设计 (6)
1.5.1 概念结构设计 (6)
.......................................................... 错误! 未定义书签。
.......................................................... 错误! 未定义书签。
1.6 数据字典 (9)
第二章系统设计 ....................................... 1..2.
2.1 功能结构图 (12)
2.2 代码设计 (13)
2.3 输入输出设计 (14)
.......................................................... 错误! 未定义书签。
.......................................................... 错误! 未定义书签。
第三章系统实现 ....................................... 1..4.
3.1 登录模块设计 (14)
.......................................................... 错误! 未定义书签。
.......................................................... 错误! 未定义书签。
3.2 主界面设计 (15)
3.3 数据模块设计 (16)
3.4 信息录入模块设计 (16)
3.5 信息统计模块设计 (16)
3.6 信息查询模块设计 (19)
错误! 未定义书签。
错误! 未定义书签。
错误! 未定义书签。
3.7 报表设计 (21)
第四章心得体会 ....................................... 2..1.
第一章系统需求分析
1.1 系统的背景介绍
A、B、C、D家物流公司拟共同出资在大学城建立一个快递集散中心,解决大学城交通不方便,但是快递需求大的问题。
公司在大学城建立一个仓库用于中转和暂存,仓库流转率较高。
仓库接收各物流公司送过来的快件并通过条形码、RFID等信息化设备完成
入库,同时可根据大学城单位或社区为目的地进行分类存储,方便安排送货。
仓库存储时间不能超72 小时。
仓库暂存客户送来的快件,并按客户选择的物流公司存储。
存储时间不能超过48 小时。
为保证配送准确性减少配送引起的纠纷。
要求仓库按先进先出原则进行配送。
入库出库数据必须定期审核备查。
对车辆配载情况,使用情况等进行跟踪。
人员、物件、车辆信息必须进入数据库统一管理,并可根据股东要求报送相关报表。
为了完成上述快递集散中心的运行,现设计大学城快递集散中心物流信息管理系统,方便日常事物的开展。
1.2 系统的可行性研究
数据库设计是为了有效地存储数据及信息的查询更新删除等管理操作而设计的数据环境。
1. 需求分析阶段准确了解与分析用户需求如数据、处理。
建立一个检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低的物流管理信息系统
减轻工作人员的负担
2. 概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS勺概念模型。
3. 逻辑结构设计阶段
将概念结构转换为某个DBM所支持的数据模型,并对其进行优化。
4. 数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
5. 数据库实施阶段
运用DBM提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果。
建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
6. 数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。
在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
作为一个实际存在的业务,系统设计的目的,以及所包括的信息内容功能都能够比较清晰地获得。
通过合理的系统分析,能够基本上获得系统的需求,并且按照系统的需求进行之际的系统设计工作。
1 系统描述
本系统是以计算机软件技术为基础,利用VisualFoxpro 编程技术进行编程设计的软件系统。
2 系统功能
本系统具有输入、输出、查找、配送等功能,完成信息的显示。
3 系统用户及其特点
本系统的使用对象是企业的管理人员和库存工作人员,只要懂得计算机的基本操作就能够使用本系统。
4 系统运行环境
Windows2000 以上操作系统,VF 软件系统,需要懂一定编程知识人员。
5 技术可行性分析
本企业拥有足够量的必须计算机软硬件,并且拥有熟悉计算机技术员工,因此本企业具备本系统的运行条件。
1 费用估计
(1)计算机若干台以及必要支持软件
(2)系统的开发费用及安装费用
(3)人员培训费用
(4)系统日常运行耗费
2 效益估计
(1)直接效益
本系统的应用可以减少信息处理的成本,提高企业运营效率,降低运营成本。
(2)间接效应
本系统的应用可以改善信息获得性,提高执行者的办事效率。
本系统的特点是成本较低,给企业所带来的效益要高于系统应用的费用,因此,本系统在经济上是可行的。
1.3 系统业务流程的调查和分析
本系统服务于快递公司的业务。
处理单据,数据统计,报表打印,单据查询以及数据库维护等
系统功能有:
1 数据的添加、删除和修改
2 派送单查询、接收单查询、投诉单查询以及未派送的快件查询等查询功能。
3 对某一段时间内的数据进行统计
4 打印详细报表
5 基本资料维护及用户权限等
6 数据库的备份与还原
图1-1 快递管理业务流程图
图1-2 快递管理业务流程简图
1.3.2 系统规划
单据处理、数据统计、单据查询、报表打印、数据库维护、权限管理1)数据的录入(添加、删除和修改)
2)派送单、接收单、投诉单等的查询
3)某一段时间内的数据进行统计
4)打印详细报表
5)基本资料的维护
6)数据库的备份与还原
7)权限管理
1.4 系统数据流程的调查和分析
图1-3 快递管理数据流程图
1.5数据库设计
1.5.1概念结构设计
(1)数据库表
图4-1数据库表
(2)E-R 图
收件单(接收单号,发站,运输方式,…,快递员号)
派送单(派送单号,接收单号,发站,运输方式,…,快递员号,)中转单(中转单号,发站,运输方式,…,快递员号)
投诉单(投诉单号,派送单号,接收单号,货物编号,原因)
快递员(编号,姓名,手机,住址,宅电)
品名维护(编号,品名,备注)
备注维护(编号,备注)
(1)创建数据库
使用vf创建数据库“ KD再在数据库KD中新建9张数据表
综合快递物流信息系统表汇总
(2)设计数据表
表名:fj_lr 派送单记录表
表名:投诉单记录表
表名:Userl 用户信息表
表名:Kuaidiyuan 快递员信息表
1.6数据字典
数据字典的组成
数据字典有6类条目:数据项、数据结构、数据流、数据处理、数据存储和外部实体。
(1)数据项
是数据的最小单位,是不可再分的数据单位。
如学号,姓名等。
对数据项的描述一般包括:数据项的编号、名称、别名和简述,数据项的类型、长度和取值范围等。
表一:数据项描述一派送单编号
表二:数据项描述一运输方式
(2 )数据结构
数据结构描述了数据项之间的关系,由数据项或者数据结构组成。
一个简单的数据结构由数据项组成,而复杂的数据结构则包含了其他数据结构
对数据结构的描述包括:数据结构的编号、名称、简述、数据结构的组成等。
表三:数据结构描述一品名信息
表四:数据结构描述一快递员信息
表五:数据结构描述一一用户信息
表六:数据结构描述一一备注信息
(3)数据流
数据流用来描述数据的流动过程,由一个或一组固定的数据项组成。
可以是一个已定义的数据结构,也可以由若干数据项组成。
表七:数据流描述一派送单
表八:数据流描述一接收单
表九:数据流描述一投诉单
表十:数据流描述一中转单
第二章系统设计2.1功能结构图
图2-1系统功能结构图
2.2代码设计
接收单号代码表
货物代码表
008 —饮料
009 —其他
2.3输入输出设计
(1) 输入设计的任务
根据具体业务要求,确定适当的输入形式,使信息系统获取管理工作中产生的正确信息。
(2) 输入设计的内容
1 •输入界面设计。
根据具体业务要求确定(详见主界面设计和各模块设计) 。
2. 输入设备选择:键盘--磁盘输入装置。
数据录入员通过工作站录入,经拼写检查和可靠性验证后存入磁记录介质。
图2-2信息录入界面
(1)输出设计的内容
1. 输出信息使用情况。
信息的使用者、业务统计、业务查询、信息量等。
2. 输出信息内容。
派送单据、业务单据、统计业务量等。
3. 输出格式。
如表格、报告等。
4. 输出设备和介质,设备:如打印机、显示器等;介质:如磁盘、磁带、纸张等。
图2-3信息查询输出图
第三章系统实现
3.1登录模块设计
启动程序,首先进入登录模块,该模块用来确认用户身份,保证数据的安全性。
在该模块中使用了TDBLookupListBox 组件,该组件能将被查找字段的值自动添加到它的列表中,用户可以在该组件中选取用户名进行登录。
1)新建窗体,设置BorderStyle属性(边框类型)为“ bsNon6',在窗体上放置一个Tlmage
组件,设置其Stretch属性为“ true ”图片放大或缩小以Tlmage组件边框为准,pictures 属性选择图片(背景图片)。
2)在Tlmage组件上放置一个TDBLookupListBox组件,设置Ctl3D属性为“ False ”; 设置ListSourse 属性为“ dm.dsuser1table ” ;设置KeyField 属性为“ name ;设置ListField 属性为“name 0在窗体上添加一个TEdit组件,设置Ctl3D属性为“ False ” ; 设置passwordChar 属性为“ * ”。
3)在TImage组件上放置两个TBitBtn组件,为了按钮的美观,设置其Glyph属性加载按钮图片。
主要的代码在单击【登录】按钮和【取消】按钮。
单击【登录】按钮,系统在数据库中查找与用户输入的“用户名”和“密码”相符的记录。
如果有,则用户可以登录,如果没有且输入3次都不正确,系统将自动退出。
单击【取消】按钮,退出系统。
(代码详见附录)
3.2 主界面设计
主窗体设计在系统中占据很重要的地位,因为只有界面友好、操作方便的软件才能被用户所接受。
本系统使用TSpeedButton组件作为工具栏按钮,使用TTreeView组件作为功能目录树,使用TStatusBar 组件显示当前系统状态信息
3.3 数据模块设计
数据模块是将连接和处理数据的数据库组件统一规范管理的模块,在设计期间数据模块是以窗口的形式显示在界面中的。
但是不可以向数据模块中加入可视化组件,因为该模块不会在系统运行时显示出来。
使用数据模块进行数据库设计与数据处理有以下优点:
1.便于数据库的移植?
2.增加了程序的清晰性
3.可以最大程度的实现代码重用
总之,可以将数据集全部放在数据模块中,这样可以方便地设置数据关联等,而且数据处理起来也相对方便,因为不需要在工程文件中去寻找对应的数据集。
?
3.4 信息录入模块设计
信息录入模块包括快件接收录入、快件派送录入、快件中转录入和客户投诉录入等板。
图3-8 快件派送录入界面
图3-9 快件接收录入
图3-10 快件中转录入
图3-11 客户投诉录入
3.5 信息统计模块设计
信息统计模块包括快件接收统计、快件派送统计、快件中转统计、客户投诉统计和大客户运量统计等板块。
其中未派送统计是多表联系查询统计。
派送统计:主要负责功能是统计在某一段时间内的派送的物品的重量和派送费用并且有相应的打印模块可以打印报表。
相应的主要代码:
procedure Ttj_paisong.BitBtn1Click(Sender: TObject);
begin
begin
messagebox(self.Handle,' 起始日期不能大于终止日期',' 提示信息
',mb_iconinformation);
Exit;
end;
' and ps_date<=cast(:date2 as datetime)' ;
dbedit1.DataSource:=dm.dssearch0 ;
dbedit1.DataField:=' 总重量';
dbedit2.DataSource:=dm.dssearch0 ;
dbedit2.DataField:=' 派送费合计';
end;
图3-12 派送统计界面接受统计:主要负责对一段时间内的收件进行显示和重量计算。
图3-13 接收统计界面未派送统计:具有相当重要的意义,因为快件派送统计、快件中转统计、客户投诉统计和大客户运量统计等,只是用来当做月末或季度末的结算功能使用;而未派送统计则是对工作有较大的意义,可以查到一段时间之内,还未派送的快件,便可以查看这些快
dbedit2.DataField:=' 派送费合计 件有无缺失或者根据时间安排相应的派送顺序。
具体实现为 :DBGrid 连接到 dm : data dmunit 中的 TDataSource TADODataSet
TADOConnection ( 与相应数据库连接 )
相应的SQL 语句为:
select js_id ‘票据号 ', send_station
name ‘品名 ',weight ‘ 重量 ',rece_person datetime)and js_id not in(select js_id from fj_lr where fj_lr.js_id=js_lr.js_id)
图 3-14 未派送统计界面
大客户运量统计:主要用于对大型客户设计的信息统计。
只要输入相应的客户名,便 可以对相应时间段内或者该客户所有订单进行查询。
是专门为有大量业务的会员量身定 做的。
相应的主要代码:
' rece_person '' 客户名称 '', ps_date '' 发件日期 from fj_lr ' +
' where rece_person like+''%''+'''+str+'''+''%'' and
ps_date>=cast(:date1 as datetime) '+
' and ps_date<=cast(:date2 as datetime)';
dbedit1.DataSource:=dm.dssearch0 ;
dbedit1.DataField:=' 总重量 ';
dbedit2.DataSource:=dm.dssearch0;
发站 ', send_mode ‘运输方式 收货人 ', js_date ‘收件日期
from js_lr where js_date>=cast(:date1 as datetime) and js_date<=cast(:date2
as
end;
end;
图3-15 大客户运量统计界面
统计打印报表设计:提取相应的界面上和数据库中的数据,制成一张打印报表,供发放给其他操作员,例如快递员或业务经理等。
主要实现:调用相应的打印报表界面。
在打印报表界面中实现,具体见报表实现部分。
主要代码:
procedure Ttj_customer.BitBtn2Click(Sender: TObject);
begin
try
except
Application.MessageBox(' 错误。
',' 提示!',mb_ok);
end;
end;
3.6 信息查询模块设计
信息查询模块包括快件接收查询、快件派送查询、快件中转查询、客户投诉查询和未派送快件查询等板块。
其中快件接收查询、快件派送查询、快件中转查询和客户投诉查询是简单的单表查询;未派送快件查询是多表查询。
下面主要从快件接收查询、快件派送查询和未派送快件查询为例子来介绍本文的信息查询模块设计。
select js_id ‘接收单号',js_id ‘票据号',station ‘发站',send_mode ‘运输方式',name ‘品
fjfee ‘派送费',ps_date ‘派送日期'
from js_lr
where ps_date>=cast(:date1 as datetime) and ps_date<=cast(:date2 as datetime)
图3-17 快件接收查询
select fj_id ‘派送单号',js_id ‘票据号',station ‘发站',send_mode ‘运输方式',name
‘品名',weight ‘重量',rece_person ‘收货人' ,
fjfee ‘派送费',ps_date ‘派送日期'
from fj_lr
where ps_date>=cast(:date1 as datetime) and ps_date<=cast(:date2 as datetime)
图3-19 快件派送查询
select js_id ‘票据号', send_station ‘发站', send_mode ‘运输方式',
name ‘品名',weight ‘ 重量',rece_person ‘ 收货人', js_date ‘收件日期' from js_lr where 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)
图3-20 未派送快件查询
messagebox(self.Handle,' 起始日期不能大于终止日期',' 提示信息',mb_iconinformation);exit; end;
dbedit1.DataField:=' 总重量';
end;
3.7 报表设计
报表是管理系统中最为重要的组成部分之一,它是一种主要的数据输出手段,可以
把数据打印出来以供查询或备份保留。
设计步骤:
1. 在工程中新建一个窗体。
2. 在窗体中添加TQuickRep 组件,即报表的主体。
3. 在该窗体的implementation (实现部分)加语句uses dmunit; (数据模块窗体明)
(这是关键一步,否则数据模块的信息无法在他的“ Object Inspector ”窗口中显示)。
4. 设置TQuickRep组件的DataSet属性为“(数据库中相应表)”报表的设计
5. 最后一步,也是将报表与调用它的窗体连接的关键,先在调用它的窗体的implementation (实现部分)加语句uses 报表窗体名;再在调用它的窗体的连接按钮(常常为打印按钮)中加代码:窗体名.TQuickRep组件名.Preview;
第四章心得体会
这次实训我学到了多知识,开发设计一个系统是有相当高的难度的,要求能够利用系统分析的过程与方法,结合企业物资管理子系统业务流程图、数据流程图、数据字典所学的知识,并结合网络,图书馆搜集到的各种各样的材料,进行分析取舍对整体管理信息系统的结构功能。
从系统的需求分析到系统的设计再到系统的实现都必须要细心,尤其是在代码设计这一部分,三年多来所学到的知识都在这一块儿联系综合起来了,平常学习考试的难度和这种相比起来简直是太简单了,我们平常运用到的就是基础的知识和操作技巧,要自己动手做时还得翻翻书多问问摸索才可以做好。
小组作业的经历总是美好的,大家一块儿讨论,分配任务,组合修改,各抒己见感觉挺不错的。
这次课程设计使我有了一次通过理论联系实际,来解决实际问题的经历,它培养了自己分析问题,解决问题的能力,以及上网检索信息的能力。
其实学到的知识其实是次要的,重要的是我们探索知识的过程,
这个过程便是一个人自主学习能力的体现,以及小组合作团队的实践。