تعريف Class يحوي Parameterized constructor وإنشاء الـ Objects

أكتب برنامج يحوي class اسمه Fraction (كسر ) ، هذا الـ class لديه  Two Data Members :

1.بسط    2. مقام ،

-أنشِئ هذا الـ class ، ثم في الـ main function :

1. عرّف كسرين    .

2.أعطي الكسر الأول قيمة 1/2 .

3.أطلب من المستخدم أن يعطي قيمة للكسر الثاني.

4.أطبع equal إذا كان الكسرين متساويين و not equal إذا لم يكونا متساويين.

*أجب على السؤال بإجابتين الأولى باستخدام Default constructor والأخرى باستخدام Parameterized constructor.

الحل الأول:

#include <iostream>
using namespace std;

//solution by default constructor
class Fraction
{
private:
 int numerator;
 int denominator;
public:

 //constructor and destructor
 Fraction(){ numerator = NULL; denominator = NULL; }
 ~Fraction(){}

 //set functions
 void setNumerator(int num){numerator = num;}
 void setDenominator(int num){denominator = num;}

 //Get functions
 int getNumerator(){return numerator;}
 int getDenominator(){return denominator;}

};

int main() {

 Fraction f1, f2;

//initialize the 1st fraction by set functions
 f1.setNumerator(1);
 f1.setDenominator(2);

//read the 2nd fraction value from the user and set the value by set functions
 int num;
 cout << "Enter a numerator: ";
 cin >> num;
 f2.setNumerator(num);
 cout << "Enter a denominator: ";
 cin >> num;
 f2.setDenominator(num);

//comparing by get functions
 if ((f1.getNumerator() == f2.getNumerator()) && (f1.getDenominator() == f2.getDenominator()))
 cout << " Equal" << endl;
 else
 cout << " Not equal" << endl;

 system("pause");
 return 0;
}

الحل الثاني:

#include <iostream>
using namespace std;

//solution by parameterized constructors
class Fraction
{
private:
 int numerator;
 int denominator;
public:

 //constructor and destructor
 Fraction(int num, int den){ numerator = num; denominator = den;}
 ~Fraction(){}

 //set functions
 void setNumerator(int num){numerator = num;}
 void setDenominator(int num){denominator = num;}

 //Get functions
 int getNumerator(){return numerator;}
 int getDenominator(){return denominator;}

};

int main() {
//initialize the 1st fraction by parameterized constructors
 Fraction f1(1, 2);

//read the 2nd fraction value from the user and set the value by parameterized constructors
 int num1, num2;
 cout << "Enter a numerator: ";
 cin >> num1;

 cout << "Enter a denominator: ";
 cin >> num2;

 Fraction f2(num1, num2);

//comparing by get functions
 if ((f1.getNumerator() == f2.getNumerator()) && (f1.getDenominator() == f2.getDenominator()))
 cout << " Equal" << endl;
 else
 cout << " Not equal" << endl;

 system("pause");
 return 0;
}

تعريف Class

-في جامعة معيّنة يوجد 3 أنواع من Classroom ، كل Classroom لديه رقم و الحد الأعلى لعدد الطلاب الذي من الممكن أن يتحمّله والقسم الذي يستخدم هذا الـ Classroom، أنشِئ Class لـ Classroom.

الحل:

#include <iostream>
#include <string>
using namespace std;

class Classroom
{
public:
 //Memebr functions

//Default Constructor
 Classroom()
 {
 number = 0;
 MaxCapacity = 0;
 type = '\0';
 Department = '\0';
 } 
//Destructor
 ~Classroom(){} 

 //Set functions
 void setNumber(int num) { number = num; }
 void setMax(int Max){ MaxCapacity = Max; }
 void setType(string T) { type = T; }
 void setDepartment(string D){ Department = D; }

 //Get functions
 int getNumber(){ return number; }
 int getMax(){ return MaxCapacity; }
 string getType(){ return type; }
 string getDepartment(){ return Department; }
private:
 //Data Members
 int number;
 int MaxCapacity;
 string type;
 string Department;

}; //Each class end with semicolon

اقتباس

تعريف المتغيرات

يمكن تعريف المتغيرات من نفس النوع في سطر واحد ويكون الفصل بينهم باستخدام الـ comma “,” وليس الـ semicolon “;”

#include <iostream>
using namespace std;

int main()
{
    int a, b, c;
    char x = '&' , y = '*';
    double num1 = 9.8, num2;

    system("pause");
    return 0;

}


السطر السابع : نلاحظ أنه تم تعريف متغيرين من نفس النوع في سطر واحد وإعطائهم قيم (initialize) في نفس الوقت .
السطر الثامن: تعريف متغيرين من نفس النوع في نفس السطر وإعطاء قيمة (initialize)  لواحد منهم فقط.