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

كيف أسوي كود يخرجني من البرنامج في الc++

بدأه ساره الدوسري في 9 مايو 2011 · 6 رد · 691 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الدكتورة طالبة منا مشروع وهو عمل ثلاث برامج في برنامج واحد

والبرنامج الأخير الي هو الـ Exit خروج من البرامج الي أنا فيها وطالبة لنا كود

أنا الحمدلله سويت المشروع وطبقته وكله تمام

include<iostream.h>#
include<conio.h>#
int main()
{
Clrscr();
int a,b,d;
char s;
cout<<"choese\n";
cout<<"a calculator\n";
cout<<"b shaw shape\n";
cout<<"c student degree\n";
cout<<"d Exit\n";
cin>>s;
switch(s)
{
Case'a':
Cout<<"Enter tow number\n";
Cin>>a>>b;
Cout<<"sum="<<a+b;
Cout<<"sud="<<a-b;
Cout<<"mult="<<a*b;
Cout<<"divis="<<a/b;
break;
case'b':
cout<<"\n\n\n\t\t\t*\n\t\t      ***\n\t\t      *****\n\t\t\t*\n\t\t\t*\n\t\t\t*";
break;
case'c':
cout<<"Enter the greade of student\n";
cin>>d;
if(d>=95)
cout<<"A+";
else
if(d>=90)
cout<<"A";
else
if(d>=85)
cout<<"B+";
else
if(d>=80)
cout<<"B";
else
if(d>=75)
cout<<"c+";
else
if(d>=70)
cout<<"c";
else
if(d>=65)
cout<<"D+";
else
if(d>=60)
cout<<"D";
else
cout<<"failed";
break;
case'd':
cout<<"Exit";
break;
}
return 0;
}

بس هي في النقطه الأخيره الي هي Exit ماتبغانا نسوي كذا

تقول أبي إختيار وكود يجعلني ماينفذ الي عندي وبالتالي يخرج لي من البرنامج

أي إستفسار أنا حاضرة وياليت يكون بدري لان تسليم المشروع قرب

الله يرزقكم الجنه على سُررٍ متقابلين "

#2

حقيقة مافهمت كيف تبغي ,

لكن فيه باستخدام default .. مع switch ...

؟؟

#3

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

ببساطة يمكنك إدراج الخيار exit بسهولة !!

نعلم أن العبارة return 0 تعني نهاية البرنامج فإذا أردنا الخروج من البرنامج و إغلاق النافذة ما علينا سوى إدراج العبارة السابقة, هكذا :

case 'd':
return 0;

و لكن دعيني ألفت انتباهك إلى ملاحظات في الكود قد تنفعك أكثر :wink:

  1. لا داعي لاستخدام الدالة clrscr (التي تقوم بمسح الشاشة) في بداية البرنامج لننا لم نطبع شيئا بعد .. فالشاشة ما زالت نظيفة !!
    أذكر أنني عندما كنت في بداية تعلمي للبرمجة كنت أمسح الشاشة عند بداية البرنامج ظنا مني أن هذا يزيد في جودة البرنامج و لكن العكس ... فاستعمالك للدالة هو أمر إضافي لا طائل من ورائه !!!
  2. عند قسمة int على int فالناتج سيكون int بطبيعة الحال, لذلك عليك تحويل الناتج باستخدام الـ casting
  3. عندما يكون العدد الثاني معدوم فلا يمكن إجراء عملية القسمة, لذلك عليك التحقق قبل إجراء العملية.
  4. عندما لا يختار المستخدم أحد الخيارات المتاحة (أقصد a,b,c,d) سيتوقف البرنامج !, كان من الأولى أن تطبعي رسالة تفيد بأن الحرف المُدخل لا ينتمي إلى قائمة الخيارات.
  5. عندما يختار المستخدم A كبيرة فلن يتم تنفيذ الأوامر التابعة لـ a صغيرة لذلك عليك الإنتباه لهذه النقطة .. لأنك تتعاملين مع الحروف عن طريق آسكي فالصغيرة تختلف عن الكبيرة.
  6. حاولي دائما ترتيب الكود و كتابته على شكل قوس برمجي و هي الكتابة القيااسية للأكواد البرمجية.
  7. للأسف الشديد, يبدو أنك ما زلت تستعملين أحد مترجمات العائلة بورلاند الذي يتجاز عمره الآن 30 سنة فقد كان يُستعمل إبان الحرب العالمية الأولى ! :lol:
  8. لاحظت انك تستعملين السي++ القياسية إذ لا وجود لمساحة الأسماء std بل العكس ... تستعملين الإمتداد .h في المكتبات و تخلطين مكتبات السي بالسي++ و تستعملين السلاش مع أن السي++ تقدم الدالة endl على طبق من ذهب !

و هذا الكود بعد التنقيح :

#include<iostream.h>
int main()
{
    int x,y,z;
    char ch;
    cout<<"Choese : "<<endl;
    cout<<"a-calculator."<<endl;
    cout<<"b-shaw shape."<<endl;
    cout<<"c-student degree."<<endl;
    cout<<"d-Exit."<<endl;
    cin>>ch;

    switch(ch)
    {
              case 'a':
              case 'A':     
                   cout<<"x = ";
                   cin>>x;
                   cout<<"y = ";
                   cin>>y;
                   cout<<"sum = "<<x+y<<endl;
                   cout<<"sud = "<<x-y<<endl;
                   cout<<"mult = "<<x*y<<endl;
                   y == 0  ? cout<<"Can not divide by zero \a"<<endl : cout<<"divis = "<<(float)x/y<<endl;
                   break;
              case 'b':
              case 'B':
                   cout<<"\n\n\n\t\t\t*\n\t\t      ***\n\t\t      *****\n\t\t\t*\n\t\t\t*\n\t\t\t*";
                   break;
              case 'c':
              case 'C':
                   cout<<"Enter the greade of student\n";
                   cin>>z;
                   if(z >= 95) cout<<"A+";
                   if(z < 95 && z >= 90) cout<<"A";
                   if(z < 90 && z >= 85) cout<<"B+";
                   if(z < 85 && z >= 80) cout<<"B";
                   if(z < 80 && z >= 75) cout<<"C+";
                   if(z < 75 && z >= 70) cout<<"C";
                   if(z < 70 && z >= 65) cout<<"D+";
                   if(z < 65 && z >= 60) cout<<"D";
                   if(z < 60) cout<<"failed";
                   break;
              case 'd':
              case 'D':
                   return 0;
              default : cout<<"Choose impossible !\a"<<endl;
    }

    return 0;
}

أخوك أحمد.

أرجو لك التوفيق.

1
#4

بالمناسبة, ألا تخافين على مشروعك من السرقة !؟

يُسرق و يُباع لمايكروسوفت مثلا !! :lol:

#5

طالبة الحاسب الآلي : يبدو أنكِ فهمتِ بشكل آخر ، أنا إستخدمت الـ switch عزيزتي = )

الأخ الكريم أحمد :

هههههههههههههههه أضحك الله سنّك يارجل = )

والله أني لست سوا طالبة مُبتدئه وهذا ثاني مستوى لي وأول مره أدرس السي بلس بلس

لكن يبدو أنّكَ مُمتلئ بالمعلومات والفوائد ، لذا حقيقه لن أُفرّطَ فيك = )

وهذهِ طريقة دكتورتنا في كتابة البرنامج = (

رُغمَ أني إشتريت كتاب السي بلس وأطلعت عليه إلا أنه يختلف قليلاً عن ماتُمليه علينا دكتورتنا " هداها الله " = )

أشكرك جداً يا أحمد ، نفع الله بك دُنيا وآخرة ،

والمشروع قدِ إنتهيت منه ولكنّ أود مناقشتك في أشياء أُخرى

وأشياء أنت وضعتها بعد التنقيح :P

أيُمكننا التواصل عن طريق البريد ؟

رفع الله من قدرك يَ أخي "

#6
اقتباس
أيُمكننا التواصل عن طريق البريد ؟

لا أمانع, راجعي الخاص.

اقتباس
رفع الله من قدرك يَا أخي

أشكرك على الدعاء.

بالتوفيق.

#7
أحمد المتألق كتب:

ببساطة يمكنك إدراج الخيار exit بسهولة !!

نعلم أن العبارة return 0 تعني نهاية البرنامج فإذا أردنا الخروج من البرنامج و إغلاق النافذة ما علينا سوى إدراج العبارة السابقة, هكذا :

تصحيح طفيف:

return 0 لا يعني الخروج... فيما يتعلق بإنهاء البرنامج، ممكن تكتب return 1 2 3 ... الخ.. المهم يكون int.

المسالة هي ان البرنامج سيتم انهاؤه عندما يقوم main بreturn اي قيمة.. فقط. لا اكثر ولا اقل

وتلك القيمة غالبا تكون ذات معنى... في الغالب 0 يعني خروج سليم، 1 يعني خروج مع خطا، 2 يعني خروج مع خطأ من نوع آخر... الخ وهكذا

اذا كنت على توزيعة لينكس، فممكن تقوم بالتالي حتى تعرف القيمة return في main

echo $?

خلاصة الكلام.... فيما يتعلق بالخروج، المهم main يقوم return ولا تهم القيمة (0 او غيره نفس الشيء)

الفرق بين 0 و 1 و 2.. الخ هو فقط للبرامج الاخرى التي تريد معرفة حالة البرنامج الاول.

ملاحظة: يوجد

أعضاء في قائمة تجاهلي. لذا عدم ردي عليهم لا يدل على موافقتي الضمية لمحتويات مشاركاتهم.

sigsubway.png

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…