اكتب برنامج بلغة c++ لحساب المعدل الفصلي الجامعي gpa calculater

  • برمجة
  • برمجة سي بلس بلس

اكتب برنامج بلغة c++ لحساب المعدل الفصلي الجامعي

استخدم ماتعلمته بالمادة من اساسيات البرمجة(loops, conditional statements, variables,....etc)

واعطي شرح بسيط عن الية احتساب المعدل الجامعي وعن ماطبقته خلال عمل البرنامج

الأجوبة

 

تعلمنا بالمادة الأمور الأساسية التالية:

 

1.    الأماكن بالذاكرة ونوعيها: variable and constant

2.    أنواع البيانات والفوارق بينها.

3.    العبارات الشرطية بنوعيها

a.    If..else

اذا. والا، بإمكاننا فيها وضع أي شرط نريده، سواء كان مساواة، اكبر,اصغر,اكبر او يساوي, اصغر او يساوي, لايساوي.

b.    Switch case

بإمكاننا فيها وضع شرط مساواة فقط، لانستطيع وضع شرط اكبر,اصغر,اكبر او يساوي, اصغر او يساوي, لايساوي.

4.    الحلقات بانواعها:

a.    For loop

في هذا النمط من الحلقات يتوجب تحديد عداد للحلقة, مع تحديد قيمة ابتدائية وشرط لاستمرارية الحلقة و مقدار تغير بنهاية كل لفة.

b.    While loop

تعني "لطالما", أي ستبقى الحلقة بالدوران الى اجل غير مسمى مادام شرط استمرارية الحلقة محقق, وبمجرد انتقاض الشرط تتوقف الحلقة عن الدوران, أي باختصار ان هذا النمط من الحلقات بإمكاننا استخدامه في حال عدم وضوح عدد مرات الدوران من البداية.

 

c.     Do..while loop

تعني "قم بالاستمرار بالدوران, لطالما الشرط محقق", أي ستبقى الحلقة بالدوران الى اجل غير مسمى مادام شرط استمرارية الحلقة محقق, وبمجرد انتقاض الشرط تتوقف الحلقة عن الدوران, أي باختصار ان هذا النمط من الحلقات بإمكاننا استخدامه في حال عدم وضوح عدد مرات الدوران من البداية.

الفرق بين do while و while, يكمن في اخر لفة, ففي while يتم التحقق من الشرط قبل كل لفة, فبالتالي اخر لفة لن يتم تنفيذها في حال لم يتحقق الشرط, اما في do while يتم التحقق من الشرط بعد كل لفة, فبالتالي اخر لفة سيتم تنفيذها ومن ثم يتم التحقق من الشرط وتنتهي الحلقة.

5.    المصفوفات: وهي طريقة لتخزين عدة قيم بنفس المكان بالذاكرة.

 

 

 

 

سنقوم بعمل برنامج لحساب المعدل الفصلي الجامعي بالاعتماد على ماتعلمناه بالمادة,

 

طريقة حساب المعدل الجامعي من 5

 

لحساب المعدل الفصلي يجب ان نقوم ب

1.    ضرب المعامل الرقمي لدرجة كل مادة مع عدد ساعاتها المعتمدة.

2.    ومن ثم نجمع النواتج مع بعضها لكل المواد،

3.    نقسّم نتيجة الخطوة السابقة على اجمالي عدد الساعات المعتمدة لجميع المواد.

 

جدول المعاملات الرقمية للدرجات:

نظام الدرجات يختلف من جامعة لاخرى لذلك سنقوم بأخذ الشكل الأكثر شيوعا بين الجامعات حيث تكون الدرجات وفق الجدول التالي:

المعامل الرقمي لكل درجة

التقدير

الدرجة باللغة الإنجليزية

الدرجة باللغة العربية

المعامل الرقمي

ممتاز مرتفع

A+

أ

5

ممتاز

A

أ

4.75

جيد جدا مرتفع

B+

ب+

4.50

جيد جدا

B

ب

4

جيد مرتفع

C+

ج+

3.50

جيد

C

ج

3

مقبول مرتفع

D+

د+

2.50

مقبول

D

د

2

راسب

F

هـ

1

 

 

 

 

 

 

مثال:

احمد طالب في الجامعة وقد اخذ في الفصل الدراسي 3 مواد وهي:

اسم المادة

عدد الساعات المعتمدة

الدرجة التي اخذها احمد بالمادة

رياضيات1

3

B+

فيزياء2

3

B

مدخل الى الحاسب

2

C

 

الان نحسب قيمة كل مادة بضرب عدد ساعتها مع المعامل الرقمي للدرجة المأخوذة فيها:

قيمة مادة رياضيات1 = 3*4.50=13.5

قيمة مادة فيزياء1 = 3*4=12

قيمة مادة مدخل الى الحاسب = 2*3=6

الان نجمع قيم المواد كلها: 13.5+12+6 = 31.5

الخطوة الأخيرة: نقسم ناتج الخطوة السابقة على مجموع عدد ساعات المواد التي اخذها احمد في الفصل الدراسي (مجموعها 3+3+2=8 ساعات معتمدة): 31.5/8=3.9375   نقوم بتقريب النتيجة الى رقمين بعد الفاصلة فيصبح المعدل النهائي هو 2.94 / 5


 

والان هذا هو كود البرنامج بلغة c++

//write c++ program to calculate GPA of a student


#include <iostream>
using namespace std;
main()
{
    double points[]= {5.00,4.75,4.50,4.00,3.50,3.00,2.50,2.00,1.00}; 
    string grades[]={"A+","A","B+","B","C+","C","D+","D","F"};
    double gpa=0.0;
    int total_hours=0;
    int subject_count=0;
    string grade="";
    int hours=0;
    cout<<"welcome student, now you have to insert your grades to let me calculate your GPA:";
    while(true) {
        cout<<"\nenter grade of subject no."<<subject_count+1;
        cin>>grade;
        
        if(grade!="stop"){
        cout<<"\nenter credit hours of subject no."<<subject_count+1;
        cin>>hours;
        for(int i=0;i<=8;i++)
        {
        if(grade==grades[i])//found the grade points
        {
        double grade_point=points[i];
        gpa+= grade_point*hours;
        total_hours+=hours;
        break;    
        }
        }
        subject_count++;
        }
        else{break;}
    }
    if(gpa!=0){
        gpa=((gpa/total_hours) * 100) / 100;
    cout<<"your GPA is "<<gpa<<" / 5";
    }
}

 

هل كان المحتوى مفيد؟

تبحث عن مدرس اونلاين؟

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