این نمونه سوال شامل سوال های عمومی و اختصاصی میباشد
برای دریافت جزوه های بیشتر به آدرس زیر ایمیل بزنید :
solitude_royal@yahoo.com
نمونه سوالات کاردانی به کارشناسی رشته تعمیر و نگهداری هواپیما سال 88
این نمونه سوال شامل سوال های عمومی و اختصاصی میباشد
برای دریافت جزوه های بیشتر به آدرس زیر ایمیل بزنید :
solitude_royal@yahoo.com
فرمت فایل wordبوده و قابلیت ویرایش دارد
تعداد صفحه:85
فهرست مطالب
مقدمه...................................................................................................... 1
مقدمه.............................................................................................................................2
توضیح خلاصه در مورد پروژه...................................................................................4
فصل اول:مقدمه ای بر اینتر نت و برنامه نویسی وب.................................5
اینترنت..........................................................................................................................8
وب چیست؟ .................................................................................................................9
ASP تاریخچه..........................................................................................................10
فصل دوم: تاریخچه C# ....................................................................................28
ساختار در C#......................................................................................................32
آر ایه درC#................................................................................................................35
رشته درC# .............................................................................................................38
پایگاه داده درC# .................................................................................................39
فصل سوم: تاریخچهSQL................................................................................48
دستورات SQL ....................................................................................................50
شرح پروژه ................................................................................................................75
نتیجه گیری............................................................................................................. 84
وب سایت آژانس هوایی یک وب سایت پویاست . که با استفاده ازASP.Net 2.0 به زبان C# و توسط Visual Studio 2005 پیاده سازی شده است.پایگاه داده این سایت 2005 Microsoft Sql Server می باشد.
این نرم افزار دارای قابلیت هایی مانند دریافت اطلاعات مسافران و دریافت اطلاعات پروازهایی که انجام می شود و ذخیره این اطلاعات در بانک را داراست.
از دیگر امکانات این نرم افزار امکان حذف مشخصات یک مسافر و پرواز است و امکان ویرایش این اطلاعات است.
یکی از عمده ترین اهداف طراحی وتولیدکامپیوترها انجام عملیات ذخیره سازی،بازیابی داده ها واطلاعات و انجام انواع محاسبات به وسیله آنها می باشد.برای تحقق بخشیدن به این اهداف وجود دو جزء اصلی یعنی سخت افزار و نرم افزار الزامی است.
با پیدایش اولین کا مپیوترها نیاز به وجود برنامه هایی که بتوان بابکارگیری آنها کامپیوتر را مورد استفاده قرار داد،احساس شد واز آنجا که پردازش در کامپیوترها بر اساس مبنای باینری یا همان(0و1)است. اولین نرم افزارهایی که توسط متخصصین طراحی گردید به زبان ماشین(0و1)نوشته شد.این روش تولید نرم افزار کار دشوارو وقت گیری بود که محدودیت های زیادی را در برداشت.بنابراین متخصصان علوم کامپیوتر تصمیم گرفتند تا نرم افزاری را تولید کنند که بتوانندبا استفاده از آنها هر نوع برنامه ای را با سرعت ودقت به زبان ماشین تبدیل کنند.این امر منجر به تولیدشاخه ویژه ای از نرم افزار ها به نام زبان های برنامه نویسی شد.به این ترتیب به موازات رشد وتکامل صنعت سخت افزار ،زبان های برنامه نویسی کامپیوتر نیز خط سیر تکاملی خود را از زبان ماشین واسمبلی به زبان های برنامه نویسی سطح بالا،ساخت یافته،شی گرا و ویژوال طی کرده وهر روزه زبان های برنامه نویسی کاربردی تری را در اختیار برنامه نویسان قرار دادند.در حال حاضر محدوده زبان های برنامه نویسی کاربردی تری را در اختیار برنامه نویسان قرار دادند .در حال حاضر محدوده زبان های برنامه نویسی گسترده شده و با حضور سیستم عامل ویندوز و رایج شدن شبکه های کامپیوتری به خصوص اینترنت،این مسئله شدت بیشتری پیدا کرد.
همگام با پیشرفت فناوری های دیگر زبان های برنامه نویسی نیز ارتقاء پیدا کرد.وقتی زبان c طراحی و پیاده سازی شد،تحول بزرگی در دنیای برنامه نویسی بوجود آورد
فرمت فایل: word
تعداد صفحه:98
دانشکده مهندسی برق
پایان نامه کاردانی کاردانی فنی برق – مخابرات
عنوان:
تایمر تخصصی بلندمدت مجهز به میکروکنترلر
فصل اول: میکرو کنترلر AT89C2051
1_1_ تاریخچه ۱
۲_۱_ خلاصه سخت افزار این قطعه ۱
۳_۱_ حافظه داده جزئیات ۳
۴_۱_ رجیستر های داخلی میکروکنترلر (حافظه داخلی) ۴
۵_۱_ گروه II( Bite Addressable) ۴
۶-۱) ثبات های کنترلی ۵
۷-۱) فرضیات میکرو کنترلر به هنگام رجوع به حافظه برنامه ۸
۸-۱) ساختار درگاه I/O ۹
۹-۱) روش های آدرس دهی ۹
۱۰-۱) دستورالعمل های ۵۹X8 ۱۲
۱۱-۱) تقسیم بندی دستورات میکرو کنترلر ۱۲
۱۲-۱)عملکرد زمان سنج ۱۸
۱۳-۱) ثبات حالت زمان سنج (TMOD) ۱۸
۱۴-۱) ثبات کنترل زمان سنج (TCON) ۱۹
۱۵-۱) برنامه ریزی اینتراپت ها ۲۱
۱۶-۱) ثبات های مربوط به اینتراپت ۲۱
۱۷-۱) اولویت وقفه ۲۲
۱۸-۱) بردارهای وقفه ۲۳
۱۹-۱) عملکرد پورت سریال ۲۴
۲۰-۱) حالتهای عملکرد پورت سریال ۲۴
فصل دوم : تجزیه و تحلیل مدار تایمر
۱_۲_ مشخصه ها و خصوصیات مدار ۲۶
۲_۲_ لیست قطعات به کار رفته در مدار ۲۶
۳_۲_ برد ۲۸
۴_۲_ مقاومت ۲۹
۵_۲_ خازن ۳۴
۶_۲_ دیود یکسوساز ۴۴
۷_۲_ دیود نورانی (LED) ۴۶
۸_۲_ آی سی۷۸۰۵ ۴۹
۹_۲_ ترانزیستور ۵۰
۱۰_۲_ رله ۵۰
۱۱_۲_ کلیدهای میکروسوئیچ ۵۱
۱۲_۲_ دیپ سوئیچ ۵۱
۱۳_۲_ کریستال ۵۱
۱۴_۲_ برنامه ریزی میکرو ۵۲
۱۵_۲_ طرز کار مدار ۵۲
۱۶_۲_ نتیجه ۵۵
فصل سوم : پیوست ها
سورس برنامه به زبان اسمبلی ۵۶
منابع ۹۰
فصل اول : AT89C2051 از شرکت Atmel:
این تراشه ۸۰۵۱ رایج دارای ROM سریع می باشد و طراحی های سریع این نوع حافظه ایده آل است زیرا حافظه سریع می تواند طی چند ثانیه در مقایسه ۲۰ دقیقه لازم برای ۸۷۵۱ پاک شود به این دلیل AT89C2051 بجای ۸۷۵۱ بکار برده شده است تا هنگام پاک کردن تراشه وقتی تلف نشود و به این وسیله ساخت سیستم سریع گردد.
هنگام استفاده از AT89C2051 برای ساخت سیستم های مبتنی بر میکروکنترلر به سوزاننده یا برنامه ریز ROM سریع نیاز داریم با این وجود به پاک کننده ROM نیازی نیست. توجه داشته باشید که در حافظه سریع باید تمام حافظه پاک شود تا بتوان مجدداً آن را برنامه ریزی کرد پاک کردن حافظه سریع یا خود سوزاننده صورت می گیرد به این دلیل پاک کننده جداگانه ای لازم نمی باشد برای حذف سوزاننده PROM ، Atmel روی نوعی از AT89C2051 کار می کند که می تواند از طریق پورت سریال COM یک IBM PC برنامه ریزی شود.
فصل دوم : تجزیه و تحلیل مدار
در این فصل به بررسی جزئیات مدار تایمر اعم از IC و مقاومت و خازن و دیودهای به کار رفته در مدار پرداخته می شود. این مدار توسط میکرو کار می کند و میکروکنترلر آن توسط کریستال ۱۲ مگاهرتز کلاک خورده و توسط IC رگولاتور تغذیه می شود و خروجی آن توسط ترانزیستور تقویت شده و تقویت شدة آن باعث به کار افتادن رله می شود و رله وسیلة برقی را کنترل می کند.
فصل سوم : پیوست ها
در این فصل سورس برنامه میکرو که به زبان اسمبلی است ارائه شده و کلیه اطلاعات منبع در مورد AT89C2051 شامل DATA SHEET و توضیحات برنامه نویسی آن ارائه شده است.
گرایش سخت افزار رشته کامپیوتر گرایشی است که با الکترونیک عجین می باشد.
بطور کلی گرایش الکترونیک به دو بخش عمده تقسیم می شود :
۱- دیجیتال
۲- آنالوگ
این پروژه که طراحی و ساخت یک تایمر تخصصی است گرایش در الکترونیک دیجیتال دارد و بطور کلی کاربرد الکترونیک دیجیتال و بخش طراحی و استفاده از مدارات مجتمع استوار شده است و طراحی بر اساس مدارات منطقه ای و سیستم باینری می باشد.
ما در اینجا نیاز به داشتن اطلاعات سخت افزاری در زمینه مدارات مجتمع IC ها و همچنین برنامه ریزی و استفاده از آنها داریم.
در این پروژه با استفاده از قطعات سخت افزار یک تایمر طراحی کرده ایم که برنامة میکروکنترلر آن به زبان اسمبلی بوده و در نهایت خروجی اعمالی به رله باعث قطع و وصل شدن وسائل برتر می شود.
با وجود گذشت۳۰ سال از تولد ریز پردازنده تصور وسایل الکترونیکی بدون آنها کار مشکلی است در سال ۱۹۷۱ شرکت اینتل ۸۰۸۰ را به عنوان اولین ریزپردازنده موفق عرضه کرد. مدت کوتاهی بعد از آن موتورولا، RCA و سپس Zilog انواع مشابهی راهمچون ۶۸۰۰، ۶۵۰۲ ۸۰Z، را عرضه کردند ، گرچه این مدارها به خودی خود فایده چندانی نداشتند اما بعنوان بخشی از یک کامپیوتر تک بورد برای آموزش طراحی با ریز پردازنده تبدیل شدند.
میکروکنترلر قطعه ای شبیه ریز پردازنده است در سال ۱۹۷۶ اینتل ۸۷۴۸ را به عنوان اولین قطعه خانواده میکروکنترلر های ۴۸_ MCS معرفی کرد. توان، ابعاد و پیچیدگی میکروکنترل ها با اعلام ساخت ۸۰۵۱، یعنی اولین عضو خانواده میکرو کنترلر های _ MCS 51 در ۱۹۸۰ توسط اینتل پیشرفت چشمگیری کرد.
۴k بایت ROM، ۱۲۸ بایت RAM ، ۴ درگاه ورودی خروجی، ۲ تایمر شمارنده ۱۶ بیتی ، رابط سریال ، ۶۴k بایت فضای حافظه خارجی برکد ۶۴x بایت فضای حافظه خارجی برای داده، پردازنده بولی، ۲۱۰ مکان بیتی آدرس پذیر، انجام عملیات ضرب و تقسیم در ۴ میکرو ثانیه .
(۱-۳-۱) تغذیه _پایه های ۲۰=GND و ۴۰=VCC)
میکرو کنترلر با یک تغذیه V5 کار می کند که پایه ۴۰ سر مثبت آن است .
این پایه ها جهت اتصال به کریستال نوسان ساز به کار می روند که با مدارات داخلی پالس ساعت سیستم را تولید می کند.
میکرو کنترلر دارای چهار درگاه ۸ بیتی است که می تواندعلاوه بر منظور خاص، پایه های ورودی خروجی نیز باشند.
در میان پورت ها، پورت سه کمی با دیگر پورت ها متفاوت است زیراعلاوه بر یک درگاه عمومی هر یک از پایه های عملکرد دیگری نیز می توانند داشته باشند که به شرح زیر است :
جدول شماره ۱-۱ پورت ها
شماره پایه
بیت
نام
وظیفه
۱۰
P3.0
RXD
دریافت داده درگاه سریال
۱۱
P3.1
TXD
ارسال داده درگاه سریال
۱۲
P3.2
INT0
وقفه خارجی صفر
۱۳
P3.3
INT1
وقفه خارجی یک
۱۴
P3.4
T0
ورودی تایمر یا کانتر صفر
۱۵
P3.5
T1
ورودی تایمر یا کانتر یک
۱۶
P3.6
WR
سیگنال فعال ساز نوشتن
۱۷
P3.7
RD
سیگنال فعال ساز خواندن
لازم به ذکر است که پورت های صفر و دو نیز به عنوان باس آدرس دهی به حافظه خارجی کاربرد دارد و پورت های دو منظوره می باشند.
وقتی برنامه از حافظه خارجی اجرا می شود میکرو کنترلر در زمان هایی که لازم است عمل واکنشی انجام دهد این سیگنالها خروجی را فعال (low) می کند که میتواند این سیگنال برای فعال کردن OE حافظه برنامه به کار رود.
همانطور که گفته شد درگاه p0 می تواند هم باس داده باشد و هم باس آدرس . وقتی ALE فعال (High) باشد یعنی دیتای روی دیتا باس یک آدرس است و در صورت فعال بودن آن یک داده می باشد
اگر بخواهیم از حافظه برنامه داخلی استفاده نماییم این پایه را غیر فعال (High) می کنیم با فعال کردن این پایه (low) ، شروع حافظه برنامه از آدرس صفر برنامه خارجی خواهد بود و حافظه برنامه داخلی بلا استفاده خواهد ماند
بافعال کردن این پایه (high) حداقل به مدت دو سیکل ماشین رجیستر های داخلی میکروکنترلر با مقادیر مناسبی پر شده و میکروکنترلر از آدرس (۰۰۰۰) شروع به اجرای برنامه می کند.
فضای حافظه میکرو کنترلر ها عبارتند از:
۱- ۶۴ کیلو بایت حافظه داده خارجی از آدرس صفر الی FFFF H
2- 128 بایت (یا ۲۵۶ بایت ) حافظه داده داخلی از آدرس صفر الی F H 7 (یا از آدرس FF H برای ۸۰۵۲)
۳_ ۱۲۸ بایت حافظه داخلی تحت نام SFR از آدرس H ۸۰ تا FF
رجیستر های داخلی میکروکنترلر ها به دو دسته تقسیم می شوند:
در واقع همان RAM داخلی است و به علت تعداد زیاد آنها به جای اسم به آنها شماره ای نسبت داده اند از H00 الی FH7
این رجیسترها علاوه بر اینکه رجیستر معمولی هستند هر کدام برای کاربرد خاص هم استفاده می شوند این رجیستر ها ف رجیسترهای مهم CPU بوده و از آدرس H80 الی FF H از RAM داخلی می باشد که فقط به صورت مستقیم قابل دسترسی می باشد
فضای حافظه RAM داخلی( یعنی ۱۲۸ بایت اول) به سه گروه مجزا تفکیک شده است همه گروه ها به صورت بایتی قابل آدرس دهی هستند اما گروه های II و III خواص دیگری نیز دارند که درزیر شرح می دهیم:
32 بایت اول حافظه RAM داخلی( از آدرس H00 الی FH1) شامل بانک های ثبات می باشد که به چهار گروه A بایتی تقسیم می شود و در هر لحظه ۸ بایت از این ۳۲ بایت قابل دسترسی می باشد که به ۰R، ۱R،۲R،۳R،… الی ۷R نشان داده می شود اینکه ۰R الی ۷R در هر لحظه بیان کننده کدام یک از این ۳۲ بایت می باشد به دو بیت از رجیستر PSW به نام های ۰RS و ۱RS که قابل آدرس دهی بیتی می باشند بستگی دارد یعنی مثلا برای (۰=۰RS، ۱=۱RS) 0R بیان گر بایت شماره هشتم از RAM داخلی و مثلا ۳R بیان گر بایت ۱۱ از RAM داخلی می باشد . استفاده از دستورات رجیستر های بانک ثبات به روش آدرس دهی مستقیم که در ادامه توضیح داده می شود ترجیح دارد.
اکومولاتور یا ACC که به اختصار در دستورات A هم نوشته می شد یک رجیستر ۸ بیتی بوده که تقریبا بیشتر عملیات انتقال و منطق و شیفت به علت آدرس شدن بیتی روی آن انجام می شود.
بیت های این ثبات تحت تاثیر بعضی عملیات های میکروپروسسوری (ریاضی یامنطقی) فعال می شوند این ثبات دارای بیت های آدرس پذیر بوده و شامل بیت های زیر می باشد:
بیت پرچم نقلی: هشتمین بیت پرچم این بایت است و یک بیت دومنظوره است اگر در یک عمل جمع یک بیت نقلی از بیت ۷ آکومولاتور خارج شود یا در طی عمل تفریق یک بیت فرضی به بیت هفتم وارد شود بیت پرچم نقلی یک می شود
بیت پرچم نقلی کمکی: هنگام جمع کردن اگر یک انتقال از بیت ۳ به بیت چار آکومولاتور اتفاق بیفتد پرچم نقلی کمکی یک می شود
بیت پرچم صفر: یک بیت پرچم همه منظوره برای استفاده کاربران است
بیت پرچم سرریز (over flew flag) OV: اگر نتیجه جمع یا تفریق در آکولاموتور جا نشود پرچم سرریز یک می شود که بیانگر ناصحیح بودن نتیجه موجود در آکولاموتور است
بیت توازن (parity bit): این بیت به طور خودکار با توجه به محتوای اکولاموتور صفر یا یک می گردد به طوری که تعداد بیت های یک انباره به اضافه این بیت به تعداد زوج منجر شود
۳-۶-۱) ثبات B: این ثبات یک ثبات ۸ بیتی آدرس پذیر می باشد که هم به عنوان یک رجیستر عمومی و هم برای کاربرد خاص در نظر گرفته شده است که کاربرد خاص و اصلی آن انجام عملیات ضرب و تقسیم در آن می باشد.
SP یک رجیستر ۸ بیتی است که آدرس آن خانه H1 8 از RAM داخلی می باشد استفاده از آن زمانی است که نیاز به یک حافظه موقت جهت انجام عملی باشد و نخواهیم محتوای قبلی آن از بین برود و یا هنگامی که بخواهیم به یک برنامه فرعی برویم (مثلا با دستور CALL) اگر لازم باشد بعضی از نتایج برنامه اصلی در جایی ذخیره گردد تا در برنامه فرعی چنانچه مجددا از آنها استفاده کردیم محتوای قبلی آن از بین نرود و با برگشت به برنامه اصلی بتوانیم از آنها استفاده نماییم. شماره آدرس این فضا به وسیله اشاره گر پشته یا SP مشخص می شود (که برای همین باید SP را در ابتدای کار عدد دهی کنیم) و چنانچه این کار انجام نشود میکروکنترلر مقدار H7 0 را برای آن در نظر می گیرد دستورات PUSH و POP مربوط به این قسمت از حافظه می باشد که در مورد آنها در قسمت های بعد توضیح داده می شود
این ثبات دو بایتی بوده و می تواندیک عدد چهار رقمی هگز را در خود ذخیره کند که از آن به عنوان آدرسی برای دستیابی به حافظه کد یا داده خارجی استفاده می شود و آدرس آن H82 و H83 از RAM داخلی درقسمت SFRقرار دارد
فرمت فایل: word
تعداد صفحه:77
پایان نامه جهت اخذ درجه کاردانی در رشته مهندسی کامپیوتر گرایش نرم افزار
عنوان:
تهیه نرم افزار حقوق و دستمزد
مقدمه
فصل اول : آشنایی با نرم افزارهای استفاده شده در سیستم حقوق و دستمزد
۱-۱ مطرح شدن بعنوان یک استاندارد صنعتی ۲
۲-۱ C#چیست ؟ ۲
۱-۲-۱ کد مدیریت یافته ۳
۲-۲-۱ روش یادگیری C# ۳
۳-۲-۱ مفاهیم شیء گرایی در C# ۴
۳-۱ شیء چیست؟ ۴
۱-۳-۱ کلاسه کردن اشیاء مقدمه ای بر ارث بری Inheritance)) ۶
۲-۳-۱ سلسله مراتب اشیاء (بررسی ارث بری در محیط شیءگرا) ۷
۳-۳-۱ انتزاع (Abstraction) ۸
۴-۳-۱ اشیاء درون اشیاء (مقدمه ای بر کپسولهکردن یا Encapsulation) ۹
۵-۳-۱ اشیائی با رفتارهایی متفاوت (مقدمه بر چند ریختی یا Polymorphism) ۱۱
۴-۱ .NET چیست و چگونه شکل گرفت؟ ۱۴
۱-۴-۱ یک پلات فرم مناسب برای آینده ۱۵
۲-۴-۱ ایده های اولیه ۱۶
۳-۴-۱ تولد دات نت ۱۶
۴-۴-۱ مروری بر Frame work دات نت: ۱۷
۵-۱ مفاهیم مبنایی پایگاه داده ها : ۱۸
۱-۵-۱منظور از کنترل و مدیریت : ۱۹
۲-۵-۱ مفهوم داده : ۲۲
۳-۵-۱ مفاهیم ابتدائی ۲۴
۴-۵-۱ شکل کلی دستور : ۲۵
۵-۵-۱ذخیره تصاویر در SQL Server ۲۵
۶-۱ آشنایی با نسخههای SQL Server 2005 ۲۷
۱-۶-۱ کدام سیستم عامل؟ ۲۸
۲-۶-۱ آشنایی با محیط Sqlserver management studio ۳۰
۷-۱ انتقال اطلاعات با Replication در SQLserver ۳۴
۱-۷-۱ معرفی Replication ۳۴
۲-۷-۱ انتقال اطلاعات به روش ادغام (Merge) ۳۵
۳-۷-۱ تصویر برداری از اطلاعات (snapshot) ۳۵
۴-۷-۱ انتقال بر اساس فرآیند (Transactional) ۳۶
۵-۷-۱ تعریف ناشر و مشترکین ۳۶
۶-۷-۱ طرح یک مسئله ۳۷
۷-۷-۱ مراحل ایجاد ناشر ۳۷
۸-۱ مراحل ایجاد مشترکین ۳۸
۱-۸-۱ روش pul (از طریق مشترک) ۳۸
۲-۸-۱ روش push (از طریق ناشر) ۳۸
۳-۸-۱ snapshot lsolation level ۳۹
۴-۸-۱ باز هم دات نت ۳۸
۹-۱ ADO.Net وارد میشود ۴۰
۱۰-۱ تکنولوژی xml ۴۱
۱۱-۱ سرویس اعلان (Notification) ۴۲
۱۲-۱ سرویس گزارش گیری ۴۲
۱۳-۱ مدیریت خطا ۴۳
فصل دوم : تجزیه و تحلیل سیستم
۱-۲ نمودارER-MODELING ۴۵
۲-۲ نمودار دیدهای فرمها و کاربران نسبت به هم ۴۶
۳-۲ تعاریف ۴۷
۴-۲ کارکرد نرم افزار حقوق و دستمزد : ۴۷
۱-۴-۲ جدول پرسنلی (Personally) : ۴۸
۲-۴-۲ جدول پایانی (Final) : ۴۸
۳-۴-۲ تصویر اضافه کار (Ezkar) : ۴۹
۵-۲ گزارش ماهانه : ۴۹
۱-۵-۲ فیش حقوقی : ۵۰
۲-۵-۲ فیلدهای جداول جدول ساعت زنی Time : ۵۰
۳-۵-۲ جدول پرسنلی Personally ۵۰
۴-۵-۲ جدول محاسباتی حقوق ۵۱
۵-۵-۲ تصویر اضافه کار (Ezkar) ۵۱
۶-۵-۲ گزارش ماهانه ۵۱
فصل سوم : طراحی فرمها و چگونگی کارکرد نرم افزار
۱-۳ فرم شروع ۵۳
۱-۱-۳ فرم ساعت زنی ۵۴
۲-۱-۳ فرم ثبت کارمندان ۵۶
۳-۱-۳ فرم نمایش همه کاربران ۵۷
۴-۱-۳ محاسبه حقوق ۵۸
۲-۳ فرمول های محاسبات : ۵۹
فصل چهارم : نحوه پیاده سازی سیستم
مقدمه ۶۱
۱-۴ کلاس add ۶۱
۱-۱-۴ نحوه استفاده از کلاس add در برنامه برای اضافه کردن کارمند جدید به لیست کامندان ۶۲
۲-۴ نحوه گزارش گیری با کریستال ریپورت ۶۶
فهرست منابع ۶۸
در نرم افزار محاسبه حقوق و دستمزد با توجه به مدرک و سابقه افراد حقوق و پایه در نظر گرفته می شود و در ضمن نوع شغل نیز می تواند بر میزان حقوق موثر باشد .
در این نرم افزار ساعت حضور و غیاب از ساعت سیستم خوانده می شود و ساعت مرخصی بر حقوق ماهیانه تاثیر می گذارد میزان تاخیر روزانه نیز بریا هر فرد مشخص می گردد .
میزان اضافه کاری و حقوق با توجه به سقف اضافه کاری ۹۰ ساعت می باشد سیستم محاسبه حقوق و دستمزد دو نوع گزارش گیری دارد که یکی به منزله فیش حقوقی کارمند می باشد و نوع دیگر گزارش گیری دارد که یکی به منزله فیش حقوقی کارمند می باشد و نوع دیگر گزارش که برای مسئولین و حسابرسی شرکت استفاده می شود شامل گزارشی از لیست پرداختی های شرکت به کارمندان می باشد در این نرم افزار سعی شده است تمامی مبالغ اعم از بیمه ، مالیات ، حق اولاد ، پایه حقوق ، حق مسکن و … بر اساس قانون کار محاسبه شده است .
مایکروسافت در مصاف با جاوا، بدنبال ارائه یک زبان کامل بود که سایه جاوا را در میادین برنامه نویسی کم رنگ تر نماید. شاید بهمین دلیل باشد که C#را ایجاد کرد. شباهت های بین دو زبان بسیار چشمگیر است. مایکروسافت در رابطه با میزان استفاده و گسترش زبان فوق بسیار خوشبین بوده و امیدوار است بسرعت زبان فوق گستردگی و مقبولیتی به مراتب بیشتر از جاوا را نزد پیاده کنندگان نرم افزار پیدا کند.
با توجه به نقش محوری این زبان، از آن بعنوان مادر زبانهای برنامه نویسی در دات نت نام برده می شود. مورد فوق به تنهائی، می تواند دلیل قانع کننده ای برای یادگیری این زبان باشد، ولی دلایل متعدد دیگری نیز وجود دارد که در ادامه به برخی از آنها اشاره می گردد.
انجمن تولیدکنندگان کامپیوتر اروپا (ECMA) زبان C#را در سوم اکتبر سال ۲۰۰۱ بعنوان یک استاندارد پذیرفته (ECMA-334) و بدنبال آن تلاش های وسیعی برای کسب گواهی ISO نیز انجام شده است. زبان فوق در ابتدا توسط شرکت مایکروسافت و بعنوان بخشی از دات نت پیاده سازی و بلافاصله پس از آن توسط شرکت های اینتل، هیولیت پاکارد و مایکروسافت مشترکا، جهت استاندارسازی پیشنهاد گردید.
زبان C#بگونه ای طراحی شده است که نه تنها وابستگی به یک Platform خاص را ندارد، بلکه در اغلب موارد وابستگی RunTime نیز ندارد. کامپایلر C#می تواند بر روی هر نوع معماری سخت افزاری طراحی و اجرا گردد. در برخی از نسخه های اولیه کامپایلر زبان فوق که توسط برخی از شرکت های جانبی ارائه شده است، کدهای C#را به بایت کدهای جاوا کمپایل می کنند. یکی از چنین کامپایلرهائی را می توان در سایت Halcyonsoft.com مشاهده نمود. بنابراین کدهای C#براحتی قابلیت حمل بر روی محیط های متفاوت را دارا خواهند بود.
مشخصات تعریف شده زبان C#با سایر استاندارهای تعریف شده ECMA نظیر (ECMA-335) CLI (Common Language Infrastructure) بخوبی مطابقت می نمایند. CLI قلب و روح دات نت و CLR(Common Language Runtime) است. اولین نسخه از کامپایلر زبان C#که از CLI استفاده می کند، NET Framwork. مایکروسافت است.
با توجه به موارد گفته شده، مشخص می گردد که این زبان بسرعت بسمت استاندارد شدن حرکت و با تایید استانداردهای مربوطه از طرف انجمن های معتبر بین المللی و حمایت فراگیر شرکت های معتبر کامپیوتری در دنیا مسیر خود را بسمت جهانی شدن بخوبی طی می نماید.
طراحان زبان C#با تاکید و الگوبرداری مناسب از مزایای زبانهائی نظیر ++C، C و جاوا و نادیده گرفتن برخی از امکانات تامل برانگیز و کم استفاده شده در هر یک از زبانهای فوق، یک زبان برنامه نویسی مدرن شی گراء را طراحی کرده اند. در مواردی، برخی از ویژگی های استفاده نشده و درست درک نشده در هر یک از زبانهای گفته شده، حذف و یا با اعمال کنترل های لازم بر روی آنها، زمینه ایجاد یک زبان آسان و ایمن برای اغلب پیاده کنندگان نرم افزار بوجود آمده است. مثلا C و ++C می توانند مستقیما با استفاده از اشاره گرها عملیات دلخواه خود را در حافظه انجام دهند. وجود توانائی فوق برای نوشتن برنامه های کامپیوتری با کارائی بالا ضرورت اساسی دارد. اما در صورتیکه عملیاتی اینچنین بدرستی کنترل و هدایت نگردند، خود می تواند باعث بروز مسائل (Bugs) بیشماری گردد.
طراحان زبان C#، با درک اهمیت موضوع فوق، این ویژگی را کماکان در آن گنجانده ولی بمنظور ممانعت از استفاده نادرست و ایجاد اطمینان های لازم مسئله حفاظت نیز مورد توجه قرار گرفته است. جهت استفاده از ویژگی فوق، برنامه نویسان می بایست با صراحت و به روشنی خواسته خود را از طریق استفاده از Keyword های مربوطهاعلان نمایند( فراخوانی یک توانائی و استفاده از آن).
C#بعنوان یک زبان شی گراء عالی است. این زبان First-Class را برای مفهوم Property (Data Member) بهمراه سایر خصائص عمومی برنامه نویسی شی گراء حمایت می کند. در C و ++C و جاوا یک متد get/set اغلب برای دستیابی به ویژگی های هر Property استفاده می گردد. CLI همچنان تعریف Property را به متدهای get/ser ترجمه کرده تا بدین طریق بتواند دارای حداکثر ارتباط متقابل با سایر زبانهای برنامه نویسی باشد .C#
بصورت فطریEvents ، Declared Value، Reference Type ، Operator Overloading را نیز حمایت می کند.
با استفاده از نسخه پیاده سازی شده C# توسط مایکروسافت، می توان همواره کد مدیریت یافته ای را تولید کرد. یک برنامه C# پس از کامپایل، بصورت برنامه ای در خواهد آمد که شامل دستورالعمل های تلفیق شده (CIL)Common Intermediate Language است -درست بر خلاف دستورالعمل های مختص یک ماشین خاص-.
CILگاهاً با نام MSIL (Microsoft Intermediate Language) یا به اختصار IL نیز نامیده می شود)، در مفهوم مشابه بایت کدهای جاوا بوده و شامل مجموعه ای از دستورالعمل های سطح پایین قابل فهم توسط تکنولوژی مبتنی بر CLI نظیر CLR مایکروسافت خواهد بود. این برنامه ها بدین دلیل کد مدیریت یافته، نامیده می شوند که CLR مسئولیت تبدیل این دستورالعمل ها به کدهای قابل اجرا برروی ماشین و ارائه اغلب سرویس های اساسی برای کدینگ نظیر : Garbage Collection، مدیریت Heap و عمر مفید یک Object و یا Type Verification را فـراهم می کند.
یادگیری این زبان برای افرادیکه دارای سابقه آشنائی با یکی از زبانهای برنامه نویسی ++C ،C و یا جاوا باشند کار مشکلی نخواهد بود، حتی افرادیکه دارای آشنائی اولیه با جاوا اسکریپت و یا دیگر زبانهای برنامه نویسی نظیر ویژوال بیسک می باشند، امکان پذیر و راحت خواهد بود. برخی از برنامه نویسان حرفه ای بر این باور هستند که C# نسبت به VB.NET با اقبال بیشتر و سریعتری مواجه خواهد شد، چراکه C# نسبت به ویژوال بیسک خلاصه تر است. حتی برنامه های بزرگ و پیچیده ای که توسط C# نوشته می گردند خواناتر، کوتاه و زیبا خواهند بود. برخی از ویژگی های ارائه شده در C# نظیر Unsigned Integer، Operator OverLoading و امنیت بیشتر Type ها، در VB.NET وجود نداشته و این امر می تواند دلیلی بر فراگیرتر شدن C# نسبت به VB.NET نزد برنامه نویسان با تجربه باشد.
برای یادگیری هر یک از زبانهای حمایت شده در دات نت، می بایست از BCL (Basic Class Library) مربوط به.NET Framework شروع کرد. C# خود صرفاً دارای ۷۷ کلمه کلیدی یا Keyword بوده که برای اکثر برنامه نویسان ناآشنا نخواهند بود. در مقابل BCL، دارای ۴۵۰۰ کلاس و تعداد بیشماری متد و Property است که برنامه نویسان C# ، می توانند از آنها برای انجام عملیات دلخواه خود استفاده نمایند. شاید یکی از مسائل قابل توجه جهت یادگیری این زبان برای برخی از برنامه نویسان حرفه ای عدم وجود برخی از ویژگی ها و امکاناتی باشد که در گذشته و از طریق سایر زبانهای استفاده شده، بخدمت گرفته می شدند. مثلا عدم وجود امکاناتی جهت توارث چندگانه (MI) سلسله مراتبی یک شئ.
یکی از مهمترین و اصلی ترین مشکلات برای افرادی که به تازگی با محیطهای برنامه نویسی شیگرا آشنا می شوند، درک مفاهیم شیءگرائی است. در حقیقت درک مفاهیمی چون شیء و مولفه (Component) بسیار دشوار نیست، کافیست کمی به اطراف خود با دقت نگاه کنیم. ما در دنیایی از اشیاء مختلف زندگی میکنیم. تلویزیون، رادیو در و پنجره، همه و همه نمونه هایی از اشیاء مختلفی هستند که در اطراف ما وجود دارند. اما درک و پیادهسازی این مفهوم در یک زبان برنامهسازی اندکی متفاوت است.
همانطور که گفتیم، با یک دید تصویری به سادگی می توانید اشیاء مختلفی را در اطراف خود بیابید. تمامی این اشیاء دارای سطوح و درجه پیچیدگی متفاوتی هستند. پیچیدگی آنها به شکل ظاهری و نوع رفتار آنها بستگی دارد.
در شیء گرایی به “شکل ظاهر” در اصطلاح، صفت یا Attribute و به عملی که شیء انجام می دهد، رفتار یا Behavior می گویند.
برای مثال یک صندلی را در نظر بگیرید. صندلی صفات مختلفی دارد ولی رفتار خاصی ندارد. مثلاً پایه های صندلی جزو صفات آن بشمار می روند. با کمی دقیق تر شدن می توان از این صفات برای توصیف صندلی استفاده کرد. بعنوان مثال تعداد پایه های صندلی می تواند عددی بین ۳ تا ۵ باشد. محل نشستن صندلی می تواند جملهای در وصف جنس آن و مقدار مصرف ماده سازنده آن باشد. پشتی صندلی را نیز می توان بعنوان متغییری boolean در نظر گرفت چراکه برخی از صندلی ها فاقد پشتی هستند. با استفاده از این سه صفت ساده، به راحتی می توان صندلی را توصیف نمود و با همین سه صفت میتوان گونههای مختلفی از صندلی را نیز توصیف کرد.
منظور از رفتار، عملی است که یک شیء انجام می دهد. از اینرو برای صندلی نمی توان به سادگی صفات آن، رفتاری را متصور شد. مثلاً میتوانیم بگوئیم تاشو بودن صندلی یکی از رفتارهای آن می تواند باشد، چراکه عملی است که می تواند یک صندلی آنرا انجام دهد.
حال شیء دیگری مانند تلویزیون را در نظر بگیرید. صفاتی که می توان برای تلویزیون در نظر گرفت عبارتند از: صفحه نمایش، سازنده آن و … برای تلویزیون به راحتی می توان رفتار در نظر گرفت: خاموش و روشن شدن، تغییر کانال و کم و زیاد کردن صدا. این رفتارها بر اثر درخواست یک انسان یا همان کاربر اتفاق می افتند. شیء تلویزیون را میتوان بصورت زیر نمایش داد :
بطور کلی، یک شیء را میتوان بوسیله صفات و رفتارهای آن بطور کامل توصیف نمود. یک شیء حتماً جسمی فیزیکی نیست، بلکه هر چیز قابل تصوری است که دارای صفت و رفتار است. در حقیقت میتوان گفت یک شیء شبیه به یک اسم است. اگر بتوان برای این اسم، صفت و رفتاری تعریف کرد، آن وقت تبدیل به شیء می شود.
از دید انتزاعی، زمان را نیز می توان بعنوان یک شیء در نظر گرفت. صفات زمان، ساعت، دقیقه و ثانیه هستند و گذشت زمان، رفتار آن است. در ایجاد شیء هیچ محدودیتی وجود ندارد و همه چیز به تخیل شما باز میگردد.
در زبان C#، اشیاء بوسیله کلاسها (Class) نمایش داده می شوند. داخل کلاس، صفات بصورت فیلدها ظاهر می شوند و جهت پیاده سازی رفتارها از متدها استفاده می گردد. به مثال زیر توجه نماید :
کد:
class Time
{
int hours;
int minutes;
int seconds;
void pastime()
{
//some implementation
}
}
در این مثال، کلاس Time مشاهده می شود. این کلاس با کلمه کلیدی class اعلان گردیده است. همانطور که میدانید، دو کروشه باز و بسته {} نیز ابتدا و انتهای کلاس را مشخص میکند. فیلدها دارای نام و نوع هستند. متدها دارای نام و نوع بازگشتی می باشند و پیادهسازی آنها داخل بلوک مربوط به خود آنها (بین دو {}) انجام میگردد.
یک شیء میتواند هر یک از نیازمندیهای یک پروژه باشد. طراحی و اعلان صحیح اشیاء و مشخص کردن صفات و رفتار آنها یکی از مقولههای مهم در مهندسی نرم افزار بر پایه شیءگرائی است، چراکه همگی تراکنشها بین اشیاء صورت می پذیرند.
طبقهبندی اشیاء در گروههای مختلف بسیار سودمند است. زمین شناسان سنگها را طبقه بندی میکنند و زیست شناسان گیاهان و حیوانات را طبقهبندی میکنند. طبقه بندی اشیاء باعث میشود تا با دقت و ظرافت بیشتری بتوان به جزئیات هر طبقه و یا هر نوع پرداخت.
برای مثال حیوانات را در نظر بگیرید. زیست شناسان حیوانات را به دستههای پرندگان، مهره داران و خزندگان تقسیم میکنند. پرندگان صفاتی همچون منقار و بال دارند، مهرهداران بدنی مودار دارند و خون گرمند و خزندگان خون سردند. از دید رفتاری نیز پرندگان پرواز می کنند، مهره داران به بچه های خود شیر میدهند و خزندگان میخزند. اینها ویژگیهای ارشد یا عام هستند و صفات دیگری در زیر گروهها افزوده میشوند. در گروه اصلی تنها صفات و رفتارهایی قرار میگیرند که عمومیت داشته باشند و سایر صفات و رفتارها در زیر گروهها معین میگردند. بعنوان مثال کلاس پرندگان را بشکل زیر میتوان پیادهسازی نمود :
کد:
class Bird
{
string beakDescription;
int wingSpan;
string typeOfBird;
void fly()
{
//some implementation
}
}
می توان این کلاس را بعنوان کلاسی عمومی برای پرندگان در نظر گرفت که دارای فیلدی جهت تعیین نوع پرنده نیز میباشد. با استفاده از فیلد typeOfBird میتوان گونه پرنده مورد نظر را معین نمود.
روش گفته شده در بالا، جهت افزودن صفات برای یک طبقهبندی ساده کارآمد است، اما برای طبقهبندیهای پیچیده قابل قبول نیست. تصور کنید حجم عظیمی نیازمندی در پروژه وجود داشته باشد و به سطح های مختلفی از طبقه بندی نیاز داشته باشید. با افزودن صفات جدید به هر یک از طبقات و سطحها به پیچیدگی پروژه به شدت افزوده می شود.
اتفاقی که در مورد زیر شاخهها رخ میدهد، ایجاد یک سلسله مراتب طبیعی است. برنامهنویسی شیءگرا ، متدولوژیی را جهت مدیریت سلسله مراتب طبیعی فراهم می نماید. بعنوان مثال، اگر در یک پروژه یکی از طبقه بندیهای ما حیوانات باشند، منطقی است که شیءای از طبقه حیوانات در رأس سلسله مراتب قرار گیرد و در طبقات و زیر شاخههای سطوح پائینی، پرندگان، مهره داران و خزندگان قرار گیرند. در سطح بعدی میتوان چند پرنده مانند اردک، کلاغ و … را نیز در زیر شاخه پرندگان قرار داد. این سلسله مراتب تا سطح مورد نظر قابل تعمیم است.
در برنامه نویسی شیءگرا، مفهومی که اشیاء را تحت یک سلسله مراتب خاص قرار میدهد، ارثبری یا Inheritance نامیده میشود. مثلاً طبقهبندی حیوانات را در نظر بگیرید، شیءای که در بالاترین سطح قرار میگیرد، شیء Animal است. این شیء دارای ویژگیهایی بسیار کلی و عمومی است و باید چنین هم باشد، چراکه سرگروه باید همیشه ویژگیهایی را داشته باشد که در زیر شاخه ها بطور مشترک وجود دارد و هر یک از زیر شاخهها به ویژگیهای سرگروه خود، ویژگیها و مشخصات خاص خود را می افزایند.
در این مثال، سرگروه Animal تنها میتواند دارای صفت یگانه “زیستن” باشد، چراکه همین صفت آنرا از سایر اشیاء، نظیر سنگ و در و پنجره و بطور کل اجسام، متمایز مینماید. رفتار این شیء نیز می تواند “تنفس کردن” و “غذا خوردن” باشد. حال برای اینکه شیءای بتواند در این سلسله مراتب وارد شود، حداقل باید دارای صفت شیء سرگروه این سلسله مراتب باشد، درغیر اینصورت نمیتواند در زیر شاخه آن قرار گیرد.
تفاوت Animal با سایر اشیاء که در این سلسله مراتب قرار میگیرند در آنست که سایر اشیاء میبایست صفاتی دیگر و – یا رفتارهای دیگری را نیز به صفات و رفتارهای Animal اضافه کنند. این صفات و رفتارها مسلماً جزئیتر و دقیقتر از صفات و رفتارهای سرگروه است. همین مسئله مفهومی را در پیمایش سلسله مراتبها بوجود میآورد : در پیمایش بالا به پائین (Top-Down) سلسله مراتبها به جزئیات یا گونههای خاص برخورد میکنیم، حال آنکه در پیمایش پائین با بالا (Bottom-Up) به گروهها و دستههای عمومی میرسیم.
اشیاء سطوح پائینی (که به آنها child میگوئیم) صفات و رفتارهای اشیاء سطح بالاتر خود را به ارث میبرند. به این اشیاء بالاتر یا سرگروهها نیز parent میگوئیم. به این رابطه موجود بین child و parent در اصطلاح رابطه “هست” یا “بودن” (is-a relationship) میگویند. مثلاً میگوئیم “اردک یک پرنده است”.
سادگی ارث بری از نحوه ایجاد سلسله مراتب ارثبری نشأط میگیرد. اشیاء سطوح پائینی (child) در تعریف خود اشیاء سطوح بالایی (parent) خود را مشخص میکنند. در این جا تنها کاری که لازم است یک child نسبت به parent خود انجام دهد افزودن صفات و رفتارهای مربوط به خود است. شکل زیر یک سلسله مراتب را نشان میدهد.
همانطور که در این شکل ملاحظه میکنید، سرگروه که همان Animal است، دارای صفت Living و رفتارهایی همچون Eat() میباشد. زیر شاخه این شیء کلیه صفات آنرا به ارث میبرد، بعلاوه اینکه صفت Wing و رفتار Fly() را نیز به صفات و رفتارهای parent خود میافزاید. حال برای زیر شاخهای که در زیر Bird قرار میگیرد نیز میتوان صفات و رفتارهای خاص دیگری در نظر گرفت.
علاوه بر طبقهبندی اشیاء در دستههای مختلف و سادگی در سازماندهی آنها بوسیله ارثبری، استفاده از ارثبری در انجام کارها نیز صرفهجویی ایجاد میکند. هر شیء جدیدی که به یک سلسله مراتب وارد میشود، بطور خودکار تمامی صفات و رفتارهای کلیه parent های خود را دارا میباشد و بعلت ارثبری نیازی به تعریف مجدد این صفات برای شیء جدید نمیباشد. به بیان دیگر میتوان گفت، ارثبری روشی برای استفاده مجدد از صفات و رفتارهای موجود است.
استفاده از ارثبری این امکان را برای طراحان نرم افزار فراهم میکند تا وقت بیشتری برای تفکر بر روی منطق برنامه صرف کنند و درگیر پیچیدگیهای پیادهسازی و نگهداری نرم افزار نشوند.
اکنون زمان مناسبی برای بحث درباره انتزاع است. برخی اشیاء تا حدودی انتزاعی هستند و برخی دیگر کاملاً واقعی. بعنوان مثال، چیزی بعنوان Animal وجود ندارد، بلکه این تنها توصیف کلاسی از اشیاء است. همچنین موجودیتی وجود ندارد که از لحاظ فیزیکی یک پرنده باشد. این تنها طبقهبندی و دستهبندی است که مورد استفاده قرار میگیرد.
از طرف دیگر شیءای وجود دارد بنام اردک که واقعاً یک اردک است و دارای کلیه صفات و رفتارهای آن میباشد. البته باید توجه داشت که هر اردک تنها نمونهای از “اردک” است. (منظور در اینجا آنست که موجودیتی مانند یک اردک که واقعا وجود دارد، خود نمونهای (instance) از کلاس اردک است. درک مطالب در اینجا شاید به اندکی تأمل و حوصله نیاز داشته باشد!
برای شیءای مانند Animal یا Bird، نمیتوان صفتی همچون “پاهایی پهن” و یا رفتاری مانند “را رفتن شبیه به اردک” را تعریف نمود. همچنین از اشیاء Animal و Bird تنها یک نمونه میتواند وجود داشته باشد که این نمونهها نیز بسیار مهم هستند، چراکه این نمونهها هستند که ساختار یک سلسله مراتب را تشکیل میدهند و صفات و رفتارهای کلی آن را معین مینمایند. ( البته توجه کنید که استفاده از کلمه abstract در زبان C# خود یگانه بودن و همچنین انتزاعی بودن کلاس را نشان میدهد).
تعریف و توصیف صحیح این اشیاء انتزاعی، همچون Animal و Bird، در طبقهبندی و کارآمدی ساختار سلسله مراتبی بسیار میتواند موثر باشد. مثال زیر نحوه تعریف و ایجاد اشیاء انتزاعی در C# را نشان می دهد.
کد:
abstract class Animal
{
//abstract definitions and implementations
}
class Bird : Animal
{
//class implementation
}
در این مثال کلاس Animal بصورت abstract اعلان شده تا مشخص شود که شیءای انتزاعی است. چون شیء انتزاعی عملاً وجود ندارد، نمیتوان نمونهای جدید از روی آن ایجاد کرد و تنها یک شیء از آن وجود دارد. در کلاس دوم، Bird، نشان داده شده است که این کلاس از کلاس انتزاعی Animal ارثبری دارد. این عمل با استـفاده از “:” در جــلوی نام Bird و سپس به دنبال آن نـــام کلاسی که Bird از آن ارثبری میکند، یعنی همان Animal، صورت گرفته است.
ساختارهای سلسله مراتبی روشی جهت دستیابی به روابط بین اشیاء هستند. هر چند روشهای دیگری نیز برای نشان دادن روابط بین اشیاء وجود دارد. یکی از این روشها که بسیار معمول نیز هست، استفاده از اشیاء درون اشیائی دیگر است.
یکی از اصطلاحات رایج برای بیان این مفهوم، کپسولهکردن یا Encapsulation است. استفاده صحیح از این مفهوم باعث کاهش پیچیدگی شده و تنها آن قسمت اطلاعات و جزئیات را نمایان میکند که برای درک یک شیء لازم است. بعنوان مثال، پرواز پرندگان مسئلهای است که توجه بسیاری از زیست شناسان را به خود جلب کرده است. آنها برای درک پرواز، ساختار بالها، پرها و اسکلت پرندگان را مورد مطالعه قرار میدهند. برای درک پرواز، بررسی همین اجزاء و جزئیات کافیست و نیازی به مطالعه درباره سیستم گوارش پرندگان نمیباشد. برای بررسی یک موضوع تنها اطلاعاتی مربوط به آن در حل و بررسی مسئله میتواند موثر باشد و اطلاعات اضافی، نه تنها وقتگیر و بی فایده است، بلکه میتواند گیج کننده نیز باشد و بر پیچیدگی مسئله ، بدون دلیل، بیفزاید. با استفاده از کپسولهکردن تنها آن قسمت از اطلاعات که مورد نظر است در دسترس قرار میگیرند.
شیء Bird را که قبلاً درباره آن صحبت کردیم، در نظر بگیرید. پرندگان دارای منقار و بال هستند. خود بال یک شیء است که دارای صفاتی نظیر پر و اندازه است. رفتار آن نیز میتوان باز و بسته شدن در حین پرواز باشد. نکته قابل اشاره در اینجا، کلمه “داشتن” است. اعمالی وجود دارند که پرنده آنها را انجام میدهد و این اعمال خود جزئی از پرنده هستند.
بطور کلی، رابطه “داشتن” (has-a relationship) بین یک شیء و اعمالی که بر روی اجزای خود انجام میدهد، وجود دارد. بعنوان مثال میگوئیم “پرنده بال دارد”. در اینجا چون بال شیءای متعلق به پرنده است که پرنده روی آن عملی انجام میدهد، مفهوم کپسولهکردن رخ میدهد، شیءای درون شیءای دیگر. مثال زیر نحوه پیادهسازی کپسولهکردن را نشان میدهد.
کد:
class Wing
{
int foreWingSize;
int backWingSize;
void flap()
{
//implementation
}
void fold()
{
//implementation
}
}
class Bird : Animal
{
int beakSize;
Wing wings;
void Fly()
{
//implementation
}
}
در این مثال، دو کلاس Bird و Wing وجود دارند. کلاس Wing فیلدها و متدهای مربوط به خود را دارد. درون کلاس Bird اعلانی از کلاس Wing با استفاده از نام wings صورت گرفته است. این عمل رابطه مالکیتی بین Bird و Wing ایجاد مینماید. “پرنده دارای بال است”. تنها چیزی که کافیست بدانیم آنست که کلاس انتزاعی پرنده دارای بال است. توجه کنید که صفات و رفتارهای کلاس Wing بوسیله خود این کلاس کنترل میشوند.
فرمت فایل: word
تعداد صفحه:66
چکیده :
کلیه مدارات الکترونیکی نیاز به منبع تغذیه دارند. برای مدارات با کاربرد کم قدرت از باطری یا سلولهای خورشیدی استفاده می شود. منبع تغذیه به عنوان منبع انرژی دهنده به مدار مورد استفاده قرار میگیرد. حدود 20 سال است که سیستمهایی پر قدرت جای خود راحتی در مصارف خانگی هم باز کرده اند و این به دلیل معرفی سیستمهای جدید برای تغذیه مدارات قدرت است.
این منابع تغذیه کاملاً خطی عمل می نمایند. این نوع منابع را منابع تغذیه سوئیچینگ می نامند. این اسم از نوع عملکرد این سیستمها گرفته شده است. به این منابع تغذیه اختصاراً SMPS نیز می گویند. این حروف برگرفته از نام لاتین Switched Mode Power Supplies است.
راندمان SMPS بصورت نوعی بین 80% الی 90% است که 30% تا 40% آنها در نواحی خطی کار می کنند. خنک کننده های بزرگ که منابع تغذیه گلوله قدیمی از آنها استفاده می کردند، در SMPS ها دیگر به چشم نمی خورند و این باعث شده که از این منابع تغذیه بتوان در توانهای خیلی بالا نیز استفاده کرد.
در فرکانسهای بالای کلیدزنی از یک ترانزیستور جهت کنترل سطح ولتاژ DC استفاده می شود. با بالا رفتن فرکانس ترانزیستور، دیگر خطی عمل نمی کند و نویز مخابراتی شدیدی را با توان بالا تولید مینماید. به همین سبب در فرکانس کلیدزنی بالا از المان کم مصرف Power MOSFET استفاده می شود. اما با بالا رفتن قدرت، تلفات آن نیز زیاد می شود. المان جدیدی به بازار آمده که تمامی مزایای دو قطعه فوق را در خود جمع آوری نموده است و دیگر معایب BJT و Power MOSFET را ندارد. این قطعه جدید IGBT نام دارد. در طی سالهای اخیر به دلیل ارزانی و مزایای این قطعه از IGBT استفاده زیادی شده است.
امروزه مداراتی که طراحی می شوند، در رنج فرکانسی MHZ و قدرتهای در حد MVA و با قیمت خیلی کمتر از انواع قدیمی خود میباشند.
فروشنده های اروپائی در سال 1990 میلادی تا حد 2 میلیارد دلار از فروش این SMPS ها درآمد خالص کسب نمودند. 80% از SMPS های فروخته شده در اروپا طراحی شدند و توسط کارخانه های اروپائی ساخت آنها صورت پذیرفت. درآمد فوق العاده بالای فروش این SMPS ها در سال 1990 باعث گردید که شاخه جدیدی در مهندسی برق ایجاد شود.
این رشته مهندسی طراحی منابع تغذیه سوئیچینگ نام گرفت.
یک مهندس طراح منابع تغذیه سوئیچینگ بایستی که در کلیه شاخههای زیر تجربه و مهارت کافی کسب کند و همیشه اطلاعات بروز شده در موارد زیر داشته باشند:
1- طراحی مدارات سوئیچینگ الکترونیک قدرت.
2- طراحی قطعات مختلف الکترونیک قدرت.
3- فهم عمیقی از نظریه های کنترلی و کاربرد آنها در SMPS ها داشته باشد.
4- اصول طراحی را با در نظر گرفتن سازگاری میدانهای الکترومغناطیسی منابع تغذیه سوئیچینگ با محیط انجام دهد.
5- درک صحیح از دفع حرارت درونی (انتقال حرارت به محیط) و طراحی مدارات خنک کننده موثر با راندمان زیاد.
فهرست مطالب
عنوان
فصل اول- انواع منابع تغذیه
1-1منبع تغذیه خطی
1-1-1 مزایای منابع تغذیه خطی
1-1-2 معایب منبع تغذیه خطی
1-1-2-1 بزرگ بودن ترانس کاهنده ورودی
1-2 منبع تغذیه غیر خطی (سوئیچینگ)
1-2-1 مزایای منبع تغذیه سوئیچینگ
1-2-2 معایب منابع تغذیه سوئیچینگ
فصل دوم – یکسوساز و فیلتر ورودی
2-1 یکسوساز ورودی
2-2 مشکلات واحد یکسوساز ورودی و روش های رفع آنها
2-2-1 استفاده از NTC
2-2-2 استفاده از مقاومت و رله
2-3-2 استفاده از مقاومت و تریاک
2-3-1 روش تریستور نوری
فصل سوم – مبدل های قدرت سوئیچنیگ
3-1 مبدل فلای بک غیر ایزوله
3-2 مبدل فوروارد غیر ایزوله
فصل چهارم – ادوات قدرت سوئیچینگ
4-1 دیودهای قدرت
4-1-1 ساختمان دیودهای قدرت
4-1-2 انواع دیود قدرت
4-1-2-1 دیودهای با بازیابی استاندارد یا همه منظوره
4-1-2-2 دیودهای بازیابی سریع و فوق سریع
4-1-2-3 دیودهای شاتکی
4-2 ترانزیستور دوقطبی قدرت سوئیچینگ
4-3 ترانزیستور ماسفت قدرت سوئیچینگ
فصل پنجم – مدارهای راه انداز
5-1 مدارهای راهانداز بیس
5-1-1 راه انداز شامل دیود و خازن
5-1-2 مدار راه انداز بهینه
5-1-3 راه اندازهای بیس تناسبی
5-2 تکنولوژی ساخت ترانزیستورهای ماسفت
فصل ششم – واحد کنترل PWM
6-1 نحوه کنترل PWM
6-2 معرفی تعدادی از مدارهای مجتمع کنترل کننده PWM
6-2-1 مدار مجتمع مد جریانی خانواده 5/4/3/842 (3)
6-2-2 مدار مجتمع کنترل کننده مُد جریانی از نوع سیماس
6-2-3 مدر مجتمع مد ولتاژی P/FP 16666 HA
6-2-4 مدار مجتمع مد ولتاژی
6-2-5 مدار مجتمع مد جریانی
6-2-6 مدار مجتمع مد جریانی
فصل هفتم – سوئیچینگ ولتاژ صفر و جریان صفر
7-1 سوئیچینگ ولتاژ صفر و جریان صفر
7-2 مبدل فلایبک ولتاژ صفر ساده
7-3 مبدل های سوئیچینگ نرم ولتاژ صفر
7-3-1 مبدل تشدیدی موازی
7-3-2 مبدل تشدیدی سری
7-3-3 مبدل تشدیدی سری –موازی
7-3-4 پل تشدیدی با فاز انتقال یافته
7-4 سوئیچینگ نرم جریان صفر
فصل هشتم – تجزیه و تحلیل چند منبع تغذیه سوئیچینگ
8-1 مدار مجتمع
8-2 مدار مجتمع
8-3 مدار مجتمع P/FP 16666HA
8-4 مدار مجتمع
8-5 مدار مجتمع
8-6 مدار مجتمع TOPxxx
فصل نهم – برخی ملاحظات جانمایی
مقدمه
9-1 سلف
9-2 فیدبک
9-3 خازن های فیلتر
9-4 مسیر زمین
9-5 چند نمونه طرح جانمایی
9-6 خلاصه
9-7 فهرست قوانین طرح جانمایی