سورس پیدا کردن کوتاه ترین مسیر بین شهرها با الگوریتم دایجسترا به زبان C++
در این بخش سورس پیدا کردن کوتاه ترین مسیر بین شهرها با الگوریتم دایجسترا به زبان C++ را برای شما آماده کرده ایم که در محیط نرم افزار Code::Blocks و زبان برنامه نویسی سی پلاس پلاس نوشته شده است. در ادامه می توانید توضیحات، تصاویر و همچنین فیلمی از نحوه اجرا شدن پروژه را مشاهده کنید.
توضیحات پروژه
در این پروژه بعد از اجرا شدن برنامه یک منوی 5 گزینه ای شامل موارد زیر به کاربر نمایش داده می شود.
- Find Shortest Path
- Nearest & Farthest City
- Contiguous City
- About
- Exit
گزینه اول به منظور پیدا کردن کوتاه ترین مسیر بین دو شهر وارد شده استفاده می شود. گزینه دوم برای پیدا کردن نزدیک ترین و دورترین شهر به یک شهر وارد شده استفاده می شود. گزینه سوم شهرهای مجاور یک شهر وارد شده را نمایش می دهد. گزینه چهارم راهنمای برنامه را نمایش می دهد. گزینه آخر هم برای خروج از برنامه استفاده می شود.
این برنامه کوتاه ترین مسیر بین کل شهرهای مراکز استان ایران را با استفاده از الگوریتم دایجسترا مشخص می کند. به طوری که اگر شما فرضا بخواهید از تهران به بوشهر مسافرت کنید با استفاده این برنامه قادر خواهید بود کوتاه ترین مسیر را بدانید به طوری که برنامه معین می کند شما برای رفتن به شیراز ابتدا می بایست به قم سپس اصفهان و بعد به شیراز مراجعت کنید. کد این برنامه طبق جدول فواصل بین مراکز استان های ایران تنظیم شده است.
قسمت های از سورس کد
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #include <iostream> #include <windows.h> #include <conio.h> #include <stdlib.h> #include <stdio.h> using namespace std; #define IN 5000 #define N 32 struct city{ char name[14]; }c[32]; void gotoxy(const int x, const int y); int program1(int g[][N]); int program2(int g[][N]); int program3(int g[][N]); void about(); int menu(); void mini_menu(int q); void city_name(); int city_d(int g[][N]); int dijsktra(int g[][N],int source,int target,int flag); int find(char h[14]); int i; /******************* Main ********************/ int main(){ system("cls"); int g[N][N]; city_name(); g[N][N]=city_d(g); int s; while(1){ s=menu(); switch(s){ case 1: system("cls"); program1(g); break; case 2: system("cls"); program2(g); break; case 3: system("cls"); program3(g); break; case 4: system("cls"); about(); break; case 5: exit(0); }//switch }//while }//main void gotoxy(const int x, const int y) { HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); COORD coordinate = { (SHORT)x, (SHORT)y }; SetConsoleCursorPosition(consoleHandle, coordinate); } void city_name(){ strcpy(c[1].name,"arak");strcpy(c[2].name,"ardabil"); strcpy(c[3].name,"oromie");strcpy(c[4].name,"esfahan"); strcpy(c[5].name,"ahvaz");strcpy(c[6].name,"ilam"); strcpy(c[7].name,"boshehr");strcpy(c[8].name,"bandarabas"); strcpy(c[9].name,"bojnord");strcpy(c[10].name,"birjand"); strcpy(c[11].name,"tehran");strcpy(c[12].name,"tabriz"); strcpy(c[13].name,"khoramabad");strcpy(c[14].name,"rasht"); strcpy(c[15].name,"zahedan");strcpy(c[16].name,"zanjan"); strcpy(c[17].name,"semnan");strcpy(c[18].name,"sanandaj"); strcpy(c[19].name,"sari");strcpy(c[20].name,"shiraz"); strcpy(c[21].name,"shahrekord");strcpy(c[22].name,"qazvin"); strcpy(c[23].name,"qom");strcpy(c[24].name,"kerman"); strcpy(c[25].name,"kermanshah");strcpy(c[26].name,"gorgan"); strcpy(c[27].name,"mashhad");strcpy(c[28].name,"hamedan"); strcpy(c[29].name,"yasoj");strcpy(c[30].name,"yazd"); strcpy(c[31].name,"karaj"); } |
سلام خسته نباشید من با ++dev - c این برنامه را نوشتم اما جمله setConsoleCursorposition را برای من میزنه تعریف نشده لطفا راهنمایی ام کنید که چطور می تونم تعریفش کنم
سلام...مشکلتونو با جزئیات بیشتر تو انجمن سایت مطرح کنید.