إدخال بيانات للبرنامج من المستخدم في لغة ++C - ProgrammerTech
Language:

Search

إدخال بيانات للبرنامج من المستخدم في لغة ++C

  • Share this:
إدخال بيانات للبرنامج من المستخدم في لغة ++C

 

أمر الإدخال cin في ++C

دالة cin لإستقبال البيانات من المستخدم, في هذا الدرس سوف نتعرّف على أمر cin نعلم أن البرمجة عبارة عن مُدخلات Input و مُخرجات output و بينهما وحدات المنطق و البرمجيات. سنتعلم اليوم على كيفية إستقبال Input عن طريق لوحة المفاتيح keyboard بإستخدام أمر cin.

الأمر cin يجعل المستخدم قادراً على إدخال بيانات في البرنامج أثناء عمله, نستخدم أمر الإدخال cin c++ بوضع >>. الأمر cin c++ يُشبه cout تماماً لكن cout تقوم بإستخدام إشارة أصغر من مرتين لكتابة ما يليها, بينما cin تقوم بإستخدام إشارة أكبر من مرتين لإستقبال ما يليها. في كل مرة نقوم فيها باستدعاء أمر cin يقوم المترجم بإنتظارنا لإدخال عدد أو كلمة من لوحة المفاتيح. و بعد الإنتهاء من الإدخال و النقر على زر Enter سيتم إرجاع الشيء الذي تم إدخاله في المكان الذي تم منه إستدعاء الأمر cin >>.

cin >>  استقبال ما يليها
cout <<  كتابة ما يليها

 

مثال 1
#include <iostream>
using namespace std;
int main()
{
    int currentYear = 2022;
    int year;
    cout << "Enter The Year your berth....";
    cin >> year;
    int age = currentYear - year;
    cout << "age = " << age << endl;
    return 0;
}

في بداية البرنامج إستخدمنا مكتبة iostream التي تحتوي على أوامر الإدخال و الإخراج ثم إستخدمنا الدالة int main و بعد ذلك بدأنا ببناء البرنامج. عرّفنا متغير عددي int و إسمه currentYear من أجل تثبيت العام الحالي به الذي هو 2022. و أنشأنا مُتغير آخر من أجل إستقبال المواليد و إسمه year ثم كتبنا رسالة تٌطالب المستخدم بأن يكتب تاريخ ميلاده ووضعنا أمر cin لإستقبال البيانات المطلوبة من المستخدم. ثم وضعنا متغير عددي age و كان به عملية طرح السنة الحالية currentYear ناقص مواليد المستخدم year. و قمنا بكتابة أمر طباعة بأن يطبع كلمة age و بعده يطبع للمستخدم عمره الذي قمنا بطرح السنة من المواليد. و عند تنفيذ هذا البرنامج و كتابة مواليد 1995 سوف تكون نتيجته بالشكل.

Enter The Year your berth.... 1995
age = 27

الآن لديك الأداة الخارقة cin يُمكنك عمل بها تطبيقات رائعة و حتى العاب لٌتريها لإصدقائك و تلعب معهم

 

مثال 2

اُكتب برنامج يقوم بأخذ بياناتك الشخصية ( الإسم و العمر و المعدل ) ثٌم يقوٌم بطباعة المعلومات التي أخذها.

#include <iostream>
using namespace std;
int main()
{
    string name;
    int age;
    double cs;
    cout << "user name" << endl;
    cin >> name;
    cout << "how old are you" << endl;
    cin >> age;
    cout << "What is your average" << endl;
    cin >> cs;
    cout << "Hi : " << name << endl;
    cout << "You are your age : " << age << endl;
    cout << "Your GPA is : " << cs << endl;
    return 0;
}

في بداية البرنامج إستخدمنا مكتبة iostream التي تحتوي على أوامر الإدخال و الإخراج ثم إستخدمنا الدالة int main و بعد ذلك بدأنا ببناء البرنامج. أنشأنا مُتغير نصي string و إسمه name من أجل إستقبال الإسم ثم أنشأنا مُتغير عددي int و إسمه age. لإستقبال العمر و متغير نوع عشري double و إسمه cs من أجل إستقبال المعدل التراكمي. ثم وضعنا أمر طباعة يسأل المستخدم عن إسمه كتبنا له بأن يسأله "إسمك الكريم" و إستخدمنا أمر cin و بعده إسم المتغير name أي يطالب المستخدم بكتابة إسمه.

بعدها قمنا بإنشاء دالة طباعة ثانية تسأل المُستخدم عن عمره عبر كتابة "كم عمرك". و أنشأنا أمر cin و بعده المُتغير age الذي نوعه عددي لإستقبال أرقام عمر المستخدم. و بنينا دالة طباعة ثالثة من أجل سؤال المستخدم عن معدله عبر إظهار له "كم معدلك" و أسفلها أنشأنا أمر cin. و وضعنا له إسم المتغير cs المسؤول عن إستقبال المعدل و دائماً المعدل يأتي بشكل عشري المتغير كان نوعه دبل double. و بعدها أنشأنا ثلاث أوامر طباعة من أجل طباعة الإسم و العمر و المعدل.

و عند تنفيذ البرنامج ستكون النتيجة

user name
Muhammad
how old are you
29
What is your average
6.4
Hi : Muhammad
You are your age : 29
Your GPA is : 6.4

نلاحظ من خلال التنفيذ السابق بأنه طَلَبَ من المُستخدم أن يكتب إسمه و كتب muhammad. و عندما كتبه طلب منه أن يكتب عمره و كتبه 27. و بعدها طلب منه كتابة معدله و كتبه 6.4. و عند الضغط على زر Enter في النهاية طبع له البيانات بشكل مُنظّم.

 

إدخال نص بواسطة الدالة ()getline

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

getline(cin, x);

 

مثال 3
#include <iostream>
using namespace std;
int main()
{
    string admin;
    cout << "Enter your admin: ";
    getline(cin, admin);
    cout << "Welcome " << admin;
    return 0;
}

أنشأنا متغير نصي وهو admin وهذا المتغير سوف تتخزن فيه القيمة التي سوف يدخلها المستخدم من الكيبورد. ثم أعطينا رسالة تظهر للمستخدم تطالبه بإدخال إسم الـ admin و بعدها سوف يخزن إسم الأدمن في المتغير النصي. وبعدها قمنا بترتيب عرض البيانات بشكل مرتب.

عند تشغيل الكود و كتابة Saja Alsadig سوف تكون النتيجة كما يلي

Enter your name: Saja Alsadig
Welcome Saja Alsadig

 

مثال 4

أكتب برنامج آلة حاسبة بإستخدام الشروط في لغة C++ و تكون به العمليات الأولية (الجمع, الطرح, القسمة, الضرب).

#include <iostream>
using namespace std;
int main()
{
    int choice;
    cout << "+1 or ÷ 2 or ×3 or -4" << endl;
    cin >> choice;
    if (choice >= 1 &&choice <= 4 )
    {
        int a, b;
        cout << "The first number = ";
        cin >> a;
        cout << "The second number = ";
        cin >> b;
        if (choice == 1)
            cout << a << " + " << b << " = " << a + b << endl;
        if (choice == 2)
            cout << a << " ÷ " << b << " = " << a / b << endl;
        if (choice == 3)
            cout << a << " * " << b << " = " << a * b << endl;
        if (choice == 4)
            cout << a << " - " << b << " = " << a - b << endl;
    }
    else
    {
        cout << "enter one of the four digits" << endl;
    }
    return 0;
}

كما نُلاحظ أنه تم إنشاء برنامج آلة حاسبة يتضمَّن فقط أربع عمليات و هي الأساسية المطلوبة موضوعة ضمن اربع شروط لإختيار نوع العملية.

  • في حال ادخَل المستخدم في البداية رقم 1 سوف تكون العملية جمع.
  • في حال أدخل المستخدم رقم 2 سوف تكون العملية قِسمة.
  • في حال أدخل رقم 3 سوف تكون العملية ضرب.
  • في حال أدخل رقم 4 سوف تكون عملية طرح.

عند تشغيل البرنامج و إختيار رقم 2 مثلاً و نقوم بإدخال له رقمين.

إدخال بيانات للبرنامج من المستخدم c++

 

و في حال ادخلنا رقم 4 و أعطيناه رقمين.

إدخال بيانات للبرنامج من المستخدم لغة c++

 

نلاحظ من خلال العمليتين السابقتين أنه طلب في البداية تحديد نوع العملية بإختيار رقمها. ثم طلب منًّا أن نُدخِل الرقم الأول و بعدها طلب الرقم الثاني و عند إدخاله و الضغط على زر إدخال أظهَر لنا العملية التي قُمنا بها مع الناتج.

 

مثال 5

اكتب برنامج في لغة C++ يقوم بحساب عمر أي شخص, نُعطيه في البداية مواليد الشخص و بعدَها نُعطيه تاريخ السنة الحالية و يقوم بطباعة العمر على الشاشة.

#include <iostream>
using namespace std;
int main()
{
    int dob;
    cout<<"Enter your date of birth"<<endl;
    cin >>dob;
    int tcy;
    cout<<"Enter the birth of the current year"<<endl;
    cin >>tcy;
    cout<<"Your age is: "<<tcy-dob<<endl;
    return 0;
}

لقد قُمنا بإنشاء متغير عددي و هو dob و هذا المتغير هو المسؤول عن تاريخ ميلاد الشخص عندما يطلب منه البرنامج كتابة مواليده. ثم أنشأنا متغير tcy و هو المسؤول عن إدخال السنة الحالية عند طلبها من المستخدم. ثم وضعنا في النهاية يطبع لنا تاريخ الميلاد الحالي و يطرَحهُ من تاريخ ميلاد المستخدم و يطبع عمره على الشاشة. عند الضغط على run سوف يطلب إدخال مواليد المستخدم ثم يطلب منه السنة الحالية, و بعده سوف يطبع له عمره.

إدخال بيانات للبرنامج من المستخدم في c++

 

لقد كتبت له المواليد 1994 ثم طلب مني السنة الذي نحن بها و وضعت 2021 ثم طبع لي العمر على الشاشة و هو 27 سنة.

إدخال بيانات للبرنامج من المستخدم في لغة البرمجة c++

 

 

مثال 6

اكتب برنامج يقوم بحساب النسبة المئوية لعلامة طالب في الإمتحان.

#include <iostream>
using namespace std;
int main()
{
    int exd;
    cout<<"ادخل الدرجة الكاملة للامتحان"<<endl;
    cin>>exd;
    double yse;
    cout<<"ادخل درجتك في الامتحان"<<endl;
    cin>>yse;
    cout<<"درجتك بالنسبة المئوية هي :"<<(yse/exd)*100<<endl;
    return 0;
}

قمنا بإنشاء متغَير exd ليطلب من المستخدم إدخال درجة الإمتحان الكاملة أي العلامة التامّة. ثم أنشأنا متغير yse ليطلب من المستخدم إدخال درجة الطالب في الإمتحان. و طلبنا منه في النهاية أن يقسِّم درجة المستخدم على الدرجة الكاملة للإمتحان مضروبة في 100 و يقوم بطباعة النسبة المئوية للدرجة على الشاشة كما يلي.

كيفية إدخال بيانات للبرنامج من المستخدم c++

 

لقد ادخلنا له أن درجة الإمتحان الكاملة هي 60 و درجة الطالب 45 و قام بطباعة 75 أي هذه النسبة المئوية لهذا الطالب.


Muhammad Alush

Muhammad Alush

إسمي محمد تركي العلوش من سورية من ريف حلب الشرقي 1994, محب للتقنية و التعلم الذاتي, و جميع خبراتي تعلمتها ذاتياً, و اللغات البرمجية التي أتقنها هي html, css, javascript, php, c, python بالإضافة إلى حبي الكبير لمجال الشبكات.

موقعي programmer-tech.com