دوره مجازی #C (جلسه 12): لیست های Generic، فایل ها و Serialization

دسته بندی: برنامه نویسی
زمان مطالعه: ۲ دقیقه
۲۵ مرداد ۱۳۹۴

در این با لیست های Generic، فایل ها و Serialization آشنا می شویم و با انجام تمرین های مختلف و انجام مثال های گوناگون کاربرد این مطالب را نیز بررسی می کنیم. علاوه بر آن به منظور تکمیل مطالب با فایل های xml هم به صورت ابتدایی و کاربردی آشنا می شویم و برای اولین بار، داده هایی را در این نوع فایل ها ذخیره خواهیم کرد.

مطالب آموزش داده شده در این جلسه به قرار زیر می باشند:

  • آشنایی با List و نحوه ی مقداردهی و پیمایش آن
  • آشنایی مقدماتی و پایه ای با توابع موجود برای لیست های Generic
  • آشنایی با صف (Queue) و نحوه ی قرار دادن و خواندن داده در آن
  • معرفی پشته (Stack) و نحوه ی قرار دادن و خواندن داده در آن
  • آشنایی با فایل ها و نحوه ی ذخیره و بازیابی داده در آن ها
  • آشنایی با متد های مهم کلاس File
  • معرفی و کار با کلاس های StreamWriter و StreamReader
  • آشنایی با مفهوم Serialization
  • معرفی Xml Serialization به عنوان یک راه برای ذخیره ی داده ها

در جلسه ی آینده بیشتر با فایل ها آشنا خواهیم شد و عملیات مختلفی را بر روی فایل ها و دایرکتوری ها انجام می دهیم.

:: توجه

این مطلب یک جلسه از دوره آموزش #C می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره آموزش #C

نویسنده

جلسات دوره

نظرات کاربران

پژمان

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

پژمان

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

آرین زارعی

در پاسخ به این سوالات بهتر هست که کتاب های مهندسی نرم افزار رو به دقت مطالعه فرمایید.

پژمان

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

آرین زارعی

دقت خیلی مساله ی خوبی است ولی مثال های ساده ی ما نیازمند این دقت نیست. پیشنهاد میکنم انرژیتون رو برای کارای سنگین تر و پروژه های بزرگتر صرف کنید. در باره ی کتاب هم شما میتونید برای الگوریتم ها اگر علاقه مندید کتاب مقدمه ای بر الگوریتم های CLRS رو مطالعه بفرمایید. دیگه از این کتاب سنگین تر و جامع تر در این زمینه وجود نداره. البته که مباحثش فقط به درد کارای خاص میخوره و در بازار کاربردی نداره. شما در حد نیاز بازار در این دوره الگوریتم یاد گرفتید. درباره ی تحلیل و مهندسی نیاز ها و … در پایان دوره با جستجو در وب منابع مناسبی رو پیدا میکنید.

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
گزارش مشکل