当前位置:首页 > 2007-乘公交,看奥运--历年数学建模优秀论文大全 - 图文
案,是返回值
vector
// 所有路线// 所有公汽
信息 站信息
vector
交叉信息
{ bool
bHaveFound = false;
vector
int nFirstLine = -1;
int nSecondLine = -1; int nCurBridge = -1;
bool IsDirectToBridge = false;
点 bool IsBridgeDirectToDest = false;
点 // 搜索相交的两条线路
for (i=0; i nFirstLine = AllBuses[NSTART-1][i]; for (j=0; j int nLine1 = -1; int nLine2 = -1; if ( nFirstLine < nSecondLine ) { nLine1 = nFirstLine; nLine2 = nSecondLine; } else { nLine2 = nFirstLine; 33 // 起始点是否能直达中转 // 中转点是否能直达目标 // 经过起始点的所有线路 // 经过终点的所有线路 // 两路线的公有站点 b); d); } } } nLine1 = nSecondLine; for (k=0; k nCurBridge = RoadCrossInfo[nLine1-1][nLine2-1][k]; int a = 0, b = 0, c = 0, d =0; bool IsDirectToBridge bool IsBridgeDirectToDest = false; if ( IsDirectToBridge ) { } if ( IsDirectToBridge && IsBridgeDirectToDest) { } IsDirectToBridge = false; IsBridgeDirectToDest = false; FeasibleLine[0] = a; FeasibleLine[1] = nFirstLine; FeasibleLine[2] = b; FeasibleLine[3] = c; FeasibleLine[4] = nSecondLine; FeasibleLine[5] = d; FeasibleSolve.push_back(FeasibleLine); IsBridgeDirectToDest = find(AllLines[nSecondLine-1].LineInfo, nCurBridge, NEND, c, = find(AllLines[nFirstLine-1].LineInfo, NSTART, nCurBridge, a, // cout << FeasibleSolve.size() << endl; } return bHaveFound; if ( !FeasibleSolve.empty() ) bHaveFound = true; 34 // 二次换乘的情况 bool TwiceBusChange(const int NSTART, const int NEND, 点 { 路 bool IsConnected = OnceBusChange(nFirstBusChangeStation, NEND, temp, AllLines, AllBuses, RoadCrossInfo ); nStart_pos = j; { nFirstBusChangeStation = AllLines[nCurLineName-1].LineInfo[j]; vector // 当前线路上的所有站点 for (j=j+1; j while (AllLines[nCurLineName-1].LineInfo[j] != NSTART) ++j; j=0; int nStart_pos = -1; { nCurLineName = AllBuses[NSTART-1][i]; for (i=0; i // 经过起始站点的所有线 int i, j, k; i = j = k = 0; vector nCurLineName = -1; // 第一次换乘的车站名 int nFirstBusChangeStation = -1; bool bHaveFound = false; vector // 可行的解决方 // 所有路线// 所有公汽 案,是返回值 信息 站信息 vector 交叉信息 // 起始点和目标 35 } 10.2.3 (文件名:LoadMessage.h) #ifndef ROADMESSAGE_H #define ROADMESSAGE_H #include // 线路信息 class LoadMessage { public: LoadMessage() { nLineName = -1; return bHaveFound; if ( !FeasibleSolve.empty() ) bHaveFound = true; cout << FeasibleSolve.size() << endl; } } } for (k=0; k FeasibleLine[0] = nStart_pos; FeasibleLine[1] = nCurLineName; FeasibleLine[2] = j ; FeasibleLine[3] = temp[k][0]; FeasibleLine[4] = temp[k][1]; FeasibleLine[5] = temp[k][2]; FeasibleLine[6] = temp[k][3]; FeasibleLine[7] = temp[k][4]; FeasibleLine[8] = temp[k][5]; FeasibleSolve.push_back( FeasibleLine ); if ( IsConnected ) { int m = temp[0][0]; int n = temp[0][1]; int d = AllLines[n-1].LineInfo[m]; 36
共分享92篇相关文档