全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1395
推到 Plurk!
推到 Facebook!

路徑資料加總之後??

 
liyanzi
一般會員


發表:51
回覆:45
積分:19
註冊:2005-01-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-14 00:52:27 IP:220.129.xxx.xxx 未訂閱
不好意思~~想請問RedSnow 大大    您之前有幫忙我寫過最短路徑的程式    我將之前的程式作了一些修改    因為我變成要計算車速~~~所以我就將之前的距離~~轉換成車速計算        void FindspeedPath(DList *pointer, String end_road, int index)   //以下是虛擬路徑,時速 {     // 如果不是路徑開頭則加上 "->" 符號以作分隔     if(roadPaths->Strings[index] != "")       roadPaths->Strings[index] = roadPaths->Strings[index]+"->";     // 加上找到的路名到路徑內    roadPaths->Strings[index] = roadPaths->Strings[index] + pointer->roadname;        if (pointer->an_speed != 0 ){  // 如果有分支道路         if (pointer->roadname != end_road){  // 若不是 ComboBox2 所設之終點路名             int k = roadPaths->Add(roadPaths->Strings[index]);  // 增加路徑陣列             roadLen.push_back(roadLen[index]);  // 增加距離加總陣列,並設初值為之前加總距離             roadLen[k] = roadLen[k] + pointer->an_speed;  // 加上本次分支道路的距離             FindPath(pointer->an_road, end_road, k);  // 遞迴找尋這條分支道路          }     }     if (pointer->speed != 0) {  // 如果後邊有連接道路         if (pointer->roadname != end_road) {  // 若不是 ComboBox2 所設之終點路名             roadLen[index] = roadLen[index] + pointer->speed;  // 加上到下一條道路的距離             FindPath(pointer->road, end_road, index);  // 遞迴找尋這條道路的下一條路         }     } }        在roadiobutton選擇方面~~多了一個        if(RadioButton3->Checked==true)       {         Form1 -> Memo1 -> Clear() ;         roadPaths = new TStringList();        int k = roadPaths->Add("");  // 新增第一條路徑        roadLen.push_back(0); //        FindspeedPath(find_head, ComboBox2->Text, k);  // 開始找尋路徑           Memo1->Clear();        int shortRoad = 9999;  // 比對最短路徑之用,先隨意設一個最大值        int shortIndex = 0;  // 比對後,存放最短路徑的索引值        int PathNo = 0;          for(int i=0; iCount; i ) { // 因為找到的路徑都是搜尋到最後一個路名 (中山路),因此要過濾掉不包含 ComboBox2 所設路名的路徑 if(roadPaths->Strings[i].Pos(ComboBox2->Text) > 0) { PathNo ; if(roadLen[i] < shortRoad) { // 比對路徑總距離 shortRoad = roadLen[i]; // 取得較短路徑之距離數 shortIndex = i; // 取得較短路徑之 StringList 索引值 } } } Memo1->Lines->Add("從" roadPaths->Strings[shortIndex]); Form1 -> Edit1 -> Text = (String)(roadLen[shortIndex]) ; roadLen.clear(); delete roadPaths; } 我都將之前的距離road_numeral 、an_road_numeral都換成 speed、an_speed了 但計算出來卻會錯誤~~~ 比如說~~成功路到自由路~~是0.4375 自由路到博愛路是1.12 我選隔一條路~~算出來數值都對 但如果選~~成功路到博愛路~~~卻會變成45.4375 >"<不知道為什麼會變成這樣子~~ 能請RedSnow 大大或是各位高手大大~~解答一下嗎? 這是有連到資料庫了~~~
附加檔案:78346_abc.rar
系統時間:2024-05-21 20:58:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!