国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

機(jī)車(chē)周轉(zhuǎn)圖編制與查詢(xún)系統(tǒng)設(shè)計(jì)

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

李玉潔 高元 薛景嶸

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

關(guān)鍵詞:機(jī)車(chē)周轉(zhuǎn)圖;程序;數(shù)據(jù)庫(kù)

中圖分類(lèi)號(hào):U292? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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? 引? 言

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

1? 系統(tǒng)介紹

1.1? 設(shè)計(jì)需求

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

1.2? 系統(tǒng)功能

根據(jù)以上設(shè)計(jì)需求的分析,機(jī)車(chē)周轉(zhuǎn)圖編制和查詢(xún)系統(tǒng)應(yīng)該有如下功能:

第一,根據(jù)從數(shù)據(jù)庫(kù)篩選的數(shù)據(jù),自動(dòng)地以圖形的形式顯示出來(lái),即將有關(guān)數(shù)據(jù)轉(zhuǎn)換成機(jī)車(chē)周轉(zhuǎn)圖,在屏幕上顯示出來(lái)。

第二,用戶(hù)可輸入機(jī)車(chē)號(hào)查詢(xún)某一臺(tái)機(jī)車(chē)的機(jī)車(chē)交路,將其顯示在屏幕上。

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

2? 數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)

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

3? 系統(tǒng)設(shè)計(jì)

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

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

3.2? 界面設(shè)計(jì)

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

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

系統(tǒng)分為三大模塊:登錄模塊、繪圖模塊和查詢(xún)模塊,繪圖模塊又分為底圖繪制、列車(chē)運(yùn)行線(xiàn)繪制和機(jī)車(chē)交路繪制三部分,查詢(xún)模塊分為列車(chē)運(yùn)行時(shí)刻表查看、機(jī)車(chē)任務(wù)表查看和機(jī)車(chē)交路查看三部分。模塊結(jié)構(gòu)如圖1所示。

3.2.2? 繪圖系統(tǒng)

繪圖系統(tǒng)分為底圖繪制,列車(chē)運(yùn)行線(xiàn)繪制和機(jī)車(chē)交路繪制。在底圖的繪制過(guò)程中,首先需要確定新的坐標(biāo)原點(diǎn)。定義原坐標(biāo)原點(diǎn)為(X0,Y0),由于是在pictureBox控件上繪

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

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

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

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

Graphics g = Graphics.FromImage(image);

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

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

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

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

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

3.2.2.1? 列車(chē)運(yùn)行線(xiàn)繪制

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

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

3.2.2.2? 機(jī)車(chē)周轉(zhuǎn)圖繪制

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

(1)上行列車(chē)和下行列車(chē)都在0點(diǎn)以后出發(fā)18點(diǎn)以前到達(dá):

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

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

(2)上行列車(chē)在0點(diǎn)以后出發(fā)18點(diǎn)以前到達(dá),下行列車(chē)在0點(diǎn)以后出發(fā)18點(diǎn)以后到達(dá),并且上行列車(chē)的到達(dá)在下行列車(chē)的出發(fā)之前。

(3)上行列車(chē)在0點(diǎn)以后出發(fā)18點(diǎn)以前到達(dá),下行列車(chē)在18點(diǎn)以后出發(fā),次日0點(diǎn)以前到達(dá)。

(4)上行列車(chē)在0點(diǎn)以后出發(fā)18點(diǎn)以前到達(dá),下行列車(chē)為前一天18點(diǎn)以后出發(fā),當(dāng)日0點(diǎn)以后到達(dá)的列車(chē),并且下行列車(chē)在上行列車(chē)出發(fā)前到達(dá)。

(5)下行列車(chē)在前一天18點(diǎn)以后出發(fā),當(dāng)日0點(diǎn)以后到達(dá),上行列車(chē)在0點(diǎn)以后出發(fā),18點(diǎn)以后到達(dá)。

(6)下行列車(chē)0點(diǎn)以后出發(fā),18點(diǎn)以前到達(dá),上行列車(chē)在0點(diǎn)以后出發(fā),18點(diǎn)以后到達(dá)。

(7)上行列車(chē)在前一天的18點(diǎn)以后出發(fā),當(dāng)日0點(diǎn)之前到達(dá),下行列車(chē)在當(dāng)日0點(diǎn)以后出發(fā),18點(diǎn)以前到達(dá)。

(8)上行列車(chē)在前一天的18點(diǎn)以后出發(fā),當(dāng)日0點(diǎn)之后到達(dá),下行列車(chē)在當(dāng)日0點(diǎn)以后出發(fā),18點(diǎn)以后到達(dá)。

在本系統(tǒng)中只能繪制一天內(nèi)的周轉(zhuǎn)情況,因此只考慮一臺(tái)機(jī)車(chē)一天能夠完成一對(duì)列車(chē)牽引任務(wù)的情況。

繪制機(jī)車(chē)周轉(zhuǎn)圖以及機(jī)車(chē)編號(hào)和列車(chē)車(chē)次標(biāo)注的核心代碼如下:

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);

所有機(jī)車(chē)的機(jī)車(chē)周轉(zhuǎn)圖如圖3所示。

3.2.3? 查詢(xún)系統(tǒng)

查詢(xún)系統(tǒng)包括列車(chē)運(yùn)行時(shí)刻表查詢(xún)、機(jī)車(chē)任務(wù)表查詢(xún)和以機(jī)車(chē)號(hào)查看機(jī)車(chē)交路。列車(chē)運(yùn)行時(shí)刻表的查詢(xún)需要將數(shù)據(jù)庫(kù)中的列車(chē)運(yùn)行時(shí)刻表顯示屏幕上,并在點(diǎn)擊某一列車(chē)車(chē)次時(shí)會(huì)顯示與這一列車(chē)相關(guān)的機(jī)車(chē)交路,機(jī)車(chē)任務(wù)表的查詢(xún)和列車(chē)運(yùn)行時(shí)刻表的查詢(xún)相同,以機(jī)車(chē)號(hào)查看機(jī)車(chē)交路是指在輸入框中輸入機(jī)車(chē)號(hào),將會(huì)在屏幕上顯示對(duì)應(yīng)的機(jī)車(chē)交路,如圖4所示。

4? 結(jié)? 論

本次設(shè)計(jì)的主要特點(diǎn)是系統(tǒng)可在已知列車(chē)運(yùn)行時(shí)刻和機(jī)車(chē)牽引任務(wù)的條件下自動(dòng)勾畫(huà)機(jī)車(chē)交路,實(shí)現(xiàn)機(jī)車(chē)周轉(zhuǎn)圖的自動(dòng)編制。用戶(hù)可查看機(jī)車(chē)周轉(zhuǎn)圖、對(duì)列車(chē)運(yùn)行時(shí)刻和機(jī)車(chē)牽引任務(wù)進(jìn)行查詢(xún),并在列車(chē)運(yùn)行時(shí)刻表和機(jī)車(chē)任務(wù)表中點(diǎn)擊某一車(chē)次,可查看這一車(chē)次的機(jī)車(chē)交路,也可以通過(guò)輸入機(jī)車(chē)號(hào)查看某一臺(tái)機(jī)車(chē)的周轉(zhuǎn)情況。

參考文獻(xiàn):

[1] 閆海峰,崔燚.編制機(jī)車(chē)周轉(zhuǎn)圖的優(yōu)化模型 [J].中國(guó)鐵道科學(xué),2006(4):123-128.

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

[3] 易光宇,沈路.計(jì)算機(jī)編制機(jī)車(chē)周轉(zhuǎn)圖的實(shí)現(xiàn)方法 [J].長(zhǎng)沙鐵道學(xué)院學(xué)報(bào)(社會(huì)科學(xué)版),2002(2):92-94.

[4] 陳小明,王小平.計(jì)算機(jī)編制機(jī)車(chē)周轉(zhuǎn)圖的應(yīng)用 [J].鐵道運(yùn)營(yíng)技術(shù),1999(2):65-67.

[5] 趙偉.機(jī)車(chē)周轉(zhuǎn)問(wèn)題的研究 [D].蘭州:蘭州交通大學(xué),2016.

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

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

[8] 陳廣秀.計(jì)算機(jī)編制機(jī)車(chē)周轉(zhuǎn)圖系統(tǒng)優(yōu)化設(shè)計(jì) [D].成都:西南交通大學(xué),2007.

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

猜你喜歡
程序數(shù)據(jù)庫(kù)
給Windows添加程序快速切換欄
簡(jiǎn)化化學(xué)平衡移動(dòng)教學(xué)程序探索
簡(jiǎn)化化學(xué)平衡移動(dòng)教學(xué)程序探索
“程序猿”的生活什么樣
數(shù)據(jù)庫(kù)
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)