校園導(dǎo)游咨詢(最短路徑)_第1頁
校園導(dǎo)游咨詢(最短路徑)_第2頁
校園導(dǎo)游咨詢(最短路徑)_第3頁
校園導(dǎo)游咨詢(最短路徑)_第4頁
校園導(dǎo)游咨詢(最短路徑)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

校園導(dǎo)游咨詢(最短路徑)校園導(dǎo)游咨詢(最短路徑)校園導(dǎo)游咨詢(最短路徑)資料僅供參考文件編號:2022年4月校園導(dǎo)游咨詢(最短路徑)版本號:A修改號:1頁次:1.0審核:批準:發(fā)布日期:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計實驗報告學(xué)號:姓名:提交日期:成績: 東北大學(xué)秦皇島分校設(shè)計題目:校園導(dǎo)游咨詢一、實驗?zāi)康模?)熟練掌握圖的創(chuàng)建及遍歷基本操作算法。(2)熟練掌握最短路徑算法。(3) 利用圖的遍歷和最短路徑求解技術(shù),設(shè)計一個校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)。二、需求分析實驗內(nèi)容【問題描述】設(shè)計一個校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)?!净疽蟆吭O(shè)計你所在學(xué)校的校園平面圖,所含景點不少于10個。以圖中頂點表示校內(nèi)各景點,存放景點名稱、代號、簡介等信息;以邊表示路徑,存放路徑長度等相關(guān)信息。(2)為來訪客人提供圖中任意景點相關(guān)信息的查詢。(3)為來訪客人提供圖中任意景點的問路查詢,即查詢?nèi)我鈨蓚€景點之間的一條最短的簡單路徑?!緶y試數(shù)據(jù)】由讀者根據(jù)實際情況指定?!緦崿F(xiàn)提示】一般情況下,校園的道路是雙向通行的,可設(shè)校園平面圖是一個無向網(wǎng)。頂點和邊均含有相關(guān)信息?!緦崿F(xiàn)功能】這個系統(tǒng)給用戶提供查詢景點,瀏覽路徑,尋找最佳的方案到達目的地,還提供了最佳路徑。概要設(shè)計1.系統(tǒng)分析:用的圖的算法進行構(gòu)造,用鄰接表建立圖,圖的每一個頂點代表相應(yīng)的景點。然后再用深度優(yōu)先遍歷進行搜索,查找所需的路徑。再用迪杰特斯拉算法求出一個景點到其他景點之間的最佳路徑。然后再用弗洛伊德算法求出要查詢的出發(fā)點到目的地的最短路徑。2.功能模塊圖;結(jié)束查看各景點游覽路線結(jié)束查看各景點游覽路線開始開始定義變量VVoidMenu()進入菜單Switch()選擇功能退出系統(tǒng)瀏覽校園全景顯示此圖的鄰接矩陣查看景點信息選擇出發(fā)點和目的地退出系統(tǒng)瀏覽校園全景顯示此圖的鄰接矩陣查看景點信息選擇出發(fā)點和目的地(1)主菜單(Menu):存放著所有的選擇供用戶查詢。用戶可通過輸入編號來查詢自己想要獲得的信息。(2)瀏覽校園全景(Browser):采用深度遍歷遍歷圖進行所有景點瀏覽,將遍歷景點信息輸出。(3)查看各景點游覽路線(ShortestPath_DIJ):用戶輸入一個景點,采用迪杰斯特拉算法將從該景點起所有路徑查出并輸出在屏幕上。(4)選擇出發(fā)點和目的地(Floyd):用戶輸入一個出發(fā)點和一個目的地編號,采用弗洛伊德算法求出發(fā)點到目的地的最短路徑。(5)查看景點信息(Search):直接輸入編號進行單個景點查詢。(6)顯示圖的鄰接矩陣(print)(7)退出系統(tǒng)(exit)詳細設(shè)計(1)圖的結(jié)構(gòu)typedefstructArCell//對弧的定義{intadj;//路徑長度}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedefstruct//圖中頂點表示主要景點,存放景點的編號、名稱、簡介等信息,{charname[30];intnum;charintroduction[100];//簡介}infotype;//數(shù)據(jù)域typedefstruct{infotypevexs[MAX_VERTEX_NUM];//頂點的數(shù)據(jù)域AdjMatrixarcs;//鄰接矩陣intvexnum,arcnum;//圖的當前頂點數(shù)和弧數(shù)}MGraph;各個函數(shù)的聲明如下:voidcmd(void);MGraphInitGraph(void);//初始化圖voidMenu(void);//整體菜單voidBrowser(MGraph*G);//遍歷校園全景voidShortestPath_DIJ(MGraph*G);//景點所有路線voidFloyd(MGraph*G);//兩景點之間最短距離voidSearch(MGraph*G);//查看景點信息voidprint(MGraph*G);//輸出該圖鄰接矩陣主函數(shù)voidmain(void)//定義主函數(shù){system("color1f");system("modecon:cols=100lines=40");cmd();//調(diào)用cmd()}主要函數(shù)<1>迪杰斯特拉算法算法思想:依路徑長度遞增的次序求得各條路徑//迪杰斯特拉算法來計算出起點到各個頂點之間的最短路徑,v0為起點voidShortestPath_DIJ(MGraph*G){intv,w,i,min,t=0,x,flag=1,v0;//flag=1保證輸入編號有效intfinal[20],D[20],p[20][20];//用迪杰斯特拉算法求網(wǎng)G的v0頂點到其余頂點v的最短路徑P[v]及帶權(quán)長度D[v]//若P[v][w]為1,則w是從v0到v當前求得最短路徑上的頂點//final[v]為1當且僅當v屬于s(s是已求得最短路徑的終點的集合),即已經(jīng)求得從v0到v的最短路徑while(flag){printf("請輸入一個起始景點編號:");scanf("%d",&v0);//輸入一個值賦給v0if(v0<0||v0>G->vexnum){printf("景點編號不存在!請重新輸入景點編號:");scanf("%d",&v0);}if(v0>=0&&v0<G->vexnum)flag=0;}for(v=0;v<G->vexnum;v++){final[v]=0;//v不屬于s,即v頂點還沒有走過D[v]=G->arcs[v0][v].adj;//v0到v的弧權(quán)值for(w=0;w<G->vexnum;w++)p[v][w]=0;//設(shè)置空路徑if(D[v]<INFINITY){p[v][v0]=1;p[v][v]=1;//v0是從v0到v的頂點,v是從v0到v的頂點}}D[v0]=0;final[v0]=1;//初始化,v0到v0的帶權(quán)路徑長度為0,最短路徑,v0頂點屬于s集//開始主循環(huán),每次求得v0到某個v頂點的最短路徑,并加v到s集for(i=1;i<G->vexnum;i++)//其余G.vexnum-1個頂點{min=INFINITY;//當前所知離v0頂點的最近距離for(w=0;w<G->vexnum;w++)if(!final[w])//w頂點在v-s中 if(D[w]<min){v=w;min=D[w];}//w頂點離v0頂點更近final[v]=1;//離v0頂點最近的v加入s集for(w=0;w<G->vexnum;w++)//更新當前的最短路徑及距離if(!final[w]&&(min+G->arcs[v][w].adj<D[w]))//修改D[w]和P[w],w屬于v-s{D[w]=min+G->arcs[v][w].adj;for(x=0;x<G->vexnum;x++)p[w][x]=p[v][x];p[w][w]=1;}}//用來更新到每一個頂點的最短路徑for(v=0;v<G->vexnum;v++){if(v0!=v)printf("%s",G->vexs[v0].name);//輸出字符串for(w=0;w<G->vexnum;w++){if(p[v][w]&&w!=v0)printf("-->%s",G->vexs[w].name);t++;}if(t>G->vexnum-1&&v0!=v)printf("總路線長%dm\n\n",D[v]);}}//ShortestPath_DIJend<2>Floyd算法算法思想:從vi到vj的所有存在的路徑中,選出一條長度最短的路徑,即每一對頂點之間的最短路徑。voidFloyd(MGraph*G)//用Floyd算法求圖中各對頂點v和w之間的最短路徑P[v][w]及其//帶權(quán)長度D[v][w]。若P[v][w][u]為1,則u是從v到w當前求得最短//路徑上的頂點。{intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];for(v=0;v<G->vexnum;v++)//各對結(jié)點之間初始已知路徑及距離for(w=0;w<G->vexnum;w++){D[v][w]=G->arcs[v][w].adj;for(u=0;u<G->vexnum;u++)p[v][w][u]=0;if(D[v][w]<INFINITY){p[v][w][v]=1;p[v][w][w]=1;}}for(u=0;u<G->vexnum;u++)for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++)if(D[v][u]+D[u][w]<D[v][w])//從v經(jīng)u到w的一條路徑更短{D[v][w]=D[v][u]+D[u][w];//修改權(quán)值for(i=0;i<G->vexnum;i++)p[v][w][i]=p[v][u][i]||p[u][w][i];}while(flag){printf("請輸入出發(fā)點和目的地的編號:");scanf("%d%d",&k,&j);if(k<0||k>G->vexnum||j<0||j>G->vexnum){printf("景點編號不存在!請重新輸入出發(fā)點和目的地的編號:");scanf("%d%d",&k,&j);}if(k>=0&&k<G->vexnum&&j>=0&&j<G->vexnum)flag=0;}printf("%s",G->vexs[k].name);for(u=0;u<G->vexnum;u++)if(p[k][j][u]&&k!=u&&j!=u)printf("-->%s",G->vexs[u].name);printf("-->%s",G->vexs[j].name);printf("總路線長%dm\n",D[k][j]);}//Floydend測試結(jié)果程序界面:主界面:1.瀏覽校園全景查看各景點所有游覽路線輸入景點編號1:輸入頂點編號3:3.選擇出發(fā)點和目的地輸入出發(fā)點和目的地的編號分別是:2和8輸入出發(fā)點和目的地的編號分別是:1和94.查看景點信息查看景點信息:1查看景點信息4:顯示此圖的鄰接矩陣6.退出系統(tǒng)調(diào)試與分析剛開始調(diào)試時出現(xiàn)很多錯誤,有些忘了寫頭文件,然后迅速從網(wǎng)上查到該詞的頭文件加在程序里。也有的函數(shù)忘記了提前聲明導(dǎo)致了程序不能運行,以及其他各種問題。不過最后都能夠通過各種途徑調(diào)試出來,有查書的,也有向同學(xué)請教的。當程序能夠正常運行出來時,界面顯示也出現(xiàn)了很多問題。有的是因為少了換行符,導(dǎo)致界面排列不好。不過,最終都慢慢地改了過來。七、心得與體會經(jīng)過兩周的課程設(shè)計收獲很多,在做課程設(shè)計之前,我覺得這是一項浩大的工程,總覺得自己會做不到。現(xiàn)在當我真的完成這個課程設(shè)計時,心里有一種成就感。這次課程設(shè)計,我學(xué)到了很多東西:學(xué)會了在編寫幾百行程序時如何查找錯誤,如何改錯誤;了解數(shù)據(jù)結(jié)構(gòu)在編寫比較復(fù)雜的程序的重要作用;對數(shù)據(jù)結(jié)構(gòu)中定義無向圖和創(chuàng)建無向圖的理解更加深刻;最重要的是讓我基本上明白了迪杰斯特拉算法和弗洛伊德算法。鞏固和加深了對數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運用本課程所學(xué)知識的能力。培養(yǎng)了我選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考,深入研究,分析問題、解決問題的能力。通過實際編譯系統(tǒng)的分析設(shè)計、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計方法。夠按要求編寫課程設(shè)計報告書,能正確闡述設(shè)計和實驗結(jié)果,正確繪制系統(tǒng)和程序框圖。通過課程設(shè)計,培養(yǎng)了我嚴肅認真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟觀念和全局觀念。同時,通過這次課程設(shè)計我發(fā)現(xiàn),我的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)不夠扎實,有很多地方還需要繼續(xù)努力。課程設(shè)計是把我們所學(xué)的理論知識進行系統(tǒng)的總結(jié)并應(yīng)用于實踐的良好機會,有利于加強我們用知識理論來分析實際問題的能力,進而加強了我們對知識認識的實踐度,鞏固了我們的理論知識,深化了對知識的認識,并為走向社會打下一個良好的基礎(chǔ)。在這次課程設(shè)計中我遇到許多問題和麻煩,得到了同學(xué)的幫助和指導(dǎo),才能夠使得這次課程設(shè)計順利的進行下去,這也讓我明白,要多于別人交流才能更好的完善自己。八、參考文獻:《數(shù)據(jù)結(jié)構(gòu)(C語言版》嚴蔚敏,吳偉民清華大學(xué)出版社附錄該程序完整代碼:#defineINFINITY10000/*無窮大*/#defineMAX_VERTEX_NUM40#defineMAX40#include<stdlib.h>//頭文件#include<stdio.h>#include<conio.h>#include<string.h>typedefstructArCell//對弧的定義{intadj;//路徑長度}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//一個二維數(shù)組,數(shù)組里元素類型為整型typedefstruct//圖中頂點表示主要景點,存放景點的編號、名稱、簡介等信息,{charname[30];intnum;charintroduction[100];//簡介}infotype;//數(shù)據(jù)域typedefstruct{infotypevexs[MAX_VERTEX_NUM];//頂點的數(shù)據(jù)域AdjMatrixarcs;//鄰接矩陣intvexnum,arcnum;//圖的當前頂點數(shù)和弧數(shù)}MGraph;MGraphb;//全局變量voidcmd(void);MGraphInitGraph(void);voidMenu(void);voidBrowser(MGraph*G);voidShortestPath_DIJ(MGraph*G);voidFloyd(MGraph*G);voidSearch(MGraph*G);voidprint(MGraph*G);/******************************************************/voidmain(void)//定義主函數(shù){system("color1f");system("modecon:cols=100lines=40");cmd();//調(diào)用cmd()}/******************************************************/voidcmd(void)//定義cmd(){inti;b=InitGraph();MGraphG;Menu();scanf("%d",&i);while(i!=6){switch(i){case1:system("cls");Browser(&b);Menu();break;//system("cls");作用是清屏case2:system("cls");ShortestPath_DIJ(&b);Menu();break;case3:system("cls");Floyd(&b);Menu();break;case4:system("cls");Search(&b);Menu();break;case5:system("cls");print(&b);Menu();break;case6:exit(1);break;default:break;//每次顯示選擇的一項后,會繼續(xù)顯示主菜單menu()}scanf("%d",&i);//輸入的值d賦給i}}MGraphInitGraph(void)//初始化{MGraphG;inti,j;G.vexnum=10;//10個頂點G.arcnum=14;//14條弧for(i=0;i<G.vexnum;i++)G.vexs[i].num=i;//第i個景點的編號為istrcpy(G.vexs[0].name,"實驗樓");//strcpy的頭文件是string.hstrcpy(G.vexs[0].introduction,"實驗器材齊全,承擔各種建設(shè)項目,為學(xué)生提供有利的創(chuàng)新平臺");strcpy(G.vexs[1].name,"圖書館");strcpy(G.vexs[1].introduction,"收藏豐富的圖書,設(shè)施良好,有閱覽室和電子閱覽室,環(huán)境幽雅");strcpy(G.vexs[2].name,"網(wǎng)球場");strcpy(G.vexs[2].introduction,"網(wǎng)球課訓(xùn)練基地,為熱愛網(wǎng)球的同學(xué)提供場地");strcpy(G.vexs[3].name,"經(jīng)管樓");strcpy(G.vexs[3].introduction,"學(xué)校建校時所建,雖有點古老,但環(huán)境整潔,考研同學(xué)學(xué)習(xí)基地");strcpy(G.vexs[4].name,"舊操場");strcpy(G.vexs[4].introduction,"設(shè)有舊籃球場舊足球場,是晚自習(xí)后,同學(xué)們運動的最佳場所");strcpy(G.vexs[5].name,"二號學(xué)生宿舍");strcpy(G.vexs[5].introduction,"經(jīng)貿(mào)學(xué)院及計算機與通信工程學(xué)院的女生宿舍,地理位置優(yōu)越");strcpy(G.vexs[6].name,"第一學(xué)生餐廳");strcpy(G.vexs[6].introduction,"價格實惠,食物種類不多,各種餅的天下");strcpy(G.vexs[7].name,"工學(xué)館");strcpy(G.vexs[7].introduction,"學(xué)院最大的教學(xué)樓,共8層,樓內(nèi)冬暖夏涼,學(xué)生學(xué)習(xí)的最佳場所");strcpy(G.vexs[8].name,"第六學(xué)生公寓");strcpy(G.vexs[8].introduction,"新建的學(xué)生公寓,居住環(huán)境幽雅,設(shè)施良好,就餐方便");strcpy(G.vexs[9].name,"大學(xué)生會館");strcpy(G.vexs[9].introduction,"設(shè)施良好,舉辦各種活動以及各種重要講座的最佳基地");for(i=0;i<G.vexnum;i++)for(j=0;j<G.vexnum;j++)G.arcs[i][j].adj=INFINITY;G.arcs[0][1].adj=20;G.arcs[0][2].adj=100;G.arcs[1][3].adj=40;G.arcs[1][4].adj=150;G.arcs[2][4].adj=10;G.arcs[3][5].adj=200;G.arcs[4][5].adj=60;G.arcs[4][8].adj=80;G.arcs[5][6].adj=10;G.arcs[5][7].adj=60;G.arcs[6][7].adj=50;G.arcs[7][8].adj=240;G.arcs[7][9].adj=200;G.arcs[8][9].adj=300;for(i=0;i<G.vexnum;i++)for(j=0;j<G.vexnum;j++)G.arcs[j][i].adj=G.arcs[i][j].adj;//無向網(wǎng)returnG;}//InitGraphendvoidMenu()//定義主菜單{printf("\n東北大學(xué)秦皇島分校導(dǎo)游圖\n");printf("┏━━━━━━━━━━━━━━━━━━━━┓\n");printf("┃1.瀏覽校園全景┃\n");printf("┃2.查看各景點所有游覽路線┃\n");printf("┃3.選擇出發(fā)點和目的地┃\n");printf("┃4.查看景點信息┃\n");printf("┃5.顯示此圖的鄰接矩陣┃\n");printf("┃6.退出系統(tǒng)┃\n");printf("┗━━━━━━━━━━━━━━━━━━━━┛\n");printf("Option-:");}voidBrowser(MGraph*G){intv;printf("┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");printf("┃編號┃景點名稱┃簡介┃\n");for(v=0;v<G->vexnum;v++)printf("┃%-4d┃%-16s┃%-56s┃\n",G->vexs[v].num,G->vexs[v].name,G->vexs[v].introduction);printf("┗━━┻━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");}//迪杰斯特拉算法來計算出起點到各個頂點之間的最短路徑,v0為起點voidShortestPath_DIJ(MGraph*G){intv,w,i,min,t=0,x,flag=1,v0;//flag=1保證輸入編號有效intfinal[20],D[20],p[20][20];//用迪杰斯特拉算法求網(wǎng)G的v0頂點到其余頂點v的最短路徑P[v]及帶權(quán)長度D[v]//若P[v][w]為1,則w是從v0到v當前求得最短路徑上的頂點//final[v]為1當且僅當v屬于s(s是已求得最短路徑的終點的集合),即已經(jīng)求得從v0到v的最短路徑while(flag){printf("請輸入一個起始景點編號:");scanf("%d",&v0);//輸入一個值賦給v0if(v0<0||v0>G->vexnum){printf("景點編號不存在!請重新輸入景點編號:");scanf("%d",&v0);}if(v0>=0&&v0<G->vexnum)flag=0;}for(v=0;v<G->vexnum;v++){final[v]=0;//v不屬于s,即v頂點還沒有走過D[v]=G->arcs[v0][v].adj;//v0到v的弧權(quán)值for(w=0;w<G->vexnum;w++)p[v][w]=0;//設(shè)置空路徑if(D[v]<INFINITY){p[v][v0]=1;p[v][v]=1;//v0是從v0到v的頂點,v是從v0到v的頂點}}D[v0]=0;final[v0]=1;//初始化,v0到v0的帶權(quán)路徑長度為0,最短路徑,v0頂點屬于s集//開始主循環(huán),每次求得v0到某個v頂點的最短路徑,并加v到s集for(i=1;i<G->vexnum;i++)//其余G.vexnum-1個頂點{min=INFINITY;//當前所知離v0頂點的最近距離for(w=0;w<G->vexnum;w++)if(!final[w])//w頂點在v-s中 if(D[w]<min){v=w;min=D[w];}//w頂點離v0頂點更近final[v]=1;//離v0頂點最近的v加入s集for(w=0;w<G->vexnum;w++)//更新當前的最短路徑及距離if(!final[w]&&(min+G->arcs[v][w].adj<D[w]))//修改D[w]和P[w],w屬于v-s{D[w]=min+G->arcs[v][w].adj;for(x=0;x<G->vexnum;x++)p[w][x]=p[v][x];p[w][w]=1;}}//用來更新到每一個頂點的最短路徑for(v=0;v<G->vexnum;v++){if(v0!=v)printf("%s",G->vexs[v0].name);//輸出字符串for(w=0;w<G->vexnum;w++){if(p[v][w]&&w!=v0)printf("-->%s",G->vexs[w].name);t++;}if(t>G->vexnum-1&&v0!=v)printf("總路線長%dm\n\n",D[v]);}}//ShortestPath_DIJendvoidFloyd(MGraph*G)//用Floyd算法求圖中各對頂點v和w之間的最短路徑P[v][w]及其//帶權(quán)長度D[v][w]。若P[v][w][u]為1,則u是從v到w當前求得最短//路徑上的頂點。{intv,u,i,w,k,j,flag=1,p[10][10][10],D[10][10];for(v=0;v<G->vexnum;v++)//各對結(jié)點之間初始已知路徑及距離for(w=0;w<G->vexnum;w++){D[v][w]=G->arcs[v][w].adj;for(u=0;u<G->vexnum;u++)p[v][w][u]=0;if(D[v][w]<INFINITY){p[v][w][v]=1;p[v][w][w]=1;}}for(u=0;u<G->vexnum;u++)for(v=0;v<G->vexnum;v++)for(w=0;w<G->vexnum;w++)if(D[v][u]+D[u][w]<D[v][w])//從v經(jīng)u到w的一條路徑更短

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論