《应用面向对象程序设计方法实现列车运行图绘制.pdf》由会员分享,可在线阅读,更多相关《应用面向对象程序设计方法实现列车运行图绘制.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、研究与开发 RESEARCH AND DEVELOPM ENT 团黑 第 14 卷 第 1 期 V o114 N O I 文章编 号:1 0 0 5 8 4 5 1(2 o o 5)O l O O O 4-0 3 应用面向对象程序设计方法实现列车运行图绘制 徐炜,(大连 交通 大学,郭宇明 大连1 1 6 0 2 8)摘要:介绍面向对 象编程方法,阐述用其方法完成列车运行 图的绘制过程,并且介绍列车运行图编制 系统 中所涉及的各种 问题及解决方法。关键诃:V i s u a l c+;面向对象;程序设计;列车运行 图 中图分类 号:U 2 9:T P 2 7 3 文献标i j:码;A E s
2、t a b l i s h m e n t o f t r a i n d i a g r a m w i t h Ob j e c t Or i e n t e d P r o g r a mmi n g XUWe i GUOYu-mi n g (D a l i a n J i a o t o n g U n i v e r s i t y,Da l i a n 1 1 6 0 2 8,C h in)A b s t r a c t:T h e O b j e c t O r i e n t e d P r o g r a m mi n g(O O P)w a s i n t r o d u
3、c e d E m p h a s i s w a s p u t u p o n t h e i l l u s t r a t i o n w h i c h t h e t r a i n d r a m0 f 吲 瑚咖p r o c e s s w a s a c h i e v e d b y u s i n gt h eO OP Av a r i e t yo f s o l u t i o n p r o j e c t s we r e i n u o d u c e df o r s o l v i n gt h e p r o b l e msi n v o l v e d
4、i nt h ewo r k o u t s y s t e m o ft h et r a i nd i a g r a m Ke y wo r d s:Vmml c-:O b j e c t-o r i e n t e d;p r o g r a m d e s i g n;t r a md g r a m 列车 运行 图是铁路行车 组织的 基础,列车运行 图编制质量和编制周期的长短,直接影响着铁路 运输 的经济效益 和社会效益。传统的列车运 行图都 是手 工绘 制,字 迹和线 条不清,修 改 困难,而且 占 用 了行 车组织 人 员和车站 调度人 员的大量时 间,必 须采用更快和更方便的
5、方法才能适应社会的发展需 要。V i s u a l c+软件的推出和不断升级,其高度集成 化的基于 Wi n d o ws 下可视化的工作平 台、面向对象 的编程技术、结构化事件驱动编程技术以及数据库 方面等技术的应用使 Vi s u a l C+成为功能强大的语 言。本系统 采用此 软件 完成列车 运行 图的绘 制。1 面向对象的编程方法 面 向对 象程 序设 计 强调程 序的 分 层分 类概 念,它以抽象 为基础,描述 问题 解决 大体思想,以此为 基础,进行对象 的定义 与对 象的 展示。应 用此方法 可以解决 列车运 行图的辅 画,使调 度人 员从 繁琐的 手 工绘制 中摆脱 出来,
6、并 能高效地 完成工 作。1 1 面向对象的定义 对象(O b j e c t)是指数据和代码的结合。换一种 说法,一个对象(实例)就是一些数据表示它当前 收稿日 期:2 0 )4-0 6-0 9 作者简介:徐炜,在读硕士研究生;郭宇明,教授 状态的值的集合,及一些操作这些数据的子过程。面 向对象就是 一种 运用 对象、类、继承、封装、聚 合、消息传递和 多态性等 概念来 构造 系统 的软件开 发方法。类指一些享有共同特征的对象的集合,它 也给 了这些对 象一个与 外部联 系的公共接 口,各个 单独 的对象 通过这 些接 口互相 作用和 影响。1 2 面向对象编程方法的要素 具体的说,面向对象
7、编程方法是从客观世界中 所存在 的事物 出发,比较 符合人们 的思维 方式。首 先用具 体数据结 构来定 义对象的 属性,然后用具 体 的语句来实现服务流程图中所表示的算法。2 列车运行图的具体结构 列车 运行 图是 列车运 行计划 的图形 显示,它规 定了各次列车占用区间的顺序和时间、列车在区间 内的 各车 站的到达 和 出发的时 间、列车 在车站的停 站时 间、列车在 区间的运 行时 间及机车交路,列 车 运行 图同时又是 与运输有关的各部 门工作的总计 划,铁路局内与行车有关的调度指挥部门、运输组 织和管理部门、运输生产部门均依据此运行图制定 各部 门的 工作计划。列车运行图是运用坐标原
8、理来表示列车运行的 一种 图解方式,列车运行图的横坐标表示时间,纵 维普资讯 http:/ 第 1 4卷第 1期 也面向对象程序设计方法实现列车运 行图绘制 研究与开发 坐标表示距离,并用水平线代表各个车站的中心线 位置,在运行 图上用右 上斜线 代表上 行列车,用右 下斜线 代表下行 列车,列车运 行线 与水平 线的 交点 就是 列车在每 个车 站到、发或 通过 的时 间。时 间范围为 2 4 h,车站范围是一个调度区段。横 轴按一 定 比例 用竖线划 成等分,称 为时分线;纵 轴 根据运行时分按比例用横线加以划分,称为站名 线;根据 列车的 到发时 间在各 个区段上 画出列车运 行 的斜线
9、,称为 列车运 行线。列 车运行 图从 时 间上 可以分 为二分格运 行 图、十分格运 行 图和 小时格运 行 图,其 中二分格 和十 分格主要是 用于编制 列车运 行 图,日常调度管 理主要 使用十分 格运行 图。此 系 统 主要 实现 了十分格 运行 图的绘 制。3 列车运行图的辅画 3 1 列年运行图坐标底图的铺I 田 j 在列车运 行 图的显示界面 上,窗 口划分 为 4个 部分:菜单及工具栏区、图形区和状态栏区。其中 图形 区又 可分 为站名 区、时 间区和 运行 图区。运行 图坐标 系的确定与车站信息有关。时间轴的长度由 运行 区的宽 度来确定,车站轴 的总长 度 由运行 图的 高
10、 度来确 定。3 2 列年运行图系统的体系结构 在 MF C 内库 的基础 上开 发程序,主 要建立 在 Vi e w Do c结构上的 S DI 或 MDI 结构,类定义是面向 对象程 序设计 中的基础 问题,对象定 义是 面 向对 象 程序设计 的一般 操作。C+封装的基 本单元,它把数 据和 函数封 装在 一起。根据需要 列 出了列车运行 图系统设计 的体 系 结构:(1)列车运行 图应用程序 的 Cc t c y x t Ap p类是一 个 Cwi n Ap p派生类,它作为运行 图程序的容器,使 各类产 生的消 息映射 等都 传递给 它 的所有成 员;(2)列车运行 图程序的 Cc
11、t c y x t F r a me Wn d类是 程 序的应 用框架 窗 口类;(3)列车运行 图程序 的 Cc t c y x t Do c类实现数据 库中数据的存取;(4)列车运行图程序的 Cc t c y x t Vi e w类为实现运 行图的控制中心,根据不同的需求从而调用不同的 函数,将交互 的需要 信息、分 配到不 同的对 象;(5)列车运行图中的 C c c l x S e t 类、C c t c y x t S e t 类 和 Cc z b S e t 类来建立 与数据库的连接,通过这几个类 就可以与数据库中所需要的各表建立联系;(6)列车运行图程序的C G l o b l
12、D a t e 类用于读取 数据库的信息。其 中封装了全部列车时刻表的数 据、车站数 据、区间数据、列车类型数 据等和相 应 的数据操作,并 向其 他数据对 象提 供数据 支持,同 时运行 图控制 台可以通 过相 应的接 口维护 该数据;(7)在此体系中自定义了两个类,即 C D L i n e 类 和 CUn i t 类,其 中,CDLi n e类用于铺 画各类的直 线 以及读取各种类型线的信息,而 C Un i t 类中设置了 各个类中需要的基础信息。3 3 铺画十分格列车运行图程序流程 首先从数据库中读取相关数据,主要是列车在 各区间到发的时 间,从而在底 图中进行辅画运 行 线。然 后
13、根据运行 线的种 类绘制相应 的线 型,如 图 1所示。图 1 运行图绘制流程图 面 维普资讯 http:/ 研究与开发 第 1 4卷第 1 期 4 系统开发过程中的关键技术 4 1 各种类型运行线的实现方法 铁路列车的基本种类有旅客列车、货物列车、摘挂列车、路用列车、小运转列车和单机等,不同 种类 的列车在 运行 图中的显示,其运行 线的形状 与 颜色是 不同的。有几 种类型的 列车运行线 需要我 们 自己来 构造,通 过 自己的构造来 显示所需 要的列 车 运行 线。摘挂列车 +I +I 路 用 列车 o o o o 单 机 重 型轨 道 轻 油 列车 我 们 构 造 出 不 同 的 函数
14、 来 实 现 各 种 类 型运 行 线,系统建立函数L i n e T a p e 1(P d c,c f,d d,m),在此函 数 中实现具体的绘制。利用平面解析几何的有关方 法,确定了相关元素的若干个关键点的参数坐标,通 过调用 VC中的函数 Mo v e T o()和 Li n e T o()以 及 El l i p s e()函数,就 可以实现具体的绘制 了。以 列车类 型运行线 为例,详细 叙述具体 绘制方 法。以 区间为最 小单位,可以得到此 区 间内的到发 时间,这样就可以得到出发点,首先,以此点为起 点画一 条线,再 以此线 的终 点为 画圆的一个 点,应 用 函数 E l l
15、 i p s e()H Il 可画一个 圆。其它类型的运行线采用相类似的方法也可以 实 现。4 2 车次旋转方法 在运行图中需要标注车次,有的车次必须标在 与运 行线相平 行的 位置,既 不能挡住 运行线,也不 能 覆盖运 行线 上的其 它信 息。(1)旋转 字体 列车运 行图 中的 车次在运 行线上 方输 出,要旋 转一定的角度。旋转字体通过调用 Wi n d o ws图形设 备接 口的字体对象的创建 函数 C r e a t e F o n t(),调用此 函数 就可 以实现 字体 的旋转。(2)旋转角 度 每 个车次输 出时 角度是不 同的。因为列车运 行 线在各 区 间的 出发、到 达
16、时 间的不同,上 行车和 下 行车输出角度不同,邻站停车和通过在区间的运行 时分也 不 同,导致 车次输 出角度的 不同。本系统根据列车出发和到达点的时刻坐标(c f l,d d 1),(c f 2,d d 2),计算列车运行线上的倾斜角度 仅,0【=a r c t a n【(d d 2一d d 1)(c f 2一c f 1)】就是字体旋转角度,这就可以得到了字体和 列车线平 行输 出 的结 果 了。4 3 过表问题解决方法 所谓过表是指列车运行线在一个区间内跨越了 十 八点。过表 列车运行 线是将 一条运行 线截成两 条 运行线 段分别进行绘制,关键是 截断点 Y坐标 的计 算。如图2所示。
17、5 结束语 C点的横坐标 Xc是 L的长度 A点坐标(Xa,Y a),B点坐标(Xb,Yb)Y c=Yb+X b,(Y a-Y b)L Xa+X b】图2 截断点的 Y坐标 在计算机编S U 1 车运行图的系统上引入了 OO P 的设计方法,借助于 VC6 0提供 的 MF C,在此基础 上构造出具有模块化、信息封装、隐藏、抽象性、继 承性和可维护性的运行图软件系统。应用面向对象 程序设计方法,有效地解决了列车运行图的计算机 绘制。通过计算机提取列车时刻数据 自动生成运行 图系统,列车运行 管理繁 重的手工制 图工 作实现 了 自动 化,提 高 了工作效 率。6 致谢 衷心 感谢我的导 师郭 宇明提供给 我的这次 学 习 的机会,以及给予的帮助和支持。感谢北京交通大 学 的王秀 娟老师和吴 江骄 老师在此期 间所给予 的指 导 和帮 助。参学文献:【l】吕风 翥 C+语 言程序 设计【M】北京:电子工业 出版社,2 0 01 2】Da v i d J K r u g l i n s k i V i s u a l c H 技术内幕 M】北京:希望电子 出版 枉,2 0 0 2 3】廖天成列车实绩运行图信息管理系统的设计与实现 D】北京:北京交通大学,2 0 0 0 维普资讯 http:/