資源簡介
供大家看看啊 不錯!同學的努力啊!學習計算機的人們就應該好好看看 能學到不少東西啊

代碼片段和文件信息
#include
#include
#include
#include
#include
#define?max?30
using?namespace?std;
struct?ac{
int?jl;//兩個景點間的距離
};
struct?fengjing{
int?num;????//存放代號
string?sight;??//存放風景名稱
string?descri;?//存放風景簡介
};
struct?zhuyao{
fengjing?F[max];//存放圖中的頂點,即景點
ac?H[max][max];//存放圖中的邊,即為景點間的距離
int??n?e;???//頂點數和邊數
};
struct?doudian{//?附加題最后一道題用到的,變量名為Q
string?name;//用于存放景點的名稱
int?flas;//每存入一條,就標志一下,用于判斷
};
//用于多個景點的最短路徑,兩個代號的所有路徑都存入這個全局變量
doudian?Q[2000][max];
long?mm[2000];
zhuyao?M;
//用于多個景點的最佳路徑,給每個符合代號的所有路徑總條數計數
int?jj=0;
//判斷是多個景點的最短路徑還是兩個景點的所有路徑調用函數
bool?cc=0;?
//是allpath中用來存放路徑的頂點
long?D[max];
//int?daihao[max];
//用于兩點間的最短路徑函數中。。。。。。
int?p[max][max];
//用于兩點間的最短路徑函數中存放兩個景點的最短路徑
int?shortest[max][max];
//int?x[max]={0};
//是allpath中用來標記已通過的景點
bool?visited[max];
//構造了圖的基本信息函數
void?creat();
//形成程序的界面函數
void?jieshao();
//不管用戶輸入的是名字還是代號,返回代號
int?search1(char?c);?
//名字糾錯函數
string?search2(int?&i);
//代號糾錯函數
int?search3();
//讓用戶選擇要查詢的是什么,如簡介,兩點的最短路徑等
int?mainmenu();
//讓用戶選擇輸入方式是用代號還是用名稱
char?menu();
//介紹圖中景點的信息
void?xinxi(int?i);
//尋找兩點的所有路徑
int?allpath(zhuyao?cint?mint?n);
//找到兩點間的所有路徑,如果是尋找兩間的所有景點就
//輸出,如果是多個景點最佳路徑函數調用就不輸出
void?path(zhuyao?c?int?mint?nint?k);
//尋找兩點間的最短路徑函數
void?floyed(int?int)?;
//找到兩點間的最短路徑并輸出
void???PrintPath?(?int?i?int?j)?;
//尋找多個景點最佳路徑函數
void?duo(int?sk);
//主函數
void?main(){
int?v0v1xxij;
int?ckskmn;
char?c1c2c3;
system(“color?fc“);
creat();
do
{??
ck=mainmenu();//用戶選擇查詢選擇
switch(ck){
case?1:
c2=menu();
if(c2==‘3‘)?break;
cout<<“輸入景點用你選擇的方式:“;
xx=search1(c2);
xinxi(xx);
break;
case?2:
c1=menu();
if(c1==‘3‘)?break;
cout<<“輸入起點景點用你選擇的方式:“;
v0=search1(c1);
cout<<“輸入終點景點用你選擇的方式:“;
v1=search1(c1);
floyed(v0v1);
cout<<“\n\n\t\t\t\t請按任意鍵繼續...\n“;
getchar();
getchar();
break;
case?3:
c3=menu();
if(c3==‘3‘)?break;
cout<<“輸入起點景點用你選擇的方式:“;
m=search1(c3);
cout<<“輸入終點景點用你選擇的方式:“;
n=search1(c3);
jj=0;
allpath(Mmn);
jj=0;
cout<<“\n\n\t\t\t\t請按任意鍵繼續...\n“;
getchar();
getchar();
break;
case?4:
//給Qmm初始化
for(i=0;i<2000;i++)
for(j=0;j<=M.n+1;j++){
Q[i][j].name=“0“;
Q[i][j].flas=0;
}
for(i=0;i<2000;i++)
mm[i]=0;
cout<<“請輸入你要幾個景點:“;
sk=search1(‘1‘);
jj=0;
cc=1;
duo(sk);
jj=0;
cc=0;
break;
case?5:
return;
};
}while(1);
}
/*給每個景點設置代號。打開文本,讀入數據,讀入總結點數,邊數,
景點名稱,景點,介紹,矩陣(兩個點間的距離,如果是不直接相鄰
的兩個點間的距離設為20000,自己和自己間的距離設為20000*/
void?creat(){
int?ij;
ifstream?in(“input.txt“);
in>>M.n;
in>>M.e;
for(i=1;i<=M.n;i++)//從文件中讀入信息
{
????in>>M.F[i].num;
in>>M.F[i].sight;
in>>M.F[i].descri;
}
for(i=1;i<=M.n;i++)
for(j=1;j<
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12463??2009-06-21?18:07??校園導航.cpp
?????文件???????1564??2009-06-21?18:44??input.txt
?????文件?????975872??2009-06-22?11:13??課程設計報告參考模板.doc
?????文件?????614472??2009-06-23?21:51??校園導航.exe
-----------?---------??----------?-----??----
??????????????1604371????????????????????4
評論
共有 條評論