اذهب إلى المحتوى

السؤال

نشر (معدل)

عملي يطلب فيه المبرمج من المستخدم ادخال الخيارات التالية

1. لتفعيل خدمة )إضافة طالب( حسب تسلسل الرقم الجامعي

2. لتفعيل خدمة البحث عن طالب حسب

a. رقمه الجامعي

b. اسمه

3. لتفعيل خدمة حذف بيانات طالب

4. لتفعيل خدمة الفرز حسب معيار محدد

a. فرز حسب الرقم الجامعي

b. فرز حسب االسم

c. فرز حسب السنة الدراسية

d. فرز حسب الكلية

e. فرز حسب المعدل

5. لتفعيل خدمة طباعة قوائم الطالب

يتم تمثيل الطالب من خالل الئحة مترابطة مؤلفة من صف الطالب )class student(

بيانات الطالب )الرقم الجامعي -االسم-تاريخ الميالد-السنة الدراسية-الكلية-المعدل السنوي(

Class student{

Int id;

String Name;

Date birthdate;

Int Year;

String College;

Double avg;}

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال

Recommended Posts

  • 0
نشر

الأسئلة الإختبارية لا يتم الإجابة عليها بشكل مباشر، ولكن يمكن إرشادك لطريقة الحل، وأيضًا لم يتم توضيح ما هي اللغة المستخدمة في البرنامج وهل مطلوب استخدام قاعدة بيانات؟ أرجو توضيح ما المطلوب لمساعدتك بشكل أفضل.

وعلي أي حال، إليك الخطوات المطلوبة لتفعيل كل خدمة في البرنامج هي كالتالي:

1- لتفعيل خدمة إضافة طالب

  • طلب من المستخدم إدخال تسلسل الرقم الجامعي للطالب الذي يريد إضافته.
  • إنشاء كائن من الصف الطالب (class student) باستخدام البيانات التي يدخلها المستخدم، مثل الاسم والرقم الجامعي والكلية والمعدل السنوي.
  • تسلسل الرقم الجامعي للطالب الجديد بحسب الرقم الذي يدخله المستخدم.

2- لتفعيل خدمة البحث عن طالب

  • طلب من المستخدم اختيار طريقة البحث المرغوبة، سواء كان البحث بالرقم الجامعي أو الاسم.
  • استرجاع بيانات الطالب المطابقة للبحث، مثل الاسم والرقم الجامعي والكلية والمعدل السنوي.

3- لتفعيل خدمة حذف بيانات طالب

  • طلب من المستخدم إدخال رقم الجامعي للطالب الذي يريد حذفه.
  • البحث عن الطالب المطابق للرقم الجامعي ويتم حذف بياناته.

4- لتفعيل خدمة الفرز حسب معيار محدد

  • طلب من المستخدم اختيار معيار الفرز المطلوب، سواء كان الفرز بالرقم الجامعي أو الاسم أو السنة الدراسية أو الكلية أو المعدل السنوي.
  • فرز القائمة الحالية من الطلاب بناءً على المعيار المختار.

5- لتفعيل خدمة طباعة قوائم الطلاب

طباعة قائمة بجميع الطلاب المسجلين بالبرنامج، ويتضمن ذلك بيانات كل طالب مثل الاسم والرقم الجامعي والكلية والمعدل السنوي.

  • 0
نشر

سأقدم شرحًا نظريًا مفصلاً لتصميم برنامج إدارة طلاب الجامعة باستخدام البرمجة الكائنية (Object-Oriented Programming) مع بعض الأمثلة البسيطة.

في البرمجة الكائنية، يتم التفكير في البرنامج على أنه مجموعة من الكائنات التي تتفاعل مع بعضها البعض لتنفيذ مهمة ما. وتتألف الكائنات من الخصائص والأساليب.

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

يتم تصميم الصف (class) للطالب في البرمجة الكائنية باستخدام الكود التالي:

class Student:
    def __init__(self, id, name, birthdate, year, college, avg):
        self.id = id
        self.name = name
        self.birthdate = birthdate
        self.year = year
        self.college = college
        self.avg = avg

حيث تعتبر الدالة __init__ هي الدالة المنشئة للصف وتقوم بتهيئة الخصائص اللازمة للكائن. ويمكن إنشاء كائنات للطلاب باستخدام الصف السابق والقيام بالإضافة، البحث، الحذف، الفرز والطباعة باستخدام الأساليب المناسبة.

على سبيل المثال، يمكن إنشاء كائنات لعدة طلاب كالتالي:

student1 = Student(1, "Ahmed", "01/01/2000", 3, "Engineering", 85.5)
student2 = Student(2, "Sara", "02/02/2001", 2, "Science", 90.2)

ويمكن إضافة الطلاب الجدد إلى قائمة (list) باستخدام الدالة append() كالتالي:

students_list.append(student)

ويمكن البحث عن الطلاب باستخدام الدالة filter() والدالة lambda كالتالي:

if choice == 1:
        id = int(input("Enter student ID: "))
        result = list(filter(lambda x: x.id == id, students_list))
    elif choice == 2:
        name = input("Enter student name: ")
        result = list(filter(lambda x: x.name == name, students_list))

ويمكن فرز الطلاب حسب معيار محدد باستخدام الدالة sort() والدالة lambda ويمكن طباعة قوائم الطلاب باستخدام الدالة print() كالتالي:

def print_students():
    for student in students_list:
        print(student.id, student.name, student.birthdate, student.year, student.college, student.avg)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...