版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p> 第1章 引 言2</p><p><b> 1.1目的:2</b></p><p><b> 1.2 內(nèi)容:2</b></p><p> 1.3主要任務(wù):2</p><p>
2、; 第2章 設(shè)計(jì)過(guò)程3</p><p><b> 2.1設(shè)計(jì)思路3</b></p><p> 2.1.1Floyd算法3</p><p> 2.1.2鄰接矩陣3</p><p> 2.1.3圖形用戶界面4</p><p> 2.2設(shè)計(jì)內(nèi)容及分析4</p>&
3、lt;p> 2.2.1 算法部分4</p><p> 2.2.2圖形界面處理部分:9</p><p> 第3章 總 結(jié)13</p><p><b> 附 錄14</b></p><p><b> 參考文獻(xiàn)17</b></p><p><b>
4、; 第1章 引 言</b></p><p><b> 1.1目的:</b></p><p> 發(fā)現(xiàn)課程學(xué)習(xí)中的不足和薄弱環(huán)節(jié),予以補(bǔ)充和加強(qiáng)。綜合運(yùn)用在課程學(xué)習(xí)過(guò)程中所學(xué)知識(shí),同時(shí)為了實(shí)現(xiàn)課程設(shè)計(jì)的規(guī)定成果進(jìn)行更深入的理論學(xué)習(xí)和實(shí)踐拓展。培養(yǎng)獨(dú)立思考和解決問(wèn)題的能力,探索和創(chuàng)新的能力。具體如下:</p><p> ?、艔?fù)習(xí)、
5、鞏固Java語(yǔ)言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)Java語(yǔ)言的理解和掌握;</p><p> ⑵課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生的分析解決實(shí)際問(wèn)題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力;</p><p> ?、峭ㄟ^(guò)課程設(shè)計(jì)實(shí)踐,訓(xùn)練并提高學(xué)生在查閱設(shè)計(jì)資料、運(yùn)用標(biāo)準(zhǔn)與規(guī)范和應(yīng)用計(jì)算機(jī)等方面的能力。</p>&l
6、t;p><b> 1.2 內(nèi)容:</b></p><p> 求解最短路問(wèn)題(Floyd算法);</p><p> 功能要求:實(shí)現(xiàn)Floyd算法,求解最短路問(wèn)題,用GUI界面實(shí)現(xiàn)。</p><p><b> 1.3主要任務(wù):</b></p><p> 在java開發(fā)環(huán)境下,運(yùn)用GUI用
7、戶界面技術(shù),通過(guò)Floyd算法,實(shí)驗(yàn)對(duì)最短路問(wèn)題的求解。要求通過(guò)對(duì)Floyd算法的學(xué)習(xí),掌握其原理,運(yùn)用Java語(yǔ)言來(lái)實(shí)現(xiàn)該算法流程,取得最短路方案。通過(guò)GUI界面顯示該最短路問(wèn)題的網(wǎng)絡(luò)圖,并標(biāo)記顯示出最短路的路徑。</p><p><b> 第2章 設(shè)計(jì)過(guò)程</b></p><p><b> 2.1設(shè)計(jì)思路</b></p>
8、<p> 2.1.1Floyd算法</p><p> 首先:對(duì)最短路問(wèn)題中的Floyd算法有個(gè)較為深入的了解。其基本思想可簡(jiǎn)歸納如下:floyd算法是一個(gè)經(jīng)典的動(dòng)態(tài)規(guī)劃算法。首先我們的目標(biāo)是尋找從點(diǎn)i到點(diǎn)j的最短路徑。從動(dòng)態(tài)規(guī)劃的角度看問(wèn)題,floyd算法為這個(gè)目標(biāo)重新做一個(gè)詮釋。假設(shè)Ak(i,j)表示從i到j(luò)中途不經(jīng)過(guò)索引比k大的點(diǎn)的最短路徑。它將最短路徑的概念做了限制,使得該限制有機(jī)會(huì)滿足迭代關(guān)
9、系,這個(gè)迭代關(guān)系就在于研究:假設(shè)Ak(i,j)已知,是否可以借此推導(dǎo)出Ak-1(i,j)。經(jīng)過(guò)分析,可得到最短路的關(guān)鍵式子: Ak(i,j) = min( Ak-1(i,j), Ak-1(i,k) + Ak-1(k,j) ),這是由Java實(shí)現(xiàn)Floyd算法的基本依據(jù)。簡(jiǎn)單說(shuō),依次掃描每一點(diǎn)(k),并以該點(diǎn)作為中介點(diǎn),計(jì)算出通過(guò)k點(diǎn)的其他任意兩點(diǎn)(i,j)的最短距離,這就是floyd算法的精髓。&
10、lt;/p><p> 具體做法:利用一個(gè)三重循環(huán)產(chǎn)生一個(gè)存儲(chǔ)每個(gè)結(jié)點(diǎn)最短距離的矩陣.弗洛伊德算法仍然使用圖的鄰接矩陣arcs[n+1][n+1]來(lái)存儲(chǔ)帶權(quán)有向圖。算法的基本思想是:設(shè)置一個(gè)n x n的矩陣A(k),其中除對(duì)角線的元素都等于0外,其它元素a(k)[i][j]表示頂點(diǎn)i到頂點(diǎn)j的路徑長(zhǎng)度,K表示運(yùn)算步驟。開始時(shí),以任意兩個(gè)頂點(diǎn)之間的有向邊的權(quán)值作為路徑長(zhǎng)度,沒(méi)有有向邊時(shí),路徑長(zhǎng)度為∞,當(dāng)K=0時(shí), A
11、(0)[i][j]=arcs[i][j],以后逐步嘗試在原路徑中加入其它頂點(diǎn)作為中間頂點(diǎn),如果增加中間頂點(diǎn)后,得到的路徑比原來(lái)的路徑長(zhǎng)度減少了,則以此新路徑代替原路徑,修改矩陣元素。簡(jiǎn)單概括為: </p><p> 第一步,讓所有邊上加入中間頂點(diǎn)1,取A[i][j]與A[i][1]+A[1][j]中較小的值作A[i][j]的值,完成后得到A(1),</p><p>
12、; 第二步,讓所有邊上加入中間頂點(diǎn)2,取A[i][j]與A[i][2]+A[2][j]中較小的值,完成后得到A(2)…,如此進(jìn)行下去,當(dāng)?shù)趎步完成后,得到A(n),A(n)即為我們所求結(jié)果,A(n)[i][j]表示頂點(diǎn)i到頂點(diǎn)j的最短距離。</p><p><b> 2.1.2鄰接矩陣</b></p><p> 在設(shè)計(jì)過(guò)程中,還會(huì)涉及一個(gè)重要概念:鄰接矩陣。在圖
13、的鄰接矩陣表示法中: </p><p> ① 用鄰接矩陣表示頂點(diǎn)間的相鄰關(guān)系 </p><p> ?、?用一個(gè)順序表來(lái)存儲(chǔ)頂點(diǎn)信息</p><p> 若G是網(wǎng)絡(luò),則鄰接矩陣可定義為: </p><p><b> 其中: </b></p><p> w ij 表示邊上的權(quán)值; </p&
14、gt;<p> ∞表示一個(gè)計(jì)算機(jī)允許的、大于所有邊上權(quán)值的數(shù)。</p><p> 【例】下面帶權(quán)圖的兩種鄰接矩陣分別為A 3 和A 4 。 </p><p> 2.1.3圖形用戶界面</p><p> 為了達(dá)到最終目的,又對(duì)Java中的圖形用戶界面做了簡(jiǎn)單的學(xué)習(xí),認(rèn)識(shí)到Java 不僅僅用于網(wǎng)絡(luò)開發(fā),也可以開發(fā)應(yīng)用程序。這就體現(xiàn)的GUI的作用所在
15、。在學(xué)習(xí)了窗口的應(yīng)用后,又對(duì)Graphics類,做了較多的學(xué)習(xí)。用于繪制圖形和簡(jiǎn)單的圖像處理,比如后面用到的畫直線,畫圓等.</p><p> 最后,經(jīng)過(guò)多次調(diào)試,將Floyd算法與GUI界面結(jié)合起來(lái),達(dá)到最終目的,即通過(guò)運(yùn)用Java實(shí)現(xiàn)由圖形用戶界面顯示Floyd算法。</p><p> 2.2設(shè)計(jì)內(nèi)容及分析</p><p> 2.2.1 算法部分</
16、p><p><b> 聲明部分:</b></p><p> public class Floyd {</p><p> int[][] length ;// 任意兩點(diǎn)之間路徑長(zhǎng)度 </p><p> int[][][] path ;// 任意兩點(diǎn)之間的路徑</p><p> public F
17、loyd(int[][] G) { </p><p> int MAX = 100; </p><p> int row = G.length;// 圖G的行數(shù) </p><p> int[][] spot = new int[row][row];// 定義任意兩點(diǎn)之間經(jīng)過(guò)的點(diǎn) </p><p> int[] onePath = ne
18、w int[row];// 記錄一條路徑 </p><p> length = new int[row][row]; </p><p> path = new int[row][row][]; </p><p><b> 對(duì)路徑的處理部分:</b></p><p> for (int i = 0; i <
19、row; i++) // 處理圖兩點(diǎn)之間的路徑 </p><p> for (int j = 0; j < row; j++) { </p><p> if (G[i][j] == 0) </p><p> G[i][j] = MAX;// 沒(méi)有路徑的兩個(gè)點(diǎn)之間的路徑為默認(rèn)最大 </p><p> if (i == j) <
20、;/p><p> G[i][j] = 0;// 本身的路徑長(zhǎng)度為0 </p><p><b> } </b></p><p> for (int i = 0; i < row; i++) // 初始化為任意兩點(diǎn)之間沒(méi)有路徑 </p><p> for (int j = 0; j < row; j++) &
21、lt;/p><p> spot[i][j] = -1; </p><p> for (int i = 0; i < row; i++) // 假設(shè)任意兩點(diǎn)之間的沒(méi)有路徑 </p><p> onePath[i] = -1; </p><p> 找最短路的過(guò)程部分:</p><p> for (int v
22、= 0; v < row; ++v) </p><p> for (int w = 0; w < row; ++w) </p><p> length[v][w] = G[v][w]; </p><p> for (int u = 0; u < row; ++u) </p><p> for (int v = 0;
23、v < row; ++v) </p><p> for (int w = 0; w < row; ++w) </p><p> if (length[v][w] > length[v][u] + length[u][w]) { </p><p> length[v][w] = length[v][u] + length[u][w];// 如果
24、存在更短路徑則取更短路徑 </p><p> spot[v][w] = u;// 把經(jīng)過(guò)的點(diǎn)加入 </p><p><b> } </b></p><p> for (int i = 0; i < row; i++) { // 求出所有的路徑 </p><p> int[] point = new int
25、[1]; </p><p> for (int j = 0; j < row; j++) { </p><p> point[0] = 0; </p><p> onePath[point[0]++] = i; </p><p> outputPath(spot, i, j, onePath, point); </p>
26、;<p> path[i][j] = new int[point[0]]; </p><p> for (int s = 0; s < point[0]; s++) </p><p> path[i][j][s] = onePath[s]; </p><p><b> } </b></p><p&
27、gt;<b> 記錄最短路部分:</b></p><p> void outputPath(int[][] spot, int i, int j, int[] onePath, int[] point) {</p><p> // 輸出i到j(luò) 的路徑的實(shí)際代碼,point[]記錄一條路徑的長(zhǎng)度 </p><p> if (i == j)
28、 </p><p><b> return; </b></p><p> if (spot[i][j] == -1) </p><p> onePath[point[0]++] = j; </p><p><b> else { </b></p><p>
29、; outputPath(spot, i, spot[i][j], onePath, point); </p><p> outputPath(spot, spot[i][j], j, onePath, point); </p><p><b> } </b></p><p><b> } </b></p&g
30、t;<p><b> 主函數(shù)部分:</b></p><p> public static void main(String[] args) {</p><p> System.out.println("請(qǐng)輸入所求問(wèn)題的中間節(jié)點(diǎn)數(shù):");</p><p><b> int row;</b&
31、gt;</p><p> Scanner shuru=new Scanner(System.in);</p><p> row=shuru.nextInt();</p><p> System.out.println("請(qǐng)依次輸入兩節(jié)點(diǎn)間的距離:");</p><p><b> int n,m;</
32、b></p><p> int data[][]=new int[row][row];</p><p> for(m=0;m<row;m++){</p><p> for(n=0;n<row;n++){</p><p> data[m][n]=shuru.nextInt();</p><p>
33、<b> }</b></p><p><b> }</b></p><p> System.out.println("原矩陣為:");</p><p> for(int i=0;i<row;i++){</p><p> for(int j=0;j<row;j
34、++){</p><p> System.out.printf("%4d",data[i][j]);</p><p><b> }</b></p><p> System.out.println();</p><p><b> }</b></p><p
35、> 對(duì)輸入數(shù)據(jù)進(jìn)行處理:</p><p> for (int i = 0; i < data.length; i++)</p><p> for (int j = i; j < data.length; j++)</p><p> if (data[i][j] != data[j][i]) </p><p><
36、b> return; </b></p><p><b> }</b></p><p> Floyd test=new Floyd(data); </p><p> for (int i = 0; i < data.length; i++) </p><p> for (int j = i
37、; j < data[i].length; j++) { </p><p> System.out.println(); </p><p> System.out.print("從v"+i+"到v"+j+"所經(jīng)過(guò)的點(diǎn)有: "); </p><p><b> //輸出經(jīng)過(guò)的路點(diǎn)</
38、b></p><p> for (int k = 0; k < test.path[i][j].length; k++) </p><p> System.out.print(test.path[i][j][k] + " "); </p><p> System.out.println(); </p><p&
39、gt; System.out.println("從v"+i+"到v"+j+"最短路徑長(zhǎng)度是:" </p><p> + test.length[i][j]);// 輸出最短路部分</p><p><b> } </b></p><p><b> } </b>
40、;</p><p><b> }</b></p><p> 部分截圖如圖1,圖2:</p><p><b> 圖1</b></p><p><b> 圖2</b></p><p> 2.2.2圖形界面處理部分:</p><p
41、><b> 外層窗體 :</b></p><p> public static void main(String args[]){</p><p> ComputerFrame fr=new ComputerFrame();</p><p> fr.setTitle("Floyd算法求最短路問(wèn)題"); <
42、/p><p><b> }</b></p><p><b> }</b></p><p> class ComputerFrame extends JFrame implements TextListener</p><p> { TextArea text1,text2;</p>
43、;<p> public ComputerFrame(){</p><p> setLayout(new FlowLayout());</p><p> text1=new TextArea(10,30);//確定文本區(qū)的大小</p><p> text2=new TextArea(10,30);</p><p> a
44、dd(text1);</p><p> add(text2); </p><p> text2.setEditable(false);</p><p> text1.addTextListener(this);</p><p> setSize(300,400);</p><p> setVisible(tr
45、ue);</p><p> addWindowListener(new WindowAdapter(){</p><p> public void windowClosing(WindowEvent e){</p><p> System.exit(0);</p><p><b> } </b></p>
46、;<p><b> });</b></p><p> validate();</p><p><b> }</b></p><p> 生成如圖3的一個(gè)兩個(gè)文本框的窗體。上面用來(lái)輸入數(shù)據(jù),下面用來(lái)顯示路徑圖;</p><p><b> 圖3</b><
47、/p><p><b> 內(nèi)部畫圖部分:</b></p><p> public void actionPerformed(ActionEvent e){</p><p> int a=Integer.parseInt(text1.getText());</p><p> int b=Integer.parseInt(
48、text2.getText());</p><p> text3.setText(String.valueOf(shuzu[a-1][b-1]));</p><p><b> }</b></p><p> public void paint(Graphics g){ </p><p> super.paint(g
49、); </p><p> Graphics2D g1 = (Graphics2D)g;</p><p> //Ellipse2D.Double </p><p> //public Ellipse2D.Double(double x,double y,double w,double h)</p><p> // 根據(jù)指定坐標(biāo)構(gòu)造和初始
50、化 Ellipse2D 參數(shù):</p><p> Ellipse2D e1 = new Ellipse2D.Double(40,60 ,20,20); </p><p> Ellipse2D e2 = new Ellipse2D.Double(200,60,20,20); </p><p> Ellipse2D e3 = new Ellipse2D.Doubl
51、e(200,200,20,20); </p><p> Ellipse2D e4 = new Ellipse2D.Double(40,200,20,20); </p><p> Ellipse2D e5 = new Ellipse2D.Double(320,130,20,20); </p><p> Ellipse2D e6 = new Ellipse2D.D
52、ouble(400,220,20,20); </p><p> //x - 窗體矩形左上角的 X 坐標(biāo),y - 窗體矩形左上角的 Y 坐標(biāo),w - 窗體矩形的寬度,h - 窗體矩形的高度</p><p> g1.setPaint(Color.RED); </p><p> g1.draw(e1); </p><p> g1.drawS
53、tring("V1", 45, 75);</p><p> g1.draw(e2); </p><p> g1.drawString("V2", 205,75);</p><p> g1.draw(e3);</p><p> g1.drawString("V3", 45, 2
54、15);</p><p> g1.draw(e4);</p><p> g1.drawString("V4", 205, 215);</p><p> g1.draw(e5); </p><p> g1.drawString("V5", 325, 145);</p><p&g
55、t; g1.draw(e6); </p><p> g1.drawString("V6", 400, 180);</p><p> g1.drawLine(60, 70, 200,70);</p><p> g1.drawString("3", 130, 70);</p><p> g1.dr
56、awLine(50, 80, 50, 200);</p><p> g1.drawString("5", 40, 135);</p><p> g1.drawLine(60, 210,200 ,210);</p><p> g1.drawString("2", 130,210);</p><p>
57、 g1.drawLine(210, 80, 210,200);</p><p> g1.drawString("4", 200, 135);</p><p> g1.drawLine(55, 75, 203, 203);</p><p> g1.drawString("8", 110, 120);</p>
58、<p> g1.drawLine(55, 203, 203, 75);</p><p> g1.drawString("6", 85, 170);</p><p> g1.drawLine(220, 70, 320, 140);</p><p> g1.drawString("11", 280,110);&
59、lt;/p><p> g1.drawLine(220, 210,320, 140);</p><p> g1.drawString("10", 280, 160);</p><p><b> } </b></p><p><b> }</b></p><p
60、><b> 第3章 總 結(jié)</b></p><p> 通過(guò)本次課程設(shè)計(jì),基本上解決了Floyd算法求解最短路徑問(wèn)題,這使我更加深入的了解了Java語(yǔ)言對(duì)于實(shí)際應(yīng)用的意義。更主要的是,我深深的意識(shí)到,我對(duì)圖形用戶界面有關(guān)方面知識(shí)的嚴(yán)重匱乏,對(duì)它的學(xué)習(xí)有十分的必要性。尤其是在這次課程設(shè)計(jì)中,并沒(méi)有對(duì)圖形用戶界面有很好的應(yīng)用,沒(méi)能對(duì)Floyd算法完全由GUI來(lái)實(shí)現(xiàn),沒(méi)能完全符合老師的要求
61、,還希望老師能夠見諒。這一點(diǎn)也正是我尚待解決的重要問(wèn)題。</p><p><b> 附 錄</b></p><p> package floyd;</p><p> public class Floyd_0 {</p><p> int[][] length = null;</p><p&g
62、t; int[][][] path = null; </p><p> public Floyd_0 (int[][] G) { </p><p> int MAX = 100; </p><p> int row = G.length; </p><p> int[][] spot = new int[row][row];int
63、[] onePath = new int[row]; </p><p> length = new int[row][row]; </p><p> path = new int[row][row][]; </p><p> for (int i = 0; i < row; i++) </p><p> for (int j =
64、 0; j < row; j++) { </p><p> if (G[i][j] == 0) </p><p> G[i][j] = MAX;if (i == j) </p><p> G[i][j] = 0; } </p><p> for (int i = 0; i < row; i++) </p&g
65、t;<p> for (int j = 0; j < row; j++)</p><p> spot[i][j] = -1; </p><p> for (int i = 0; i < row; i++) </p><p> onePath[i] = -1; </p><p> for (int v = 0
66、; v < row; ++v) </p><p> for (int w = 0; w < row; ++w) </p><p> length[v][w] = G[v][w]; </p><p> for (int u = 0; u < row; ++u) </p><p> for (int v = 0; v &
67、lt; row; ++v) </p><p> for (int w = 0; w < row; ++w) </p><p> if (length[v][w] > length[v][u] + length[u][w]) { </p><p> length[v][w] = length[v][u] + length[u][w];更短路徑 <
68、;/p><p> spot[v][w] = u; </p><p><b> } </b></p><p> for (int i = 0; i < row; i++) { </p><p> int[] point = new int[1]; </p><p> for (int j
69、 = 0; j < row; j++) { </p><p> point[0] = 0; </p><p> onePath[point[0]++] = i; </p><p> outputPath(spot, i, j, onePath, point); </p><p> path[i][j] = new int[poi
70、nt[0]]; </p><p> for (int s = 0; s < point[0]; s++) </p><p> path[i][j][s] = onePath[s]; </p><p><b> } </b></p><p><b> } </b></p>
71、<p><b> } </b></p><p> void outputPath(int[][] spot, int i, int j, int[] onePath, int[] point{ </p><p> if (i == j) </p><p><b> return; </b></p&g
72、t;<p> if (spot[i][j] == -1) </p><p> onePath[point[0]++] = j; </p><p><b> else { </b></p><p> outputPath(spot, i, spot[i][j], onePath, point); </p>&l
73、t;p> outputPath(spot, spot[i][j], j, onePath, point); </p><p><b> } </b></p><p><b> } </b></p><p> public static void main(String[] args) {</p>
74、<p> System.out.println("請(qǐng)輸入所求問(wèn)題的中間節(jié)點(diǎn)數(shù):");</p><p><b> int row;</b></p><p> Scanner shuru=new Scanner(System.in);</p><p> row=shuru.nextInt();</p&g
75、t;<p> System.out.println("請(qǐng)依次輸入兩節(jié)點(diǎn)間的距離:");</p><p><b> int n,m;</b></p><p> int data[][]=new int[row][row];</p><p> for(m=0;m<row;m++){</p>
76、<p> for(n=0;n<row;n++){</p><p> data[m][n]=shuru.nextInt();</p><p><b> }</b></p><p><b> }</b></p><p> System.out.println("輸
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通運(yùn)輸貨運(yùn)課程設(shè)計(jì)
- 交通運(yùn)輸學(xué)院課程設(shè)計(jì)---鐵路站場(chǎng)設(shè)計(jì)
- 交通運(yùn)輸系統(tǒng)規(guī)劃課程設(shè)計(jì)
- 交通運(yùn)輸系統(tǒng)規(guī)劃課程設(shè)計(jì)
- 交通運(yùn)輸駝峰課程設(shè)計(jì)數(shù)據(jù)
- 交通運(yùn)輸系統(tǒng)規(guī)劃課程設(shè)計(jì)
- 《交通運(yùn)輸組織學(xué)》課程設(shè)計(jì)
- 交通運(yùn)輸組織學(xué)課程設(shè)計(jì)
- 交通運(yùn)輸系統(tǒng)仿真課程設(shè)計(jì)報(bào)告
- 交通運(yùn)輸系統(tǒng)規(guī)劃課程設(shè)計(jì).doc
- 蘭州交通大學(xué)交通運(yùn)輸學(xué)院課程設(shè)計(jì)任務(wù)書
- 交通運(yùn)輸自動(dòng)控制原理課程設(shè)計(jì)報(bào)告
- 交通運(yùn)輸系統(tǒng)規(guī)劃課程設(shè)計(jì)--某小城市交通運(yùn)輸系統(tǒng)規(guī)劃設(shè)計(jì)
- 交通運(yùn)輸規(guī)劃課程設(shè)計(jì)---公交線路交通流預(yù)測(cè)
- 交通運(yùn)輸
- 交通運(yùn)輸
- 交通運(yùn)輸局交通運(yùn)輸工作方案
- 交通運(yùn)輸學(xué)院主要業(yè)績(jī)摘要
- 2020同濟(jì)大學(xué)交通運(yùn)輸學(xué)院交通運(yùn)輸工程考研復(fù)習(xí)經(jīng)驗(yàn)指導(dǎo)
- 2020同濟(jì)大學(xué)交通運(yùn)輸學(xué)院交通運(yùn)輸工程學(xué)碩考試科目
評(píng)論
0/150
提交評(píng)論