البرمجة

تحسين برنامج اختبار الرياضيات باستخدام Python: حفظ النتائج وحساب المتوسطات

في هذا السياق، يتعين عليك تعديل البرنامج الحالي ليتيح للمعلمين حفظ ثلاث درجات أخيرة لكل طالب وعرض المتوسط ​​لهذه الدرجات. يمكنك تحقيق ذلك من خلال إدارة ملفات النصوص واستخدام التقنيات المناسبة في لغة برمجة Python. سأقدم لك توجيهات حول كيفية تحقيق هذا الهدف.

أولاً وقبل كل شيء، يجب عليك تغيير ترتيب حفظ النتائج في الملف. بدلاً من استخدام الأمر lines.sort()، يفضل ترتيب النتائج بناءً على اسم الطالب. يمكنك استخدام هيكل بيانات مثل القاموس (dictionary) لتحقيق ذلك.

الخطوة الثانية هي تعديل البرنامج ليتمكن من حفظ ثلاث درجات أخيرة لكل طالب. يمكنك استخدام هيكل بيانات آخر لتخزين هذه الدرجات، على سبيل المثال، يمكنك استخدام قائمة (list) لتخزين آخر ثلاث درجات وتحديثها بشكل دوري.

فيما يلي مقترح لتعديل الكود:

python
# تعريف قاموس لتخزين درجات الطلاب students_scores = {} # ... # داخل الحلقة الرئيسية for question_num in range(1, 11): # ... (الكود الحالي) # تحديث درجات الطالب في قاموس الدرجات if name not in students_scores: students_scores[name] = [] students_scores[name].append(score) # حفظ آخر ثلاث درجات فقط if len(students_scores[name]) > 3: students_scores[name] = students_scores[name][-3:] # ... # عرض المتوسط ​​لآخر ثلاث درجات average_score = sum(students_scores[name]) / len(students_scores[name]) print(f"The average score for {name} is: {average_score}")

تذكر أنه يجب أن تكون هذه التغييرات جزءًا من البرنامج الخاص بالطلاب ويمكنك تكرار هذا النمط لجميع الطلاب في الصف. يمكنك أيضًا توسيع هذه الفكرة لتشمل حفظ معلومات إضافية مثل مستوى الصعوبة لكل طالب.

المزيد من المعلومات

بالطبع، دعنا نستكمل التحسينات على البرنامج. يمكنك أيضًا تكوين البرنامج لحفظ البيانات في ملف نصي منفصل لكل طالب بحيث يمكن الاحتفاظ بتاريخ ونتائج الاختبارات. يمكن أن تكون هناك إمكانيات للتحسين الإضافي، مثل إضافة واجهة رسومية للمستخدم، أو تخزين المزيد من المعلومات مثل توقيت كل اختبار.

البرنامج النهائي يمكن أن يكون شيئًا مشابهًا للكود التالي:

python
import random import sys # تعريف قاموس لتخزين درجات الطلاب students_scores = {} def save_score_to_file(name, score, level_of_difficulty): filename = f"{name}.txt" with open(filename, 'a') as f: f.write(f"\n{name} scored {score} on difficulty level {level_of_difficulty}\n") # ... # داخل الحلقة الرئيسية for question_num in range(1, 11): # ... (الكود الحالي) # تحديث درجات الطالب في قاموس الدرجات if name not in students_scores: students_scores[name] = [] students_scores[name].append(score) # حفظ آخر ثلاث درجات فقط if len(students_scores[name]) > 3: students_scores[name] = students_scores[name][-3:] # حفظ النتيجة في ملف نصي خاص بالطالب save_score_to_file(name, score, level_of_difficulty) # ... # عرض المتوسط ​​لآخر ثلاث درجات average_score = sum(students_scores[name]) / len(students_scores[name]) print(f"The average score for {name} is: {average_score}")

يرجى ملاحظة أنه يجب عليك تكرار العملية نفسها لكل طالب. في هذا المثال، يتم حفظ نتائج الاختبار في ملف نصي باسم الطالب، ويتم أيضًا تحديث القاموس الذي يحتفظ بآخر ثلاث درجات ويحسب المتوسط. تأكد من تكرار هذه العمليات لكل طالب في الصف.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!