الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج اله حاسبة فى بيئة الكونصول

بدأه ringawy في 25 سبتمبر 2011 · 5 رد · 1,062 مشاهدة · في مشاريع ومسابقات القسم
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

كيفكم يا اخوانى أتمنى يكون الجميع بخير

أقدم لكم برنامج بسيط عبارة عن اله حاسبة ولكنها تحتوى على كثير من الافكار وأنتظر من حضراتكم التعليق على الكود

#include<iostream>
using namespace std;
int main()
{
    float a,b;
    int firstchoice;
    char secondchoice;

    cout<<"                        hello user how are you"<<endl<<"                      this simple calculator v1.2"<<endl;
    again:
          again1:
             cout<<"please choice between"<<endl<<"1-login to calulator now"<<endl<<"2-to know about me who write this program"<<endl<<"3-close this program"<<endl<<"Enter your choice number here =";
             cin>>firstchoice;
             if(cin.fail()==true)
             {
                                 cin.clear();
                                 cin.ignore(1024, '\n');
                                 cout<<"you must Enter number like 1,2,3"<<endl;
                                 goto again1;
                                 }
                                 else
             switch (firstchoice)
             {
    case 1:
    firstErr:
    cout<<"please Enter frist number =";
    cin>>a;
    if (cin.fail()==true)
    {
    cin.clear();
    cin.ignore ( 1024, '\n' );
    cout<<"Error you must input number try input again"<<endl;
    goto firstErr;
    }
    else
    cout<<"please Enter second numbe=";
    cin>>b;
    if (cin.fail()==true)
    {
    cin.clear();
    cin.ignore (1024, '\n');
    cout<<"Error you must input number try input again"<<endl;
    goto firstErr;
    }
    else
    cout<<"please type operation you want like +,-,*,/,"<<endl<<"write your choice =";
    cin>>secondchoice;
    switch (secondchoice)
    {
    case '+':cout<<"---------------"<<endl<<"your mithod is "<<a<<"+"<<b<<"="<<a+b<<endl<<"---------------"<<endl;goto again;break;
    case '-':cout<<"---------------"<<endl<<"your mithod is "<<a<<"-"<<b<<"="<<a-b<<endl<<"---------------"<<endl;goto again;break;
    case '*':cout<<"---------------"<<endl<<"your mithod is "<<a<<"*"<<b<<"="<<a*b<<endl<<"---------------"<<endl;goto again;break;
    case '/':
         if (b<=0)
         {
                 cout<<"Error it can't ( "<<a<<"/0 )"<<"how it's come??"<<endl;
                 goto firstErr;
         }
                 else
         cout<<"---------------"<<endl<<"your mithod is "<<a<<"/"<<b<<"="<<a/b<<endl<<"---------------"<<endl;goto again;break;
    default:cout<<"sorry unknown Error please  just choice between +,-,*,/"<<endl;goto again;break;
    }

    case 2:cout<<"------------------"<<endl<<"myname= mohamed elhabashe"<<endl<<"fromwhere= Egypt"<<endl<<"myage= 25 years"<<endl<<"------------------"<<endl;goto again;break;
    case 3:cout<<"thx for watching bye bye"<<endl;break;
    default:cout<<"Error you must input number between (1 to 3)"<<endl;goto again;
}
    system("pause");
    return 0;
}
#2

وفقك الله، وأتمنى لك مزيداً من التقدم والنجاح!

فيما يتعلق بالبرنامج نفسه فأنا لست مبرمجاً، وإن كان لي من ملاحظات فهي لا تعدو الملاحظات التي تتعلق بسلامة اللغة الانجليزية من حيث الكتابة الصحيحة للكلمات وأحياناً القواعد (قواعد اللغة الانجليزية طبعاً، وليس لغة ++C)

#3

ممتاز وفقك الله. كود جيد.

ولي بعض الملاحظات الصغيرة.

1- ادرس وضع الكود ( المكرر ) فى دالة تناديها عند الحاجة.

2- ادرس الاستغناء عن ال goto وال labels مثل : again1 - firstError ... واستبدل ال Loops بها ( while - For )

3- بالطبع أؤكد على أن تحاول تعلم اللغة جيدًا وإصلاح الأخطاء اللغوية فهي من الأهمية بمكان. فلو لم يفهم المستخدم لبرنامجك ما تقصده لن يستفيد به.

وبارك فيك .

#4

السلام عليكم و رحمة الله وبركاته

مرحبا بك من جديد أخي الكريم و صديقي الغالي محمد.

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

للإفادة, سأضع رابط الموضوع الأول الذي سيكون همزة الوصل بيني و بين القارئ.

برنامج أله حاسبة أتمنى التقييم(بلغة c++) طلع عينى


  1. بالنسبة لملاحظاتي السابقة فقد وضعتَها في عين الاعتبار و قُمْتَ بإدراجها في الكود عَدى واحدة, أقصد التي تتعلق بكتابة الأمر break بعد الحالة default , أذكر أنني قلت لك :
    لاحظت أنك وضعت الأمر break بعد الحالة default و هذا تحصيل حاصل !, فالحالة default هي الأخيرة من switch و عند الوصول إليها سيتم الخروج من القرارswitch حتى لو لم تضع break !
  2. كما قال الإخوة, عليك بكتابة جمل قصيرة, مفيدة و سليمة لغويا حتى يتمكن المستخدم من استخدام البرنامج كما تريد.
  3. حاول قدر المستطاع عدم استخدام الجملة goto لأنها من الأوامر "شبه المحظورة" في السي++, أغلب المبرمجين يشبهها بــ "معكرونة الإسبجتي !", إذا أكثرت من استخدامها ستصاب بالدوار.
  4. لـَمْ تستخدم الحلقات في الكود, كان بإمكانك استخدام while أو do while بدل goto.
  5. حتى يكون الكود قياسي, أنصحك باستخدام الدوال, كل دالة تتولى مهمة معينة و عندما تريد عمل Mise à Jour أو UpDate للكود ستقوم بتغيير ما بداخل الدالة فقط, دون الحاجة إلى مسح سطور و إضافة سطور جديدة في الكود.
  6. عندما يقوم المستخدم بتشغيل البرنامج و يختار أحد الخيارات المتاحة سيعود البرنامج إلى القائمة الرئيسية ليختار المستخدم مجددا, لذلك من الأفضل أن تقوم بمسح الشاشة بين كل اختيار و آخر, حتى تظل الشاشة نظيفة من بقايا الاختيارات مما سيريح المستخدم أكثر.
  7. مع أنك قمت بالتحقق من صحة المدخلات إلا أن هذا التحقق لا يزال قاصرا, لنفرض أن المستخدم أدخل 1.5 عند بداية تنفيذ البرنامج, عندها سيختلط الحابل بالنابل و تحيد الأمور عن مجراها الطبيعي.

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

البرنامج يحتوي على كيجن لتوليد السيريالات حتى يتمكن المستخدم من دخول البرنامج و هذه بعض صور البرنامج :

10blveo6.png

10dnysk6.png

10vxgft6.png

10whzyk6.png

10yrxqf6.png

10ylzkm6.png

10xnjkd6.png

10sawhf6.png

ملاحظة : قمت بكتابة البرنامج باللغة الفرنسية, لا أملك الآن الوقت الكافي لترجمة الكود إلى الإنجليزية, تقبل اعتذاري.

بالتوفيق.

Mini Calc.rar

تم تعديل هذه المشاركة بواسطة أحمد المتألق في 6 أكتوبر 2011 في 16:15

1
#5

@احمد المتألق ..

هل انت تتعامل مع C++ صافية ؟ كيف غيرت لون الخط ؟ هل استعملت الدوال الاعتيادية .. ؟

ممكن تذكر شكل الاستخدام ؟

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#6

مرحبا أستاذي سنان :)

نظرا لأن الكود مُوجه للمبتدئين فقط فقد قمت باستخدام دوال الــ API البدائية (شيئا ما !)

بالنسبة لللون, فقد استخدمت الدالة SetConsoleTextAttribute

أما بالنسبة لتحريك المؤشر فقد استخدمت الدالة SetConsoleCursorPosition

تحياتي.

2

مواضيع مشابهة