مستر کد
mrcode.wikibix.ir

پروژه برنامه نویسی c++

نویسنده : محمد پارسایی | زمان انتشار : 16 دی 1400 ساعت 17:03

جهت انجام پروژه های دانشجویی و یا تمرین‌های برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید

@AlirezaSepand



تاریخ : 9 اسفند 1393


عنوان پروژه : پروژه گرافیکی بارش برف و باران در C++

قالب بندی: CPP, PDF

قیمت : رایگان

شرح مختصر : در این پروژه از کتابخانه ی FreeGlut و ویژوال استدیو C++ 2010 استفاده شده است. این پروژه شامل سه بخش بارش برف و باران و تگرگ می باشد که دکمه های کنترلی سرعت و اندازه در آنها لحاظ شده است.

دکمه های کنترلی :

R : باران

S : برف

H : تگرگ

+ و – برای اندازه تگرگ ها می باشد

> و < برای تنظیم سرعت استفاده شده است.

کلمات کلیدی : پروژه گرافیکی با سی پلاس پلاس، پروژه باران با سی پلاس پلاس، پروژه برف با سی پلاس پلاس، پروژه تگرگ با سی پلاس پلاس، کتابخانه ی FreeGlut، پروژه برنامه نویسی گرافیکی، پروژه open gl ، دانلود پروژه برنامه نویسی، دانلود پروژه ویژوال استدیو، دانلود پروژه CPP

تاریخ : 28 شهریور 1393


عنوان پروژه: پروژه ماشین سکه خرد کن با ++C‎ با تحلیل خط به خط

قالب بندی: CPP, PDF

قیمت : رایگان

شرح مختصر : در این پروژه که با زبان سی پلاس پلاس نوشته شده است، الگوریتم ماشین سکه خرد کن پیاده سازی شده و فایل تحلیل کل در کنار آن قرار داده شده.

فهرست:

۱-             برای اجرای دستورات cout و cin دستورات ورودی خروجی سیستم این فایل را باید ضمیمه برنامه کرد.

۲-             برای اجرای تابع های پاک کردن صفحه نمایش clrscr() و تابع getch() نیاز است این را به برنامه ضمیمه کنیم.

۳-             تابع مرتب سازی که ورودی آن p[] ارزش اسکناس ها،n تعداد نوع سکه ها، r[] تعداد اسکناس ها.

۵-             متغیر های i و j برای for ، متغیر m‌برای کمک در جابه جایی ارزش اسناس ها،

۶-             این for از ابتدا تا انتهای آرایه را پیمایش می کند

۸-             مقدار ارزش اسکناس p[j] را در متغیر m می ریزد.

۹-             این for که در for قبلی قرار دارد از یکی بعد از اندیس for قبلی شروع می کند و تا آخر آرایه را پیمایش می کند.

۱۱-           اگر m که مقدار ارزش اسکناس را در خود دارد با مقدار اسکناس بعدی مقایسه می کند اگر m کوچکتر باشد.

۱۳-           مقدار ارزش فعلی p[i] را در m می ریزد.

۱۴-           شماره اندیس را د رمتغیر s می ریزد.

۱۵و ۱۶- جابه جایی ارزش بزرگتر به جای ارزش کوچکتر

۱۷تا ۱۹- جابه جایی تعداد اسکناس هایی که ارزش آنها جابه جا شده اند.

۲۳-           این for از ابتدا تا انتهای آرایه را پیمایش می کند

۲۴-           چاپ ارزش ها و تعداد ارزش ها جلوی آنها

۲۶-           تابع خرد کردن سکه ها با ورودی های p[]ارزش اسکناس ها،r[] برای تعداد ارزش ها،s[]‌نتیجه در آن قرار دارد،n تعداد نوع اسکناس ها، m ارزشی که می خواهیم خرد شود.

۲۸-           متغیر i وl برای forها و k برای اینکه تعداد اسکناس در آن ذخیره شود.

۲۹-           این for از ابتدا تا انتهای آرایه را پیمایش می کند

۳۱ تا ۳۴- اگر مبلغ ورودی از اسکناس های موجود کمتر باشد قابل خرد شدن نیست و چاپ پیغام مبلغ کوچک است.

تاریخ : 30 خرداد 1389


مساله هشت وزیر از جمله مسائل پرمخاطب مباحث طراحی الگوریتم است. ۸  مهره وزیر رو روی صفحه شطرنج چنان بچینید که نتونن همدیگه رو تهدید کنن.

برای افرادی که با بازی شطرنج آشنایی ندارن:

وزیر مهره ای از مهره های بازی شطرنجه که می تونه در تمامی 8 جهت هر تعداد خانه – تا زمانی که مهره ای مانع نباشه – حرکت کنه و اگه در یکی از این خانه ها مهره حریف قرار داشته باشه تهدیدش کنه.

مساله هشت وزیر :  ما مساله رو در حالت کلی در نظر می گیریم. یعنی زمانی که ابعاد صفحه شطرنج n در n و تعداد مهره ها n هستش. ( n > 3 ) روشهای مختلفی برای پیدا کردن جواب وجود داره. یکی از این روشها چیدن تصادفی مهره ها روی صفحه شطرنجه! به عبارت دیگه n مهره رو به صورت تصادفی در خانه های مختلف صفحه قرار می دیم و بررسی می کنیم که آیا شرط مساله رو برآورده می کنن یا نه؟ این روش بسیار سریع ما رو به جواب می رسونه. اما ایرادی که داره نمی شه مطمئن بود بشه به همه حالتهای چینش دست پیدا کرد. در صفحه 8 در 8 شطرنج این مساله 92 جواب مختلف داره. شما ممکنه روش تصادفی رو هزار بار به کار ببرید، اما نتونید همه 92 حالت ممکنه رو به دست بیارید. این روش زمانی مفیده که پیدا کردن یه جواب برای ما کافی باشه.

در این دسته روشها مهره ها رو یکی یکی و به صورت بازگشتی روی صفحه طوری می چینیم که مطمئن باشیم با مهره های قبلی تداخل نداره و شرط مساله برآورده می شه. معمولا از سطر اول صفحه شروع می کنیم به قرار دادن مهره ها. پر واضحه که هر سطر فقط می تونه یه مهره رو تو خودش جا بده. مهره سطر دوم رو طوری قرار می دیم که توسط مهره سطر اول تهدید نشه. برای این کار خانه های مختلفی از سطر رو می شه انتخاب کرد. برای نظم داشتن کارهامون فرض می کنیم همیشه انتخاب خانه ها از سمت چپ سطر شروع می شه. به عبارت دیگه با شروع از سمت چپ سطر اولین خانه ای که شرط رو برآورده کنه انتخاب می کنیم. به همین ترتیب سطرهای بعدی رو هم می چینیم. اگر به سطری رسیدیم که بر اساس چیدمان سطرهای قبلی هیچ خانه امنی برای مهره وجود نداشت ( یعنی همه خانه ها توسط مهره های قبلی تهدید می شدن ) یه مرحله به عقب بر می گردیم و مهره سطر قبل رو جابجا می کنیم. این کار هم با حرکت مهره به اولین خانه سمت چپ موقعیت فعلی که شرط رو برآورده کنه، انجام می شه. با ادامه دادن این روال و با جابجا کردن مهره ها به صورت منظم و بازگشتی تمامی حالتهای ممکنه به دست می یان.

برای پیاده سازی چنین الگوریتمی و تشخیص اینکه چه خانه هایی از سطر امن هستن روشهای مختلفی وجود داره. ساده ترینشون اینه که هر بار تمامی خانه هایی رو که امکان تهدید شدن از اونها وجود داره بررسی کنیم تا از قرار نداشتن مهره وزیر در اونها مطمئن باشیم. اما این روش اصلا کارا و بهینه نیست.

روش دیگه تعریف کردن صفحه شطرنج به صورت یه آرایه n در n هستش که خونه های امن و غیر امن با علامتگذاری مشخص می شن. هر بار که مهره ای رو صفحه قرار می گیره تمام خونه هایی که توسط این مهره تهدید می شن به صورت غیر امن علامتگذاری می شن. به این ترتیب می شه فهمید که هر خونه با توجه به چینش مهره های قبلی امن هست یا نه؟ اما این روش هم معایبی داره که باعث می شه به روش سوم رجوع کنیم. برای آشنایی با این معایب کافیه سعی کنید کد برنامه رو بنویسید!

در روش سوم که من ازش استفاده کردم، برای علامتگذاری خانه های امن و غیر امن از شیوه دیگه ای بهره می بریم. به این ترتیب که اقطار راست به چپ، چپ به راست و ستونها با شماره هایی مشخص می شن که کار علامتگذاری رو بسیار ساده می کنن. این روش بدون شک از کاراترین روشهای رسیدن به جواب مساله ماست. هم سرعت اجرای بالایی داره و هم حافظه مصرفی بسیار کم!

کدی که به زبان ++C درباره این مساله نوشته شده با استفاده از روش سوم تعداد جوابهای ممکن – و نه خود جوابها – برای مقادیر مختلف n رو مشخص می کنه. به عنوان مثال اگر n رو 8 وارد کنید خروجی برنامه 92 خواهد بود. توصیه می کنم برای nهای بزرگ برنامه رو امتحان نکنید! اگر n رو 16 وارد کنید بعد از گذشتن زمان زیادی عدد 14772512 روی صفحه نمایش چاپ می شه. یعنی در صفحه شطرنج 16 در 16 حدود ۱۵ میلیون حالت مختلف برای چیدمان صحیح وجود داره!!

در ادامه میتونید الگوریتم، تحلیل و سورس کد این مسئله را ( با زبان های مختلف ) از سایت پروژه دانلود کنید


منبع: www.prozhe.com