• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      機車周轉圖編制與查詢系統(tǒng)設計

      2019-09-10 07:22:44李玉潔高元薛景嶸
      現(xiàn)代信息科技 2019年22期
      關鍵詞:程序數(shù)據(jù)庫

      李玉潔 高元 薛景嶸

      摘? 要:針對機車周轉圖的計算機編制,利用C#編程語言和Access數(shù)據(jù)庫進行機車周轉圖的編制和查詢系統(tǒng)的設計。主要介紹繪圖和查詢,有列車運行圖底圖的繪制、列車運行線的繪制、機車周轉圖的繪制以及對數(shù)據(jù)庫的查詢。文中利用坐標轉換、時空轉化、雙緩沖繪制圖像和縮放功能等具體措施解決了坐標不統(tǒng)一、時空不一致、圖像閃爍和縮放不靈活等問題。

      關鍵詞:機車周轉圖;程序;數(shù)據(jù)庫

      中圖分類號:U292? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)22-0018-05

      Abstract:For the computer programming of the locomotive working diagram,the C# programming language and Access database are used to design the locomotive working diagram and query system. It mainly introduces drawing and querying,drawing of train operation base map,drawing of train running line,drawing of locomotive working diagram and querying of database. The paper uses coordinate transformation,space-time transformation,drawing images with double buffering and zoom function to solve the problems of inconsistent coordinates,inconsistency in time and space,image flicker and inflexible zoom.

      Keywords:locomotive turnover map;program;database

      0? 引? 言

      機車周轉圖是在一定的機車交路、機車運轉方式和乘務制度條件下,以列車計劃運行圖為基礎編制的機車運用計劃,是利用坐標原理表示機車運行的圖解形式。機車周轉圖是確定機車使用方式的核心,在目前許多機務段撤并的情況下,機車交路變得越來越長,每臺機車的每個交路都要行駛很長的距離,機車的使用情況變得越來越復雜,傳統(tǒng)的機車周轉圖的人工勾畫和調(diào)整方法已經(jīng)很難適應當前這個形式多變、自動化和信息化的社會的需求。閆海峰[1]等指出現(xiàn)有的計算機編制機車周轉圖的算法有兩種:一種是將尋求機車最優(yōu)周轉方案問題轉化為運籌學中的指派問題,用傳統(tǒng)算法求解;另一種是建立網(wǎng)絡模型,將問題轉化為最小費用最大流問題。馮伍等人[2]提出了編制成對和不成對機車周轉圖的一種簡便算法,即重要性原則方法。易光宇等人[3]對人工編制機車周轉圖的原則及過程作了概述,并在此基礎上,對計算機編制機車周轉圖的方法進行探討。陳小明等人[4]指出機車周轉圖微機系統(tǒng)具有的特點有:采用編程語言與繪圖工具結合設計,有較強的人機對話功能。趙偉[5]提出了對機務布局進行調(diào)整、適當延長機車交路、盡量縮短機車全周轉時間、提高機車牽引能力、提高鐵路技術速度、對機車運用方式加以改進等幾個提高機車運用效率的途徑。王瑤[6]提出了將機車周轉圖編制問題轉化為多旅行商問題的研究思路。劉永華[7]提出了機車周轉圖編制優(yōu)化的數(shù)學模型。陳廣秀[8]研究了機車周轉圖自動編制的模型和算法,并利用啟發(fā)式算法實現(xiàn)了半循環(huán)機車交路的自動編制。

      1? 系統(tǒng)介紹

      1.1? 設計需求

      在列車運行圖的編制過程中,編圖人員需要根據(jù)不同的修改意見不斷地修改列車運行圖方案,修改列車運行圖方案的過程是一個不斷反復的過程。因此,列車運行圖編圖人員需要一個編制機車周轉圖的輔助決策支持系統(tǒng),一個能夠根據(jù)某項指標的要求,按照最優(yōu)算法,很快地依據(jù)已經(jīng)完成的列車運行圖方案編制機車周轉圖的系統(tǒng),此系統(tǒng)編制的機車周轉圖應該能夠接近實際,能夠大致反應該列車運行方案對應的機車周轉圖,此系統(tǒng)編制的機車周轉圖只為列車運行圖編圖人員提供參考,而不是代替機務人員編制實際使用的機車周轉圖。并且,此系統(tǒng)可以根據(jù)一定的條件對機車周轉圖進行查詢顯示。

      1.2? 系統(tǒng)功能

      根據(jù)以上設計需求的分析,機車周轉圖編制和查詢系統(tǒng)應該有如下功能:

      第一,根據(jù)從數(shù)據(jù)庫篩選的數(shù)據(jù),自動地以圖形的形式顯示出來,即將有關數(shù)據(jù)轉換成機車周轉圖,在屏幕上顯示出來。

      第二,用戶可輸入機車號查詢某一臺機車的機車交路,將其顯示在屏幕上。

      第三,該系統(tǒng)提供查詢功能,可以查詢列車運行時刻和機車任務,并能根據(jù)列車時刻表和機車任務表查看該列車的交路。

      2? 數(shù)據(jù)庫表結構設計

      通過實體E-R圖屬性的分析,就可以實現(xiàn)對數(shù)據(jù)庫表結構的設計,其內(nèi)容包括確定數(shù)據(jù)庫對象的名稱、表中屬性、表之間的關系、表中數(shù)據(jù)大小等。本文的數(shù)據(jù)庫中包含有用戶表、列車運行時刻表、機車任務表和機車信息表。表1—表4為各表的表結構。

      3? 系統(tǒng)設計

      3.1? 數(shù)據(jù)輸入

      列車運行時刻表中的數(shù)據(jù)在鐵路售票系統(tǒng)中查得。機車任務表中的數(shù)據(jù)是根據(jù)列車到發(fā)時刻和機車在車站的整備時間等信息,通過LINGO軟件優(yōu)化得到的。并將列車運行時刻表和機車任務表中的數(shù)據(jù)以txt文本的形式導入Access數(shù)據(jù)庫中。機車信息表中的數(shù)據(jù)是通過對機車信息的查詢手動輸入數(shù)據(jù)庫的。

      3.2? 界面設計

      該系統(tǒng)有登錄界面和主界面構成,登錄界面通過用戶名和密碼的權限保證了系統(tǒng)的安全性。主界面是在from窗體上放置一個SplitContainer容器,在該容器內(nèi)放置用來點擊以實現(xiàn)各功能的按鈕和用來繪圖的PictrueBox控件。為了實現(xiàn)數(shù)據(jù)庫中數(shù)據(jù)的查詢,在主界面上放置兩個DataGridView控件。

      3.2.1? 系統(tǒng)模塊劃分

      系統(tǒng)分為三大模塊:登錄模塊、繪圖模塊和查詢模塊,繪圖模塊又分為底圖繪制、列車運行線繪制和機車交路繪制三部分,查詢模塊分為列車運行時刻表查看、機車任務表查看和機車交路查看三部分。模塊結構如圖1所示。

      3.2.2? 繪圖系統(tǒng)

      繪圖系統(tǒng)分為底圖繪制,列車運行線繪制和機車交路繪制。在底圖的繪制過程中,首先需要確定新的坐標原點。定義原坐標原點為(X0,Y0),由于是在pictureBox控件上繪

      該系統(tǒng)設計選取蘭州至天水段為牽引區(qū)段,根據(jù)列車運行圖的繪制習慣,以及蘭州至天水的上下行關系,上方橫線代表天水車站的車站中心線,下方橫線代表蘭州車站的車站中心線。在該設計中選擇1天,即24小時為一個單元,采用十分格繪制底圖。底圖繪制用到了GDI+繪圖工具中的DrawLine函數(shù)和DrawString函數(shù)。在繪制過程中起初在Timer控件的Tick事件中進行,出現(xiàn)了圖片閃爍問題,為了解決此問題,在繪制過程中運用了圖片的雙緩沖技術,在pictureBox的paint事件下繪制。實現(xiàn)雙緩沖的步驟及代碼如下:

      Step1 在內(nèi)存中建立一塊“虛擬畫布”:

      image= new Bitmap(panel1.ClientSize.Width, panel1.ClientSize.Height);

      Step2 獲取這塊內(nèi)存畫布的Graphics引用:

      Graphics g = Graphics.FromImage(image);

      Step3 在這塊內(nèi)存畫布上繪圖:

      g.DrawLine(gpen, x2, y0 + 50, x2, y1 - y0 - 50);

      Step4 將內(nèi)存畫布畫到窗口中:

      e.Graphics.DrawImage(image, 0, 0);

      雙緩沖實現(xiàn)了底圖的平穩(wěn)繪制,解決了閃爍問題。

      3.2.2.1? 列車運行線繪制

      以列車運行時刻表中的數(shù)據(jù)為基礎繪制列車運行線,其關鍵在于表中時間與圖中距離的時空轉換。將底圖中的24小時轉化為86400秒,以此將列車運行時刻表中的出發(fā)時刻和到達時刻也轉化為秒。定義X1為底圖的寬,pw為pictureBox的寬度,t為每秒在圖中代表的距離,a為列車運行時刻表中出發(fā)時刻或到達時刻轉化后的秒數(shù),轉換公式如下:

      根據(jù)底圖繪制過程中確定的坐標原點(X2,Y2),列車出發(fā)時刻或到達時刻在圖中的橫坐標為X2+s。由于底圖中的24小時是從今日18點到次日18點,繪圖過程中存在周期問題,例如,根據(jù)列車運行時間,在次日14點以后從蘭州站發(fā)出的列車會在次日18點以后到達天水站,而次日18點以后的運行線在圖中無法顯示,就要將運行線繪制在今日18點以后的對應時刻,解決此問題的方法如下:以今日18點為起點,將列車運行時刻表中的到發(fā)時刻轉換為秒,次日18點以后的在18點的基礎上換算出秒數(shù),秒數(shù)小于86400的部分在次日18點以前繪制列車運行線,秒數(shù)大于86400的部分在今日18點以后繪制列車運行線。繪制列車運行線以及標注車次的核心代碼如下:

      3.2.2.2? 機車周轉圖繪制

      以數(shù)據(jù)庫中機車任務表和列車運行時刻表中的數(shù)據(jù)為基礎繪制機車周轉圖,繪制過程用到了GDI+繪圖工具中的DrawLines函數(shù),通過DrawLines函數(shù)將同一機車所牽引的所有列車的出發(fā)時刻和到達時刻按順序繪制出來,就形成連續(xù)的機車交路。根據(jù)列車的到發(fā)時刻,同一臺機車的周轉有如下幾種可能的形式:

      (1)上行列車和下行列車都在0點以后出發(fā)18點以前到達:

      1)上行列車出發(fā)在下行列車出發(fā)之前。

      2)上行列車出發(fā)在下行列車出發(fā)之后。

      (2)上行列車在0點以后出發(fā)18點以前到達,下行列車在0點以后出發(fā)18點以后到達,并且上行列車的到達在下行列車的出發(fā)之前。

      (3)上行列車在0點以后出發(fā)18點以前到達,下行列車在18點以后出發(fā),次日0點以前到達。

      (4)上行列車在0點以后出發(fā)18點以前到達,下行列車為前一天18點以后出發(fā),當日0點以后到達的列車,并且下行列車在上行列車出發(fā)前到達。

      (5)下行列車在前一天18點以后出發(fā),當日0點以后到達,上行列車在0點以后出發(fā),18點以后到達。

      (6)下行列車0點以后出發(fā),18點以前到達,上行列車在0點以后出發(fā),18點以后到達。

      (7)上行列車在前一天的18點以后出發(fā),當日0點之前到達,下行列車在當日0點以后出發(fā),18點以前到達。

      (8)上行列車在前一天的18點以后出發(fā),當日0點之后到達,下行列車在當日0點以后出發(fā),18點以后到達。

      在本系統(tǒng)中只能繪制一天內(nèi)的周轉情況,因此只考慮一臺機車一天能夠完成一對列車牽引任務的情況。

      繪制機車周轉圖以及機車編號和列車車次標注的核心代碼如下:

      g.DrawLines(rpen, points);

      g.DrawString(s1, MyFont1, drawBrush, x2 + t * c0 + 10, y1 - y0 - 85, format);

      g.DrawString(s2, MyFont1, drawBrush, x2 + t * a1 + 30, y0 + 85, format);

      g.DrawString("1", MyFont1, drawBrush, x2 + 20, y1 - y0 - 30);

      g.DrawString("1", MyFont1, drawBrush, x2 + t * d0 + 20, y2 - 25);

      g.DrawString("1", MyFont1, drawBrush, x2 + t * d1 + 20, y1 - y0 - 30);

      所有機車的機車周轉圖如圖3所示。

      3.2.3? 查詢系統(tǒng)

      查詢系統(tǒng)包括列車運行時刻表查詢、機車任務表查詢和以機車號查看機車交路。列車運行時刻表的查詢需要將數(shù)據(jù)庫中的列車運行時刻表顯示屏幕上,并在點擊某一列車車次時會顯示與這一列車相關的機車交路,機車任務表的查詢和列車運行時刻表的查詢相同,以機車號查看機車交路是指在輸入框中輸入機車號,將會在屏幕上顯示對應的機車交路,如圖4所示。

      4? 結? 論

      本次設計的主要特點是系統(tǒng)可在已知列車運行時刻和機車牽引任務的條件下自動勾畫機車交路,實現(xiàn)機車周轉圖的自動編制。用戶可查看機車周轉圖、對列車運行時刻和機車牽引任務進行查詢,并在列車運行時刻表和機車任務表中點擊某一車次,可查看這一車次的機車交路,也可以通過輸入機車號查看某一臺機車的周轉情況。

      參考文獻:

      [1] 閆海峰,崔燚.編制機車周轉圖的優(yōu)化模型 [J].中國鐵道科學,2006(4):123-128.

      [2] 馮伍,李宗平.編制鐵路機車周轉圖的一種簡便算法 [J].鐵道運輸與經(jīng)濟,2005(9):85-87.

      [3] 易光宇,沈路.計算機編制機車周轉圖的實現(xiàn)方法 [J].長沙鐵道學院學報(社會科學版),2002(2):92-94.

      [4] 陳小明,王小平.計算機編制機車周轉圖的應用 [J].鐵道運營技術,1999(2):65-67.

      [5] 趙偉.機車周轉問題的研究 [D].蘭州:蘭州交通大學,2016.

      [6] 王瑤.鐵路機車周轉圖編制模型與算法研究 [J].鐵道運輸與經(jīng)濟,2008(9):84-87.

      [7] 劉永華.機車周轉圖編制優(yōu)化和系統(tǒng)設計探析 [J].科技與創(chuàng)新,2015(4):92-93.

      [8] 陳廣秀.計算機編制機車周轉圖系統(tǒng)優(yōu)化設計 [D].成都:西南交通大學,2007.

      作者簡介:李玉潔(1993-),女,漢族,甘肅會寧人,碩士生,主要研究方向:鐵路車流組織優(yōu)化。

      猜你喜歡
      程序數(shù)據(jù)庫
      試論我國未決羈押程序的立法完善
      人大建設(2019年12期)2019-05-21 02:55:44
      失能的信仰——走向衰亡的民事訴訟程序
      “程序猿”的生活什么樣
      數(shù)據(jù)庫
      財經(jīng)(2017年15期)2017-07-03 22:40:49
      英國與歐盟正式啟動“離婚”程序程序
      數(shù)據(jù)庫
      財經(jīng)(2017年2期)2017-03-10 14:35:35
      數(shù)據(jù)庫
      財經(jīng)(2016年15期)2016-06-03 07:38:02
      數(shù)據(jù)庫
      財經(jīng)(2016年3期)2016-03-07 07:44:46
      數(shù)據(jù)庫
      財經(jīng)(2016年6期)2016-02-24 07:41:51
      創(chuàng)衛(wèi)暗訪程序有待改進
      三穗县| 洛南县| 施秉县| 广水市| 闸北区| 潼关县| 扎兰屯市| 南开区| 德格县| 新蔡县| 文化| 集安市| 溆浦县| 奎屯市| 庆阳市| 土默特右旗| 凯里市| 宣恩县| 金川县| 阿图什市| 南开区| 甘洛县| 堆龙德庆县| 灵台县| 浪卡子县| 民勤县| 河津市| 车致| 宝鸡市| 凤阳县| 咸阳市| 民县| 柳江县| 唐海县| 革吉县| 建始县| 辰溪县| 白河县| 尉犁县| 河西区| 商南县|