توضیحات محصول دانلود پاورپوینت تحلیل و بررسی پیاده سازی حلقوی صف ها Queues در c++ (کد13549)
دانلود پاورپوینت تحلیل و بررسی پیاده سازی حلقوی صف ها Queues در c++
\nQueues صف ها
\n\n عنوان های پاورپوینت :
\n\nتحلیل و بررسی پیاده سازی حلقوی صف ها Queues در c++
\nQueues صف ها
\nصف ها Queues
\nتعاریف
\nکاربرد
\nعملیات صف
\nتعریف کلاس C++
\nروش پیاده سازی صف ها Queues
\nحالات مرزی
\nپیاده سازی حلقوی صف ها Queues در c++
\nکاربرد صف ها :
\nاعداد تصادفی
\nتعیین ویژگیهای کلاس هواپیما
\nتوابع و روش های شبیه سازی
\n\n\n \n\n \n\n
\n\nقسمت ها و تکه های اتفاقی از فایل\n\n \n\nصف ها Queues\n\nint main( ) // Airport simulation program\n\n{ int end_time, queue_limit, flight_number = 0;\n\ndouble arrival_rate, departure_rate;\n\ninitialize(end_time, queue_limit, arrival_rate, departure_rate);\n\nRandom variable;\n\nRunway small_airport(queue_limit);\n\nfor (int current_time = 0; current_time < end_time; current_time..) {\n\nint number_arrivals = variable.poisson(arrival_rate);\n\nfor (int i = 0; i < number_arrivals; i..) {\n\nPlane current_plane(flight_number.., current_time, arriving);\n\nif (small_airport.can_land(current_plane) != success)\n\ncurrent_plane.refuse( ); }\n\nint number_departures = variable.poisson(departure_rate);\n\nfor (int j = 0; j < number_departures; j..) {\n\nPlane current_plane(flight_number.., current_time, departing);\n\nif (small_airport.can_depart(current_plane) != success)\n\ncurrent_plane.refuse( ); }\n\nPlane moving_plane;\n\nswitch (small_airport.activity(current_time, moving_plane)) {\n\ncase land:\n\nmoving_plane.land(current_time);\n\nbreak;\n\ncase takeoff:\n\nmoving_plane.fly(current_time);\n\nbreak;\n\ncase idle:\n\nrun_idle(current_time);\n\n} }\n\nsmall_airport.shut_down(end_time); }\n\nصف ها Queues\n\nتوجه داشته باشید که اگر کلاس Runway ما نتواند یک پروازجدیدالورود را به landing Queue اضافه کند،از یک روش که Refuse نامیده می شود برای راهنمایی هواپیما به یک فرودگاه دیگر استفاده می کنیم.احتمالا، بعضی مواقع مجبور می شویم که درخواست یک هواپیما برای پرواز را نپذیریم.\n\nاعداد تصادفی\n\nمرحله ی اصلی تصمیم گیری برای این موضوع است که در هر بازه ی زمانی چه تعداد هواپیمای جدید برای نشستن بر روی باند یا برخاستن از روی آن آماده می شوند . سودمند ترین راه برای این امر آن است که به صورت راندوم و تصادفی تصمیم گیری کنیم\n\nصف ها Queues\n\nکلاس فرودگاه دو صف پروازو فرود بین اعضایش دارد.که پیاده سازی آن روابط has-a را منعکس می کند.\n\nتعریف باند فرودگاه enum Runway_activity {idle, land, takeoff};\n\nclass Runway {\n\npublic:\n\nRunway(int limit);\n\nError_code can_land(const Plane ¤t);\n\nError_code can_depart(const Plane ¤t);\n\nRunway_activity activity(int time, Plane &moving);\n\nvoid shut_down(int time) const;\n\nprivate:\n\nExtended_queue landing;\n\nExtended_queue takeoff;\n\nint queue_limit;\n\nint num_land_requests; // number of planes asking to land\n\nint num_takeoff_requests; // number of planes asking to take off\n\nint num_landings; // number of planes that have landed\n\nint num_takeoffs; // number of planes that have taken off\n\nint num_land_accepted; // number of planes queued to land\n\nint num_takeoff_accepted; // number of planes queued to take off\n\nint num_land_refused; // number of landing planes refused\n\nint num_takeoff_refused; // number of departing planes refused\n\nint land_wait; // total time of planes waiting to land\n\nint takeoff_wait; // total time of planes waiting to take off\n\nint idle_time; // total time runway is idle\n\n}\n\nصف ها Queues\n\nوقتی که ما از یک اسم واحد برای توابع متفاوت متعدد استفاده می کنیم،ما می گوییم نامoverload شده است ، درون حوزه ی کلاس هواپیما ما قادر به overload کردن دو سازنده هواپیما هستیم ،بخاطر اینکه اول از یک لیست پارامتر خالی استفاده می کند و دوم از پارامتر لیست سه متغیر های صحیح استفاده می کند. حالا می توانیم ویژگیهایی برای کلاس هواپیما بدهیم.\n\nenum Plane_status {null, arriving, departing};\n\nclass Plane {\n\npublic:\n\nPlane( );\n\nPlane(int flt, int time, Plane_status status);\n\nvoid refuse( ) const;\n\nvoid land(int time) const;\n\nvoid fly(int time) const;\n\nint started( ) const;\n\nprivate:\n\nint flt_num;\n\nint clock_start;\n\nPlane_status state;\n\n};\n\nتعیین ویژگیهای کلاس هواپیما\n\nکلاس هواپیما باید داده هایی شامل یک شماره پرواز،یک زمان ورود در سیستم فرودگاه ویک وضعیت هواپیما که در حال رسیدن یا حرکت کردن است باشددرنظر بگیرد. باشد.ماباید آنها را در اطلاعات شخصی اعضا نگه داریم تا یک مشتری قادر به تغییراین اطلاعات نباشد.\n\nبه این دلیل مانیازداریم به یک سازنده کلاس هواپیما که آن سه پارامتر رادارد.در زمان ها های دیگر گرچه ما خواهان آن خواهیم بود که یک شئ هواپیما بدون مقدار اولیه دادن این اطلاعات طراحی شود به خاطر اینکه یا مقدار آن نامربوط هست یا در غیر این صورت تعیین خواهد شد.از اینروما واقعا نیازبه دو سازنده برای کلاس هواپیما یکی با سه پارامتر و یکی با هیچ پارامترداریم. .\n\nبالاخره باید کلاس هواپیما شامل نپذیرفتن،پرواز کردن وبه زمین نشستن باشد که به طور صریح بوسیله برنامه اصلی استفاده می شود. همچنین هر هواپیما بایدقادر به ارتباط زمان ورودش به فرودگاه به کلاس باندفرودگاه باشد\n\nصف ها Queues\n\n2.مقداردهی باندفرودگاه\n\nاعضای داده باند فرودگاه مقداردهی اولیه می شوندبرای اینکه محدودیت سایز های صف وباندی که آماده فرود بوده ولی هواپیما فرود نیامده است را ثبت کنند .\n\nqueue_limit = limit;\n\nnum_land_requests = num_takeoff_requests = 0;\n\nnum_landings = num_takeoffs = 0;\n\nnum_land_refused = num_takeoff_refused = 0;\n\nnum_land_accepted = num_takeoff_accepted = 0;\n\nland_wait = takeoff_wait = idle_time = 0;\n\n1.مقداردهی اولیه شبیه سازی\n\nکاربر تعداد واحد زمانی در شبیه سازی را،حداکثر سایز صف ومنوال ورود و خروج های مورد انتظار را تعیین می کند\n\nvoid initialize(int &end_time, int &queue_limit,\n\ndouble &arrival_rate, double &departure_rate)\n\n}\n\ncout << "Up to what number of planes can be waiting to land "\n\n<< "or take off at any time? " << flush;\n\ncin >> queue_limit;\n\ncout << "How many units of time will the simulation run?" << flush;\n\ncin >> end_time;\n\nbool acceptable;\n\ndo {\n\ncout << "Expected number of arrivals per unit time?" << flush;\n\ncin >> arrival_rate;\n\ncout << "Expected number of departures per unit time?" << flush;\n\ncin >> departure_rate;\n\n....\n\n{\n\nصف ها Queues\n\n4.بررسی دسترسی باند فرودگاه\n\nاگر صف فرود اعضایی داشت،هواپیما جلویی به پارامترمتحرک کپی میشودویک نتیجه فرود برگردانده میشودویااگر صف پرواز اعضایی داشت،هواپیما جلویی به پارامتری که حرکت می کند کپی می شود ویک نتیجه پرواز برگردانده می شودوآمارهای باند فرودگاه آپدیت می شود.\n\n(if (!landing.empty( ) {\n\nlanding.retrieve(moving);\n\nland_wait += time − moving.started( );\n\nnum_landings..;\n\nin_progress = land;\n\nlanding.serve( );}\n\n(else if (!takeoff.empty( ) {\n\ntakeoff.retrieve(moving);\n\ntakeoff_wait += time − moving.started( );\n\nnum_takeoffs..;\n\nin_progress = takeoff;\n\ntakeoff.serve( );}\n\nelse {idle_time..;\n\nin_progress = idle;}\n\nreturn in_progress;}\n\n3.پذیرفتن یک هواپیما جدید در یک صف باند\n\nاگر برای فرودپذیرفتن امکان پذیر باشد هواپیما به صف فرود اضافه می شود در غیر این صورت خطای سرریزظاهر می شودوآمارهای باند فرودگاه آپدیت میشود.\n\nError_code result;\n\nif (landing.size( ) < queue_limit)\n\nresult = landing.append(current);\n\nelse\n\nresult = fail;\n\nnum_land_requests..;\n\nif (result != success)\n\nnum_land_refused..;\n\nelse\n\nnum_land_accepted..;\n\nreturn result;\n\nError_code Runway :: can_depart(const Plane ¤t)\n\nبرای پرواز هم اگرپذیرفتن امکان پذیر باشد هواپیما به صف پروازاضافه می شود در غیر این صورت خطای سرریز ظاهر می شود.آمارهای باند فرودگاه آپدیت شده است.\n\nصف ها Queues\n\n6.نپذیرفتن هواپیما\n\nفرآیندی که در آن یک هواپیما منتظر استفاده از باند است وقتی که صف پر است را بررسی می کند.\n\ncout << "Plane number " << flt_num;\n\nif (state == arriving) cout << " directed to another airport" << endl;\n\nElse cout << " told to try to takeoff again later" << endl;\n\n7.پردازش هواپیما در حال ورود\n\nفرآیندی که در آن یک هواپیما یی را که در یک زمان مشخص فرود می آید بررسی می کند.\n\nint wait = time − clock_start;\n\ncout << time << ": Plane number " << flt_num << " landed after ”\n\n<< wait << " time unit" << ((wait == 1) ? "" : "s")\n\n<< " in the takeoff queue." << endl;\n\nدر این تابع ازعملگر سه تایی ? : استفاده کردیم برای افزودن “s” در جایی که می خواهیم خروجی را به دست آوریم مثل“1 time unit” or “2 time units”\n\n5.مقداردهی اولیه هواپیما\n\nاعضای داده هواپیما flt_num, clock_start, state به ترتیب در مقادیر پارامتر هایflt, time,status گذاشته می شوند.\n\nflt_num = flt;\n\nclock_start = time;\n\nstate = status;\n\nPlane :: Plane( )\n\nدرآخر اعضای داده هواپیما flt_num, clock_start, state مقادیر غیر مجاز می گیرند.\n\nflt_num = −1;\n\nclock_start = −1;\n\nstate = null;\n\nدومین نوع این سازنده ها یک مقداردهی صفر را انجام می دهد. هر شئ باندفرودگاه صف هایی از هواپیما ها می باشدو هر کدام از این صف ها به وسیله استفاده آرایه ای از هواپیماها پیاده سازی می شود.بنابر این در شبیه سازی مان ما واقعا نیاز به عمل مقدار دهی پوچ نداریم.\n\nصف ها Queues\n\n10.علامت گذاری واحد های زمانی بلااستفاده\n\nزمان های مشخص شده با یک پیغام که باند فرودگاه بلااستفاده است نمایش داده می شود.\n\nvoid run_idle(int time)\n\n{cout << time << ": Runway is idle." << endl;}\n\n11.پایان شبیه سازی\n\nاجرا برنامه و به دست آوردن خروجی\n\nدر حال حرکت 8.پردازش هواپیما\n\nفرآیندی که در آن یک هواپیمایی که در یک زمان مشخص پرواز می کند بررسی می کند.\n\nint wait = time − clock_start;\n\ncout << time << ": Plane number " << flt_num << " took off after "\n\n<< wait << " time unit" << ((wait == 1) ? "" : "s")\n\n<< " in the takeoff queue." << endl;\n\n9.ارتباط برقرار کردن با اطلاعات ورود هواپیما\n\nزمانی که هواپیما وارد سیستم فرودگاه می شود بر می گرداند\n\nint Plane :: started( ) const\n\n{return clock_start;}\n\nصف ها Queues\n\n19: هواپیما شماره20 بعد از 3واحد زمانی در صف پرواز،پرواز می کند.\n\n20:هر دو صف خالی هستند،باند فرودگاه بلا استفاده است.\n\nبالاخره بعد از گام های بیشتر شبیه سازی ما یک خلاصه آماری به دست می آوریم.\n\nخلاصه\n\nشبیه سازی بعد ار 1000 واحد زمان به پایان رسیده است.\n\nمجموع هواپیماهای پردازش شده 970\n\nمجموع هواپیماهای خواستارفرود 484\n\nمجموع هواپیماهای باقیمانده در صف پروا ز\n\nدرصد زمان بلا استفاده بودن باند 9.5%\n\nمیانگین انتظار در صف فرود 0.36646 واحد زمانی\n\nمیانگین انتظار در صف پرواز 4.63744 واحد زمانی\n\nمیانگین سرعت مشاهده شده هواپیماهایی که می خواستند فرود آیند0.484 واحد زمانی\n\nمیانگین سرعت مشاهده شده هواپیماهایی که می خواستند بلند شوند 0.486 واحد زمانی\n\nنتایج به دست آمده با اجرای برنامه(TRACE)\n\nبرای آزمایش صحت برنامه یک فرودگاه با یک باند ،یک مکان برای فرود یا برای پرواز در هر واحد زمانی درنظر می گیریم و به سئوالات پاسخ می دهیم که برای نمونه چند تا از آنها ذکر شده است .پس درنهایت داریم.\n\nحدودا چند هواپیما می توانند در هرلحظه برای فرود یا پرواز صبرکنند؟\n\nچند واحد زمانی شبیه سازی اجرا می شود؟1000\n\nتعداد ورودهای مورد انتظار در هر لحظه؟48\n\nتعداد حرکت های مورد انتظار در هر لحظه؟48\n\nهواپیما شماره 0آماده حرکت\n\n0:هواپیما 1 فرود آمده،هیچ دستگاهی در صف 0 نیست.هواپیما شماره 0 بعد از 0واحد زمانی در صف پرواز بلند می شود.هواپیما شماره 1آماده حرکت\n\n1:هواپیما شماره1 بعد از 0واحد زمانی در صف پرواز بلند می شود.هواپیما شماره 2آماده حرکت هواپیما شماره 3آماده حرکت\n\n2: هواپیما شماره2 بعد از 0واحد زمانی در صف پرواز بلند می شودهواپیما شماره 4آماده فرود\n\nهواپیما شماره 5آماده حرکت\n\n \n\n \n\n30 تا 70 درصد پروژه | پاورپوینت | سمینار | طرح های کارآفرینی و توجیهی | پایان-نامه | پی دی اف مقاله ( کتاب ) | نقشه | پلان طراحی | های آماده به صورت رایگان میباشد ( word | pdf | docx | doc )