铁路各个客运车站分布距离相对比广泛,操作人员的水平参差不齐,这就要求软件的可靠性和简单易操作性必须要强。“铁路行包管理系统”开发工具采用的是Delphi 7.0,数据库采用的是Microsoft公司的SQL Server 2000。
3.1 数据库设计在行包配装算法中主要用到车次信息、停靠站信息、行包信息和行包种类优先级信息等。车次和车次停靠站是两个基础数据信息,这两个表的字段定义如表2 和表3所示。是行包配装的重要依据。
表2 CCB—车次信息表
字段名
类型
中文说明
TrainNumber
Varchar(10)
车次
StartStation
Varchar(16)
始发站
ArriveStation
Varchar(16)
终到站
ArriveTime
datetime
到站时间
StartTime
datetime
发车时间
UseTime
Int
运行时间
Distance
Int
里程
Weight
Int
载重重量
Capability
Float
车厢容积
表3 TKZB—停靠站信息表
字段名
类型
中文说明
TrainNumber
Varchar(10)
车次
StationName
Varchar(16)
站名
StationSeriel
Int
站次
ArriveTime
datetime
到站时间
StartTime
datetime
发车时间
RunTime
Int
运行时间
RunDay
Int
运行天数
Distance
Int
里程
CrossL
Boolean
中转站标志
表2 和表3的数据可以从铁路管理信息系统(TMIS)的客运制票数据库服务器中导出,铁路局下面的每个车站直接导入使用。行包信息表的字段定义如表4 所示。行包信息表中包括始发货物和中转货物。
表4:XBXX—行包信息表
字段名
类型
中文说明
TicketNumber
Varchar(7)
票号
PackageName
Varchar(20)
品名
ArriveStation
Varchar(16)
到站名称
Distance
Int
到站里程
PackageType
Int
行包类别
PackType
Varchar(16)
包装种类
Number
Int
件数
Weight
Int
重量
Volume
Float
体积
InsureMoney
Int
保价金额
LimitedDay
Int
运到期限
Freight
Float
运费
TicketTime
datetime
制票时间
maxb
int
装载效益
3.2 关键程序设计行包配装的目的是从所有的行包X中挑选出要装车的行包x。基于前面数学模型分析,程序设计将根据行包配装的约束条件,采取逐步剔除不符合装车条件的行包,生成最终装车单,具体的程序设计流程如图3所示。
3.2.1 根据到站选择装车行包