亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng)

 更新時(shí)間:2018年01月13日 15:26:40   作者:鴻燕藏鋒  
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

 1.1 建立主程序應(yīng)用菜單選項(xiàng)

主程序應(yīng)用菜單選項(xiàng)包含所實(shí)現(xiàn)的所有功能,并且對(duì)選項(xiàng)采用數(shù)字標(biāo)識(shí)進(jìn)行選擇,對(duì)其他錯(cuò)誤輸入可以進(jìn)行判別,提示輸入錯(cuò)誤。

1.2 導(dǎo)游線路圖的創(chuàng)建級(jí)景區(qū)分布圖的輸出

用鄰接鏈表存儲(chǔ)景點(diǎn)分布圖的信息,(帶權(quán)無(wú)向)圖的鄰接鏈表。輸出景區(qū)景點(diǎn)分布圖(鄰接矩陣)。圖中邊的權(quán)值∞用32767表示。

1.3  輸出導(dǎo)游線路圖

景區(qū)旅游信息管理系統(tǒng)中制訂旅游景點(diǎn)導(dǎo)游線路策略,首先通過(guò)遍歷景點(diǎn),給出一個(gè)入口景點(diǎn),建立一個(gè)導(dǎo)游線路圖,導(dǎo)游線路圖用有向圖表示。

1.4  輸出導(dǎo)游線路圖中是否有回路

景區(qū)旅游信息管理系統(tǒng)中,創(chuàng)建好導(dǎo)游路線圖后,判斷該圖中是否存在回路。

1.5 查找及排序

l  查找功能: 可以根據(jù)用戶輸入的關(guān)鍵字進(jìn)行景點(diǎn)的查找,關(guān)鍵字可以在景點(diǎn)名稱也可以在景點(diǎn)介紹中。查找成功則返回景點(diǎn)的相關(guān)簡(jiǎn)介,如果查找不成功請(qǐng)給予正確提示。

l  排序功能:按景點(diǎn)歡迎度,景點(diǎn)的岔路數(shù)對(duì)景點(diǎn)進(jìn)行排序并打印出來(lái)排序順序。

1.6  輸出兩個(gè)景點(diǎn)之間最短路徑和最短距離

求出兩個(gè)景點(diǎn)間的最短路徑和最短距離,并且輸出道路修建規(guī)劃圖。 算法采用迪杰斯特拉算法。

1.7   輸出道路修建規(guī)劃圖

道路建設(shè)首先要保證能連通所有景點(diǎn),但又要花最小的代價(jià)。

1.8  輸出車輛的進(jìn)出信息

1.8.1 具體需求:

停車場(chǎng)是一個(gè)可以停放n輛汽車,且只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次排列,若車場(chǎng)內(nèi)已停滿n輛車,后來(lái)的車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場(chǎng)內(nèi)某輛車要離開時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開出大門外,其它車輛再按原次序進(jìn)入車場(chǎng),每輛停放在車場(chǎng)的車在它離開停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。輸出每輛車到達(dá)后的停車位置(停車場(chǎng)或便道上),以及某輛車離開停車場(chǎng)時(shí)應(yīng)繳納的費(fèi)用和它在停車場(chǎng)內(nèi)停留的時(shí)間。

1.8.2  停車場(chǎng)的管理流程如下:

A.當(dāng)車輛要進(jìn)入停車場(chǎng)時(shí),檢查停車場(chǎng)是否已滿,如果未滿則車輛進(jìn)入停車場(chǎng);如果停車場(chǎng)已滿,則車輛進(jìn)入便道等候。

B.當(dāng)車輛要求出棧時(shí),先讓在它之后進(jìn)入停車場(chǎng)的車輛退出停車場(chǎng)為它讓路,再讓該車退出停車場(chǎng),讓路的所有車輛再按其原來(lái)進(jìn)入停車場(chǎng)的次序進(jìn)入停車場(chǎng)。之后,再檢查在便道上是否有車等候,有車則讓最先等待的那輛車進(jìn)入停車場(chǎng)。

1.8.3 車輛出入清單:

每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。

1.9

退出整個(gè)程序。

完整代碼如下(直接編譯可運(yùn)行):

#include <iostream> 
#include <fstream> 
#include <time.h> 
#include <stdio.h> 
#include <cstring> 
#include <iomanip> 
#include <stack> 
#include <queue> 
#define MAX 20 
#define MAX2 2 
#define INFINITY 32767 
int arr1[MAX][MAX]; 
 
using namespace std; 
double arr[MAX][MAX]; 
 
class ArcNode { 
 public: 
 int adjvex; 
 ArcNode *nextarc; 
 double weight; 
}; 
 
 
class VNode { 
 public: 
 string data1; 
 string data2; 
 int wel; 
 bool wc; 
 bool rest; 
 ArcNode *firstarc; 
}; 
 
class ALGraph { 
 public: 
 VNode *vertices; 
 int vexnum, arcnum; 
 ArcNode *arcNode; 
}; 
 
class zanlind 
{ 
public: 
 int number; 
 int hour; 
 int minute; 
}; 
 
 
int LocateVex(ALGraph G, string v) { 
 int i; 
 for(i = 0; v != G.vertices[i].data1 && i < G.vexnum; i++) 
 ; 
 if(i >= G.vexnum) 
 return -1; 
 return i; 
} 
 
int LocateW(ALGraph G, int wel) { 
 int i; 
 for(i = 0; wel != G.vertices[i].wel && i < G.vexnum; i++) 
 ; 
 if(i >= G.vexnum) 
 return -1; 
 return i; 
} 
 
void CreateUDN(ALGraph &G) { 
 G.arcNode=new ArcNode[MAX]; 
 G.vertices=new VNode[MAX]; 
 
 fstream file("info.txt"); 
 if(file.fail()) 
 { 
 cout << "error open!" << endl; 
 } 
 int j; 
 ArcNode *s, *t; 
 cout<<"請(qǐng)輸入頂點(diǎn)數(shù)和邊數(shù):"; 
 cin>>G.vexnum>>G.arcnum; 
 int i=0; 
 cout<<endl; 
 while(!file.eof()) 
 { 
 file >>G.vertices[i].data1>>G.vertices[i].data2 >> 
 G.vertices[i].wel>> G.vertices[i].rest>>G.vertices[i].wc; 
 G.vertices[i].firstarc = NULL; 
 i++; 
 } 
 cout<<endl; 
 fstream file1("edge.txt"); 
 if(file.fail()) 
 { 
 cout << "error open!" << endl; 
 } 
 while(!file1.eof()) 
 { 
 int weight; 
 string v1, v2; 
 file1>>v1>>v2>>weight; 
  
 int i = LocateVex(G, v1); 
 int j = LocateVex(G, v2); 
 
 s = new ArcNode(); 
 t = new ArcNode(); 
 
 s->adjvex = j; 
 s->nextarc = G.vertices[i].firstarc; 
 s->weight=weight; 
 G.vertices[i].firstarc =s; 
 
 t->adjvex = i; 
 t->nextarc = G.vertices[j].firstarc; 
 t->weight=weight; 
 G.vertices[j].firstarc =t; 
 } 
 file1.close(); 
 file.close(); 
 
} 
 
 
void PrintAdjList(ALGraph &G) { 
 cout<<"下面是圖的鄰接鏈表輸出:" <<endl; 
 ArcNode *p; 
 cout<<" 編號(hào) "<<"頂點(diǎn)"<<" 相鄰邊編號(hào)"<<endl; 
 for(int i = 0; i < G.vexnum; i++) { 
 cout<<" "<<i<<" "<<G.vertices[i].data1; 
 for(p = G.vertices[i].firstarc; p; p = p->nextarc) 
  cout<<"--------->"<<p->adjvex; 
 cout<<endl; 
 } 
 
 
} 
 
void OutputGraph(ALGraph G) { 
 cout<<"下面是圖的鄰接矩陣輸出:"<<endl; 
 int m1=G.vexnum; 
 int m2=G.vexnum; 
 
 for(int i=0; i<m1; i++) { 
 for(int j=0; j<m2; j++) { 
  arr[i][j]=32767; 
 } 
 } 
 
 for(int k=0; k<m1; k++) { 
 ArcNode *p=G.vertices[k].firstarc; 
 for(int i2=0; i2<m2; i2++) { 
  if(k==i2) { 
  arr[k][i2]=0; 
  } 
  if(p) { 
  arr[k][p->adjvex]=p->weight; 
  p=p->nextarc; 
  } 
 
 } 
 } 
 cout<<" "; 
 for(int n1=0; n1<m1; n1++) { 
 cout<<setiosflags(ios::left)<<setw(11)<<G.vertices[n1].data1; 
 
 } 
 cout<<endl; 
 for(int n2=0; n2<m1; n2++) { 
 cout<<setiosflags(ios::left)<<setw(10)<<G.vertices[n2].data1; 
 for(int n3=0; n3<m1; n3++) { 
  cout<<setiosflags(ios::left)<<setw(10)<<arr[n2][n3]; 
 
 } 
 cout<<endl; 
 
 
 } 
 
 
} 
 
bool visited[MAX]; 
stack<int> *s=new stack<int>(); 
 
bool isOver(ALGraph G,bool a[MAX]) { 
 for(int i=0; i<G.vexnum; i++) { 
 if(a[i]!=1) { 
  return false; 
 } 
 } 
 return true; 
 
 
} 
 
void DFSTraverse(ALGraph G) 
{ 
 bool sta[20]; 
 int v; 
 for (v = 0; v<G.vexnum; v++) 
 { 
 sta[v] =true; 
 } 
 stack<int>status; 
 int n=0; 
 int num = -1; 
 int pk; 
 ArcNode *e; 
 cout << G.vertices[0].data1 << "->"; 
 sta[0] =false; 
 status.push(0); 
 int aa, bb; 
 aa = 0; 
 
 while (n < G.vexnum-1){ 
  e = NULL; 
  num = status.top(); 
  e = G.vertices[num].firstarc; 
  while (e){ 
  if (sta[e->adjvex] == false){ 
   e = e->nextarc; 
  } 
  else{ 
   status.push(e->adjvex); 
   cout << G.vertices[e->adjvex].data1<<"->"; 
   aa = e->adjvex; 
   sta[e->adjvex] = false; 
   n++; 
   break; 
  } 
   } 
  if (e == NULL){ 
  pk = status.top(); 
  bb = pk; 
  if (aa != bb){ 
   cout << G.vertices[pk].data1<<"->"; 
  } 
  
  status.pop(); 
  } 
  if (status.top() == 0){ 
  cout << G.vertices[0].data1 << "->"; 
  } 
 } 
 cout << endl; 
} 
 
bool IsEdge(ALGraph G) { 
 string s1, s2; 
 cin>>s1>>s2; 
 int iA=LocateVex(G,s1); 
 int jA=LocateVex(G,s2); 
 
 ArcNode *p=G.vertices[iA].firstarc; 
 while(p) { 
 if(p->adjvex==jA) { 
  return 1; 
 } else { 
  p=p->nextarc; 
 } 
 } 
 return 0; 
 
 
} 
 
int adjlist[MAX]; 
void FindInDegree( ALGraph &g) { 
 int i; 
 ArcNode *p; 
 for (i=0; i<g.vexnum; i++) 
 adjlist[i]=0; 
 for (i=0; i<g.vexnum; i++) { 
 p=g.vertices[i].firstarc; 
 while(p) { 
  adjlist[p->adjvex]++; 
  p=p->nextarc; 
 } 
 } 
} 
void JudgeCir(ALGraph G) { 
 FindInDegree(G); 
 int count=0; 
 int Q[MAX]; 
 int front,rear,v; 
 front=rear=-1; 
 for(int i=0; i<G.vexnum; i++) { 
 if((adjlist[i]==0)||(adjlist[i]==1)) { 
  Q[++rear]=i; 
  count++; 
 } 
 } 
 
 while(front!=rear) { 
 v=Q[++front]; 
 if(adjlist[v]==1) { 
  adjlist[v]=-1; 
  for(int j=0; j<G.vexnum; j++) { 
  if(arr[v][j]>0 && arr[v][j]<32767) { 
   adjlist[j]--; 
   if(adjlist[j]==1) { 
   Q[++rear]=j; 
   count++; 
   } 
  } 
  } 
 } else { 
  adjlist[v]=-1; 
 } 
 } 
 
 if(count<G.vexnum) { 
 cout<<"圖中有回路"<<endl; 
 } else 
 cout<<"圖中無(wú)回路"<<endl; 
} 
 
int in[MAX]; 
 
void LocateVex2(ALGraph G, string v) { 
 for(int i = 0;i < MAX; i++) 
 { 
 in[i]=10000; 
 } 
 for(int i = 0;i < G.vexnum; i++) 
 { 
 if(G.vertices[i].data1.find(v)<G.vertices[i].data1.length() || 
 G.vertices[i].data2.find(v)<G.vertices[i].data2.length()) 
 { 
  in[i]=i; 
 } 
 } 
} 
 
void Search(ALGraph G,string s) { 
 FindInDegree(G); 
 LocateVex2(G, s); 
 for(int i=0;i<G.vexnum;i++) 
 { 
 if(in[i]!=10000) 
 { 
  cout<<"您所要查詢的景點(diǎn)介紹為:"<<endl 
  <<endl<<"該景點(diǎn)名字是:" 
  <<G.vertices[in[i]].data1 
  <<" "<<endl 
  <<"該景點(diǎn)介紹為:"<<G.vertices[in[i]].data2<<endl 
  <<"該景點(diǎn)歡迎度為:" 
  <<G.vertices[in[i]].wel<<endl<<"有無(wú)休息區(qū)為:" 
  <<G.vertices[in[i]].rest 
  <<endl<<"有無(wú)廁所為:"<<G.vertices[in[i]].wc 
  <<endl<<endl; 
 } 
 
 } 
 
} 
 
void SortWel(ALGraph G) { 
 int ary[G.vexnum]; 
 
 for(int i=0; i<G.vexnum; i++) { 
 ary[i]=G.vertices[i].wel; 
 } 
 
 int i, j, tmp; 
 for(i=0; i<G.vexnum; i++) { 
 tmp = ary[i]; 
 for(j=G.vexnum-1; j>i; j--) { 
  if(tmp < ary[j]) { 
  ary[i] = ary[j]; 
  ary[j] = tmp; 
  tmp = ary[i]; 
  } 
 } 
 } 
 
 for(int j=0; j<G.vexnum; j++) { 
 int m=LocateW(G,ary[j]); 
 cout<<j+1<<"、 "<<G.vertices[m].data1<<endl; 
 } 
} 
 
bool isInN(ALGraph G,int a[MAX],int n) 
{ 
 for(int i=0;i<G.vexnum;i++) 
 { 
 if(a[i]==n) 
 { 
  return true; 
 } 
 } 
 return false; 
} 
 
void SortN(ALGraph G) { 
 int ary[G.vexnum]; 
 int a[G.vexnum]; 
 
 for(int j=0; j<G.vexnum; j++) { 
 a[j]=10000; 
 } 
 
 FindInDegree(G); 
 for(int i=0; i<G.vexnum; i++) { 
 ary[i]=adjlist[i]; 
 } 
 
 int i, j, tmp; 
 for(i=0; i<G.vexnum; i++) { 
 tmp = ary[i]; 
  
 for(j=G.vexnum-1; j>i; j--) { 
  if(tmp <= ary[j]) { 
  a[i]=j; 
  ary[i] = ary[j]; 
  a[i]=j; 
  ary[j] = tmp; 
  tmp = ary[i]; 
  } 
  
  
 } 
 } 
 
 for(int j=0;j<G.vexnum;j++) 
 { 
 for(int i=0;i<G.vexnum;i++) 
 { 
  if(ary[j]==adjlist[i]) 
  { 
  if(!isInN(G,a,i)) 
  { 
   a[j]=i; 
  } 
  else 
  { 
   continue; 
  } 
  } 
 } 
 } 
 for(int i=0;i<G.vexnum;i++) 
 { 
 cout<<i+1<<"、"<<G.vertices[a[i]].data1<<endl; 
 } 
 
 
} 
 
void ShortestPath_DIJ(ALGraph G,int v0, int p[][MAX], int D[]) { 
 int v, w, i, j, min; 
 bool final[10]; 
 for(v=0; v<G.vexnum; v++) { 
 final[v]=false; 
 D[v]=arr[v0][v]; 
 for(w=0; w<G.vexnum; w++) 
  p[v][w]=-1; 
 if(D[v]<INFINITY) { 
  p[v][0]=v0; 
  p[v][1]=v; 
 } 
 } 
 
 D[v0]=0; 
 final[v0]=true; 
 
 for(i=1; i<G.vexnum; i++) { 
 min=INFINITY; 
 for(w=0; w<G.vexnum; w++) 
  if(!final[w] && D[w]<min) { 
  v=w; 
  min=D[w]; 
  } 
 final[v]=true; 
 for(w=0; w<G.vexnum; w++) { 
  if(!final[w] && min<INFINITY && arr[v][w]<INFINITY 
  && (min+arr[v][w]<D[w])) { 
  D[w]=min+arr[v][w]; 
  for(j=0; j<G.vexnum; j++) { 
   p[w][j]=p[v][j]; 
   if(p[w][j]==-1) { 
   p[w][j]=w; 
   break; 
   } 
  } 
 
  } 
 } 
 } 
} 
 
bool isInVe(ALGraph G,string va) 
{ 
 for(int i=0;i<G.vexnum;i++) 
 { 
 if(G.vertices[i].data1==va) 
 { 
  return true; 
 } 
 } 
 return false; 
} 
 
void printShortestPath(ALGraph G) 
{ 
 
 int iA,jA; 
 string s1,s2; 
 int p[MAX][MAX]; 
 int D[MAX]; 
 cout<<"請(qǐng)輸入要查詢距離的兩個(gè)景點(diǎn)的名稱:"; 
 cin>>s1>>s2; 
 if(isInVe(G,s1) && isInVe(G,s2)) 
 { 
 iA=LocateVex(G,s1); 
 jA=LocateVex(G,s2); 
 ShortestPath_DIJ(G,iA, p, D); 
 cout<<"到各頂點(diǎn)的最短路徑及長(zhǎng)度為:"<<endl; 
  
 if(jA!=0 && D[jA]!=INFINITY) { 
  cout<<"最短路徑為:"; 
  for(int j=0; j<G.vexnum; j++) { 
  if(p[jA][j]>-1) 
   cout<<G.vertices[p[jA][j]].data1 
   <<" "; 
  } 
  cout<<endl; 
  cout<<"最短距離為:"<<D[jA]; 
 } else if(D[jA]==INFINITY) 
   cout<<G.vertices[iA].data1<<"-" 
   <<G.vertices[jA].data1 
   <<":"<<"不可達(dá)"<<endl; 
 } 
 else 
 { 
 cout<<"您輸入的景點(diǎn)名稱不存在,請(qǐng)輸入正確的景點(diǎn)名稱:"<<endl; 
 printShortestPath(G); 
 } 
 
 } 
 
void prim(ALGraph G,int v,double arr[MAX][MAX]) { 
 
 int lowcost[MAX]; 
 int min; 
 int closest[MAX],i,j,k; 
 for(i=0; i<G.vexnum; i++) { 
 lowcost[i]=arr[v][i]; 
 closest[i]=v; 
 } 
 for(i=1; i<G.vexnum; i++) { 
 min=INFINITY; 
 for(j=0; j<G.vexnum; j++) { 
  if(lowcost[j]!=0&&lowcost[j]<min) { 
  min=lowcost[j]; 
  k=j; 
  } 
 } 
 cout<<"從"<<G.vertices[closest[k]].data1<<"到" 
 <<G.vertices[k].data1<<"修一條路"<<endl; 
 lowcost[k]=0; 
 
 for(j=0; j<G.vexnum; j++) { 
  if(arr[k][j]!=0 && arr[k][j]<lowcost[j]) { 
  lowcost[j]=arr[k][j]; 
  closest[j]=k; 
  } 
 } 
 
 } 
} 
 
stack<zanlind> parking; 
stack<zanlind> cars; 
queue<zanlind> waits; 
int z[MAX2]; 
bool isInZan(int zan[],int number) 
{ 
 for(int i=0;i<MAX2;i++) 
 { 
 if(zan[i]==number) 
 { 
  return true; 
 } 
 } 
 return false; 
} 
 
int indexZ(int z[],int n) 
{ 
 for(int i=0;i<MAX2;i++) 
 { 
 if(z[i]==n) 
 { 
  return i; 
 } 
 } 
 return -1; 
} 
void goIn() 
{ 
 int k1=0; 
 zanlind zan; 
 cout<<"車牌號(hào)為:"; 
 cin>>zan.number; 
 cout<<endl; 
 /* 
 time_t t = time(0); 
 char tmp[64]; 
 strftime(tmp,sizeof(tmp),"%X ",localtime(&t)); 
 zan.time=tmp; 
 */ 
 struct tm *newtime; 
 time_t long_time; 
 time( &long_time ); //Get time as long integer 
 newtime = localtime( &long_time ); 
 int h = newtime->tm_hour;//得到當(dāng)前時(shí)間的小時(shí) 
 int m = newtime->tm_min;//得到當(dāng)前時(shí)間的分鐘 
 zan.hour=h; 
 zan.minute=m; 
 
 
 cout<<"進(jìn)場(chǎng)時(shí)間為:"; 
 if(zan.minute>=1 && zan.minute<10) 
 { 
 cout<<zan.hour<<":0"<<zan.minute<<endl; 
 } 
 else 
 { 
 cout<<zan.hour<<":"<<zan.minute<<endl; 
 } 
 
 
 if(parking.size()<MAX2) 
 { 
 for(int m=0;m<MAX2;m++) 
 { 
  if(z[m]==0) 
  { 
  z[m]=zan.number; 
  break; 
  } 
 } 
 parking.push(zan); 
 cout<<"該車已進(jìn)入停車場(chǎng)在: "<<k1++<<"號(hào)車道"; 
 } 
 else 
 { 
 cout<<"停車場(chǎng)已滿,請(qǐng)等待其他車輛離開:"; 
 waits.push(zan); 
 } 
} 
 
void goOut() 
{ 
 if(parking.size()<=0) 
 { 
 cout<<"停車場(chǎng)為空,沒(méi)有車要離開!"; 
 } 
 else 
 { 
 cout<<"請(qǐng)輸入您的車牌號(hào):"; 
 int number; 
 cin>>number; 
 if(isInZan(z,number)) 
 { 
  while(parking.top().number!=number) 
  { 
  cars.push(parking.top()); 
  parking.pop(); 
  } 
  
  int num=indexZ(z,parking.top().number); 
  z[num]=0; 
  /* 
  time_t t = time(0); 
  char tmp[64]; 
  strftime(tmp,sizeof(tmp),"%X ",localtime(&t)); 
  */ 
  struct tm *newtime; 
  time_t long_time; 
  time( &long_time ); //Get time as long integer 
  newtime = localtime( &long_time ); 
  int h = newtime->tm_hour;//得到當(dāng)前時(shí)間的小時(shí) 
  int m = newtime->tm_min;//得到當(dāng)前時(shí)間的分鐘 
  cout<<"車牌號(hào)為:"<<parking.top().number<<"的車要離開了"<<endl 
  <<"停車時(shí)間為: " 
  <<(h*60+m)-(parking.top().hour*60+parking.top().minute)<<"分鐘"<<endl 
  <<"停車費(fèi)用為:" 
  <<((h*60+m)-(parking.top().hour*60+parking.top().minute))*5<<"元"<<endl; 
   parking.pop(); 
  
  while(!cars.empty()) 
  { 
   parking.push(cars.top()); 
  cars.pop(); 
  } 
  
  while(parking.size()<MAX2) 
  { 
  if(waits.size()!=0) 
  { 
   for(int m=0;m<MAX2;m++) 
   { 
   if(z[m]==0) 
   { 
    z[num]=waits.front().number; 
   } 
   } 
   parking.push(waits.front());  
   waits.pop(); 
  } 
  else 
  { 
   break; 
  } 
 
  } 
 } 
  
 else 
 { 
  cout<<"沒(méi)有該輛車!請(qǐng)輸入正確的車牌號(hào):"<<endl; 
 }   
  
 } 
  
} 
 
void parkinglot() 
{ 
 r2: 
 cout<<endl<<"  **停車場(chǎng)管理程序**  "<<endl 
 <<"--------------------------------------------------"<<endl 
 <<"**" 
 <<"** A---汽車進(jìn)車場(chǎng) D---汽車出車場(chǎng) E---退出程序 **"<<endl 
 <<"--------------------------------------------------"<<endl 
 <<"請(qǐng)選擇:<A ,D ,E>:"; 
 char choose; 
 cin>>choose; 
 if(choose=='A' || choose=='D' || choose=='E') 
 { 
  switch(choose) 
  { 
  case 'A': 
   goIn(); 
   goto r2; 
  case 'D': 
   goOut(); 
   goto r2; 
  case 'E': 
   break; 
  } 
 } 
 else 
 { 
  cout<<"您的輸入有誤,請(qǐng)輸入 <A D E> 其中的一項(xiàng)。"; 
  goto r2; 
 } 
} 
 
int main() { 
 int i, j; 
 int iAA; 
 ALGraph *G=new ALGraph(); 
 int choose=0; 
 cout<<endl; 
 
 while(true) { 
r: 
 cout<<"------------------------------------------"<<endl 
  <<"  歡迎使用景區(qū)信息管理系統(tǒng) "<<endl 
  <<"  ***請(qǐng)選擇菜單***  "<<endl 
  <<"------------------------------------------"<<endl 
  <<" 1、創(chuàng)建景區(qū)景點(diǎn)分布圖   "<<endl 
  <<" 2、輸出景區(qū)景點(diǎn)分布圖   "<<endl 
  <<" 3、輸出導(dǎo)游線路圖   "<<endl 
  <<" 4、輸出導(dǎo)游線路圖的回路  "<<endl 
  <<" 5、查找及排序    "<<endl 
  <<" 6、求兩個(gè)景點(diǎn)間的最短路徑和最短距離 "<<endl 
  <<" 7、輸出道路修建規(guī)劃圖   "<<endl 
  <<" 8、停車場(chǎng)車輛進(jìn)出記錄信息  "<<endl 
  <<" 0、退出系統(tǒng)    "<<endl 
  <<"請(qǐng)輸入您要選擇的菜單項(xiàng): "; 
  
 cin>>choose; 
  
 if(choose<=8 && choose>=0) { 
  if(choose>1 && G->vexnum==0 &&choose!=8) { 
  cout<<endl<<"************您的圖為空,請(qǐng)先創(chuàng)建您的圖**********:" 
  <<endl<<endl; 
  goto r; 
  } else { 
  switch(choose) { 
 
   case 1: 
   CreateUDN(*G); 
 
   break; 
   case 2: 
   PrintAdjList(*G); 
   cout<<endl; 
   OutputGraph(*G); 
   break; 
   case 3: 
   cout<<"導(dǎo)游路線為:"; 
   //CreatTourSortGraph(*G); 
   //DFSTraverse(*G); 
   break; 
   case 4: 
   JudgeCir(*G); 
   break; 
   case 5: 
    
   while(true) 
   { 
   int ch; 
   cout<<"您需要" 
    <<" 查找(0)," 
    <<"按歡迎度排序(1)," 
    <<"按景點(diǎn)岔路數(shù)排序(2)," 
    <<"退出此目錄(3) :" ; 
   cin>>ch; 
   string sA; 
   switch(ch) 
   { 
    case 0: 
    cout<<"請(qǐng)輸入您要查找的有關(guān)景點(diǎn)的關(guān)鍵字:" ; 
    cin>>sA; 
    Search(*G,sA); 
    break; 
    case 1: 
    SortWel(*G); 
    break; 
    case 2: 
    SortN(*G); 
    break; 
    case 3: 
    goto r; 
    default : 
    cout<<"您的輸入有誤,請(qǐng)重新輸入:"<<endl; 
   } 
   } 
   case 6: 
   printShortestPath(*G); 
   break; 
   case 7: 
   prim(*G,0,arr); 
   break; 
   case 8: 
   parkinglot(); 
   break; 
   case 0: 
   exit(0); 
  } 
 
  } 
  cout<<endl; 
 } 
 else { 
  cout<<"您的輸入有誤,請(qǐng)重新輸入0-8之間的數(shù)字"<<endl; 
 
 } 
 
 
 } 
 return 0; 
} 

所需要的兩個(gè)edge.txt和info.txt文件。(很重要、一定要有?。。。?/p>

 

更多學(xué)習(xí)資料請(qǐng)關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • websocket++簡(jiǎn)單使用及實(shí)例分析

    websocket++簡(jiǎn)單使用及實(shí)例分析

    下面小編就為大家?guī)?lái)一篇websocket++簡(jiǎn)單使用及實(shí)例分析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • 一文搞懂C語(yǔ)言static關(guān)鍵字的三個(gè)作用

    一文搞懂C語(yǔ)言static關(guān)鍵字的三個(gè)作用

    這篇文章主要介紹了C語(yǔ)言static關(guān)鍵字的三個(gè)作用,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • C++類中的六大默認(rèn)成員函數(shù)詳解

    C++類中的六大默認(rèn)成員函數(shù)詳解

    這篇文章主要介紹了C++類中的六大默認(rèn)成員函數(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • C++位操作的常見用法小結(jié)

    C++位操作的常見用法小結(jié)

    這篇文章主要介紹了C++位操作的常見用法,包括了判斷奇偶、交換兩個(gè)數(shù)、正負(fù)轉(zhuǎn)換、求絕對(duì)值等,需要的朋友可以參考下
    2014-09-09
  • C語(yǔ)言遞歸應(yīng)用實(shí)現(xiàn)掃雷游戲

    C語(yǔ)言遞歸應(yīng)用實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言遞歸應(yīng)用實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • 深入了解C++中基于模板的類型擦除

    深入了解C++中基于模板的類型擦除

    在C\C++中主要有三種類型擦除的方式:基于void*的類型擦除、面向?qū)ο蟮念愋筒脸突谀0宓念愋筒脸?本文主要為大家詳細(xì)介紹基于模板的類型擦除的相關(guān)知識(shí),需要的可以了解下
    2023-12-12
  • C/C++實(shí)現(xiàn)圖形學(xué)掃描線填充算法

    C/C++實(shí)現(xiàn)圖形學(xué)掃描線填充算法

    這篇文章主要介紹了C/C++實(shí)現(xiàn)圖形學(xué)掃描線填充算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C語(yǔ)言文件操作之fread函數(shù)詳解

    C語(yǔ)言文件操作之fread函數(shù)詳解

    fread()函數(shù)用來(lái)從指定文件中讀取塊數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言文件操作之fread函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • C++數(shù)據(jù)結(jié)構(gòu)關(guān)于棧迷宮求解示例

    C++數(shù)據(jù)結(jié)構(gòu)關(guān)于棧迷宮求解示例

    這篇文章主要為大家介紹了C++數(shù)據(jù)結(jié)構(gòu)關(guān)于棧的迷宮求解示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-11-11
  • C++單例模式實(shí)現(xiàn)線程池的示例代碼

    C++單例模式實(shí)現(xiàn)線程池的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C++單例模式簡(jiǎn)單實(shí)現(xiàn)一個(gè)線程池,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-04-04

最新評(píng)論