تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس السابع ( 7 ) -- الانتقال للعمل على مكتبة ال Stdafx والتعرف على ملفات ال Header
#1
كاتب الموضوع : lo2i


السلام عليكم ورحمة الله وبركاته

(( وماأوتيتم من العلم إلا قليلاً ))
-------------------------------------------------------------------------------------------------------------------------------
الدرس السابع في دورة السي بلس بلس
-------------------------------------------------------------------------------------------------------------------------------


سنتعلم في هذا الدرس ان شاء الله :_

- التعرف كيفية فتح مشروع يحتوي على ملفات ال Header
- التعرف على مكتبة ال stdafx.h
- لماذا ملفات ال Header
- تسهيل البرمجة بمناداة ملف ال Header بالكود ..


----------------------------------------------------


اولاً :- التعرف كيفية فتح مشروع يحتوي على ملفات ال Header


تابع الصور ,,,

عند فتح الفيجوال ستوديو 2008 وتضغك على ال Ctrl + N

فسوف تظهر لك هذه الشاشة ,, هنا










- نختار لغة السي بلس بلس
- نحدد ال win32 console application
- نحدد السم المشروع الذي نريده .
- واخيراً نضغط على Ok

--------------------------------------------
فتظهر الشاشة التالية ,,









لو كنت من متابعيي الدورة من البداية لعرفت الفرق هنا

ففي الدروس الاولى كنا نضغط على زر Next للذهاب للنافذة التالية ,,

واما الان فسوف نضغط على زر Finish للانتهاء من المعالج وتضميين
ملفات ال Header ضمن المشروع ,,
-------------------------------









لو تلاحظ في الدروس الماضية اننا كنا عند بداية فتح البرنامج

ستجد هذه النافذة فارغة تقريباً لانها لاتحتوي على ملفات ال Header

التي موجودة في الصورة حاليًا , ملفات ال Header التي موجودة في الصورة حالياً ,, تتمثل في التالي
  • stdafx.h
  • targetvet.h
---------------------------
وكما نعلم ان لكل مشروع يتكون من ثلاث ملفات رئيسية ,,


وهي :-

  1. HEADER FILES
  2. RESOURCES FILES
  3. SOURCE FILES
--------------------------------------------
وطبعاً سوف تجد الملف الذي قمت بتمسية مشروعك به على انه ملف Cpp

وعند الضغط على الملف المسمى بـ lo2i.cpp فسوف تظهر لك الشاشة التالية ,,








كما هو موضح في الصورة تجد هذا الكود مكتوب عند فتح الصفحة ,,


كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]// lo2i.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

[/COLOR][color=#0000bb]int _tmain[/color][color=#007700]([/color][color=#0000bb]int argc[/color][color=#007700], [/color][color=#0000bb]_TCHAR[/color][color=#007700]* [/color][color=#0000bb]argv[/color][COLOR=#007700][])
{
    return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

ولاحظ هنا استدعائنا لهذه ال HEADER هنا

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"  
[/COLOR][color=#0000bb][/color][/COLOR]

لاحظ الفرق بين تعريف هذا المكتبة هنا (الهيدر)

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include <iostream>  
[/COLOR][color=#0000bb][/color][/COLOR]

وبين هذا الهيدر (المكتبة )

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "stdafx.h"  
[/COLOR][color=#0000bb][/color][/COLOR]

لو تلاحظ انه في التعريف الاول استخدمنا هذا المعامل لتحديد اسم الملف < >

وانا في التعريف الثاني فاستخدمنا هذا " "

ولتعرف بماذا استفدنا من تعريف هذه المكتبة يمكنك تتبع لاصورة التالية ,,










عندما تقوم بمناداة الهيدر وتضغط عليه بزر الفارة اليمين !!

يظهر لك خيار (open document "stdafx.h")

عندما تقوم بالضبط عليه ,,,

سوف تفتح لك شاشة كود للهيدر stdafx.h

وهذا هو الكود الذي كتب في داخله ...

كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>

// TODO: reference additional headers your program requires here  
[/COLOR][color=#0000bb][/color][/COLOR]

كما هو موضح لديك

اي سطر يبدأ بالرمز // فهو لاينفذ في البرنامج وهو للتوضيح فقط

ولقد قمت بشرح ذلك هنا ,,

-----------------------------------------
على العموم ,,

تعرفنا ان المكتبة stdafx.h

تضم داخلها هذه المكتاب وملفات ال
header ..


كود :
[color=#000000][COLOR=#0000bb][/color][COLOR=#ff8000]#include "targetver.h"
#include <stdio.h>
#include <tchar.h>  
[/COLOR][color=#0000bb][/color][/COLOR]
---------------------------------------

الامر الذي اريد ان اوضحه قبل انتقالك للدروس القادمة

انه لم يتغير الشيء الكثير في اتجاه برمجتنا للسي بلس بلس ..

ولكن سنضطر في كتابة اي برنامج من ذكر مكتبة ال stdafx.h في البداية
ولن يتغير اي شي اطلاقاً ,,

فمثلاً هذا الكود لحساب مساحة المستطيل اعتماداً على طوله وعرضه
سنقوم بكتابته بعد ان نضيف مكتبة ال stdafx.h للمشروع
=-=-=-=-=-=-=-=-=-=-=-=
ملاحظة هامة جداً جداً ,,,

ننادي ملف الهيدر stdafx.h من خلال الملف cpp

الذي ينشأ اوتوماتيكياً عند انشاء المشروع الجديد ,,

=-=-=-=-=-=-=-=-=-=

ندخل على الملف
lo2i.Cpp

ونمسح كل شيء بداخله ,,

ونبدأ هذا الكود ,,


كود :
[COLOR=#000000][COLOR=#0000bb]

[/COLOR][COLOR=#ff8000]#include "stdafx.h"
#include <iostream>
[/COLOR][color=#0000bb]using namespace std[/color][COLOR=#007700];
[/COLOR][color=#0000bb]int main[/color][COLOR=#007700]()
{
    [/COLOR][color=#0000bb]int height[/color][color=#007700],[/color][color=#0000bb]width[/color][COLOR=#007700];
[/COLOR][color=#0000bb]hhh[/color][COLOR=#007700]:
    [/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"cls"[/color][COLOR=#007700]);
    [/COLOR][color=#0000bb]cout [/color][color=#007700]<<  [/color][color=#dd0000]"the height of shape is :\t" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
    [/COLOR][color=#0000bb]cin [/color][color=#007700]>> [/color][color=#0000bb]height [/color][COLOR=#007700];
    if ([/COLOR][color=#0000bb]height [/color][color=#007700]== [/color][color=#0000bb]0 [/color][COLOR=#007700])
    {
        [/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"the height of shape can not be zero or less than zero\n" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
        [/COLOR][color=#0000bb]goto hhh[/color][COLOR=#007700];
    }
[/COLOR][color=#0000bb]www[/color][COLOR=#007700]:
    
    [/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"the width of shape is :\t" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
    [/COLOR][color=#0000bb]cin [/color][color=#007700]>> [/color][color=#0000bb]width[/color][COLOR=#007700];
    if ([/COLOR][color=#0000bb]width [/color][color=#007700]== [/color][color=#0000bb]0 [/color][COLOR=#007700])
    {
    [/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"the width of shape can not be zero or less than zero\n" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
        [/COLOR][color=#0000bb]goto www[/color][COLOR=#007700];
        [/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"cls"[/color][COLOR=#007700]);
    }
    [/COLOR][color=#0000bb]cout [/color][color=#007700]<<  [/color][color=#dd0000]"--------------------------------" [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
    [/COLOR][color=#0000bb]int irea [/color][COLOR=#007700];
    [/COLOR][color=#0000bb]irea[/color][color=#007700]=[/color][color=#0000bb]height[/color][color=#007700]+[/color][color=#0000bb]width[/color][COLOR=#007700];

    [/COLOR][color=#0000bb]cout [/color][color=#007700]<< [/color][color=#dd0000]"if irea of the shape is :" [/color][color=#007700]<< [/color][color=#0000bb]irea [/color][color=#007700]<< [/color][color=#0000bb]endl[/color][COLOR=#007700];
    
    [/COLOR][color=#0000bb]system[/color][color=#007700]([/color][color=#dd0000]"pause"[/color][COLOR=#007700]);


return [/COLOR][color=#0000bb]0[/color][COLOR=#007700];
}  
[/COLOR][color=#0000bb][/color][/COLOR]

------------------------------------------------------
شرح مبسط للكود السابق ,,

في بداية الكود قمنا بتعريف الهيدر stdafx.h

لو قمت بنسيان هذه المكتبة سوف يعطيك المحرر خطأ عند تشغيل البرنامج ..
وبعد قمنا بعمل برنامج يحسب طول + عرض شكل ما ,,

ثم يعطيك في النهاية مساحة الشكل

مع العلم اني وضعت جملة شرطية if وهي تنبأ اذا ادخل المستخدم الرقم صفر للطول او للعرض ولكن لم , ولكن لم اضع لها الامر الذي تستطيع اضافته لعدم قبوك القيم الاقل من صفر

الجملة تكون هكذا بعد التعديل

كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]if ([/color][color=#0000bb]height [/color][color=#007700]== [/color][color=#0000bb]0 [/color][color=#007700]|| [/color][color=#0000bb]height [/color][color=#007700]<=[/color][color=#0000bb]0[/color][COLOR=#007700])  
[/COLOR][color=#0000bb][/color][/COLOR]

ونفس الشيء تستخدمه مع العرض ايضاً ..

-----------------------------------

كما يمكنك صناعة ملف HEADER خاص فيك

وتضع فيه كل اكوداك المهمة لتنفيذ شيء واحد

لتقلل عليك من الجهد والتعب ..

وتقوم بداخلها بوضع كلاساتك , والدوال التي تحتاجها في عملك ..

ثم تنادي اسم ال Header من خلال ال Cpp

وبإذنه تعالى سوف نتعلم في دروس لاحقة كيفية عمل ملف header

[SIZE=4]Cpp ومناداته من خلال ال

--=-=--
معلومة اخيرة ...

.H كل ملفات الهيدر تنتهي بحرف

-----------------=------------------=-------------------=-------------

انتهى الدرس ,,

ماكان صواباً فمن الله تعالى وماكان خطأ فمن نفسي ومن الشيطان ومن النعس

سلام عليكم

[/SIZE]

والان جرب واعطيني النتيجة
====================
========
==

انتظروا الدرس الثامن !!
}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الأول (1) RaggiTech 0 2,828 19-10-12, 11:17 AM
آخر رد: RaggiTech
  الدرس الحادي عشر ( 11 ) - - المصفوفات (نظرة مفصلة) الجزء الثاني (2) RaggiTech 0 2,616 19-10-12, 11:15 AM
آخر رد: RaggiTech
  الدرس العاشر ( 10 ) - - جملة التكرار Do While وكيفية التعامل معها RaggiTech 0 7,372 19-10-12, 11:07 AM
آخر رد: RaggiTech
  الدرس التاسع ( 9 ) - - جملة التكرار For وكيفية التعامل معها RaggiTech 0 3,135 19-10-12, 11:03 AM
آخر رد: RaggiTech
  الدرس الثامن ( 8 ) -- التعرف على جملة الـ Switch وكيفية التعامل معها RaggiTech 0 3,978 19-10-12, 11:02 AM
آخر رد: RaggiTech
  الدرس السادس ( 6 ) -- حل لمشكلة التعليق على ال Ctrl + F5 اثناء تشغيل البرنامج RaggiTech 0 2,645 19-10-12, 10:55 AM
آخر رد: RaggiTech
  الدرس الخامس ( 5 ) -- الجمل الشرطية if statement شرح تفصيلي RaggiTech 0 4,137 19-10-12, 10:37 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الثاني ( 2 ) RaggiTech 0 2,650 19-10-12, 10:20 AM
آخر رد: RaggiTech
  الدرس الرابع ( 4 ) -- المتغــيرات والثوابــت ... ( نظرة مفصلة ) الجزء الأول ( 1 ) RaggiTech 0 3,908 19-10-12, 10:08 AM
آخر رد: RaggiTech
  الدرس الثالث ( 3 ) -- كتابة اول برنامج الــ HELLO WORLD و استخدام المكتبة String RaggiTech 0 2,456 19-10-12, 10:02 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم