『壹』 數據結構導游咨詢系統課設怎麼寫
#include <iostream.h>
#include<string.h>
#include <stdlib.h>
#include <fstream.h>
typedef struct Infor
{
char name[10];
char infor[100];
}Infor;
typedef struct
{ //圖的定義
Infor vexs [20] ; //頂點表,用一維向量即可
int arcs[50][50]; //鄰接矩陣
int vexnum, arcnum; //頂點總數,弧(邊)總數
}Mgraph;
typedef struct
{
char password[6];
char n_password[6];
}PassWord;//密碼結構體定義
int LocateVex(Mgraph &G,char a[10])//
{
for(int i=0;i<G.vexnum;i++)
{
if(strcmp(G.vexs[i].name,a)==0)
{
return i;
}
}
cout<<"輸入有誤!"<<endl;
return -1;
}
//////////////////////以上是頭文件
#include "net.h"
#include <conio.h>//密碼功能所需要調用的頭文件
void Creategraph(Mgraph &G,PassWord &pw) //構造無向網
{
ifstream inFile("graph.txt");
char v1[10],v2[10];
int i,j,k,w;
inFile>>G.vexnum>>G.arcnum;
for(i=0;i<G.vexnum;i++)
{
inFile>>G.vexs[i].name;
inFile>>G.vexs[i].infor;
}
for(i=0;i<50;i++)
{
for(int j=0;j<50;j++)
{
G.arcs[i][j]=10000;
}
}
for(k=0;k<G.arcnum;k++)
{
inFile>>v1>>v2>>w;
i=LocateVex(G,v1);
j=LocateVex(G,v2);
if(i==j)
{
G.arcs[i][j]=0;
}
else
{
G.arcs[i][j]=w;
G.arcs[j][i]=G.arcs[i][j];
}
}
for(int m=0;m<6;m++)
{
inFile>>pw.password[m];
}
}
/////////////////////////////前台調用的函數/////////////////////////////////////
void infor(Mgraph &G)
{
char a[10];
int b=1;
while(b)
{
for(int i=0;i<G.vexnum;i++)
{
cout<<G.vexs[i].name<<endl;
}
cout<<"請輸入要查找的景點信息"<<endl;
cin>>a;
for(i=0;i<G.vexnum;i++)
{
if(strcmp(G.vexs[i].name,a)==0)
{
cout<<G.vexs[i].infor<<endl;
b=0;
}
}
if(b!=0)
{
cout<<"輸入錯誤請重新輸入!!"<<endl;
}
cout<<"返回前台系統按0,繼續查找按1"<<endl;
cin>>b;
}
}
void ShortestPath (Mgraph G)//最短路徑
{
char a[10],d[10];
int b=1,i,j,v,v0,w;
int Dist[100],S[100],Path[100];
int n=G.vexnum;
while(b)
{
for(i=0;i<G.vexnum;i++)
{
cout<<G.vexs[i].name<<endl;
}
for(i=0;i<100;i++)
{
Dist[i]=9999;
S[i]=0;
Path[i]=-1;
}
cout<<"請輸入要查詢路徑的兩個景點"<<endl;
cin>>a;
cin>>d;
v0=LocateVex(G,a);
j=LocateVex(G,d);
for(v=0;v<n;v++)
{
S[v]=0;
Dist[v]=G.arcs[v0][v];
if(Dist[v]<9999)
Path[v]=v0;//v1是v的前趨
else
Path[v]=-1;//v無前趨
}//
Dist[v0]=0;
S[v0]=1;
for(i=1;i<n;i++)
{
int min=9999;
for(w=0;w<n;w++)
if(!S[w]&&Dist[w]<min)
{
v=w;
min=Dist[w];
}//w頂點離v1頂點更近
S[v]=1;
for(w=0;w<n;w++)//更新當前最短路徑及距離
if(!S[w]&&(Dist[v]+G.arcs[v][w]<Dist[w]))
{
Dist[w]=Dist[v]+G.arcs[v][w];
Path[w]=v;
}//end if
}//end for
cout<<"距離為:"<<endl;
cout<<Dist[j]<<endl;
cout<<"要經過"<<endl;
int f=Path[j],e[100];
i=0;
while(f!=-1)
{
e[i]=f;
f=Path[f];
i++;
}
for(v=i-1;v>=0;v--)
{
cout<<G.vexs[e[v]].name<<"---->";
}
cout<<G.vexs[j].name<<endl;
cout<<"返回後台系統按0,繼續刪除按1"<<endl;
cin>>b;
}
}
void reception(Mgraph &G)//前台
{
int n;
while(1)
{
system("cls");//清屏
cout<<"*********************歡迎使用前台系統************************"<<endl;
cout<<"(1)景點信息查詢"<<endl;
cout<<"(2)問路查詢"<<endl;
cout<<"(0)返回上一級菜單"<<endl;
cin>>n;
switch(n)
{
case 1:
infor(G);
break;
case 2:
ShortestPath (G);
break;
case 0:
return;
break;
default:
cout<<"您的輸入有誤,任意鍵繼續..."<<endl;
getch();
}
}
}
////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////後台調用的函數///////////////////////////////////
void WriteTXT(Mgraph G,PassWord pw)//將更改後的信息寫如graph.txt
{
int i,j;
ofstream outFile("graph.txt");
if(!outFile)
{
cerr<<"cannot open my.txt"<<endl;
exit(1);
}
outFile<<G.vexnum<<" "<<G.arcnum<<endl;
for(i=0;i<G.vexnum;i++)
{
outFile<<G.vexs[i].name<<" "<<G.vexs[i].infor<<endl;
}
for(i=0;i<G.vexnum;i++)
{
for(j=0;j<G.vexnum;j++)
{
if(G.arcs[i][j]!=10000)
{
outFile<<G.vexs[i].name<<" "<<G.vexs[j].name<<" "<<G.arcs[i][j]<<endl;
G.arcs[j][i]=10000;
}
}
}
Creategraph(G,pw);
}
void ChangeP(Mgraph &G,PassWord pw)//修改一個已有景點的相關信息
{
char a[10];
int b=1,i;
while(b)
{
for(i=0;i<G.vexnum;i++)
{
cout<<G.vexs[i].name<<endl;
}
cout<<"請輸入要修改的景點的信息"<<endl;
cin>>a;
for(i=0;i<G.vexnum;i++)
{
if(strcmp(a,G.vexs[i].name)==0)
{
cout<<G.vexs[i].infor<<endl;
cout<<"請輸入該景點的修改後的信息"<<endl;
cin>>G.vexs[i].infor;
cout<<"修改成功!!!!"<<endl;
b=0;
}
}
if(b!=0)
{
cout<<"error!輸入有誤!"<<endl;
}
cout<<"保存請按1,不保存請按2"<<endl;
int c;
cin>>c;
if(c==1)
{
WriteTXT(G,pw);
}
cout<<"返回後台系統按0,繼續修改按1"<<endl;
cin>>b;
}
}
void deleteP(Mgraph &G,PassWord pw)//刪除景點信息
{
char a[10];
int b=1,i,j,k;
while(b)
{
for(i=0;i<G.vexnum;i++)
{
cout<<G.vexs[i].name<<endl;
}
cout<<"請輸入要刪除的景點的信息"<<endl;
cin>>a;
for(i=0;i<G.vexnum;i++)
{
if(strcmp(a,G.vexs[i].name)==0)
{
for(j=i;j<G.vexnum-1;j++)
{
G.vexs[j]=G.vexs[j+1];
for(k=0;k<G.vexnum-1;k++)
G.arcs[k][j]=G.arcs[k][j+1];
}
for(j=i;j<G.vexnum-1;j++)
{
for(k=0;k<G.vexnum-1;k++)
G.arcs[j][k]=G.arcs[j+1][k];
}
G.vexnum--;
G.arcnum=0;
for(i=0;i<G.vexnum;i++)
{
for(j=0;j<G.vexnum;j++)
{
if(G.arcs[i][j]!=10000)
G.arcnum++;
}
}
G.arcnum=G.arcnum/2;
b=0;
cout<<"刪除成功!!!!"<<endl;
}
}
if(b!=0)
{
cout<<"輸入有誤!請看清楚!"<<endl;
}
cout<<"是否要保存?保存按1,不保存按2"<<endl;
int c;
cin>>c;
if(c==1)
{
WriteTXT(G,pw);
}
cout<<"返回後台系統按0,繼續刪除按1"<<endl;
cin>>b;
}
}
void deleteL(Mgraph &G,PassWord pw)//刪除路徑
{
char a[10],d[10];
int b=1,i,j;
while(b)
{
for(i=0;i<G.vexnum;i++)
{
for(j=0;j<G.vexnum;j++)
{
if(G.arcs[i][j]!=10000)
{
cout<<G.vexs[i].name<<" "<<G.vexs[j].name<<" "<<G.arcs[i][j]<<endl;
}
}
}
cout<<"請輸入要刪除的路徑連接的兩個景點名"<<endl;
cin>>a;
cin>>d;
i=LocateVex(G,a);
j=LocateVex(G,d);
if(G.arcs[i][j]!=10000)
{
G.arcs[i][j]=10000;
G.arcs[j][i]=10000;
b=0;
cout<<"刪除成功!!"<<endl;
G.arcnum--;
}
if(b!=0)
{
cout<<"輸入有誤!!"<<endl;
}
cout<<"保存請按1,不保存請按2"<<endl;
int c;
cin>>c;
if(c==1)
{
WriteTXT(G,pw);
}
cout<<"返回後台系統按0,繼續刪除按1"<<endl;
cin>>b;
}
}
///////////////////////////////////選作//////////////////////////
void Add(Mgraph &G,PassWord &pw)//增加景點
{
cout<<"請輸入景點名稱:"<<endl;
cin>>G.vexs[G.vexnum].name;
cout<<"請輸入景點信息:"<<endl;
cin>>G.vexs[G.vexnum].infor;
for(int i=0;i<G.vexnum;i++)
G.arcs[G.vexnum][i]=10000;
for(i=0;i<G.vexnum;i++)
G.arcs[i][G.vexnum]=10000;
G.arcs[G.vexnum][G.vexnum]=0;
G.vexnum++;
cout<<"增加成功!"<<endl;
cout<<endl;
WriteTXT(G,pw);
system("pause");system("cls");
}
////////////////////////////////////////////////
bool password(PassWord &pw)//判斷密碼
{
char p[6];
cout<<"請輸入6位密碼:"<<endl;
for(int e=0;e<6;e++)
{
p[e]=getch();
cout<<"*";
cout.flush();
}
cout<<endl;
for(e=0;e<6;e++)
{
if(p[e]!=pw.password[e])return false;
}
cout<<endl;
return true;
}
void backstage(Mgraph &G,PassWord pw)//後台函數
{
int n;
while(1)
{
system("cls");
cout<<"*********************歡迎使用後台系統************************"<<endl;
cout<<"(1)修改一個已有景點的相關信息"<<endl;
cout<<"(2)刪除一個景點及其相關信息"<<endl;
cout<<"(3)刪除一條路徑"<<endl;
cout<<"(4)增加景點"<<endl;
cout<<"(0)返回上一級菜單"<<endl;
cin>>n;
switch(n)
{
case 1:
ChangeP(G,pw);
break;
case 2:
deleteP(G,pw);
break;
case 3:
deleteL(G,pw);
break;
case 4:
Add(G,pw);
break;
case 0:
return;
break;
default:
cout<<"您的輸入有誤,任意鍵繼續..."<<endl;
getch();
}
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
void main()//主函數
{
Mgraph G;
PassWord pw;
Creategraph(G,pw);
int n,m=1;
while(m)
{
system("cls");
cout<<"*********************歡迎使用北林游覽系統************************"<<endl;
cout<<"(1)前台服務(遊客身份登陸)"<<endl;
cout<<"(2)後台服務(管理員身份登陸)"<<endl;
cout<<"(0)退出"<<endl;
cin>>n;
switch(n)
{
case 1:
reception(G);
break;
case 2:
if(password(pw)==true)
{
backstage(G,pw);//後台函數,並調用
}
else
cout<<"密碼輸入錯誤!!";
break;
case 0:
m=0;
break;
default:
cout<<"您的輸入有誤,任意鍵繼續..."<<endl;
getch();
}
}
}
『貳』 主角擁有系統種田流有那些
極品鄉村生活,小地主,隨身空間,貴族農民,隨身裝一口泉,種田玉,超玄空間,超級農場系統,隨身山河圖,山村一畝三分地
『叄』 我的qq快樂農場,別人家的果子熟了,在我的好友里,後邊怎麼不顯示手,能偷呢
我剛剛也在問這個問題,在看看
『肆』 求蘇打綠電腦主題XP系統的 吳青峰的也行
『伍』 QQ空間快樂農場,我的好友怎麼不見了
除了樓上說的(我覺得不是這樣)以外,還有一個原因,你要看看你的好友有沒有加你,要知道,空間農場是單向鏈接的,你加了好友,但好友沒加你,那就顯示不出來了(我覺得也不是這樣,就提個醒而已)。你可以換個瀏覽器試試,網卡顯卡之類的也可以換個好的試試。若仍不行那是騰訊空間的系統有問題,你要換個賬號(Q號和電腦的用戶)了。
『陸』 黑子的籃球第二季和青峰打贏是在第幾集
第二季的18集哦,你可以自己去看的,我也很喜歡黑籃,可剛完結了,捨不得啊
『柒』 qq快樂農場的經驗每天最多能升多少雜么升
生經驗有幾種方式:
1,種菜+收獲+鏟除
2,除草+殺蟲
3,買裝飾
其中收獲加得最多,除草和殺蟲可以叫人來給你的農場種草和放蟲,每個人一天蟲+草最多50次,除一次2點經驗,你可以喊N個人來幫你種,有小號也行,至於這個有上限沒有沒研究過,估計有吧。