تعلم برمجة C++: تطبيق مفهوم البرمجة الشيئية في إنشاء وتخزين بيانات الطلاب
في بداية الأمر، يجب عليك ملاحظة أن هناك خطأ في مُنشئ الفئة student
. في داخل المُنشئ، قمت بتسمية المُعاملين بنفس اسمي الخاصيتين في الفئة (name
و age
). لحل هذه المشكلة، يمكنك استخدام قاعدة البيانات this
للإشارة إلى الخاصيتين في الفئة بدلاً من المُعاملين المحليين.
لذلك، يمكنك تعديل مُنشئ الفئة student
كما يلي:
cppstudent::student(string name, int age){
this->name = name;
this->age = age;
}
الآن، سيتم تمييز بين المُعاملين المحليين والخاصيتين في الفئة.
بعد إجراء هذا التعديل، يجب عليك التحقق مرة أخرى من البرنامج الرئيسي الخاص بك. قد يكون الخطأ الذي تلاحظه هو نتيجة لتحديد القيمة الافتراضية للعنصر index
الخاص بك. عند إنشاء الكائن newStudent
، يُفضل تعيين العنصر index
استنادًا إلى حجم الـ vector (myClass.size()
) بدلاً من قيمة ثابتة.
فيما يلي تعديل للجزء الخاص بالقراءة من داخل حلقة while
:
cppwhile(getline(cin, var)){
student newStudent(var, myClass.size()); // استخدام myClass.size() بدلاً من index
myClass.push_back(newStudent);
}
بعد هذه التعديلات، يجب أن يتم تخزين بيانات الطلاب بشكل صحيح في الـ vector ويتم طباعتها بشكل صحيح عند الوصول إليها.
المزيد من المعلومات
بالطبع، دعنا نوسّع المحتوى لتشمل المزيد من التفاصيل حول مفهوم البرمجة الشيئية وكيف يتم تطبيقه في البرنامج الخاص بك.
في برنامجك، قمت بتطبيق مفهوم البرمجة الشيئية (OOP) باستخدام فئة student
لتمثيل الطلاب، وقمت بإنشاء كائنات student
وتخزينها في vector. يتيح لك استخدام الكائنات والفئات في البرمجة الشيئية تنظيم الشيفرة وتجزئتها إلى وحدات قابلة لإعادة الاستخدام.
لزيادة الفعالية والقوة في برمجتك، يمكنك النظر في إضافة بعض الوظائف الإضافية إلى فئة student
. على سبيل المثال، يمكنك إضافة وظيفة تطبع معلومات الطالب بأكملها (الاسم والعمر معًا) بحيث يمكنك استخدامها للتحقق من البيانات التي تم تخزينها.
cppvoid student::printInfo() const {
cout << "Student Name: " << name << ", Age: " << age << endl;
}
ثم يمكنك استخدام هذه الوظيفة في الحلقة النهائية لطباعة معلومات جميع الطلاب:
cppfor(int i = 0; i < myClass.size(); i++){
myClass[i].printInfo();
}
هذا سيساعد في جعل البرنامج أكثر تنظيمًا وإضافة دوال يمكن استخدامها بسهولة للتعامل مع البيانات المخزنة.