![據(jù)數(shù)結(jié)構(gòu)課程設(shè)計(jì)方案說明文本公交乘車_第1頁(yè)](http://file4.renrendoc.com/view/0e64bec09e392a2d24d71f39c0c261c2/0e64bec09e392a2d24d71f39c0c261c21.gif)
![據(jù)數(shù)結(jié)構(gòu)課程設(shè)計(jì)方案說明文本公交乘車_第2頁(yè)](http://file4.renrendoc.com/view/0e64bec09e392a2d24d71f39c0c261c2/0e64bec09e392a2d24d71f39c0c261c22.gif)
![據(jù)數(shù)結(jié)構(gòu)課程設(shè)計(jì)方案說明文本公交乘車_第3頁(yè)](http://file4.renrendoc.com/view/0e64bec09e392a2d24d71f39c0c261c2/0e64bec09e392a2d24d71f39c0c261c23.gif)
![據(jù)數(shù)結(jié)構(gòu)課程設(shè)計(jì)方案說明文本公交乘車_第4頁(yè)](http://file4.renrendoc.com/view/0e64bec09e392a2d24d71f39c0c261c2/0e64bec09e392a2d24d71f39c0c261c24.gif)
![據(jù)數(shù)結(jié)構(gòu)課程設(shè)計(jì)方案說明文本公交乘車_第5頁(yè)](http://file4.renrendoc.com/view/0e64bec09e392a2d24d71f39c0c261c2/0e64bec09e392a2d24d71f39c0c261c25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)》課程設(shè)計(jì)任務(wù)書題目公交咨詢程序?qū)W生姓名孫寶琳學(xué)號(hào)200701030124專業(yè)班級(jí)數(shù)學(xué)0701設(shè)計(jì)內(nèi)容與要求【問題描述】利用圖實(shí)現(xiàn)公交咨詢系統(tǒng),包括公交線路查詢、站點(diǎn)查詢以及最優(yōu)乘車方案的查詢?!拒浖δ堋繌奈募薪邮?qǐng)D和公交車信息;可實(shí)現(xiàn)確定公交線路查詢,即輸出該車的所有站點(diǎn);可以對(duì)某一個(gè)站點(diǎn)進(jìn)行查詢輸出該站點(diǎn)的所有下一站;可以對(duì)乘車方案進(jìn)行查詢,即輸出確定起點(diǎn),終點(diǎn)的最優(yōu)乘車方案,換車輸出換車次數(shù)及換車站點(diǎn);【算法思想】設(shè)計(jì)公交車類(車號(hào),路程長(zhǎng)度,終點(diǎn)站)、圖類(站點(diǎn)名,公交車類,現(xiàn)有路線條數(shù),現(xiàn)有站點(diǎn)數(shù))、Dijkstra算法類(最短路徑上的最后一個(gè)站點(diǎn),最短路徑的站點(diǎn)數(shù));從文件中接收內(nèi)容并對(duì)圖和公交車進(jìn)行初始化,公交線路查詢——在圖中找到起點(diǎn)站,按順序輸出所有公交車號(hào)相同的站點(diǎn);乘車方案中利用Dijkstra算法算出最優(yōu)路線,并有最短路徑的最后一個(gè)站點(diǎn)將路徑上的所有站點(diǎn)入棧,出站時(shí)判斷是否換車并輸出方案;【提交成果】1.“《數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)》課程設(shè)計(jì)任務(wù)書”一份,打印裝袋;2.“《數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)》課程設(shè)計(jì)報(bào)告”一份,打印裝袋;3、上面兩項(xiàng)內(nèi)容的word文檔,通過電子郵件交到指導(dǎo)教師。起止時(shí)間2009年6月8日至2009年6月指導(dǎo)教師簽名年月日系(教研室)主任簽名年月日學(xué)生簽名孫寶琳2009年6月18日數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)課程設(shè)計(jì) 專業(yè)數(shù)學(xué)與應(yīng)用數(shù)學(xué)班級(jí)數(shù)學(xué)0701學(xué)號(hào)200701030124姓名孫寶琳完成日期6.18指導(dǎo)教師(簽名)程序設(shè)計(jì)說明書【設(shè)計(jì)題目】公交咨詢程序【問題描述】利用圖實(shí)現(xiàn)公交咨詢系統(tǒng),包括公交線路查詢、站點(diǎn)查詢以及最優(yōu)乘車方案的查詢?!拒浖δ堋?從文件中接收?qǐng)D和公交車信息;2可實(shí)現(xiàn)確定公交線路查詢,即輸出該車的所有站點(diǎn);3可以對(duì)某一個(gè)站點(diǎn)進(jìn)行查詢輸出該站點(diǎn)的所有下一站;可以對(duì)乘車方案進(jìn)行查詢,即輸出確定起點(diǎn),終點(diǎn)的最優(yōu)乘車方案,換車輸出換車次數(shù)及換車站點(diǎn);【算法思想】設(shè)計(jì)公交車類(車號(hào),路程長(zhǎng)度,終點(diǎn)站),圖類(站點(diǎn)名,公交車類,現(xiàn)有路線條數(shù),現(xiàn)有站點(diǎn)數(shù)),Dijkstra算法類(最短路徑上的最后一個(gè)站點(diǎn),最短路徑的站點(diǎn)數(shù));從文件中接收內(nèi)容并對(duì)圖和公交車進(jìn)行初始化,公交線路查詢——在圖中找到起點(diǎn)站,按順序輸出所有公交車號(hào)相同的站點(diǎn);乘車方案中利用Dijkstra算法算出最優(yōu)路線并有最短路徑的最后一個(gè)站點(diǎn)輸出乘車方案;【類的設(shè)計(jì)】structBus//公交車類{ intnumber;//公交車號(hào) intlength;//總站數(shù) charbus_state[Maxstate][20];//站點(diǎn)};classGraph//建立無向圖{ friendclassDistance;//聲明友元類private: charstatename[Maxstate][20];//站點(diǎn) intbusnumber[Maxstate][Maxstate];//鄰接矩陣,權(quán)值為這兩個(gè)站點(diǎn)的公交車號(hào) intcurrentstate;//當(dāng)前站點(diǎn)數(shù) intcurrentbus;//當(dāng)前公交車數(shù) Busbuses[Maxbus];//公交車信息public: Graph();//無參構(gòu)造函數(shù),對(duì)成員變量初始化voidInsertstate(charstate[]);//插入一個(gè)站點(diǎn)voidInsertbusnumber(charV1[],charV2[],intbusnum);//插入權(quán)值voidSet_graph();//圖的建立boolIsGraphFull();//判斷圖是否已滿voidshow_busmessage(intnumber);//輸出公交信息intsearchbusnumber(charv0[],charv1[]);//查找指定站點(diǎn)的公交車號(hào)碼voiddirection(charv0[],charv1[]);//輸出指定站點(diǎn)的公交車方向friendvoidbusline();//把外部函數(shù)定義為圖的友元函數(shù),以便使用圖的私有成員變量 friendvoidsearchstate(); friendvoidbestproject(); friendvoidmainsurface();};classStackNode//棧結(jié)點(diǎn){friendclassStack;//友元類private: chardate[20]; //結(jié)點(diǎn)數(shù)據(jù) StackNode*link;//結(jié)點(diǎn)鏈指針public: //構(gòu)造函數(shù):結(jié)點(diǎn)賦值 StackNode(chard[]=0,StackNode*l=NULL);};classStack//定義棧{private: StackNode*top;//棧頂指針public: Stack():top(NULL){}//構(gòu)造函數(shù) ~Stack();//析構(gòu) voidPush(charitem[]);//進(jìn)棧 intPop(charx[]); //退棧 intGetTop(charx[]);//讀取棧頂元素 voidMakeEmpty();//把棧置空 intIsEmpty();};classDistance:publicGraph//定義最短距離類{private: charpath[20];//最短距離的前一站 intdistance[Maxstate];//最短距離public: voidbestchooce(charv0[],charv1[]);//最優(yōu)方案};【存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)】使用鄰接矩陣intbusnumber[Maxstate][Maxstate];存儲(chǔ)圖的信息;公交車信息采用結(jié)構(gòu)體數(shù)組Busbuses[Maxbus];存儲(chǔ);棧使用鏈表來實(shí)現(xiàn);【模塊劃分及調(diào)用關(guān)系】Main()Main()MMainsurface()退出Searchstate()B退出Searchstate()Bestproject()Busline()共有三個(gè)模塊:公交線路查詢Busline()、站點(diǎn)查詢Searchstate()、最優(yōu)方案Bestproject()【模塊流程圖】Busline():Mainsurface()SMainsurface()Set_graph()所有路線瀏覽特定車號(hào)的路線查詢所有路線瀏覽特定車號(hào)的路線查詢循環(huán)輸出當(dāng)前車循環(huán)輸出當(dāng)前車接收車號(hào)接收車號(hào)存在存存在存在輸出公交車信息show_busmessage()輸出公交車信息show_busmessage()2searchstate():Set_graph(Set_graph()否接收站點(diǎn)接收站點(diǎn)Mainsurface()Mainsurface()在圖內(nèi)查找在圖內(nèi)查找有有站點(diǎn)名站點(diǎn)名所到的車及方所到的車及方向bestproject():無路徑有路徑棧為是車相同接收起始站Bestchooce()Set_graph()Dijkstra算法Mainsurface()對(duì)路徑上的站入棧出棧判斷是否是換車輸出換車信息輸出路徑Mainsurface()【界面設(shè)計(jì)】采用簡(jiǎn)單的人機(jī)會(huì)話,使操作簡(jiǎn)單明了;【用戶手冊(cè)】在程序所在文件夾下建立“公交查詢.txt”,并輸入以下內(nèi)容:30世家星城-通訊學(xué)院-石油公寓-潘家莊-明德門-楊家村-城南客運(yùn)站-西八里村-醫(yī)學(xué)院-緯二街-雁南路-大雁塔-賽格電腦城-李家村-和平門-大差市-五路口-火車站;603電視塔-國(guó)展中心-吳家墳-八里村-緯二街-小寨-長(zhǎng)安立交-省體育場(chǎng)-草場(chǎng)坡-南稍門-南門-鐘樓-北門-火車站;37城北客運(yùn)站-公交六公司-方新村-龍首村-北關(guān)-鐘樓-東門-興慶路-建工路-幸福路南口;(每一個(gè)車的線路占一行);編譯運(yùn)行程序,根據(jù)提示執(zhí)行程序;要想有更為準(zhǔn)確的方案,可以在“公交查詢.txt”中加入公交車線路;程序上機(jī)調(diào)試報(bào)告【語(yǔ)法錯(cuò)誤及其排除】1函數(shù)賦值時(shí),將變量賦給了指針;使用指針傳值;2在出棧時(shí)沒有判斷棧是否為空,導(dǎo)致top指空在出棧前判斷IsEmpty();【算法錯(cuò)誤及其排除】在建立圖中沒有對(duì)a數(shù)組進(jìn)行置空,導(dǎo)致數(shù)據(jù)混亂;在使用a之前對(duì)a數(shù)組賦空;在輸出最優(yōu)結(jié)果時(shí)沒有保留前一站使程序無法判斷是否換車加入b數(shù)組保留前一站;程序測(cè)試結(jié)果【測(cè)試數(shù)據(jù)】30世家星城-通訊學(xué)院-石油公寓-潘家莊-明德門-楊家村-城南客運(yùn)站-西八里村-醫(yī)學(xué)院-緯二街-雁南路-大雁塔-賽格電腦城-李家村-和平門-大差市-五路口-火車站;603電視塔-國(guó)展中心-吳家墳-八里村-緯二街-小寨-長(zhǎng)安立交-省體育場(chǎng)-草場(chǎng)坡-南稍門-南門-鐘樓-北門-火車站;37城北客運(yùn)站-公交六公司-方新村-龍首村-北關(guān)-鐘樓-東門-興慶路-建工路-幸福路南口;(每一個(gè)車的線路占一行);【輸出結(jié)果】1公交線路查詢:2站點(diǎn)查詢:3最優(yōu)方案:【程序性能評(píng)價(jià)】使用簡(jiǎn)單;結(jié)果正確、明了;【性能改進(jìn)方向】將鄰接矩陣改為三維,即在相同兩站間由多個(gè)公交可以到達(dá);在站點(diǎn)里加入方位,即在尋找最優(yōu)結(jié)果的時(shí)候可以不必將所有站點(diǎn)進(jìn)行操作,加快運(yùn)行速度;在公交車類中加入收費(fèi),在最優(yōu)結(jié)果輸出時(shí)計(jì)算收費(fèi)(有刷卡、投幣、按站收費(fèi));【收獲及體會(huì)】通過這個(gè)程序的編寫使我對(duì)c++中文件的操作、圖的操作、棧的操作、查找等內(nèi)容有了更深的理解,在編譯的過程中也是我知道了自己的數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容還很淺,還需要在努力;源程序代碼#include<fstream.h>//文件庫(kù)#include<stdlib.h>#include<string.h>//字符串函數(shù)庫(kù)constintMaxbus=100;//最大公交車數(shù)constintMaxstate=200;//最大站點(diǎn)數(shù)constintMaxValue=999;//最大值structBus//公交車類{ intnumber;//公交車號(hào) intlength;//總站數(shù) charbus_state[Maxstate][20];//站點(diǎn)};classGraph//建立無向圖{ friendclassDistance;//聲明友元類private: charstatename[Maxstate][20];//站點(diǎn) intbusnumber[Maxstate][Maxstate];//鄰接矩陣,權(quán)值為這兩個(gè)站點(diǎn)的公交車號(hào) intcurrentstate;//當(dāng)前站點(diǎn)數(shù) intcurrentbus;//當(dāng)前公交車數(shù) Busbuses[Maxbus];//公交車信息public: Graph()//無參構(gòu)造函數(shù),對(duì)成員變量初始化 { for(inti=0;i<Maxstate;i++) for(intj=0;j<Maxstate;j++) { if(i==j) busnumber[i][j]=-1;//自己到自己沒有車 else busnumber[i][j]=MaxValue; } currentstate=0; currentbus=0; for(i=0;i<Maxbus;i++) { buses[i].number=-1; buses[i].length=0; } } voidInsertstate(charstate[])//插入一個(gè)站點(diǎn) { if(!IsGraphFull())//如果圖沒滿 { for(inti=0;i<currentstate;i++)//查看該站是否已經(jīng)存在 if(strcmp(state,statename[i])==0) break; if(i==currentstate)//如果不存在,在站點(diǎn)數(shù)組后加入 { strcpy(statename[currentstate],state); for(i=0;i<currentstate;i++) { busnumber[currentstate][i]=MaxValue; busnumber[i][currentstate]=MaxValue; } busnumber[currentstate][currentstate]=-1; currentstate++;//當(dāng)前數(shù)組加一 } } } voidInsertbusnumber(charV1[],charV2[],intbusnum)//插入權(quán)值 { for(inti=0;i<currentstate;i++)//查找站點(diǎn) if(strcmp(V1,statename[i])==0) break; for(intj=0;j<currentstate;j++) if(strcmp(V2,statename[j])==0) break; if(i!=currentstate&&j!=currentstate)//站點(diǎn)存在插入權(quán)值 { busnumber[i][j]=busnum; busnumber[j][i]=busnum; } } voidSet_graph()//圖的建立 { charch[700],a[20]; intj=0,k=0,i; for(i=0;i<20;i++)//對(duì)a數(shù)組初始化 a[i]='\0'; ifstreaminfile("公交查詢.txt");//以讀的方式打開文件 if(!infile)//文件打開失敗,則結(jié)束程序 { cout<<"Cant'topen'公交查詢.txt'"<<endl; exit(0); } while(!infile.eof()&¤tbus<Maxbus)//文件沒有讀完 { infile>>buses[currentbus].number;//接收車號(hào)碼 infile.getline(ch,700);//在文件中讀取一行 for(inti=0;ch[i]!=';';i++) { if(ch[i]!='-')//把站點(diǎn)暫存在a中 a[j++]=ch[i]; else { strcpy(buses[currentbus].bus_state[k++],a);//對(duì)公交車站點(diǎn)賦值 Insertstate(a);//插入站點(diǎn) for(j=0;j<20;j++) a[j]='\0';//對(duì)a數(shù)組初始化 j=0; } } strcpy(buses[currentbus].bus_state[k++],a); Insertstate(a); buses[currentbus].length=k;//當(dāng)前公交車長(zhǎng)度賦值 currentbus++;//當(dāng)前公交車數(shù)加一 k=0; j=0; } for(i=0;i<currentbus;i++) for(k=0;k<buses[i].length-1;k++)//插入權(quán)值 Insertbusnumber(buses[i].bus_state[k],buses[i].bus_state[k+1],buses[i].number); } boolIsGraphFull()//判斷圖是否已滿 { returncurrentstate==Maxstate; } voidshow_busmessage(intnumber)//輸出公交信息 { for(inti=0;i<currentbus;i++)//查找權(quán)值 if(buses[i].number==number) break; if(i==currentbus) cout<<"查無此車!"<<endl; else {//找到,輸出該公交車信息 cout<<""<<number<<"路("<<buses[i].bus_state[0]<<"<—>"<<buses[i].bus_state[buses[i].length-1]<<")"<<endl; for(intj=0;j<buses[i].length-1;j++) cout<<buses[i].bus_state[j]<<"<—>"; cout<<buses[i].bus_state[j]<<endl; } } intsearchbusnumber(charv0[],charv1[])//查找指定站點(diǎn)的公交車號(hào)碼 { inti,j,numb; for(intk=0;k<currentstate;k++)//查找站點(diǎn) { if(strcmp(v0,statename[k])==0) i=k; if(strcmp(v1,statename[k])==0) j=k; } numb=busnumber[i][j];//在鄰接矩陣中查找權(quán)值 returnnumb; } voiddirection(charv0[],charv1[])//輸出指定站點(diǎn)的公交車方向 { inti,j,numb,l; for(intk=0;k<currentstate;k++)//查找指定站點(diǎn) { if(strcmp(v0,statename[k])==0) i=k; if(strcmp(v1,statename[k])==0) j=k; } numb=busnumber[i][j]; for(l=0;l<currentbus;l++)//查找該公交車位置 if(numb==buses[l].number) break; for(k=0;k<buses[l].length;k++) { if(strcmp(buses[l].bus_state[k],v0)==0) i=k; if(strcmp(buses[l].bus_state[k],v1)==0) j=k; } if(i<j)//輸出公交車方向 cout<<"("<<buses[l].bus_state[0]<<"->"<<buses[l].bus_state[buses[l].length-1]<<")"<<endl; else cout<<"("<<buses[l].bus_state[0]<<"<-"<<buses[l].bus_state[buses[l].length-1]<<")"<<endl; } friendvoidbusline();//把外部函數(shù)定義為圖的友元函數(shù),以便使用圖的私有成員變量 friendvoidsearchstate(); friendvoidbestproject(); friendvoidmainsurface();};classStackNode//棧結(jié)點(diǎn){friendclassStack;//友元類private: chardate[20]; //結(jié)點(diǎn)數(shù)據(jù) StackNode*link;//結(jié)點(diǎn)鏈指針public: //構(gòu)造函數(shù):結(jié)點(diǎn)賦值 StackNode(chard[]=0,StackNode*l=NULL):link(l) { strcpy(date,d); }};classStack//定義棧{private: StackNode*top;//棧頂指針public: Stack():top(NULL){}//構(gòu)造函數(shù) ~Stack();//析構(gòu) voidPush(charitem[]);//進(jìn)棧 intPop(charx[]); //退棧 intGetTop(charx[]);//讀取棧頂元素 voidMakeEmpty();//把棧置空 intIsEmpty() { returntop==NULL; }};Stack::~Stack(){ StackNode*p; while(top!=NULL) {//逐結(jié)點(diǎn)回收 p=top; top=top->link; deletep;//釋放棧頂結(jié)點(diǎn) }}voidStack::MakeEmpty()//把棧置空{(diào) StackNode*p; while(top!=NULL) {//逐結(jié)點(diǎn)回收 p=top; top=top->link; deletep;//釋放棧頂結(jié)點(diǎn) }}voidStack::Push(charitem[])//進(jìn)棧{ StackNode*p=newStackNode(item,top);//新結(jié)點(diǎn) p->link=top;//鏈入*top之前 top=p;//成為新棧頂}intStack::Pop(charx[])//退棧{if(IsEmpty())return0; StackNode*p=top;top=top->link;//修改棧頂指針 strcpy(x,p->date);//送回退棧元素deletep; return1;//釋放}intStack::GetTop(charx[])//讀取棧頂元素{if(IsEmpty())return0; strcpy(x,top->date);//送回棧頂元素 return1;//釋放} classDistance:publicGraph//定義最短距離類{private: charpath[20];//最短距離的前一站 intdistance[Maxstate];//最短距離public: voidbestchooce(charv0[],charv1[])//最優(yōu)方案 { ints[Maxstate],v,i,j,w,start=-1,end=-1,number1,number2; chara[20],b[20]; Stackstack1;//定義棧 Set_graph();//建立圖 for(i=0;i<currentstate;i++)//查找起始站、終點(diǎn)站 { if(strcmp(statename[i],v0)==0) start=i; if(strcmp(statename[i],v1)==0) end=i; } if(start==-1||end==-1) { cout<<"站點(diǎn)不存在!"<<endl; bestproject(); } for(i=0;i<currentstate;i++)//初始化距離、前一站 { s[i]=0;//s集合賦空 if(busnumber[start][i]<MaxValue) { distance[i]=1; path[i]=start; } else { distance[i]=busnumber[start][i];//權(quán)值賦給最短距離 path[i]=-1; } } s[start]=1;//起始站放入s集合 distance[start]=0; intmin; for(i=0;i<currentstate;i++) { min=MaxValue; for(w=0;w<currentstate;w++)//在鄰近的頂點(diǎn)中查找最短距離 if(!s[w]&&distance[w]<min) { v=w; min=distance[w]; } s[v]=1; for(j=0;j<currentstate;j++) if(!s[j]&&(min+1)<distance[j]&&busnumber[v][j]<MaxValue)//計(jì)算起點(diǎn)到每個(gè)站點(diǎn)的距離 { distance[j]=min+1; path[j]=v; } } i=1; j=0; if(distance[end]<MaxValue&&distance[end]>0)//兩個(gè)站點(diǎn)有公交車 { cout<<"到達(dá)"<<v1<<"共有"<<distance[end]<<"站,最優(yōu)方案為:"<<endl; do//對(duì)路徑上的站點(diǎn)入棧 { stack1.Push(statename[end]); end=path[end]; }while(end!=start); stack1.Pop(a);//出棧 number1=searchbusnumber(v0,a);//查找兩個(gè)站點(diǎn)的公交車號(hào)碼 cout<<"乘坐"<<number1; direction(v0,a);//查找兩站的公交方向 cout<<v0<<"->"<<a; while(!stack1.IsEmpty())//判斷棧是否為空 { stack1.Pop(b); number2=searchbusnumber(a,b);//查找下兩個(gè)站間的公交車號(hào)碼 if(number1==number2)//判斷兩個(gè)車是否是同一輛 { cout<<"->"<<b; i++; } else {//不是同一輛,則換車 if(i==1) cout<<"僅有一站,建議步行"<<b<<endl; else cout<<"共"<<i<<"站"<<endl; cout<<"換乘"<<number2;//輸出換車信息 direction(a,b); number1=number2; cout<<a<<"->"<<b; i=1; j++; } strcpy(a,b);//保留前一站 } if(i==1) cout<<"僅有一站,建議步行至"<<b<<endl; else cout<<"共"<<i<<"站"<<endl; if(j>0) cout<<"共換車"<<j<<"次,"<<"請(qǐng)注意換車的站點(diǎn)!!!!!"<<endl; } else if(distance[end]==0) cout<<"您所在站點(diǎn)即為"<<v0<<endl; else cout<<"從"<<v0<<"至"<<v1<<"無公交可到!"<<endl; }};voidbestproject()//最優(yōu)方案{ Distancebestway; charstart[20],end[20]; cout<<"請(qǐng)輸入起點(diǎn)站:";//接收起點(diǎn)站和終點(diǎn)站 cin>>start; cout<<"請(qǐng)輸入終點(diǎn)站:"; cin>>end; cout<<endl; bestway.bestchooce(start,end); mainsurface();}voidmainsurface()//主界面{ intflag; cout<<"歡迎使用公交咨詢系統(tǒng)"<<endl;//用戶會(huì)話界面 cout<<"1.公交線路查詢"<<endl; cout<<"2.站點(diǎn)查詢"<<endl; cout<<"3.最優(yōu)乘車方案查詢"<<endl; cout<<"4.退出系統(tǒng)"<<endl; cout<<"請(qǐng)輸入您要選擇的服務(wù):"; cin>>flag; cout<<endl; switch(flag) { case1:busline();break;//公交線路 case2:searchstate();break;//站點(diǎn)查詢 case3:bestproject();break;//最優(yōu)方案 case4: default: cout<<"謝謝使用!!"<<endl; }}voidbusline()//公交線路{ intflag,a=0,i; Graphmap;//建立圖 map.Set_graph(); cout<<"公交線路查詢"<<endl; cout<<"1.確定車號(hào)的公交查詢"<<endl; cout<<"2.已有所有公交線路瀏覽"<<endl; cout<<"3.返回首頁(yè)"<<endl; cout<<"請(qǐng)輸入您要選擇的服務(wù):"; cin>>flag; cout<<endl; switch(flag) { case1: cout<<"請(qǐng)輸入車號(hào):";//特定車號(hào)查詢 cin>>a; map.show_busmessage(a); mainsurface(); break; case2: for(i=0;i<map.currentbus;i++)//所有路線查詢 map.show_busmessage(map.buses[i].number); mainsurface(); break; case3: default: mainsurface(); break; }}voidsearchstate()//站點(diǎn)查詢{ charname[20]; Graphmap;//建立圖 map.Set_graph(); cout<<"站點(diǎn)查詢"<<endl; cout<<"請(qǐng)輸入要查詢的站點(diǎn):"; cin>>name; for(inti=0;i<map.currentstate;i++)//查找站點(diǎn) if(strcmp(map.statename[i],name)==0) break; if(i==map.currentstate) cout<<"查無此站!"<<endl; else {//找到,在圖中找到它的下一站,及所到的公交車 cout<<endl<<name<<"的下一站有:"<<endl; for(intj=0;j<map.currentstate;j++) if(map.busnumber[i][j]>0&&map.busnumber[i][j]<MaxValue) { cout<<map.statename[j]<<""<<map.busnumber[i][j]; map.direction(name,map.statename[j]); } } mainsurface(); }intmain(){ mainsurface();//調(diào)用主界面 return0;} 目錄TOC\o"1-2"\h\z第一章項(xiàng)目基本情況 3一、項(xiàng)目情況說明 3二、可行性研究的依據(jù) 5第二章項(xiàng)目建設(shè)的必要性與可行性 8一、項(xiàng)目建設(shè)背景 8二、項(xiàng)目建設(shè)的必要性 9三、項(xiàng)目建設(shè)的可行性 14第三章市場(chǎng)供求分析及預(yù)測(cè) 17一、項(xiàng)目區(qū)生豬養(yǎng)殖和養(yǎng)殖糞污的利用現(xiàn)狀 17二、禽畜糞污產(chǎn)量、沼氣及沼肥產(chǎn)量調(diào)查與分析 18三、項(xiàng)目產(chǎn)品市場(chǎng)前景分析 20第四章項(xiàng)目承擔(dān)單位的基本情況 21一、養(yǎng)殖場(chǎng)概況 21二、資產(chǎn)狀況 21三、經(jīng)營(yíng)狀況 21第五章項(xiàng)目地點(diǎn)選擇分析 23一、選址原則 23二、項(xiàng)目選點(diǎn) 23三、項(xiàng)目區(qū)建設(shè)條件 24第六章 工藝技術(shù)方案分析 27一、污水處理模式的選擇 27二、處理工藝的選擇 29三、項(xiàng)目工藝流程 31四、主要技術(shù)參數(shù) 35五、主要設(shè)備選型 39第七章項(xiàng)目建設(shè)目標(biāo) 40一、項(xiàng)目建設(shè)目標(biāo) 40二、項(xiàng)目建設(shè)規(guī)模 40第八章項(xiàng)目建設(shè)內(nèi)容 42一、建安工程 42二、儀器設(shè)備 46第九章投資估算和資金籌措 48一、投
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)委托合同標(biāo)準(zhǔn)格式解析
- 首席財(cái)務(wù)官聘用合同范本
- bf829f6個(gè)人購(gòu)房擔(dān)保借款合同
- 物業(yè)買賣合同范本(2篇)
- 環(huán)境風(fēng)險(xiǎn)管理在建筑設(shè)計(jì)中的體現(xiàn)
- 物流配送網(wǎng)絡(luò)優(yōu)化策略在電子商務(wù)中的應(yīng)用
- 校園內(nèi)科學(xué)教育課程的深度探索
- 校園金融知識(shí)普及新生的理財(cái)觀念培養(yǎng)
- 游戲化營(yíng)銷電子游戲在商業(yè)推廣中的應(yīng)用
- 員工滿意度方案
- 蘇州2025年江蘇蘇州太倉(cāng)市高新區(qū)(科教新城婁東街道陸渡街道)招聘司法協(xié)理員(編外用工)10人筆試歷年參考題庫(kù)附帶答案詳解
- 搞笑小品劇本《大城小事》臺(tái)詞完整版
- 物業(yè)服務(wù)和后勤運(yùn)輸保障服務(wù)總體服務(wù)方案
- 《大模型原理與技術(shù)》全套教學(xué)課件
- 鐵嶺衛(wèi)生職業(yè)學(xué)院?jiǎn)握袇⒖荚囶}庫(kù)(含答案)
- 三位數(shù)減三位數(shù)的減法計(jì)算題 200道
- 米粉項(xiàng)目可行性研究報(bào)告
- 蛇年元宵節(jié)燈謎大全(附答案)
- 第2章第1節(jié)有機(jī)化學(xué)反應(yīng)類型課件高二下學(xué)期化學(xué)魯科版選擇性必修3
- 生物質(zhì)能利用原理與技術(shù) - 第二章生物質(zhì)能資源與植物
- 栽植土檢驗(yàn)批質(zhì)量驗(yàn)收記錄
評(píng)論
0/150
提交評(píng)論