亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qt.h

?? 校園導游程序,可以檢索和求最短路徑,界面友好 可以改成自己學校的~
?? H
字號:
/******************************************************
  Copyright (c), 2007, xiaohan, swust.
  FileName: QT.h
  Author: xiaohan   Version:1.0  Date:2007.01.03
  Discrition: 實現校園導游模擬
  History: 無
  <author>     <time>     <version>       <desc>
  xiaohan    2007/01/03      1.0       實現模擬的有關函數
*******************************************************/

struct RowColWeight
{
	int row;                          //景點代碼-1
	int col;                          //景點代碼-1
	int weight;                       //兩個景點的路徑長度(權)
}
rcw[22] = {{0, 1, 300}, {1, 0, 300}, {0, 3, 200}, {3, 0, 200},{0, 2, 150}, 
{2, 0, 150}, {2, 4, 200}, {4, 2, 200}, {3, 4, 400}, {4, 3, 400},{2, 5, 600}, 
{5, 2, 600}, {5, 6, 700}, {6, 5, 700}, {6, 7, 50},{7, 6, 50}, {7, 8, 30}, 
{8, 7, 30}, {5, 8, 650}, {8, 5, 650},{8,9,150},{9,8,150}};

void initialization1()                //初始化用戶界面
{
	cout << "****************************************" 
		<< "****************************************" << endl;
		cout << "                    (代碼)                   景點名稱" 
			<< endl << endl;
}

void initialization2()                //初始化用戶界面
{
	cout << "請選擇一項:" 
		<< "              (Y或y)瀏覽景點介紹" << endl 
		<< "                          (N或n)查詢任意兩個景點間的最短路徑 " 
		<< endl <<"                          (E或e)退出" << endl;
}

/*************************************************
  函數名稱:      Print
  函數功能:      打印景點及代碼
  Called:        無
  Called By:     Welcome
  輸入參數:      item    
  輸出參數:      無
  返回值:        無
  其它說明:      無  
*************************************************/
void Print(Sight item)                   //輸出菜單(景點及其代碼)
{
	cout << "                     (" << item.Num 
		<< ")                     " 
		<< item.Name << endl;
}

/*************************************************
  函數名稱:      Welcome
  函數功能:      打印歡迎用戶界面
  Called:        Print
  Called By:     main Function
  輸入參數:      g    
  輸出參數:      無
  返回值:        無
  其它說明:      無  
*************************************************/
void Welcome(AdjMWGraph &g)                             
{
	cout << "                         您好!歡迎光臨西南科技大學" << 
		endl << endl;
	cout << "下面是我校景點及代碼: " << endl;
	cout << "****************************************" 
		<< "****************************************" <<endl;
	cout << "                    (代碼)                   景點名稱" 
		<< endl << endl;
    
	for(int l = 0; l < 10; l++)
	{
		Print(g.GetValue(l));
	}    //for語句結束

	cout << endl;
	cout << "****************************************" 
		<< "****************************************" << endl;
	initialization2();
}

/*************************************************
  函數名稱:      GreatGraph
  函數功能:      建立圖
  Called:        InsertVertex  InsertEdge
  Called By:     InsertG
  輸入參數:      n  e  g  V[]  E[]
  輸出參數:      無
  返回值:        無
  其它說明:      無  
*************************************************/
void CreatGraph(AdjMWGraph &G, DataType V[], int n, RowColWeight E[], int e)
{
	for(int i = 0; i < n; i++)        //向圖G中插入n個結點
	{
		G.InsertVertex(V[i]);
	}   //for語句結束
	for(int k = 0; k < e; k++)        //向圖G中插入e條邊
	{
		G.InsertEdge(E[k].row, E[k].col, E[k].weight);
	}   //for語句結束
}

/*************************************************
  函數名稱:      InsertG
  函數功能:      插入校園圖
  Called:        CreatGrap
  Called By:     main Function
  輸入參數:      g
  輸出參數:      無
  返回值:        無
  其它說明:      無  
*************************************************/
void InsertG(AdjMWGraph &g)            
{
	int n = 10, e = 22;               //景點數10,有向邊條數22
	CreatGraph(g, W, n, rcw, e);
}

/*************************************************
  函數名稱:      SinghtMessage
  函數功能:      打印景點信息
  Called:        無
  Called By:     Run
  輸入參數:      無
  輸出參數:      無
  返回值:        無
  其它說明:      無  
*************************************************/
void SightMessage()                   //景點信息
{
	int t;
	cin >> t;
	cout << "**********************************" 
		<< "**********************************************" << endl;
	switch(t - 1)
	{
	case 0:cout << "柳池:" << endl << endl << "小荷才露尖尖角,早有蜻" 
			   << "蜓立上頭。這是一個談情說愛的好地方!" << endl; break;
	case 1:cout << "北山體育場:" << endl << endl << "有籃球場和網球場。" 
			   << "是一個學生進行體育鍛煉的好地方!" << endl; break;
	case 2:cout << "龍山體育場:" << endl << endl << "一個足球場。" 
			   << "歷史悠久,有居高臨下之感。" << endl; break;
	case 3:cout << "老區圖書館:" << endl << endl << "這是工學圖書館," 
			   << "熱愛學習的學生都能在這里找到真理。" << endl; break;
	case 4:cout << "西科花園:" << endl << endl << "學校內部的一個花園," 
			   << "綠樹成蔭,夏天旁晚有很多游客在這里散步。" << endl; break;
	case 5:cout << "科技中心:" << endl << endl << "2006年建成," 
			   << "理學院當家做主,是學校的象征。" << endl; break;
	case 6:cout << "行政樓:" << endl << endl << "學校行政中心," 
			   << "許多會議等都在這里舉行。" << endl; break;
	case 7:cout << "九洲湖:" << endl << endl << "不光是有許多學生在" 
			   << "這里背書,連魚兒也會露出湖面湊熱鬧。" << endl;break;
	case 8:cout << "逸夫圖書信息中心:" << endl << endl << "這是綜合" 
			   << "圖書館,在這里,讀萬卷書,行萬里路 "<< endl;break;
	case 9:cout << "新區運動場:" << endl << endl << "這是一個綜合運動場," 
			   << "是舉行大型運動會的場所,2006年全國大學生足球聯賽南區決賽" 
			   << "在此舉行" << endl;break;
	default:cout << "你輸入的景點不存在!" << endl;
	}    //switch語句結束
	cout << "**********************************" 
		<< "**********************************************" << endl;
}

/*************************************************
  函數名稱:      Dijkstra
  函數功能:      計算一個頂點到其它頂點的最短路徑
                 長度即目標景點的前一景點下標
  Called:        NumOfVertices  GetWeight  
  Called By:     Run
  輸入參數:      G  v0    
  輸出參數:      distance[]  path[]
  返回值:        distance[]  path[]
  其它說明:      無  
*************************************************/
void Dijkstra(AdjMWGraph &G, int v0, int distance[], int path[])  
{
	int n = G.NumOfVertices();
	int *s = new int[n];
	int minDis, i, j, u;

	//初始化
	for(i = 0; i < n; i++)
	{
		distance[i] = G.GetWeight(v0, i);            //取v0到其它景點的距離存在數組中
		s[i] = 0;
		if(i != v0 && distance[i] < MaxWeight) path[i] = v0;
		else path[i] = -1;
	}       //for語句結束
	s[v0] = 1;                            //標記結點v0已從集合T加入到集合S中

	//在當前還未找到最短路徑的結點集中選取具有最短距離的結點u
	for(i = 1; i < n; i++)
	{
		minDis = MaxWeight;
		for(j = 0; j <= n; j++)
		{
			if(s[j] == 0 && distance[j] < minDis)
			{
				u = j;
				minDis = distance[j];
			}   //if語句結束
		}      //for語句結束
		
		//當已不再存在路徑時算法結束;此語句對非連通圖是必要的
		if(minDis == MaxWeight)return;

		s[u] = 1;                         //標記結點u已從集合T加入到集合S中
		//修改從v0到其它結點的最短距離和最短路徑
		for(j = 0; j < n; j++)
		{
			if(s[j] == 0 && G.GetWeight(u, j) < MaxWeight && 
				distance[u] + G.GetWeight(u, j) < distance[j])
			{
				//結點v0經結點u到其他結點的最短距離和最短路徑
				distance[j] = distance[u] + G.GetWeight(u, j);
				path[j] = u;
				
			}   //if語句結束
		}     //for語句結束
	}     //for語句結束
}

/*************************************************
  函數名稱:      Run
  函數功能:      實現景點信息及最短路徑的輸出
  Called:        GetValue  Print  initialization1()
                 SightMessage()  NumOfVertices()
                 Dijkstra  Insert  ListSize  GetData
                 initialization2()
  Called By:     main Funtion
  輸入參數:      cmd  g    
  輸出參數:      無
  返回值:        無
  其它說明:      無  
*************************************************/
void run(char cmd,AdjMWGraph &g)                           //運行函數
{
	cout << endl;
	
	if(cmd != 'Y' && cmd != 'y' && cmd != 'N' && 
		cmd != 'n' && cmd != 'E' && cmd != 'e')
		cout << "輸入錯誤!請重新輸入:";
	
	initialization1();
	for(int l = 0; l < 10; l++)Print(g.GetValue(l));
	cout << endl;
		
	switch(cmd)
	{
	case 'Y':                                             //瀏覽景點簡介
	case 'y':
		cout << "請選擇景點代碼: ";
		
		SightMessage();
		
		initialization2();
		break;
	case 'N':                                              //求路徑長度
	case 'n':
		int m = g.NumOfVertices();
		int *distance = new int[m];
		int *path = new int[m];
		int v1, v2;
		
		cout << "請輸入要查詢的兩個景點的代號(用空格鍵隔開):";
		cin >> v1 >> v2;
		
		while(v1 < 1 || v1 > 10 || v2 < 1 || v2 > 10)      //輸入景點不存在時繼續輸入
		{
			cout << "輸入錯誤!請重新輸入:";
			cin >> v1 >> v2;
		}                //while語句結束
	 
		v1 = v1 - 1;
		Dijkstra(g, v1, distance, path);                   
		
		cout << "****************************************" 
			<< "****************************************" << endl;
		
		//以下為求最短路徑長度
		cout << "從景點“" << g.GetValue(v1).Name << "”到景點“" 
			<< g.GetValue(v2 - 1).Name << "”的最短路徑長度是:"
			<< distance[v2 - 1] << "米" << endl;
		cout << endl << "最短路線是:" << endl;
		 
		int i = v2 - 1;                                    //以下為求最短路線
		SeqList list;
		while(i != v1)
		{
			if(path[i] != -1)
			{
				list.Insert(g.GetValue(path[i]),list.ListSize());
				i = path[i];
			}    //if語句結束
		}       //while語句結束
			
		for(int c = list.ListSize() - 1;c >= 0;c--)
		{
			cout << list.GetData(c).Name << "——>";
		}    //for語句結束
			
		cout << g.GetValue(v2 - 1).Name << endl;
		cout << endl;
		cout << "****************************************"
			<< "****************************************" << endl;
		
		delete []distance;                                  //清空
		delete []path;
		
		initialization2();
		break;
	}     //switch語句結束
}


		


		

	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线综合亚洲欧美在线视频| 国产一区二区三区免费| 播五月开心婷婷综合| 亚洲国产精品激情在线观看| 国产麻豆精品久久一二三| 欧美国产激情二区三区| 波多野结衣在线一区| 亚洲男女毛片无遮挡| 欧美这里有精品| 日本不卡一区二区三区 | 亚洲欧美日韩电影| 91麻豆swag| 日韩精品欧美成人高清一区二区| 欧美一区二区网站| 精久久久久久久久久久| 国产精品久久久久久久久搜平片| 91丨porny丨蝌蚪视频| 五月天一区二区三区| 欧美不卡在线视频| 99久久99久久综合| 五月天一区二区| 国产女同互慰高潮91漫画| av一区二区三区在线| 日韩精彩视频在线观看| 欧美高清在线一区| 精品视频一区二区三区免费| 国产伦理精品不卡| 一区二区三区四区国产精品| 日韩视频一区二区| 91一区二区在线观看| 免费看黄色91| 亚洲欧洲99久久| 日韩久久久久久| 色综合视频一区二区三区高清| 久久精品国产一区二区三 | 老司机免费视频一区二区| 久久久.com| 欧美精品v日韩精品v韩国精品v| 国产精品一区二区久久不卡| 亚洲午夜激情网页| 国产精品免费久久| 日韩小视频在线观看专区| 不卡视频免费播放| 韩日欧美一区二区三区| 亚洲狠狠丁香婷婷综合久久久| 日韩欧美成人激情| 欧美四级电影网| 成人国产亚洲欧美成人综合网| 免费日韩伦理电影| 一区二区三区四区五区视频在线观看| 国产女人18毛片水真多成人如厕 | 在线观看日韩精品| 国产精品正在播放| 美女免费视频一区| 亚洲国产一区二区三区青草影视 | 亚洲精品中文字幕在线观看| 久久久91精品国产一区二区精品 | 国产精品二三区| 国产人妖乱国产精品人妖| 懂色av中文一区二区三区| 欧美激情一区二区三区不卡| 国产一区二区中文字幕| 91精品国模一区二区三区| 亚洲一二三区视频在线观看| 精品欧美久久久| 亚洲第四色夜色| 一区二区三区国产精品| 中文字幕欧美一区| 自拍视频在线观看一区二区| 国产精品久久777777| 久久精品视频一区| 久久综合成人精品亚洲另类欧美 | 免费在线观看日韩欧美| 午夜婷婷国产麻豆精品| 亚洲欧美日韩国产综合在线| 欧美日韩在线播| 久久不见久久见免费视频1| 亚洲电影第三页| 国产人伦精品一区二区| 91网页版在线| 成人黄色软件下载| 精品欧美乱码久久久久久| 国产乱人伦偷精品视频不卡| 亚洲黄色片在线观看| 日韩你懂的电影在线观看| 制服丝袜亚洲网站| 国产三级一区二区| 国产精品区一区二区三区| 国产精品美女久久久久aⅴ | 久久精品999| 国产一区在线观看麻豆| 国产乱码字幕精品高清av| 成人自拍视频在线| 欧美三级电影网| 久久久久综合网| 亚洲精品视频一区| 美女脱光内衣内裤视频久久影院| 国产精品一级在线| 九九在线精品视频| 99精品偷自拍| 精品久久久久久亚洲综合网 | 99热精品一区二区| 欧美一区二区网站| 国产精品少妇自拍| 日本成人在线电影网| 国产一区二区三区在线观看免费| 国产乱码字幕精品高清av| 色综合久久久久| 欧美国产日韩在线观看| 亚洲一二三四区不卡| 久久国产精品一区二区| 欧美日韩一区中文字幕| 亚洲精品乱码久久久久久| 国产一区二三区| 日韩午夜电影av| 久久精品av麻豆的观看方式| 天堂成人免费av电影一区| 国产九色sp调教91| 91黄色在线观看| 一区二区三区蜜桃| 国产成人av一区| 色成人在线视频| 亚洲三级视频在线观看| 91国产精品成人| 免费高清不卡av| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩av电影免费观看高清完整版在线观看| 国产在线日韩欧美| 久久影院电视剧免费观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 日韩欧美电影一二三| 亚洲福利视频一区| 8x福利精品第一导航| 日韩专区欧美专区| 91精品一区二区三区在线观看| 亚洲观看高清完整版在线观看| 欧美体内she精视频| 蜜臀久久99精品久久久久久9| 久久久久国产精品麻豆| 在线一区二区三区四区五区| 奇米色一区二区| 椎名由奈av一区二区三区| 欧美日韩在线精品一区二区三区激情| 蜜桃一区二区三区四区| 亚洲视频 欧洲视频| 激情综合网最新| 免费在线观看成人| 亚洲高清视频在线| 综合久久久久久| 91天堂素人约啪| 成人免费不卡视频| 激情偷乱视频一区二区三区| 五月婷婷激情综合网| 亚洲精品中文在线| 国产精品久久久久天堂| 精品国产自在久精品国产| 欧美日韩国产综合一区二区| 99re视频精品| 99r精品视频| 国产成人在线视频免费播放| 视频在线观看91| 国产精品系列在线观看| 成人免费毛片a| 欧美三级中文字幕在线观看| 日韩一区二区在线看| 国产精品污www在线观看| 亚洲精品国产高清久久伦理二区| 亚洲va欧美va人人爽| 国产精品综合久久| 一本久久精品一区二区| 欧美成人三级电影在线| 99精品欧美一区二区三区小说| 91视频免费看| 日韩视频免费观看高清完整版在线观看 | 国产日韩欧美亚洲| 亚洲欧洲av另类| 免费观看一级特黄欧美大片| 一区二区三区中文字幕| 一区二区三区中文字幕电影| 激情欧美日韩一区二区| 福利一区二区在线观看| 91电影在线观看| 91蜜桃在线观看| 91福利社在线观看| 欧美伊人久久久久久午夜久久久久| 成人精品国产福利| 91色|porny| 欧洲另类一二三四区| 欧美日免费三级在线| 制服丝袜激情欧洲亚洲| 26uuu国产一区二区三区| 中文字幕成人在线观看| 综合久久给合久久狠狠狠97色 | 精品一区二区三区在线播放视频| 久久精品久久久精品美女| 国产激情视频一区二区在线观看| 成人精品免费看| 精品视频一区二区不卡| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲日本丝袜连裤袜办公室|