هذ ا برنامج class واضح من تصميمه مبدأ عمله وهو حساب مساحات ومحيط بعض الاشكال كل شكل في class دون استخدام التوارث في البرنامج...
السؤال هو حتى لا أطيل عليكم هو كيف أتأكد أن المستخدم دخل رقم ولم يدخل حرف أو أي شيء أخر..
بمعنى لو طلبت من المستخدم أدخال length الطول ثم أدخل حرف L فما يحدث هو أن يعلق البرنامج ....فما هو الحل من وجهت نظركم ...كيف اتحكم بمدخللات المستخدم ..
كيف أعمل الشرط .... مشكورين.؟؟؟
#include
#include
class Rastingle
{
public:
Rastingle () { }
~Rastingle () { }
void Menu();
void Setlength ( float length ) { itslength = length; }
float Getlength () { return itslength; }
void Setwigth ( float wigth ) { itswigth = wigth; }
float Getwigth () { return itswigth; }
float ComputArea () { return itslength*itswigth; } // ÏÇáÉ ÍÓÇÈ ÇáãÓÇÍÉ ááãÓÊØíá
float ComputCircum () { return ( 2*itslength ) + ( 2*itswigth ); } //ÏÇáÉ ÍÓÇÈ ÇáãÍíØ ááãÓÊØíá
private:
float itslength,itswigth;
};
class Circle
{
public :
Circle () { }
~Circle () { }
void SetRadious ( float radious ) { itsradious = radious; }
float GetRadious () { return itsradious; }
double ComputArea () { return itsradious * itsradious * 3.14; } //ÏÇáÉ ÍÓÇÈ ãÓÇÍÉ ÇáÏÇÆÑÉ
double ComputCircum () { return 2 * itsradious * 3.14; } // ÏÇáÉ ÍÓÇÈ ãÍíØ ÇáÏÇÆÑÉ
private :
float itsradious;
};
class Squar
{
public:
Squar () { }
~Squar () { }
void Setlength ( float length ) { itslength = length; }
float Getlength () { return itslength; }
float ComputArea () { return itslength * itslength; } // ÏÇáÉ ÍÓÇÈ ãÓÇÍÉ ÇáãÑÈÚ
float ComputCircum () { return 4 * itslength; } //ÏÇáÉ ÍÓÇÈ ãÍíØ ÇáãÑÈÚ
private:
float itslength;
};
void Rastingle::Menu ()
{
int choce;
char ch;
float Rid,leng,wigh;
Circle C;
Squar S;
while( ch!='n' )
{
cout <<"n********************Menu********************n";
cout <<"n (1)- Rastingle Area : ";
cout <<"n (2)- Rastingle Circum : ";
cout <<"n (3)- Circle Area : ";
cout <<"n (4)- Circle Circum : ";
cout <<"n (5)- Squar Area : ";
cout <<"n (6)- Squar Circum : ";
cout <<"n Choce = ";
cin >> choce;
switch ( choce )
{
case 1:
{
cout <<"n Enter Length = ";
cin >> leng;
cout <<"n Enter Wigth = ";
cin >> wigh;
Setlength (leng);
Setwigth(wigh);
cout <<"n Area = " << ComputArea () <<"n";
break;
}
case 2:
{
cout <<"n Enter Length = ";
cin >> leng;
cout <<"n Enter Wigth = ";
cin >> wigh;
Setlength (leng);
Setwigth(wigh);
cout <<"n Circum = " << ComputCircum() <<"n";
break;
}
case 3:
{
cout <<"n Enter Radious = ";
cin >> Rid;
C.SetRadious(Rid);
cout <<"n Area = " << C.ComputArea () <<"n";
break;
}
case 4:
{
cout <<"n Enter Radious = ";
cin >> Rid;
C.SetRadious(Rid);
cout <<"n Circum = " << C.ComputCircum() << "n";
break;
}
case 5:
{
cout <<"n Enter Length = ";
cin >> leng;
S.Setlength(leng);
cout <<"n Area = " << S.ComputArea () <<"n";
break;
}
case 6:
{
cout <<"n Enter Length = ";
cin >> leng;
S.Setlength(leng);
cout <<"n Circum = " << S.ComputCircum() <<"n";
break;
}
default :
{
cout <<"n Error Enter Between 1 .... 6 n";
}
}
cout <<"n Are you Continue (y/n)? ";
cout <<"n ch = ";
cin >> ch;
}
}
int main()
{
Rastingle R;
R.Menu();
return 0;
}