recent
أخبار ساخنة

التعامل مع السجلات في لغة C++

الصفحة الرئيسية
التعامل مع السجلات في لغة C++

السجلات structure لغة C++

السجلات structure هي مجموعة من البيانات المختلفة في النوع (أي يكون بعضها من نوع int و بعضها char و بعضها float ....الخ) مع بعضها البعض بحيث يمكن التعامل معها كوحدة واحدة.

كلمة struct تستخدم من أجل تعريف نوع جديد, و النوع الجديد هذا يُمكنه أن يحتوي على مجموعة من القيم بشكل مرتب و سهل التعامل معها.

مثلاً لكتابة برنامج لتسجيل بيانات موظفين في الشركة نحتاج لتخزين:

  1. اسم الموظف و هو من نوع مصفوفة حرفية char name[40].
  2. عنوانه وهو من نوع مصفوفة حرفية char address[40].
  3. عمره متحول من نوع عدد صحيح int age.
  4. راتبه متحول من نوع عدد حقيقي float salary.

 

كما نلاحظ فإن جميع هذه البيانات يجب التعامل معها كوحدة واحدة لأنها لموظف واحد, لذلك فإننا بحاجة إلى سجل خاص لهذا الموظف.

 

التصريح عن سجل struct في C++

للتصريح عن سجل نستخدم الكلمة المحجوزة struct و هي إختصار لكلمة structure و معناها تركيب.

و نضع جميع مكونات هذا التركيب ضمن قوسين و نختم التصريح بفاصلة منقوطة بعد القوس الثاني.

ثم يتم التصريح عن متحول خاص لهذا السجل ضمن القائمة الرئيسية للبرنامج.

يتم التصريح عن السجل بأحد الطرق الآتية

#include <iostream.h>
struct employee /اسم السجل
{
--------;
--------;
--------;
--------;
}; /يجب وضع الفاصلة المنقوطة سيمي كولن
void main()
{
struct employee emp; /نصرح عن متحول خاص بالسجل

كما نلاحظ فإننا كتبنا السجل و بداخله جميع المتحولات الموجودة و ثم بدأنا بكتابة البرنامج بالعبارة المعتادة void main() و ثم صرحنا عن متغير خاص بهذا السجل.

طبعاً نختار اسم المتحول كيفياً و ثم نتابع كتابة البرنامج.

 

إنشاء كائن من struct في C++

struct Book {
string title;
string author;
double price;
int numberOfPages;
};
struct Book book; 


كيفية كتابة المتحولات داخل السجل

#include <iostream.h>
struct employee
{
char name[40]; /مصفوفة لكتابة اسم الموظف
char address[40]; /مصفوفة لكتابة عنوان الموظف
int age; /مصفوفة لكتابة عمره
float salary; /مصفوفة لكتابة راتبه
};
/نصرح عن متحول خاص بهذا السجل كالتالي
void main()
{
struct employee emp;


كيفية ادخال و إخراج المعلومات داخل السجل

عندما نريد مثلاً إدخال عمر الموظف فإننا نكتب cin>> emp . age; و عندما نريد ادخال اسم الموظف. نكتب cin>>emp . name; و لا نكتب الأقواس عندما نريد إدخال الإسم كاملاً كما تعلمنا في المصفوفات.

أما عندما نريد إخراج أي قيمة فإننا نستبدل cin بـ cout كما هو معروف.

كما يمكننا ان نعلم عن التصريح بطريقة أخرى كما يلي

void main()
{
struct employee
{
-------;
-------;
-------;
-------;
}; /ونكمل البرنامج

مثال

اكتب برنامج يقوم بطباعة معلومات طالب و علامته و رقم الأيدي لهذا الطالب.

#include <iostream.h>
using namespace std;
struct student
{
int id;
string name;
int grade;
};
int main()
{
student stu;
stu.id=1;
stu.name="sajo";
stu.grade=60;
cout << stu.id << endl;
cout << stu.name << endl;
cout << stu.grade << endl;
return 0;
}


نتيجة الكود

1
sajo
60

 كما لاحظنا بالمثال السابق سجلنا بيانات الطالبة sajo و علامتها و الأيدي و طبع لنا بياناتها, ماذا إذا كان لدينا اكثر من طالب كيف ستكون البيانات؟.


مثال

اكتب برنامج يقوم بطلب من المستخدم بإدخال بيانات 4 طلاب يطلب الأيدي و الأسم و العلامة.

#include <iostream.h>
using namespace std;
struct student
{
int id;
string name;
int grade;
};
int main()
{
student stu[4];
for(int i=0;i<4;i++)
{
cout << "enter info student" << i+1 << endl;
cin >> stu[i].id;
cin >> stu[i].name;
cin >> stu[i].grade;
}
for(int i=0;i<4;i++)
{
cout << stu[i].id << endl;
cout << stu[i].name << endl;
cout << stu[i].grade << endl;
}
return 0;
}

كما لاحظنا في المثال عند تشغيل البرنامج طلب مننا ادخال بيانات الطالب الأول ثم ضغطنا انتر و طلب بيانات الثاني و الثالث فالرابع ثم طبعهم لنا.

لمشاهدة الدرس على يوتيوب للإستيعاب اكثر


google-playkhamsatmostaqltradent