الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في الStruct!

مغلق
بدأه قمـ14ـر في 16 مايو 2004 · 5 رد · 557 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

كيف الحال جميعا؟؟

لو سمحتوا اللي يعرف ممكن يجاوبني

انا صراحه احس اني مش متمكنة من الـstructeres (in C++)...وبما فيه طبعا الـ

array of struct

يعني اذا ممكن شرح بسيط له...يعني متى استخدم الستركت وليش؟؟

واذا فيه امثله وتمارين عليه

الله يخليكم ساعدوني امتحاني هالاثنين

وادعـــــوووووولي

انتظر ردودكم

وألف شكر مقدما

لا إلــــــــــــــه إلا انت سبحانك إني كنت من الظالمين

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#2

السلام عليكم

ال struct هي ببساطة بنية معطيات يمكن لها أن تحوي أكثر من نوع معطيات بسيط واحد فمثلا معلومات الطالب مثلا لا يمكن تخزينها في نمط بسيط واحد لأنه يملك اسم أول و اسم أب و كنية و تاريخ تولد و سنة دراسية كما و أن لوحة السيارة في المملكة العربية السعودية لا يمكن تمثيلها كلها بأرقام بل ب 3 أحرف (سلسلة string) و ب 3 أرقام (int أو short) فعليه التعريف التالي:

struct CarLabel
{
    char letters[4];
    short number;
}

يعني نستخدم ال struct عندما نريد أن نضمن معلومات من أنماط مختلفة في بنية واحدة و التعامل معها ككتلة

يمكننا الآن بعد التصريح تعريف متحول من النمط CarLabel (نلاحظ أنه قد أصبح نمطا) و التعامل مع مكوناته

CarLabel cl;
cl.number = 123;
cl.letters = "أدم";

و إذا أردما أن نتعامل مع 100 سيارة فليس من الحكمة أبدا تعريف 100 متحول من النمط CarLabel فبالتالي نعرف مصفوفة من CarLabel و نتعامل معها

CarLabel cars[100];
for (short i = 0; i<100; i++)
    cars.number = i;
    cars.letters = "أدم";

و هكذا نكون قد عرفنا 100 لوحة مرقمة من ال 0 إلى 99 و تحمل الأحرف "أدم"

نشاء الله يكون الشرح مفهوم

السلام عليكم

#3

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

اخي الكريم PerfectStranger جزاك الله كل خير وجعله في موازين حسناتك ياااارب

ألف ألف شكر لك اخوي

بس لو سمحت الحين خطر على بالي سؤال: وهو كيف اعمل

Search OR Insert OR Delete

؟؟؟؟؟

يعني بس لو مثال بسيط زي اللي الاول قلتلي عليه فهمت الحمد لله منه

عالعموم انا رح اروح اذاكر الحين مظبوط(بكره امتحاني ادعوووووولي) واذا مافهمت شي

برجع واسأل مرة ثانيه الله يوفقك اخوي...وسوري ثقلت عليك

ومشكور مرة ثانيه

سلام

لا إلــــــــــــــه إلا انت سبحانك إني كنت من الظالمين

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#4

ســــــــــلام

اخوي الحمد لله ظبط معاي كل شي ماشاء الله تبااااااااارك الله

الكل يسمي ويكبر

الحمد لله

بس عندي مشكلة الـ Insert

يعني اعطيك مثال..الحين بتطلع منيو لليوزر وتقله من ضمن الخيارات

insert new record

المفروض لما يختارها اليوزر اطلب منه الاسم, الاي دي حقه, وعلاماته

وبعدين اعملها insert

كيف اعملها؟؟لاني صراحه حست في هالنقطه؟؟

اتمنى من اي حدا يعرف يرد بليز بسـرعه

وجزاكم الله كل خير

لا إلــــــــــــــه إلا انت سبحانك إني كنت من الظالمين

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

#5

السلام عليكم

الحقيقة يمكن تنفيذ ما طلبتيه بعدة طرق حسب البنية الأساسية الحاوية للتسجيلات إذا كانت مصفوفة سجلات أو مصفوفة مؤشرات إلى السجلات أو سلسلة مترابطة من المؤشرات إلى السجلات

في حال مثالنا السابق (مصفوفة سجلات) يجب أن تحفظي مكان آخر سجل قمتي بإضافته و ليكن lastStructIndex و عندما يطلب ال User إضافة يجب قراءة المعلومات منه و حفظها في المكان الذي يلي مكان آخر سجل

if (lastStructIndex< ArraySize)
{
    cin >> studentsArray[lastStructIndex +1];
    cin >> studentsArray[lastStructIndex +1;
    lastStructIndex++;
}
else
    cout << "table has no more free rooms";

يجب دائما الأنتباه لعدم تجاوز حدود المصفوفة و لذلك يجب الإحتفاظ بطولها

هذه هي الفكرة و في حال تغيير شكل حفظ المعطيات فسوف يتغير الكود قليلا يعني لو وصفت مسألتك بشكل أوضح من حيث بنى المعطيات المطلوبة كنت ساعدتك أكتر و لكن إن شاء الله تكون الفكرة وصلت و إن شاء الله يوفق جميع الأخوة في امتحاناتهم (أنا معهم :) )

السلام عليكم

#6

جزاك الله كل خير اخوي

مشكـــــــــــــــور ماقصرت والله

الله يعطيك الف عافيه يارب

شكرا لك

ونخدمك في الافراح ان شاء الله لوول

لا إلــــــــــــــه إلا انت سبحانك إني كنت من الظالمين

استغفر الله إلذي لا إله إلا هو واتوب إلـيه

هذا الموضوع مغلق.

مواضيع مشابهة