پروژه بازی مار و پله سی شارپ
مقدمه
C# یکی از زبانهای جدید برنامهسازی شیگرا است که با ارائة رهیافت Component-Based به طراحی و توسعه نرمافزار میپردازد. آنچه ما در حال حاضر از زبانهای برنامهسازی Component-Based در اختیار داریم و آنچه که C# در اختیار ما قرار میدهد، افق جدیدی به سوی تولید و طراحی نرمافزارهای پیشرفته را در روی ما قرار میدهند.
نرمافزار، به عنوان یک سرویس، هدف اصلی نسل بعدی در سیستمهای محاسباتی است. برای مثال، C# زبانی مناسب برای تولید و طراحی صفحات وب، ایجاد اجزایی با قابلیت استفاده مجدد و ایجاد محیطهایی چند رسانهای را به عنوان زبانی که هدفش توسعه ایجاد نرمافزارهای پیشرفته است، در اختیار ما قرار میدهد.
زبان برنامهسازی C#، به همراه تکنولوژی جدید شرکت نرمافزاری مایکروسافت یعنیNET. ارائه گردید، از این رو از تکنولوژیNET. این شرکت بهره میبرد. پس در ابتدا به بیان مطالبی درباره محیطNET. میپردازیم.
فصل اول:تکنولوژیNET.
چراNET.؟
در گذشته زبانهای برنامهسازی، سیستمهای عامل و محیطهای اجرایی نرمافزارها برای دورهای خاص ساخته میشدند. هنگامیکه برنامهها از محیطهای رومیزی(Desktop) به اینترنت منتقل میشدند، ابزارهای موجود نیازمند API هایی اضافی و قابلیتهای دیگری بودند. بیشتر این قابلیتها در کنار زبانهای برنامهسازی بعنوان ابزارهایی جهت رفع این نیازمندیها ارائه میشدند. هرچند این ابزارهای اضافی بصورت قابل توجهی نیازمندیها را حل کرده و باعث رسیدن اینترنت به وضعیت کنونی شدند، اما همچنان مسائل بسیاری وجود داشت که نیاز به حل شدن داشتند.
NET. به منظور پشتیبانی از کاربردهای عصر جدید اینترنت ساخته شد. مواردی همچون گسترش، امنیت و versioning، که از مسایل مهممی بودند، توسط NET. پوشش داده شدند. قسمت مرکزیNET. بخش CLR (Common Language Runtime) است که یک موتور اجرایی مجازی است که از توسعه، امنیت و ارتقای نسخه کد پشتیبانی مینماید. در گذشته چنین امکاناتی برای کدهای کامپایل شده فراهم نبود. بدلیل اینکهNET. توانست بر این مشکلات اساسی فائق آید، راه حل قدرتمندتری جهت ساخت برنامههای تحت اینترنت به شمار میرود.
NET. چیست؟
NET. محیطی جهت ساخت برنامههای توزیع شده است که شامل ابزارهایی نظیر ""کتابخانه کلاسهای پایه"(BCL: Base Class Library)، CLR و زبانهای برنامهنویسی است. این ابزارها امکان ساخت انواع مختلفی از نرمافزارها، از قبیل فرمهای ویندوز، ADONET.، ASPNET. و سرویسهای وب، را فراهم میآورند.
فرمهای ویندوز، مجموعهای از کتابخانهها جهت ساخت رابطهای کاربر گرافیکی برای برنامههای کاربردی است. این کتابخانهها اغلب API های Win32 را در خود دارا میباشند. همچنین امکان استفاده از رهیافت شیگرایی را جهت تولید آسان برنامههای تحت ویندوز، فراهم میآورند.
ADONET. مجموعهای از کلاسهای شیگرایی است که جهت ساخت مولفههای داده و سطوح دسترسی داده در برنامههای n-tiered مورد استفاده قرار میگیرد.
ASPNET. شامل مدل برنامهنویسی فرمهای وب است که بوسیلة آن برنامههای تحت وب ساخته شده و تحت اینترنت قابلیت اجرا پیدا کرده و از طریق مرورگر(Browser) قابل دسترسی میباشند. این روش مدل بهبود یافته برنامهسازی وب است که در آن کدها در سرور کامپایل میشوند ولی همانند صفحات HTML در کامپیوتر مشتری اجرا میشوند.
سرویسهای وب، رهیافتی جدید، مستقل از platform و استاندارد، جهت ایجاد ارتباط و فعالیت بین سیستمهای ناهمگون در اینترنت، میباشند. سرویسهای وبNET.، از زیر ساخت شیگرایی برنامهنویسی ASPNET. استفاده میکنند، اما همچنان از استانداردهای باز و مدلی بر پایة پیغام(Message Based Model) استفاده مینمایند. استفاده از استانداردهای باز از قبیل XML، WSDL و UDDI باعث میشوند تا سرویسهای وب با سایر سرویسهای وب استاندارد که پیادهسازیهایی متفاوت دارند، بدون توجه به محیط و platform آنها، ارتباط برقرار نمایند.
این چند نمونه، اندکی از انواع مختلف نرمافزارهایی بودند که میتوان تحتNET. به پیادهسازی آنها پرداخت.
کتابخانههای کلاسهای پایه(Base Class Library: BCL)
BCL درNET.، شامل هزاران نوع قابل استفاده، جهت افزایش بهرهوری در ساخت برنامههایNET. است. به علت گستردگی BCL یادگیری تمام کلاسهای آن وقتگیر بوده و امکان پذیر نمیباشد، به همین دلیل برای صرفهجویی در زمان بهتر است قبل از ایجاد یک نوع خاص به جستجوی نوعهای موجود در BCL بپردازیم. نگاهی کلی به BCL میتواند بسیار سودمند باشد. جدول زیر Namespace های مهم و توضیح نوعهای مختلف BCL را نمایش میدهد.
شامل 95 صفحه Word
اهداف:
در این بخش شما خواهید آموخت :
کلاس ها ، اشیاء ، توابع عضو ، عضوهای داده ای چه هستند .
چگونه یک کلاس تعریف کنیم و از آن برای به وجود آوردن یک شیء استفاده کنیم .
چگونه توابع عضو را در یک کلاس تعریف کنیم تا بتوانیم رفتار آن کلاس را پیاده سازی کنیم .
چگونه عضوهای داده ای را در یک کلاس تعریف کنیم تا بتوانیم ویژگی های آن کلاس را پیاده سازی کنیم .
چگونه یک تابع عضو از یک شی ء را برای انجام وظیفه اش فراخوانی کنیم .
تفاوت های بین عضو های داده یک کلاس و متغیرهای عمومی یک تابع .
چگونه از یک سازنده (constructor) برای اطمینان از اینکه اطلاعات مربوط به یک شیء در هنگام به وجود آوردن آن شیء مقدار دهی اولیه شده است ، استفاده کنیم .
چگونه کلاسی طراحی کنیم که ظاهر آن مجزا از پیاده سازی اش باشد و امکان استفاده مجدد از آن تقویت شده باشد .
دورنما:
3.1 مقدمه
3.2 کلاس ها ، اشیاء ، توابع عضو ، عضوهای داده ای .
3.3 مروری بر مثال های بخش .
3.4 تعریف یک کلاس با استفاده از تابع عضو .
3.5 تعریف یک تابع عضو با استفاده از پارامتر .
3.6 عضوهای داده، توابع set و get.
3.7 مقداردهی اولیه به اشیاءبا استفاده از سازنده ( constructor) .
3.8 قرار دادن یک کلاس در یک فایل جدا برای استفاده مجدد .
3.9 جداکردن ظاهر از پیاده سازی .
3.10 معتبر سازی اطلاعات با استفاده از توابع set
3.11 (اختیاری) مطالعهء موردی در مهندسی نرم افزار : شناساندن کلاس ها در ATM (سند نیازمندی ها)
3.12 پایان
1. 2 مقدمه:
برنامه هایی از فصل 2 :
همه عبارت ها در تابع main قرار می گرفت .
برای نمونه :
همه برنامه ها تشکیل شده بودند از :
تابع main و
یک یا تعداد بیشتری کلاس
که هر کدام تشکیل شده اند از توابع عضو ، عضوهای داده ای
3.2 کلاس ها ، اشیاء ، توابع عضو ، عضوهای داده ای:
نگاهی به کلاس ها : مثال ماشین
توابع مکانیزم کارهایی مانند شتاب گرفتن را توصیف می کنند
کارهای پیچیده را از دید استفــاده کننده پنهــان می کنند ، فـقـط به عنوان راننده شما می توانید از پدال برای شتاب گرفتن استفاده کنید بدون نیاز به اینکه بخواهید بدانید چگونه شتاب گرفتن انجام می شود .
کلاس ها قبل از اینکه مورد استفاده قرار گیرند باید تعریف شده باشند ، ماشین باید ساخته شده باشد قبل از اینکه مورد استفاده قرار گیرد .
اشیاء زیادی از نوع ماشین از همان کلاس ساخته می شوند ، ماشین های زیادی از همان طراحی مهندسی ساخته می شوند .
نگاهی به کلاس ها : مثال ماشین ( ادامه)
فراخوانی توابع عضو ، پیغامی را به شیء برای انجام وظیفه اش ارسال می کند ، درست مانند وقتی که فشار پدال گاز پیغامی را به ماشین برای شتاب گیری ارسال می کند
اشیاء و ماشین ها هر دو ویژگی هایی دارند ، مانند رنگ و کیلومتر شمار .
شامل 93 اسلاید powerpoint
لینک پرداخت و دانلود *پایین مطلب*
فرمت فایل:Word (قابل ویرایش و آماده پرینت)
تعداد صفحه166
بخشی از فهرست مطالب
#C چیست ؟
روش یادگیری #C
برنامه ی اول :
تعریف متغیرها در سی شارپ:
نکاتی در مورد کد فوق:
آشنایی با فضاهای نام (NameSpaces) :
توضیحی در مورد استفاده از خواص System.DateTime.Today.ToString ();
ساختارهای تصمیم گیری :
استفاده از switch :
پیشگفتار
بدون شک فراگیری و تسلط بر زبان #C بمنزله کسب یک پتانسیل با ارزش بوده که ثمرات آن برای برنامه نویسان در حال و آینده ای نه چندان دور بیشتر هویدا خواهد شد. استاندارد بودن و وجود کتابخانه ای مملو از کلاس این اطمینان را بوجود خواهد آورد که با فراگیری زبان فوق و کسب مهارت های لازم ، به یک توانائی فرا محیطی جدید دست پیدا خواهیم کرد که امکان استفاده از آن بر روی محیط های متفاوت وجود خواهد داشت. ویژگی ها و قابلیت های بیشمار این زبان از جمله دلایل قانع کننده دیگری است که فراگیری آن را توجیه پذیر و منطقی می کند.
مقدمه
مایکروسافت در مصاف با جاوا، بدنبال ارائه یک زبان کامل بود که سایه جاوا را در میادین برنامه نویسی کم رنگ تر نماید. شاید بهمین دلیل باشد که #C را ایجاد کرد. شباهت های بین دو زبان بسیار چشمگیر است. مایکروسافت در رابطه با میزان استفاده و گسترش زبان فوق بسیار خوشبین بوده و امیدوار است بسرعت زبان فوق گستردگی و مقبولیتی به مراتب بیشتر از جاوا را نزد پیاده کنندگان نرم افزار پیدا کند.
با توجه به نقش محوری این زبان، از آن بعنوان مادر زبانهای برنامه نویسی در دات نت نام برده می شود. مورد فوق به تنهائی، می تواند دلیل قانع کننده ای برای یادگیری این زبان باشد، ولی دلایل متعدد دیگری نیز وجود دارد که در ادامه به برخی از آنها اشاره می گردد.
مطرح شدن بعنوان یک استاندارد صنعتی
انجمن تولیدکنندگان کامپیوتر اروپا (ECMA) زبان #C را در سوم اکتبر سال 2001 بعنوان یک استاندارد پذیرفته (ECMA-334) و بدنبال آن تلاش های وسیعی برای کسب گواهی ISO نیز انجام شده است. زبان فوق در ابتدا توسط شرکت مایکروسافت و بعنوان بخشی از دات نت پیاده سازی و بلافاصله پس از آن توسط شرکت های اینتل، هیولیت پاکارد و مایکروسافت مشترکاً، جهت استاندارسازی پیشنهاد گردید.
زبان #C بگونه ای طراحی شده است که نه تنها وابستگی به یک Platform خاص را ندارد، بلکه در اغلب موارد وابستگی RunTime نیز ندارد. کامپایلر #C می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد.
در برخی از نسخه های اولیه کامپایلر زبان فوق که توسط برخی از شرکت های جانبی ارائه شده است، کدهای #C را به بایت کدهای جاوا کمپایل می کنند. یکی از چنین کامپایلرهائی را می توان در سایت Halcyonsoft.com مشاهده نمود. بنابراین کدهای #C براحتی قابلیت حمل بر روی محیط های متفاوت را دارا خواهند بود.
مشخصات تعریف شده زبان #C با سایر استاندارهای تعریف شده ECMA نظیر(Common Language Infrastructure) (ECMA-335) CLI بخوبی مطابقت می نمایند.