C課程報(bào)告畢業(yè)論文.doc_第1頁(yè)
C課程報(bào)告畢業(yè)論文.doc_第2頁(yè)
C課程報(bào)告畢業(yè)論文.doc_第3頁(yè)
C課程報(bào)告畢業(yè)論文.doc_第4頁(yè)
C課程報(bào)告畢業(yè)論文.doc_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

北華航天工業(yè)學(xué)院課程報(bào)告C+課程報(bào)告畢業(yè)論文目 錄第1章 問(wèn)題描述11.1題目?jī)?nèi)容11.1.1交通咨詢系統(tǒng)設(shè)計(jì)11.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算11.1.3十進(jìn)制四則運(yùn)算計(jì)算器11.2基本要求11.2.1交通咨詢系統(tǒng)設(shè)計(jì)11.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算11.2.3十進(jìn)制四則運(yùn)算計(jì)算器21.3 測(cè)試數(shù)據(jù)21.3.1交通咨詢系統(tǒng)設(shè)計(jì)21.3.2一元高次多項(xiàng)式的加、減、乘運(yùn)算31.3.3十進(jìn)制四則運(yùn)算計(jì)算器3第2章 需求分析42.1功能說(shuō)明42.1.1交通咨詢系統(tǒng)設(shè)計(jì)。42.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算42.1.3十進(jìn)制四則運(yùn)算計(jì)算器42.2輸入說(shuō)明42.2.1交通咨詢系統(tǒng)設(shè)計(jì)42.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算52.2.3十進(jìn)制四則運(yùn)算計(jì)算器52.3輸出說(shuō)明52.3.1交通咨詢系統(tǒng)設(shè)計(jì)52.3.2一元高次多項(xiàng)式的加、減、乘運(yùn)算52.3.3十進(jìn)制四則運(yùn)算計(jì)算器52.4測(cè)試數(shù)據(jù)52.4.1交通咨詢系統(tǒng)設(shè)計(jì)52.4.2一元高次多項(xiàng)式的加、減、乘運(yùn)算52.4.3十進(jìn)制四則運(yùn)算計(jì)算器6第3章 概要設(shè)計(jì)73.1抽象數(shù)據(jù)類型定義73.1.1交通咨詢系統(tǒng)設(shè)計(jì)73.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算73.1.3十進(jìn)制四則運(yùn)算計(jì)算器83.2程序模塊結(jié)構(gòu)93.2.1交通咨詢系統(tǒng)設(shè)計(jì)93.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算93.2.3十進(jìn)制四則運(yùn)算計(jì)算器10第4章 詳細(xì)設(shè)計(jì)114.1定義的數(shù)據(jù)類型114.1.1交通咨詢系統(tǒng)設(shè)計(jì)114.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算264.1.3十進(jìn)制四則運(yùn)算計(jì)算器354.2函數(shù)間的調(diào)用關(guān)系484.2.1交通咨詢系統(tǒng)設(shè)計(jì)484.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算484.2.3十進(jìn)制四則運(yùn)算計(jì)算器49第5章 調(diào)試分析505.1調(diào)試過(guò)程分析505.1.1交通咨詢系統(tǒng)設(shè)計(jì)505.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算505.1.3十進(jìn)制四則運(yùn)算計(jì)算器505.2算法的時(shí)空分析505.2.1交通咨詢系統(tǒng)設(shè)計(jì)505.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算515.2.3十進(jìn)制四則運(yùn)算計(jì)算器51第6章 使用說(shuō)明526.1交通咨詢系統(tǒng)設(shè)計(jì)526.2一元高次多項(xiàng)式的加、減、乘運(yùn)算526.3十進(jìn)制四則運(yùn)算計(jì)算器52第7章 測(cè)試結(jié)果537.1交通咨詢系統(tǒng)設(shè)計(jì)537.2一元高次多項(xiàng)式的加、減、乘運(yùn)算577.3十進(jìn)制四則運(yùn)算計(jì)算器60總 結(jié)63參考文獻(xiàn)64第1章 問(wèn)題描述1.1題目?jī)?nèi)容1.1.1交通咨詢系統(tǒng)設(shè)計(jì)設(shè)計(jì)一個(gè)交通咨詢系統(tǒng),能讓旅客咨詢從任一城市頂點(diǎn)到另一城市頂點(diǎn)之間的最短路徑(里程)或最低花費(fèi)或最少時(shí)間等問(wèn)題。對(duì)于不同咨詢要求,可輸入城市間的路程或所需時(shí)間或所需費(fèi)用。1.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算用鏈表表示一元高次多項(xiàng)式,實(shí)現(xiàn)兩個(gè)多項(xiàng)式的加、減、乘運(yùn)算。1.1.3十進(jìn)制四則運(yùn)算計(jì)算器將算術(shù)表達(dá)式用二叉樹(shù)表示,并對(duì)其進(jìn)行遍歷,求出后綴表達(dá)式后,計(jì)算后綴表達(dá)的值。1.2基本要求1.2.1交通咨詢系統(tǒng)設(shè)計(jì)1創(chuàng)建圖的存儲(chǔ)結(jié)構(gòu)使用鄰接矩陣。2查詢分為兩類。一類是能讓旅客咨詢從一個(gè)城市到另外所有城市的最短路徑(要求使用迪杰斯特拉算法),顯示出所有路徑,按升序排列。第二類是任意兩個(gè)城市間的最短路徑(要求使用弗洛伊德算法),顯示最短路徑。1.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算1描述多項(xiàng)式時(shí),將每個(gè)子項(xiàng)看成是由系數(shù)和指數(shù)兩部分組成。2輸入并創(chuàng)建一元多項(xiàng)式,以鏈表作為存儲(chǔ)結(jié)構(gòu)。3實(shí)現(xiàn)兩個(gè)多項(xiàng)式的相加、相減和相乘運(yùn)算。4顯示多項(xiàng)式,查看運(yùn)算結(jié)果。 5用戶界面包括以下功能: 加法 加法 減法 乘法 顯示 退出1.2.3十進(jìn)制四則運(yùn)算計(jì)算器1表達(dá)式以中綴字符串形式給出,以#作為結(jié)束符。2二叉樹(shù)以二叉鏈表形式存儲(chǔ)。3給出二叉樹(shù)先序、中序和后序三種遍歷的結(jié)點(diǎn)序列,所有遍歷用非遞歸算法實(shí)現(xiàn)。4求后綴表達(dá)式的值用棧實(shí)現(xiàn)。5算術(shù)表達(dá)式中包含的運(yùn)算有加、減、乘、除。1.3 測(cè)試數(shù)據(jù)1.3.1交通咨詢系統(tǒng)設(shè)計(jì)相關(guān)數(shù)據(jù)為下表所示起點(diǎn)終點(diǎn)花費(fèi)時(shí)間路程起點(diǎn)終點(diǎn)花費(fèi)時(shí)間路程起點(diǎn)終點(diǎn)花費(fèi)時(shí)間路程191045032189221107022161020210567610837024114580230126682023190115110232501369523229533490175511371722220567417152401370415316073971519033051772224226330219672022701584229380231100692251163961121010607111374225562431020902112423011672182318545341824145340922142321265112142601482512241054367524225116754122151062251626514140城市名稱和代號(hào)對(duì)照:0:北京1:長(zhǎng)春 2:成都 3:大連 4:福州 5:廣州 6:貴陽(yáng) 7:哈爾濱 8:呼和浩特9:昆明 10:蘭州 11:柳州 12:南昌 13:南寧 14:上海 15:沈陽(yáng) 16:深圳 17:天津 18:武漢 19:烏魯木齊 20:西安 21:西寧 22:徐州 23:鄭州 24:株州運(yùn)行結(jié)果:求從城市代號(hào)為2到其他相應(yīng)城市按路程求的相應(yīng)路徑為:0-23-20-2; 1-15-17-0-23-20-2; 2;3-15-17-0-23-20-2; 4-12-24-6-2; 5-24-6-2; 6-2; 7-1-15-17-0-23-20-2; 8-10-20-2; 9-2; 10-20-2; 11-6-2;12-24-6-2; 13-11-6-2; 14-22-23-20-2; 15-17-0-23-20-2; 16-5-24-6-2; 17-0-23-20-2; 18-23-20-2; 19-10-20-2; 20-2; 21-10-20-2; 22-23-20-2; 23-20-2; 24-6-2; 求按路程從2到23的最短路徑為: 23-20-21.3.2一元高次多項(xiàng)式的加、減、乘運(yùn)算原來(lái)兩個(gè)多項(xiàng)式為:L1=2x3+3x-3+5x4 L2=2x3+3x-3+5x4運(yùn)算結(jié)果:兩個(gè)多項(xiàng)式相加:L1+L2=4x3+6x-3+10x4兩個(gè)多項(xiàng)式相減:L1-L2=0兩個(gè)多項(xiàng)式相乘:L1*L2=4x6+12+20x7+9x-6+30x1+25x81.3.3十進(jìn)制四則運(yùn)算計(jì)算器表達(dá)式為:2+3-(4+3)*7運(yùn)算結(jié)果為:先序遍歷為:-+23*+437中序遍歷為:2+3-4+3*7后序遍歷為:23+43+7*-運(yùn)算結(jié)果為:-44 第2章 需求分析2.1功能說(shuō)明2.1.1交通咨詢系統(tǒng)設(shè)計(jì)。設(shè)計(jì)一個(gè)交通咨詢系統(tǒng),能讓旅客咨詢從任一城市頂點(diǎn)到另一城市頂點(diǎn)之間的最短路徑(里程)或最低花費(fèi)或最少時(shí)間等問(wèn)題。對(duì)于不同咨詢要求,可輸入城市間的路程或所需時(shí)間或所需費(fèi)用。2.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算1描述多項(xiàng)式時(shí),將每個(gè)子項(xiàng)看成是由系數(shù)和指數(shù)兩部分組成。2輸入并創(chuàng)建一元多項(xiàng)式,以鏈表作為存儲(chǔ)結(jié)構(gòu)。3實(shí)現(xiàn)兩個(gè)多項(xiàng)式的相加、相減和相乘運(yùn)算。4顯示多項(xiàng)式,查看運(yùn)算結(jié)果。 5用戶界面包括以下功能: 加法 加法 減法 乘法 顯示 退出2.1.3十進(jìn)制四則運(yùn)算計(jì)算器 1表達(dá)式以中綴字符串形式給出,以#作為結(jié)束符。2二叉樹(shù)以二叉鏈表形式存儲(chǔ)。3給出二叉樹(shù)先序、中序和后序三種遍歷的結(jié)點(diǎn)序列,所有遍歷用非遞歸算法實(shí)現(xiàn)。4求后綴表達(dá)式的值用棧實(shí)現(xiàn)。5算術(shù)表達(dá)式中包含的運(yùn)算有加、減、乘、除。2.2輸入說(shuō)明2.2.1交通咨詢系統(tǒng)設(shè)計(jì)程序運(yùn)行后顯現(xiàn)提示信息,由用戶選擇要實(shí)現(xiàn)現(xiàn)功能的代號(hào),創(chuàng)建圖時(shí)不是由用戶輸入的而在程序中的一個(gè)函數(shù)中實(shí)現(xiàn)的。2.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算程序運(yùn)行后顯現(xiàn)提示信息,由用戶輸入兩個(gè)多項(xiàng)式每一項(xiàng)都是先后輸入該項(xiàng)的系數(shù)、指數(shù)和字母,系數(shù)和指數(shù)是所有的實(shí)數(shù),程序會(huì)自動(dòng)合并兩個(gè)指數(shù)相同的項(xiàng)。2.2.3十進(jìn)制四則運(yùn)算計(jì)算器程序運(yùn)行后顯現(xiàn)提示信息,由用戶隨便輸入一個(gè)表達(dá)式但每一項(xiàng)的操作數(shù)必須在09之間。這個(gè)表達(dá)式可以有括號(hào)。2.3輸出說(shuō)明2.3.1交通咨詢系統(tǒng)設(shè)計(jì)用戶輸入數(shù)據(jù)完畢后,程序?qū)⑤敵鲞\(yùn)算結(jié)果。2.3.2一元高次多項(xiàng)式的加、減、乘運(yùn)算用戶輸入數(shù)據(jù)完畢后,程序?qū)⑤敵鲞\(yùn)算結(jié)果。2.3.3十進(jìn)制四則運(yùn)算計(jì)算器用戶輸入數(shù)據(jù)完畢后,程序?qū)⑤敵鲞\(yùn)算結(jié)果。2.4測(cè)試數(shù)據(jù)2.4.1交通咨詢系統(tǒng)設(shè)計(jì)創(chuàng)建的圖由程序來(lái)實(shí)現(xiàn)的,對(duì)用戶輸入的數(shù)據(jù)沒(méi)有太多的要求,要想實(shí)現(xiàn)什么功能直接輸入實(shí)現(xiàn)該項(xiàng)功能的代碼就行。2.4.2一元高次多項(xiàng)式的加、減、乘運(yùn)算輸入兩個(gè)多項(xiàng)式每一項(xiàng)的系數(shù)和指數(shù)可以是所有的實(shí)數(shù)。2.4.3十進(jìn)制四則運(yùn)算計(jì)算器用來(lái)測(cè)試的表達(dá)式每一項(xiàng)的操作數(shù)必須在09之間。這個(gè)表達(dá)式可以有括號(hào)。第3章 概要設(shè)計(jì)3.1抽象數(shù)據(jù)類型定義3.1.1交通咨詢系統(tǒng)設(shè)計(jì)為實(shí)現(xiàn)上程序功能,該程序應(yīng)用圖來(lái)表示交通的一些信息,圖是用鄰接矩陣來(lái)存儲(chǔ),矩陣中的數(shù)據(jù)類型是一個(gè)結(jié)構(gòu)體,該結(jié)構(gòu)體有三個(gè)int數(shù)據(jù)成員,分別來(lái)表示兩個(gè)城市間的路程、花費(fèi)和時(shí)間。1圖的鄰接矩陣的抽象數(shù)據(jù)類型定義typedef structVertexType vexsMaxVertexNum;/用來(lái)存儲(chǔ)圖的頂點(diǎn)信息即城市的代號(hào)EdgeType edgesMaxVertexNumMaxVertexNum;/用來(lái)存儲(chǔ)邊的一些信息包括路程時(shí)間和花費(fèi)int n,e;/表示頂點(diǎn)數(shù)和和邊數(shù)MGragh;2矩陣中的抽象數(shù)據(jù)類型定義typedef structint mil;/路程int cost;/花費(fèi)int time;/時(shí)間EdgeType;3.1.2一元高次多項(xiàng)式的加、減、乘運(yùn)算為實(shí)現(xiàn)上程序功能,用一個(gè)鏈表來(lái)表示一元高次多項(xiàng)式,該鏈表的結(jié)點(diǎn)中的data是一個(gè)結(jié)構(gòu)體類型,該結(jié)構(gòu)體包括三個(gè)數(shù)據(jù)成員分別是多項(xiàng)式的每一項(xiàng)的系數(shù)和指數(shù)和字母。1.鏈表的抽象數(shù)據(jù)類型定義typedef structint xidata;int zhidata;char ch;DataType;/結(jié)點(diǎn)中的data數(shù)據(jù)類型typedef struct NodeDataType data;struct Node *next;LNode,*LinkList;/結(jié)點(diǎn)的定義void Creat_double(LinkList &L)/構(gòu)造一個(gè)鏈表3.1.3十進(jìn)制四則運(yùn)算計(jì)算器為實(shí)現(xiàn)上程序的功能,應(yīng)用了兩個(gè)順序棧,二叉樹(shù)用二叉鏈表來(lái)存儲(chǔ),這兩個(gè)順序棧一個(gè)棧用來(lái)存儲(chǔ)指向存儲(chǔ)運(yùn)算符的結(jié)點(diǎn)的指針,一個(gè)棧用來(lái)存儲(chǔ)指向操作數(shù)的結(jié)點(diǎn)的指針,用這兩個(gè)棧來(lái)實(shí)現(xiàn)把一個(gè)表達(dá)式轉(zhuǎn)換成一個(gè)二叉樹(shù)。1.二叉樹(shù)抽象數(shù)據(jù)類型定義typedef struct BiTNodeDataType1 data;/ typedef char DataType1;struct BiTNode *lchild,*rchild;BiTNode,*BiTree;void GreatBiTree(BiTree &T)/用二叉鏈表創(chuàng)建一個(gè)二叉樹(shù)的函數(shù)2.棧的抽象數(shù)據(jù)類型定義typedef structDataType datamaxsize;/該數(shù)據(jù)類型為指向一個(gè)二叉樹(shù)的結(jié)點(diǎn)的指針int top;SeqStack;/棧的定義void Init_SeqStack(SeqStack &s)/棧的初始化函數(shù)int Push_SeqStack(SeqStack &s,DataType x)/進(jìn)棧函數(shù)int Pop_SeqStack(SeqStack &s,DataType &x)/出棧函數(shù)void GetTop_SeqStack(SeqStack s,DataType &a)/讀取棧頂元素函數(shù)int Empty_SeqStack(SeqStack s)/判斷棧是否為空的函數(shù)3.2程序模塊結(jié)構(gòu)3.2.1交通咨詢系統(tǒng)設(shè)計(jì)本程序包含主函數(shù)、調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)和實(shí)現(xiàn)各功能的函數(shù)等三個(gè)模塊。調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)模塊是用來(lái)調(diào)用一些函數(shù)這些函數(shù)是能實(shí)現(xiàn)一些功能的函數(shù)。實(shí)現(xiàn)各功能的函數(shù)模塊有分別按路程、時(shí)間、花費(fèi)來(lái)分別計(jì)算從一個(gè)城市到所有城市的最短路徑和兩個(gè)城市的最短路徑。三個(gè)模塊間的調(diào)用關(guān)系如圖3-1所示。主函數(shù)調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)實(shí)現(xiàn)各功能的函數(shù)圖3-1 模塊間的調(diào)用關(guān)系圖3.2.2一元高次多項(xiàng)式的加、減、乘運(yùn)算本程序包含主函數(shù)、調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)和實(shí)現(xiàn)各功能的函數(shù)等三個(gè)模塊。調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)模塊是用來(lái)調(diào)用一些函數(shù)這些函數(shù)能實(shí)現(xiàn)一定的功能。實(shí)現(xiàn)各功能的函數(shù)模塊有創(chuàng)建一個(gè)鏈表來(lái)存儲(chǔ)一個(gè)多項(xiàng)式的函數(shù)、有實(shí)現(xiàn)兩個(gè)多項(xiàng)式加減乘的函數(shù)。有顯示多項(xiàng)式的函數(shù)。主函數(shù)調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)實(shí)現(xiàn)各功能的函數(shù) 圖3-2 模塊間的調(diào)用關(guān)系圖3.2.3十進(jìn)制四則運(yùn)算計(jì)算器本程序包含主函數(shù)、調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)和實(shí)現(xiàn)各功能的函數(shù)等三個(gè)模塊。調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)模塊是用來(lái)調(diào)用一些函數(shù)這些函數(shù)能實(shí)現(xiàn)一定的功能。實(shí)現(xiàn)各功能的函數(shù)模塊有把表達(dá)式創(chuàng)建成一個(gè)二叉樹(shù)的函數(shù)和實(shí)現(xiàn)二叉樹(shù)的先序、中序和后序的非遞歸遍歷的函數(shù)和用二叉樹(shù)的后序遍歷來(lái)計(jì)算表達(dá)式值的函數(shù)。主函數(shù)調(diào)用能實(shí)現(xiàn)各功能函數(shù)的函數(shù)實(shí)現(xiàn)各功能的函數(shù) 圖3-3 模塊間的調(diào)用關(guān)系圖第4章 詳細(xì)設(shè)計(jì)4.1定義的數(shù)據(jù)類型4.1.1交通咨詢系統(tǒng)設(shè)計(jì)1圖存儲(chǔ)類型的定義#define MaxVertexNum 30typedef int VertexType;typedef structint mil;int cost;int time;EdgeType;typedef structVertexType vexsMaxVertexNum;EdgeType edgesMaxVertexNumMaxVertexNum;int n,e;MGragh;2創(chuàng)建圖的函數(shù)的偽碼算法在創(chuàng)建圖時(shí),一些數(shù)據(jù)不是用戶輸入的而是程序中已經(jīng)給定的。void Create_MGragh(MGragh &G)int i,j;G.n=25;G.e=30;for(i=0;iG.n;i+)G.vexsi=i;for(i=0;iG.n;i+)for(j=0;jG.n;j+)G.=maxnum;G.edgesij.cost=maxnum;G.edgesij.time=maxnum;G.=G.=1892;G.edges1910.cost=G.edges1019.cost=450;G.edges1910.time=G.edges1019.time=32;G.=G.=1145;G.edges108.cost=G.edges810.cost=370;G.edges108.time=G.edges810.time=24;G.=G.=668;G.edges80.cost=G.edges08.cost=230;G.edges80.time=G.edges08.time=12;G.=G.=137;G.edges017.cost=G.edges170.cost=55;G.edges017.time=G.edges170.time=1;G.=G.=704;G.edges1715.cost=G.edges1517.cost=240;G.edges1715.time=G.edges1517.time=13;G.=G.=305;G.edges151.cost=G.=90;G.edges151.time=G.edges115.time=3;G.=G.=397;G.edges153.cost=G.edges315.cost=160;G.edges153.time=G.edges315.time=7;G.=G.=242;G.edges17.cost=G.edges71.cost=72;G.edges17.time=G.edges71.time=2;G.=G.=216;G.edges2110.cost=G.edges1021.cost=70;G.edges2110.time=G.edges1021.time=2;G.=G.=676;G.edges2010.cost=G.edges1020.cost=210;G.edges2010.time=G.edges1020.time=5;G.=G.=511;G.edges2320.cost=G.edges2023.cost=190;G.edges2320.time=G.edges2023.time=11;G.=G.=695;G.edges230.cost=G.edges023.cost=250;G.edges230.time=G.edges023.time=13;G.=G.=349;G.edges2322.cost=G.edges2223.cost=95;G.edges2322.time=G.edges2223.time=3;G.=G.=674;G.edges2217.cost=G.edges1722.cost=220;G.edges2217.time=G.edges1722.time=5;G.=G.=651;G.edges2214.cost=G.edges1422.cost=232;G.edges2214.time=G.edges1422.time=12;G.=G.=534;G.edges2318.cost=G.edges1823.cost=185;G.edges2318.time=G.edges1823.time=4;G.=G.=842;G.edges220.cost=G.edges202.cost=270;G.edges220.time=G.edges202.time=15;G.=G.=1100;G.edges29.cost=G.edges92.cost=380;G.edges29.time=G.edges92.time=23;G.=G.=967;G.edges26.cost=G.edges62.cost=330;G.edges26.time=G.edges62.time=21;G.=G.=409;G.edges1824.cost=G.edges2418.cost=145;G.edges1824.time=G.edges2418.time=3;G.=G.=825;G.edges1412.cost=G.edges1214.cost=260;G.edges1412.time=G.edges1214.time=14;G.=G.=639;G.edges96.cost=G.edges69.cost=225;G.edges96.time=G.edges69.time=11;G.=G.=902;G.edges624.cost=G.edges246.cost=310;G.edges624.time=G.edges246.time=20;G.=G.=367;G.edges2412.cost=G.edges1224.cost=105;G.edges2412.time=G.edges1224.time=4;G.=G.=622;G.edges124.cost=G.edges412.cost=215;G.edges124.time=G.edges412.time=10;G.=G.=607;G.edges611.cost=G.edges116.cost=210;G.edges611.time=G.edges116.time=10;G.=G.=672;G.edges2411.cost=G.edges1124.cost=230;G.edges2411.time=G.edges1124.time=11;G.=G.=675;G.edges245.cost=G.edges524.cost=225;G.edges245.time=G.edges524.time=11;G.=G.=255;G.edges1311.cost=G.edges1113.cost=74;G.edges1311.time=G.edges1113.time=2;G.=G.=17;G.edges516.cost=G.edges165.cost=265;G.edges516.time=G.edges165.time=14;cout創(chuàng)建成功endl;3能實(shí)現(xiàn)一定功能的函數(shù)的偽碼算法void milshortestpath1(MGragh G,int v1)/按路程求從一個(gè)城市到另外所有城市的最短路徑int i,v,pre,w,pMaxVertexNum,DMaxVertexNum;int min;int finalMaxVertexNum;for(v=0;vG.n;v+)finalv=0;Dv=G.;pv1=-1;if(Dv!=maxnum & v!=v1)pv=v1;if(Dv=maxnum)pv=-2;Dv1=0;finalv1=1;for(i=1;iG.n;i+)min=maxnum;for(w=0;wG.n;w+)if(!finalw)if(Dwmin)v=w;min=Dw;finalv=1;for(w=0;wG.n;w+)if(!finalw & (min+G.Dw)Dw=min+G.;pw=v;cout輸出按路程求從v1到其他相應(yīng)城市的最短路徑endl;for(i=0;iG.n;i+)cout=0)cout-pre;pre=ppre;coutendl;void costshortestpath1(MGragh G,int v1) /按花費(fèi)求從一個(gè)城市到另外所有城市的最短路徑int i,v,pre,w,pMaxVertexNum,DMaxVertexNum;int min;int finalMaxVertexNum;for(v=0;vG.n;+v)finalv=0;Dv=G.edgesv1v.cost;pv1=-1;if(Dv!=maxnum & v!=v1)pv=v1;if(Dv=maxnum)pv=-2;Dv1=0;finalv1=1;for(i=1;iG.n;+i)min=maxnum;for(w=0;wG.n;+w)if(!finalw)if(Dwmin)v=w;min=Dw;finalv=1;for(w=0;wG.n;+w)if(!finalw & (min+G.edgesvw.costDw)Dw=min+G.edgesvw.cost;pw=v;cout輸出按花費(fèi)求從v1到其他相應(yīng)城市的最短路徑endl;for(i=0;iG.n;i+)cout=0)cout-pre;pre=ppre;coutendl;void timeshortestpath1(MGragh G,int v1)/按時(shí)間求從一個(gè)城市到另外所有城市的最短路徑int i,v,pre,w,pMaxVertexNum,DMaxVertexNum;int min;int finalMaxVertexNum;for(v=0;vG.n;v+)finalv=0;Dv=G.edgesv1v.time;pv1=-1;if(Dv!=maxnum & v!=v1)pv=v1;if(Dv=maxnum)pv=-2;Dv1=0;finalv1=1;for(i=1;iG.n;i+)min=maxnum;for(w=0;wG.n;w+)if(!finalw)if(Dwmin)v=w;min=Dw;finalv=1;for(w=0;wG.n;w+)if(!finalw & (min+G.edgesvw.timeDw)Dw=min+G.edgesvw.time;pw=v;cout輸出按時(shí)間求從v1到其他相應(yīng)城市的最短路徑endl;for(i=0;iG.n;i+)cout=0)cout-pre;pre=ppre;coutendl;void milshortestpath2(MGragh G,int v,int w)/按路程求任意兩個(gè)城市間的最短路徑int i,j,u,pre;int DMaxVertexNumMaxVertexNum,pMaxVertexNumMaxVertexNum;for(i=0;iG.n;i+)for(j=0;jG.n;j+)Dij=G.;if(Dij2000)pij=i;elseif(i!=j)pij=-2;elsepij=-1;for(u=0;uG.n;u+)for(i=0;iG.n;i+)for(j=0;jG.n;j+)if(Diu+DujDij)Dij=Diu+Duj;pij=u;pre=pvw;cout輸出按路程求從v到w的最短路徑endl;coutw;while(pre!=v)cout-pre;pre=pvpre;cout-vendl;void costshortestpath2(MGragh G,int v,int w)/按花費(fèi)求任意兩個(gè)城市間的最短路徑int i,j,u,pre;int DMaxVertexNumMaxVertexNum,pMaxVertexNumMaxVertexNum;for(i=0;iG.n;i+)for(j=0;jG.n;j+)Dij=G.edgesij.cost;if(Dijmaxnum)pij=i;elseif(i!=j)pij=-2;elsepij=-1;for(u=0;uG.n;u+)for(i=0;iG.n;i+)for(j=0;jG.n;j+)if(Diu+DujDij)Dij=Diu+Duj;pij=u;pre=pvw;cout輸出花費(fèi)求從v到w的最短路徑endl;coutw;while(pre!=v)cout-pre;pre=pvpre;cout-vendl;void timeshortestpath2(MGragh G,int v,int w)/按時(shí)間求任意兩個(gè)城市間的最短路徑int i,j,u,pre;int DMaxVertexNumMaxVertexNum,pMaxVertexNumMaxVertexNum;for(i=0;iG.n;i+)for(j=0;jG.n;j+)Dij=G.edgesij.time;if(Dijmaxnum)pij=i;elseif(i!=j)pij=-2;elsepij=-1;for(u=0;uG.n;u+)for(i=0;iG.n;i+)for(j=0;jG.n;j+)if(Diu+DujDij)Dij=Diu+Duj;pij=u;pre=pvw;cout輸出時(shí)間求從v到w的最短路徑endl;coutw;while(pre!=v)cout-pre;pre=pvpre;cout-vendl;void shortestpath1(MGragh G,int v)int n;cout$endl;cout$ 1.按路程來(lái)計(jì)算 $endl;cout$ 2.銨花費(fèi)來(lái)計(jì)算 $endl;cout$ 3.按時(shí)間來(lái)計(jì)算 $endl;cout$ 4.返回上一級(jí) $endl;cout$endl;cout請(qǐng)輸入代碼n;if(n=1)milshortestpath1(G,v);if(n=2)costshortestpath1(G,v);if(n=3)timeshortestpath1(G,v);if(n=4)void shortestpath1a(MGragh G)int v;cout$endl;cout$ 0.北京 1.長(zhǎng)春 2.成都 3.大連 4.福州 $endl;cout$ 5.廣州 6.貴陽(yáng) 7.哈爾濱 8.呼和浩特 9.昆明 $endl;cout$ 10.蘭州 11.柳州 12.南昌 13.南寧 14.上海 $endl;cout$ 15.沈陽(yáng) 16.深圳 17.天津 18.武漢19.烏魯木齊 $endl;cout$ 20.西安 21.西寧 22.徐州 23.鄭州 24.株州 $endl; cout$ 25.返回最初的界面 $endl;cout$endl;cout請(qǐng)輸入所要求的城市的代碼:v;if(v=24)shortestpath1(G,v);shortestpath1a(G);elsevoid shortestpath2(MGragh G,int v,int w)int n;cout$endl;cout$ 1.按路程來(lái)計(jì)算 $endl;cout$ 2.銨花費(fèi)來(lái)計(jì)算 $endl;cout$

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論