欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)導(dǎo)航功能

 更新時間:2022年03月22日 12:33:16   作者:徐徐大嫂  
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)導(dǎo)航功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語言實(shí)現(xiàn)導(dǎo)航功能的具體代碼,供大家參考,具體內(nèi)容如下

#include<stdio.h>
#include<string.h>

#define NUM 25
#define INFINITY 32767
#define False 0
#define True 1

typedef struct
{
?? ?int number;//頂點(diǎn)的編號?
?? ?const char *sight;//頂點(diǎn)的信息?
?} VertexType;//頂點(diǎn)的類型?
?
?typedef struct
?{
??? ?VertexType vex[NUM];//存放頂點(diǎn)信息
?? ? int arcs[NUM][NUM];//鄰接矩陣數(shù)組
?? ? int vexnum;//頂點(diǎn)個數(shù)?
?}MGraph;
?
MGraph G;
?
?/**
由傳入的節(jié)點(diǎn)個數(shù)創(chuàng)建圖
?**/?
?void GreateMGraph(int v)?
?{
??? ?G.vexnum=v;//傳入節(jié)點(diǎn)個數(shù)?
?? ? for(int i=1;i<G.vexnum;i++){
?? ? ?? ?G.vex[i].number=i;
?? ? }//配置頂點(diǎn)編號?
?? ??
?? ? /**
?? ? 編輯頂點(diǎn)信息?? ?
?? ? **/?
?? ? G.vex[0].sight="各景點(diǎn)名字";
?? ? G.vex[1].sight="大門口";
?? ? G.vex[2].sight="行政辦公樓";
?? ? G.vex[3].sight="北區(qū)教室實(shí)訓(xùn)中心";
?? ? G.vex[4].sight="一號教學(xué)樓";
?? ? G.vex[5].sight="二號教學(xué)樓";
?? ? G.vex[6].sight="實(shí)驗(yàn)樓";
?? ? G.vex[7].sight="三號教學(xué)樓";
?? ? G.vex[8].sight="圖書館";
?? ? G.vex[9].sight="開水房";
?? ? G.vex[10].sight="超市";
?? ? G.vex[11].sight="榴馨苑";
?? ? G.vex[12].sight="洗浴中心";
?? ? G.vex[13].sight="驪秀苑";
?? ? G.vex[14].sight="綜合樓";
?? ? G.vex[15].sight="游泳池";
?? ? G.vex[16].sight="主田徑場";
?? ? G.vex[17].sight="綜合文體館";
?? ??
?? ? /**
?? ? 先將所有頂點(diǎn)之間的距離設(shè)置為INFINITY?
?? ? **/
?? ? for(int i=1;i<=G.vexnum;i++)
?? ? {
?? ? ?? ?for(int j=1;j<=G.vexnum;j++)
?? ? ?? ?{
?? ? ?? ??? ?G.arcs[i][j]=INFINITY;
?? ??? ? }
?? ? }
?? ??
?? ? /**
?? ? 設(shè)置各頂點(diǎn)之間的距離?
?? ? **/
?? ? G.arcs[1][2]=G.arcs[2][1]=255;
?? ? G.arcs[1][4]=G.arcs[4][1]=501;
?? ? G.arcs[1][5]=G.arcs[5][1]=535;
?? ? G.arcs[1][6]=G.arcs[6][1]=705;
?? ? G.arcs[1][7]=G.arcs[7][1]=722;
?? ? G.arcs[1][8]=G.arcs[8][1]=790;
?? ? G.arcs[2][3]=G.arcs[3][2]=530;
?? ? G.arcs[2][4]=G.arcs[4][2]=450;
?? ? G.arcs[2][5]=G.arcs[5][2]=484;
?? ? G.arcs[2][6]=G.arcs[6][2]=654;
?? ? G.arcs[2][7]=G.arcs[7][2]=663;
?? ? G.arcs[2][8]=G.arcs[8][2]=748;
?? ? G.arcs[3][8]=G.arcs[8][3]=1054;
?? ? G.arcs[3][17]=G.arcs[17][3]=713;
?? ? G.arcs[4][5]=G.arcs[5][4]=436;
?? ? G.arcs[4][6]=G.arcs[6][4]=158;
?? ? G.arcs[4][7]=G.arcs[7][4]=527;
?? ? G.arcs[4][8]=G.arcs[8][4]=534;
?? ? G.arcs[5][6]=G.arcs[6][5]=688;
?? ? G.arcs[5][7]=G.arcs[7][5]=561;
?? ? G.arcs[5][8]=G.arcs[8][5]=603;
?? ? G.arcs[6][7]=G.arcs[7][6]=428;
?? ? G.arcs[6][8]=G.arcs[8][6]=329;
?? ? G.arcs[6][9]=G.arcs[9][6]=547;
?? ? G.arcs[7][8]=G.arcs[8][7]=254;
?? ? G.arcs[8][11]=G.arcs[11][8]=421;
?? ? G.arcs[8][17]=G.arcs[17][8]=879;
?? ? G.arcs[9][10]=G.arcs[10][9]=178;
?? ? G.arcs[10][11]=G.arcs[11][10]=213;
?? ? G.arcs[10][12]=G.arcs[12][10]=114;
?? ? G.arcs[12][13]=G.arcs[13][12]=415;
?? ? G.arcs[13][14]=G.arcs[14][13]=104;
?? ? G.arcs[13][16]=G.arcs[16][13]=427;
?? ? G.arcs[13][15]=G.arcs[15][13]=576;
?? ? G.arcs[14][17]=G.arcs[17][14]=688;
?? ? G.arcs[15][16]=G.arcs[16][15]=213;
?? ? G.arcs[16][17]=G.arcs[17][16]=214;
?}
?
?/**
?展示校園地圖?
?**/
?void Map()
?{
? printf("\n\n\n");
? printf(" ?**************************河南財(cái)經(jīng)政法大學(xué)*******************************");
? printf("\n\n\n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ------------------------15游泳池 ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ?\n");
? printf(" ? 12洗浴中心----------------13驪繡苑---------------------16主田徑場 ? \n");
? printf(" ? ? ? | ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ?\n");
? printf(" ? 10超市----11榴馨苑 ? ? ? ? ?14綜合樓 ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ?\n");
? printf(" ? ?| ? ? ? ? ?| ? ? ? ? ? ? ? ?|----------------------17綜合文體館 ? ?\n");
? printf(" ? 9開水房 ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ?\n");
? printf(" ? ?| ? ? ? ? ?------------8圖書館--------------------------| ? ? ? ? ?\n");
? printf(" ? ?| ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ?\n");
? printf(" ? ?|-------------6實(shí)驗(yàn)樓------|--------7三號教學(xué)樓 ? ? ? ? | ? ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ? ? ? ? | ? ? ? ? | ? ? ? ? ? ? ?| ? ? ? ? ? ? | ? ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ? ? ? ? | ? ? ? ? | ? ? ? ? ? ? ?| ? ? ? ? ? ? | ? ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ?4一號教學(xué)樓------|--------5二號教學(xué)樓 ? ? ? ? | ? ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ?| ? ? ? ? ?\n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |---2行政樓---------------3北區(qū) ? ? ? ? \n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \n");
? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1大門口 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");?
}

?/**
?介紹校園各景點(diǎn)概況?
?**/
?void Info(int sight_num,char data[][200])
{
?? ?if(sight_num==1)
?? ??? ?puts(data[1]);
?? ?if(sight_num==2)
?? ??? ?puts(data[2]);
?? ?if(sight_num==3)
?? ??? ?puts(data[3]);
?? ?if(sight_num==4)
?? ??? ?puts(data[4]);
?? ?if(sight_num==5)
?? ??? ?puts(data[5]);
?? ?if(sight_num==6)
?? ??? ?puts(data[6]);
?? ?if(sight_num==7)
?? ??? ?puts(data[7]);
?? ?if(sight_num==8)
?? ??? ?puts(data[8]);
?? ?if(sight_num==9)
?? ??? ?puts(data[9]);
?? ?if(sight_num==10)
?? ??? ?puts(data[10]);
?? ?if(sight_num==11)
?? ??? ?puts(data[11]);
?? ?if(sight_num==12)
?? ??? ?puts(data[12]);
?? ?if(sight_num==13)
?? ??? ?puts(data[13]);
?? ?if(sight_num==14)
?? ??? ?puts(data[14]);
?? ?if(sight_num==15)
?? ??? ?puts(data[15]);
?? ?if(sight_num==16)
?? ??? ?puts(data[16]);
?? ?if(sight_num==17)
?? ??? ?puts(data[17]);
?? ?if(sight_num==18)
?? ??? ?puts(data[18]);
?? ?if(sight_num==19)
?? ??? ?puts(data[19]);
?? ?if(sight_num==20)
?? ??? ?puts(data[20]);
?? ?if(sight_num==21)
?? ??? ?puts(data[21]);
?? ?if(sight_num==22)
?? ??? ?puts(data[22]);
?? ?if(sight_num==23)
?? ??? ?puts(data[23]);
?? ?if(sight_num==24)
?? ??? ?puts(data[24]);
?? ?if(sight_num==25)
?? ??? ?puts(data[25]);
}

/**
開始菜單?
**/
int Menu()
{
?? ?int c;
?? ?Map();
?? ?printf("\t\t歡迎使用河南財(cái)經(jīng)政法大學(xué)導(dǎo)航圖系統(tǒng)\n");
?? ?printf("\t\t 1.查詢地點(diǎn)路徑 \n");
?? ?printf("\t\t 2.地點(diǎn)信息簡介 \n");
?? ?printf("\t\t 3.退出 \n");
?? ?printf(" ?**************************河南財(cái)經(jīng)政法大學(xué)*******************************\n");
?? ?printf("請輸入您的選擇:");
?? ?scanf("%d",&c);
?? ?return c;
}

/**
地圖的導(dǎo)航功能?
**/

?/**
?輸出任意兩點(diǎn)之間的最短路徑?
?**/
?void guide_Dispath_two(MGraph g,int dist[],int path[],int S[],int v,int i)//v為起點(diǎn),i為終點(diǎn)?
?{
??? ?int apath[NUM],d=0; ? ? ? ? ? ? //存放一條最短的路徑以及頂點(diǎn)個數(shù)(路徑中終點(diǎn)為首)
?? ?int j,k; ? ? ? ? ? ? ? ? ? ? ? ? ?//k用來存放終點(diǎn)的前面的節(jié)點(diǎn)?
?? ?
?? ?if(S[i]==1 && i!=v)
?? ?{
?? ??? ?printf("從頂點(diǎn)%d到頂點(diǎn)%d的路徑長度為:%d\t路徑為:",v,i,dist[i]);
?? ??? ?apath[d]=i; ? ? ? ? ? ? ? ?//把終點(diǎn)放在數(shù)組中的首位
?? ??? ?k=path[i];
?? ??? ?
?? ??? ?if(k==-1)
?? ??? ??? ?printf("無路徑");
?? ??? ??? ?
?? ??? ?/**
?? ??? ?利用循環(huán)將最短路徑中的各節(jié)點(diǎn)存入apath數(shù)組?
?? ??? ?**/
?? ??? ?else
?? ??? ?{
?? ??? ??? ?while(k!=v)
?? ??? ??? ?{
?? ??? ??? ??? ?d++;
?? ??? ??? ??? ?apath[d]=k;
?? ??? ??? ??? ?k=path[k];
?? ??? ??? ?}
?? ??? ?}
?? ??? ?d++; apath[d]=v; ? ? ? ? //將起點(diǎn)添加進(jìn)去
?? ??? ?printf("%d",apath[d]); ? //輸出起點(diǎn)
?? ??? ?for(j=d-1;j>=0;j--)
?? ??? ?{
?? ??? ??? ?printf("->%d",apath[j]); //循環(huán)輸出最短路徑中的各節(jié)點(diǎn)?
?? ??? ?} ? ? ? ? ? ?
?? ?}?
?}

//以編號為v的頂點(diǎn)為起點(diǎn),w為終點(diǎn)?
void guide_Dijkstra(MGraph g,int v,int w)
{
?? ?int dist[NUM],path[NUM];
?? ?int S[NUM]; ? ? ? ? ? ? ? ? ? ? ? ? //S[i]=1表示頂點(diǎn)i在S中,S[i]=0表示頂點(diǎn)i在U中
?? ?int MINdis,i,j,u;
?? ?for(i=1;i<=g.vexnum;i++)
?? ?{
?? ??? ?dist[i]=g.arcs[v][i]; ? ? ? ? ? //距離初始化(距頂點(diǎn)v的距離)?
?? ??? ?S[i]=0; ? ? ? ? ? ? ? ? ? ? ? ? //S[]置空
?? ??? ?if(g.arcs[v][i]<INFINITY) ? ? ? //路徑初始化
?? ??? ??? ?path[i]=v; ? ? ? ? ? ? ? ? ?//頂點(diǎn)v到頂點(diǎn)i有邊時,置頂點(diǎn)i的前一個頂點(diǎn)為頂點(diǎn)v?
?? ??? ?else
?? ??? ??? ?path[i]=-1; ? ? ? ? ? ? ? ? //頂點(diǎn)v到頂點(diǎn)i沒邊時,置頂點(diǎn)i的前一個頂點(diǎn)為-1?
?? ? }
?? ? S[v]=1;path[v]=0; ? ? ? ? ? ? ? ? ?//源點(diǎn)編號v放入S中
?? ? for(i=1;i<=g.vexnum-1;i++) ? ? ? ? ?//循環(huán)直到所有頂點(diǎn)的最短路徑都求出?
?? ? {
?? ? ?? ?MINdis=INFINITY; ? ? ? ? ? ? ? ?//MINdis置最大長度初值
?? ??? ? for(j=1;j<=g.vexnum;j++) ? ? ? //選取不在S中(即U中)且具有最小最短路徑長度的頂點(diǎn)u?
?? ??? ? {
?? ??? ? ?? ?if(S[j]==0 && dist[j]<MINdis)
?? ??? ? ?? ?{
?? ??? ? ?? ??? ?u=j;
?? ??? ? ?? ??? ?MINdis=dist[j];
?? ??? ??? ? }
?? ??? ? }
?? ??? ??? ? S[u]=1; ? ? ? ? ? ? ? ? ? //頂點(diǎn)u加入S中
?? ??? ??? ? for(j=1;j<=g.vexnum;j++) ?//修改不在S中(即U中)的頂點(diǎn)的最短路徑?
?? ??? ??? ? {
?? ??? ??? ? ?? ?if(S[j]==0)
?? ??? ??? ? ?? ??? ?if(g.arcs[u][j]<INFINITY && dist[u]+g.arcs[u][j]<dist[j])
?? ??? ??? ? ?? ??? ?{
?? ??? ??? ? ?? ??? ??? ?dist[j]=dist[u]+g.arcs[u][j];
?? ??? ??? ? ?? ??? ??? ?path[j]=u;
?? ??? ??? ??? ??? ? }
?? ??? ??? ? ?} ?
?? ? ?}
?? ? ?
?? ? ?guide_Dispath_two(g,dist,path,S,v,w); //輸出最短路徑?
?}
?/**
?將文件中的景點(diǎn)信息載入數(shù)組?
?**/
?void load_sight_data(char data[][200],MGraph g)
{
?? ?FILE *fp;
?? ?int i;
?? ?
?? ?if((fp=fopen("C:\\Users\\admin\\Desktop\\導(dǎo)航\\sight_data.txt","r"))==NULL){
?? ??? ?printf("File can't open");
?? ??? ?return;
?? ?}

?? ?for(i=1;i<=g.vexnum;i++)
?? ?{
?? ??? ?fgets(data[i],200,fp);
?? ?}
?? ?fclose(fp);
}

/**
修改景點(diǎn)信息?
**/
void change_sight_data(char user_change_data[200],MGraph g)
{
?? ?FILE *fin,*ftp;
?? ?int i;
?? ?fin=fopen("C:\\Users\\admin\\Desktop\\導(dǎo)航\\sight_data.txt","r");//讀打開原文件?
?? ?ftp=fopen("C:\\Users\\admin\\Desktop\\導(dǎo)航\\temp.txt","w");//寫打開臨時文件
?? ?if(fin==NULL || ftp==NULL)
?? ?{
?? ??? ?printf("打開文件失敗");
?? ??? ?return;?
?? ? }
?? ??
?? ?for(i=1;i<=g.vexnum;i++)
?? ?{
?? ??? ?char change_data[200];
?? ??? ?fgets(change_data,200,fin);
?? ??? ?if(change_data[0]==user_change_data[0] && change_data[1]==user_change_data[1])
?? ??? ?{
?? ??? ??? ?fputs(user_change_data,ftp);//而用fputs直接將user_change_data直接寫入文件沒有換行符,需要添加換行符?
?? ??? ??? ?fprintf(ftp,"\n");
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?fputs(change_data,ftp);//在使用fgets函數(shù)得到change_data數(shù)組時換行符會被保存,此處不需要加換行符?
?? ??? ?}
?? ?}
?? ?fclose(fin);
?? ?fclose(ftp);
?? ?remove("C:\\Users\\admin\\Desktop\\導(dǎo)航\\sight_data.txt");
?? ?rename("C:\\Users\\admin\\Desktop\\導(dǎo)航\\temp.txt","C:\\Users\\admin\\Desktop\\導(dǎo)航\\sight_data.txt");
}

/**
增添景點(diǎn)到文件內(nèi)?
**/
void add_sight_data(char change_data[200],MGraph g)
{
?? ?FILE *fp;
?? ?if((fp=fopen("C:\\Users\\admin\\Desktop\\導(dǎo)航\\sight_data.txt","a"))==NULL){
?? ??? ?printf("File can't open");
?? ??? ?return;
?? ?}
?? ?fprintf(fp,"\n");
?? ?fputs(change_data,fp);
?? ?fprintf(fp,"\n");
?? ?rewind(fp);
?? ?
?? ?fclose(fp);
?}
?
?/**
?修改密碼,保存到密碼文件中?
?**/
?void change_password(char password[30])
?{
??? ?FILE *fp;
??? ?fp=fopen("C:\\Users\\admin\\Desktop\\導(dǎo)航\\password_temp.txt","w");
?? ?if(fp==NULL)
?? ?{
?? ??? ?printf("打開文件失敗");
?? ??? ?return;?
?? ? }
?? ??
?? ? fputs(password,fp);
?? ? fclose(fp);
?? ? remove("C:\\Users\\admin\\Desktop\\導(dǎo)航\\password.txt");
?? ? rename("C:\\Users\\admin\\Desktop\\導(dǎo)航\\password_temp.txt","C:\\Users\\admin\\Desktop\\導(dǎo)航\\password.txt");
? }
??
? /**
? ?將密碼裝進(jìn)密碼數(shù)組中?
? **/
?void load_password(char password[30])
? {
? ?? ?FILE *fp;
? ?? ?if((fp=fopen("C:\\Users\\admin\\Desktop\\導(dǎo)航\\password.txt","r"))==NULL){
?? ??? ?printf("File can't open");
?? ??? ?return;
?? ?}
?? ?
?? ?fgets(password,30,fp);
?? ?
?? ?fclose(fp);
?}?
?
?int admin_Menu()
?{
??? ?int c;
?? ?printf("**************管理系統(tǒng)****************\n");?
?? ?printf("\t\t歡迎使用管理員操作系統(tǒng)\n");
??? ?printf("1.修改登錄密碼\n");
?? ?printf("2.添加新景點(diǎn)\n");
?? ?printf("3.修改景點(diǎn)信息\n");
?? ?printf("4.新建景點(diǎn)路徑\n");
?? ?printf("5.退出\n");
?? ?printf("**************************************\n");
?? ?printf("請輸入您的選擇:");
?? ?scanf("%d",&c);
?? ?return c;?
?? ??
?}
?
int main()
{
?? ?GreateMGraph(17);
?? ?char sight_data[NUM][200];
?? ?char password[30];
?? ?int choice;
?? ?int Menu_choice;
?? ?int start,end;
?? ?do
?? ?{
?? ??? ?printf("歡迎使用河南財(cái)經(jīng)政法大學(xué)導(dǎo)航系統(tǒng)\n");
?? ??? ?printf("請問您的身份是:1.管理員 ?2.游客 ?3.退出\n");
?? ??? ?scanf("%d",&choice);
?? ??? ?if(choice==2)
?? ??? ?{
?? ??? ??? ?do
?? ??? ??? ?{?? ?
?? ??? ??? ??? ?Menu_choice=Menu();
?? ??? ??? ??? ?if(Menu_choice==1)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?printf("請輸入您現(xiàn)在的位置:");
?? ??? ??? ??? ??? ?scanf("%d",&start);
?? ??? ??? ??? ??? ?printf("\n");
?? ??? ??? ??? ??? ?printf("請輸入您想要到達(dá)的位置:");
?? ??? ??? ??? ??? ?scanf("%d",&end);
?? ??? ??? ?
?? ??? ??? ??? ??? ?guide_Dijkstra(G,start,end);?
?? ??? ??? ??? ?}
?? ??? ??? ??? ?if(Menu_choice==2)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?int sight_num;
?? ??? ??? ??? ??? ?load_sight_data(sight_data,G);
?? ??? ??? ??? ??? ?printf("請輸入您要查詢的景點(diǎn)編號:");
?? ??? ??? ??? ??? ?scanf("%d",&sight_num);
?? ??? ??? ??? ??? ?Info(sight_num,sight_data);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?if(Menu_choice==3)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ?
?? ??? ??? ?}while(1);
?? ??? ?}
?? ?
?? ??? ?if(choice==1)
?? ??? ?{?
?? ??? ??? ?getchar();
?? ??? ??? ?load_password(password);
?? ??? ??? ?char user_input_psw[30];
?? ??? ??? ?printf("請輸入管理員登錄密碼:");
?? ??? ??? ?gets(user_input_psw);
?? ??? ??? ?if(strcmp(password,user_input_psw)==0)
?? ??? ??? ?{
?? ??? ??? ? ?? ?printf("密碼正確!\n");?
?? ??? ??? ??? ?int admin_choice;
?? ??? ??? ? ?? ?do
?? ??? ??? ? ?? ?{
?? ??? ??? ? ?? ??? ?admin_choice=admin_Menu();
?? ??? ??? ? ?? ??? ?
?? ??? ??? ? ?? ??? ?if(admin_choice==1)
?? ??? ??? ? ?? ??? ?{
?? ??? ??? ??? ??? ??? ?getchar();
?? ??? ??? ??? ??? ??? ?char user_change_psw[30];
?? ??? ??? ??? ??? ??? ?printf("請輸入新的密碼:\n");?
?? ??? ??? ? ?? ??? ??? ?gets(user_change_psw);
?? ??? ??? ??? ??? ??? ?change_password(user_change_psw);
?? ??? ??? ??? ??? ??? ?load_password(password);
?? ??? ??? ??? ??? ??? ?printf("密碼修改成功!\n");?
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ??? ? if(admin_choice==2)
?? ??? ??? ??? ??? ? {
?? ??? ??? ??? ??? ? ?? ?getchar();
?? ??? ??? ??? ??? ? ?? ?char uadd_sight_data[200];
?? ??? ??? ??? ??? ??? ?printf("請輸入您要添加的景點(diǎn)以及該景點(diǎn)信息:\n");
?? ??? ??? ??? ??? ??? ?gets(uadd_sight_data);
?? ??? ??? ??? ??? ??? ?add_sight_data(uadd_sight_data,G);
?? ??? ??? ??? ??? ??? ?load_sight_data(sight_data,G);
?? ??? ??? ??? ??? ??? ?G.vexnum++;
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?char *p;
?? ??? ??? ??? ??? ??? ?p=strtok(uadd_sight_data," ");
?? ??? ??? ??? ??? ??? ?p=strtok(NULL," ");
?? ??? ??? ??? ??? ??? ?G.vex[G.vexnum].number=G.vexnum;
?? ??? ??? ??? ??? ??? ?G.vex[G.vexnum].sight=p;
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?printf("添加成功!\n");?
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ??? ? if(admin_choice==3)
?? ??? ??? ??? ??? ? {
?? ??? ??? ??? ??? ? ?? ?getchar();
?? ??? ??? ??? ??? ? ?? ?char user_sight_data[200];
?? ??? ??? ??? ??? ? ?? ?printf("請輸入您要修改的景點(diǎn)信息:\n");
?? ??? ??? ??? ??? ? ?? ?gets(user_sight_data);
?? ??? ??? ??? ??? ? ?? ?change_sight_data(user_sight_data,G);
?? ??? ??? ??? ??? ? ?? ?load_sight_data(sight_data,G);
?? ??? ??? ??? ??? ? ?? ?printf("修改成功!\n");
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ??? ? if(admin_choice==4)
?? ??? ??? ??? ??? ? {
?? ??? ??? ??? ??? ? ?? ?int new_start,new_end;
?? ??? ??? ??? ??? ? ?? ?int length;
?? ??? ??? ??? ??? ? ?? ?printf("請輸入您想要在哪兩點(diǎn)之間添加路線:\n");
?? ??? ??? ??? ??? ? ?? ?printf("起點(diǎn):");
?? ??? ??? ??? ??? ??? ?scanf("%d",&new_start);
?? ??? ??? ??? ??? ??? ?printf("\n");
?? ??? ??? ??? ??? ??? ?printf("終點(diǎn):");
?? ??? ??? ??? ??? ??? ?scanf("%d",&new_end);
?? ??? ??? ??? ??? ??? ?printf("請輸入兩頂點(diǎn)之間的距離:\n");
?? ??? ??? ??? ??? ??? ?scanf("%d",&length);
?? ??? ??? ??? ??? ??? ?printf("\n");
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?G.arcs[new_start][new_end]=G.arcs[new_end][new_start]=length;
?? ??? ??? ??? ??? ??? ?printf("路線添加成功!\n");?
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ??? ? if(admin_choice==5)
?? ??? ??? ??? ??? ? {
?? ??? ??? ??? ??? ? ?? ?break;
?? ??? ??? ??? ??? ? }
?? ??? ??? ??? ? }while(1);
?? ??? ? ?? ?}
?? ??? ??
?? ??? ? ?? ?if(strcmp(password,user_input_psw)!=0)
?? ??? ? ?? ?{
?? ??? ? ?? ??? ?printf("密碼錯誤! \n");?
?? ??? ? ??? ?}?
?? ? ?? ?}
?? ? ?? ?
?? ? ?? ?if(choice==3)
?? ??? ? {
?? ??? ? ?? ?break;
?? ??? ? ?}?
?? ?}while(1);
?? ?
?? ?return 0;?
?}?

password.txt文件用來存放密碼
sight_data.txt文件用來存放景點(diǎn)信息:

1 大門口 出入學(xué)校的必經(jīng)之路
2 行政辦公樓 學(xué)校最氣派的建筑之一
3 北區(qū) 金工實(shí)訓(xùn)中心,還有幾排具有歷史滄桑感的教室
4 一號教學(xué)樓 主要有小教室,用來上英語課和專業(yè)課
5 二號教學(xué)樓 主要用來上專業(yè)課,五六樓有語音室
6 實(shí)驗(yàn)樓 學(xué)生上各種實(shí)驗(yàn)課的地點(diǎn)
7 三號教學(xué)樓 有大教室,一般安排用來上基礎(chǔ)課
8 圖書館 學(xué)校為同學(xué)們提供學(xué)習(xí)和自習(xí)的地方,也是學(xué)校的藏書最多的地方
9 開水房 學(xué)校唯一一個為同學(xué)提供熱水的地點(diǎn)
10 超市 學(xué)校唯一一個中型超市,在這里可以買到各種生活用品
11 榴馨苑 環(huán)境較好的學(xué)生食堂,這里因?yàn)殡x女生公寓較近,所以這個食堂女生較多
12 洗浴中心 環(huán)境還行就是規(guī)模太小,每天都是供不應(yīng)求
13 驪秀苑 主要經(jīng)營面食。我校的物美價廉的食堂,位于男生公寓區(qū),大部分男生在此就餐
14 綜合樓 歷史較為悠久的一棟教學(xué)樓,旁邊有學(xué)生第二俱樂部,學(xué)校的晚會都在這里舉行
15 游泳池 大一學(xué)生上游泳課的地點(diǎn)
16 主田徑場 標(biāo)準(zhǔn)的400m跑道,學(xué)生上室外體育課的地點(diǎn)
17 綜合文體館:上室內(nèi)體育課的地方,是新建成的較為氣派

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

相關(guān)文章

  • Qt利用QSortFilterProxyModel代理實(shí)現(xiàn)自定義排序與聯(lián)合過濾

    Qt利用QSortFilterProxyModel代理實(shí)現(xiàn)自定義排序與聯(lián)合過濾

    QsortFilterProxyModel類用來為model和view之間提供強(qiáng)大的排序和過濾支持。這篇文章將利用QSortFilterProxyModel代理實(shí)現(xiàn)自定義排序與聯(lián)合過濾,需要的可以參考一下
    2022-11-11
  • C++實(shí)現(xiàn)區(qū)塊鏈的源碼

    C++實(shí)現(xiàn)區(qū)塊鏈的源碼

    這篇文章主要介紹了C++實(shí)現(xiàn)區(qū)塊鏈的源碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • C語言函數(shù)語法詳解

    C語言函數(shù)語法詳解

    本文是小結(jié)了一下C語言的函數(shù)語法,詳細(xì)介紹了C語言函數(shù)語法的概述、函數(shù)的定義、函數(shù)的返回值、函數(shù)調(diào)用等7個方面的內(nèi)容,非常詳細(xì),這里推薦給小伙伴們。
    2015-02-02
  • Linux C 時間函數(shù)應(yīng)用

    Linux C 時間函數(shù)應(yīng)用

    本文是關(guān)于Linux C時間函數(shù) time_t struct tm 進(jìn)行了詳細(xì)的分析介紹并有應(yīng)用實(shí)例,希望能幫到有需要的同學(xué)
    2016-07-07
  • C++優(yōu)先隊(duì)列用法案例詳解

    C++優(yōu)先隊(duì)列用法案例詳解

    這篇文章主要介紹了C++優(yōu)先隊(duì)列用法案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++ override關(guān)鍵字使用詳解

    C++ override關(guān)鍵字使用詳解

    這篇文章主要介紹了C++ override關(guān)鍵字使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • C 語言快速排序?qū)嵗a

    C 語言快速排序?qū)嵗a

    本文主要介紹了C語言的快速排序算法,這里給大家舉例說明并附代碼實(shí)例,需要的朋友可以參考下
    2016-07-07
  • 基于條件變量的消息隊(duì)列 說明介紹

    基于條件變量的消息隊(duì)列 說明介紹

    本篇文章小編為大家介紹,基于條件變量的消息隊(duì)列 說明介紹。需要的朋友參考一下
    2013-04-04
  • 淺析C++中的函數(shù)與指針

    淺析C++中的函數(shù)與指針

    這篇文章主要介紹了淺析C++中的函數(shù)與指針,是C++入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • C++迭代器失效問題及解決

    C++迭代器失效問題及解決

    這篇文章主要介紹了C++迭代器失效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論