حل اسئلة و تمارين بلغة الجافا

اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف abushuber في الإثنين ديسمبر 31, 2018 4:50 am

السلام عليكم اصدقائي...ياليت مساعدتكم لي في حل هذه الاسئلة.... لان عندي امتحان بعد يومين....حل اسئلة و تمارين بلغة الجافا  49115110
حل اسئلة و تمارين بلغة الجافا  49203310


عدل سابقا من قبل أحمد مناع في الأربعاء يناير 02, 2019 6:21 am عدل 1 مرات (السبب : وضع عنوان مناسب)
abushuber
abushuber
....
....

تاريخ التسجيل : 29/09/2018
المساهمات : 57
النقاط : 81
التقيم : 0
الدولة : العراق
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف أحمد مناع في الإثنين ديسمبر 31, 2018 6:24 am

اهلا بيك >>

سوف احل لك السؤال الاول حاليا ...أما الاسئلة الاخرى سوف احلها لك بعد الدوام أن شاء الله تعالى :

السؤال الاول : يطلب منك أعطاء مثالاً للاتى :

1_ المتغيرات النصية String Variables 

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

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

المثال :فى المثال التالى قمنا بانشاء متغير أسمة name تم تخزين القيمة النصية abushuber ثم انشاءنا برنامج لطباعة المتغير name و الذى سيقوم بطباعة اسمك المخزن بية 

الكود:

public class Example {

    public static void main(String[] args) {
    
String name = "abushuber";
System.out.println("Hello, your name is " + name);  
        
    }
    
}



2_ الحقل الثابت static field

التعريف :متغير ايضا يتم الاحتفاظ به مشترَكًا بين كافة مثيلات الفئة ...أى يمكن استخدام استخدامة على كافة الفئات 

المثال : فى المثال التالى قمنا بانشاء عدد 2 فئة ....الفئة الاولى ClassName لانشاء الحقل الثابت name وتخزين فية اسمك abushuber ...على النحو التالى :
الكود:

public class ClassName {
 
    public static String name="abushuber";
    
}

الفئة الثانية Example وهى لطباعة قيمة الحقل الثابت بالفئة اعلاه
الكود:

public class Example {

    public static void main(String[] args) {
    

System.out.println("Hello, your name is " + ClassName.name);  

  
    }
    
}



3_ كتل التهيئة initialization blocks 

كتل التهيئة فى لغة الجافا أو initialization blocks بالانجليزية هى مجموعة من التعليمات البرمجية التي يتم تنفيذها و تشغيلها في كل مرة يتم فيها إنشاء كائن الفئة ....فمثلا سنقوم بتكابة كتلة تهيئة لطباعة كلمة Hello فقط سنقوم بفتح قوسين وكتابة التعليمات البرمجية فيها على النحو التالى :
الكود:
{
    
System.out.println("Hello");  
  
}

و لنفرض اننا سنقوم بكتابة برنامج لطباعة اسمك كما فى اول مثال لكن بتغير بسيط على النحو التالى :

الكود:
public class Example {

{
    
System.out.println("Hello");  
  
}
 
 Example () {
String name = "abushuber";
System.out.println(" your name is " + name);

 }  
 public static void main(String[] args) {
  
Example ex = new Example();
  
    }
 
}

فى المثال اعلا ستكون المخرجات على النحو التالى :

Hello
your name is abushuber

وهنا بقمنا بتنفيذ تكلة التهئية وتم كتابة Hello عند انشاء كائن الفئة و بالتى ففى كل مرة ستقوم بانشاء كائن الفئة لطباعة اسمك سيتم طباعة الكلمة Hello



4_ الطرق أو الدوال methods
هي ذالك الجزء من الفئة الذي يختص بالتعامل مع البيانات وتعرف داخل الفئة و بها يتم التفاعل بين أجزاء البرنامج المختلفة والفئة و تحتوي الطريقة على جملة برمجية أو أكثر.... فمثلا سنقوم بانشاء وليكن باسم Egy على النحو التالى :

الكود:

class Egy{
    
}

بداخل تلك الفئة سنقوم بانشاء الطريقة methods المطلوبة منك بالمثال وليكن باسم total لجمع عددين على النحو التالى :

الكود:
class Egy{
    
 void total(int no1,int no2){
    int sun = no1+no2;
     System.out.println("Value= "+sun);
  }        
    
}

و المثال الكامل على النحو التالى :

الكود:

class Egy{
    
 void total(int no1,int no2){
    int sun = no1+no2;
     System.out.println("Value= "+sun);
  }        
    
}

public class Example {
 public static void main(String[] args) {
  
Egy cal=new  Egy();
  
 cal.total(8,5);
  
    }
 
}

للمزيد من المعلومات عن كيفية أنشاء الطرق و الدوال فى الجافا يمكنك زيارة المقال التالى :
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]


5_ المعامل this :

الكلمة this هي كلمة محجوزة في لغة جافا, و هي تستخدم للإشارة إلى الـ Global Variables ويقصد بها المتغيرات التى تم تعريفها بداخل الكلاس و خارج الدوال ....فمثلا سنقوم بانشاء فئة وليكن باسم Egy و سيتم تعريف متغرين رقميين بهاعلى النحو التالى :

الكود:

class Egy{
    int a;
int b;
}

ومن هنا يتضح أننا قمنا بتعريف المتغرين a,b داخل الفئة لكن خارج الدوال أو الطرق ...و سنقوم بعد ذلك بانشاء طريقين بداخلها ....الطريقة الاولى و ليكن باسم setData لتخزين رقمين بها على تم استخدام كلمة this مع المتغير a و لم يتم استخدام كلمة this مع المتغير b و ذلك لترى مخرجات البرنامج فى الحالتين لتوضيح الفكرة النحو التالى :

الكود:
public void setData(int a ,int b){
  this.a = a;
  b = b;
 }

الطريقة الثانية و ليكن باسم showData لطباعة البيانات على النحو التالى :

الكود:
public void showData(){
   System.out.println("Value of A ="+a);
   System.out.println("Value of B ="+b);
 }  

و البرنامج الكامل على النحو التالى :
الكود:

class Egy{
    
 int a;
int b;

 public void setData(int a ,int b){
  this.a = a;
  b = b;
 }
 public void showData(){
   System.out.println("Value of A ="+a);
   System.out.println("Value of B ="+b);
 }  
    
}

public class Example {
 public static void main(String[] args) {
  
Egy cal=new  Egy();
  
cal.setData(5, 7);
cal.showData();

  
    }
 
}


مخرجات البرنامج :

Value of A =5
Value of B =0

و يلاحظ فى تلك المخرجات أنه تم طباعة القيمة المخزنة فى المتغير a لانه قد تم الاشارة الية باستخدام الكلمة this فى حين أن القيمة المخزنة فى المتغير b لم يتم طباعة لانه لم يتم الاشارة الية بالكلمة this ....وهذا هو الفرق فى استخدام كملة this مع المتغيرات التى يتم تعريفها خارج الدوال و الطرق


عدل سابقا من قبل أحمد مناع في الإثنين ديسمبر 31, 2018 7:20 pm عدل 4 مرات

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 952
النقاط : 201717
التقيم : 113
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف abushuber في الإثنين ديسمبر 31, 2018 6:51 am

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:اهلا بيك 

ضع اسئلتك و ستجد حلها باذن الله تعالى 

تحياتى لك
 شكرا لك استاذ...الاسءلة موحودة ع شكل صورة مرفقة مع الموضوع...مااعرف تطهر عدكم اولا...
abushuber
abushuber
....
....

تاريخ التسجيل : 29/09/2018
المساهمات : 57
النقاط : 81
التقيم : 0
الدولة : العراق
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف abushuber في الإثنين ديسمبر 31, 2018 7:37 am

الف الف الف شكر الك استاذ...ممتن لك جدا...انتظر الاجابة منك ع بقية  السؤال الاول وبقية الاسئلة...دمت مباركا
abushuber
abushuber
....
....

تاريخ التسجيل : 29/09/2018
المساهمات : 57
النقاط : 81
التقيم : 0
الدولة : العراق
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف أحمد مناع في الإثنين ديسمبر 31, 2018 3:40 pm

السؤال الثانى :يطلب منك حساب مساحة المنطقة C_Area باستخدام المعادلة الرياضية التالية :

C_Area =(R2*PI)*0.5

حيث أن :

_ قيمة R غير معلومة ولم يحددها السؤال ....لذلك سنفترض أنها 20
_ قيمة PI :هو ثابت رياضي يستخدم في علوم الرياضيات والفيزياء بشكل مكثف ويساوي تقريبا 3.14159

أذن البرنامج سيكون على النحو التالى :
الكود:

public class Example {

public static void main(String[] args) {
final double pi=3.14159;  
int R = 20;
double area = ((R*2)*pi *.05);
System.out.println("Area is = " + area);
    }
 
}


كما يمكنك بدل استخدام قيمة PI مباشرة فى البرنامج يمكنك استخدام الدالة Math.PI و التى توجد قيمة PI على النحو التالى :

الكود:

public class Example {

public static void main(String[] args) {

int R = 20;
double area = ((R*2)*Math.PI *.05);
System.out.println("C_Area is = " + area);
    }
 
}


ولك حرية الاختيار فى كلا البرنامجين أعلاه ...كما يمكنك الاطلاع على المقال التالى لمعرفة كيفية حساب مساحة و محيط الدائرة 
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]


لكن هذا المثال لم يكتفى بهذا المطلوب ...بل طلب ايضا كيف سيكون الناتج فى حالة أستخدام الطريقة overloading واذا تم تغير المعادلة الرياضية اعلاه على النحو التالى :

C_Area =(R2*PI)*0.5*sizingfactor

حيث أن :
القيمة sizingfactor : هى قيمة رقمية من نوع double تترواح ما بين 0.1 الى 0.9 يقوم المستخدم بادخالها

قبل البدء تعال نتعرف على ما هى الطريقة overloading و كيف يتم إنشائها...في Java ، عندما نحدد طريقتين بنفس الاسم ،لكن معلمات مختلفة. يقال أن هذه الطرق محملة بشكل زائد أى انها طريقة من نوع  overloading....لذلك سنقوم بانشاء طريقتين بنفس الاسم و ليكن باسم area

الطريقة الاولى بدون معاملات ....ونستخدمها لاستقبال القيمة التى سيدخلها المستخدم و تخزينها فى المتغير القيمة sizingfactor و ذلك باستخدام الكائن Scanner ([ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]) ...على النحو التالى :

الكود:
double area(){
  System.out.println("Enter radius:");
  Scanner input=new Scanner(System.in);
 double sizingfactor=input.nextDouble();
 if (sizingfactor < 0.1  ) {
   System.out.println("error:The input value can not be less than 0.1");
   System.exit(0);        
                }
 if (sizingfactor > 0.9  ) {

   System.out.println("error:The input value can not be greater than 0.9");
   System.exit(0);        

                }
 return sizingfactor;
    }

يمكنك ملاحظة أننا استخدما جملة if لاجبار المستخدم على ادخال قيم رقمية ما بين 0.1 الى 0.9 كما طلب المثال

الطريقة الثانية تحمل نفس الاسم لكن بعدد 2 معامل على النحو التالى :

الكود:
double area( int R, double pi)
    {
        double z = ((R*2)*pi *.05);
        return z;
    }  
ويمكن ملاحظة أننا استخدما الطريقة اعلاه لاجراء المعادلة الحسابية

و المثال الكامل على النحو التالى :

الكود:

import java.util.Scanner;

class Egy{
double area(){
  System.out.println("Enter The sizingfactor value:");
  Scanner input=new Scanner(System.in);
 double sizingfactor=input.nextDouble();
 if (sizingfactor < 0.1  ) {
   System.out.println("error:The input value can not be less than 0.1");
   System.exit(0);        
                }
 if (sizingfactor > 0.9  ) {

   System.out.println("error:The input value can not be greater than 0.9");
   System.exit(0);        

                }
 return sizingfactor;
    }
    
    double area( int R, double pi)
    {
        double z = ((R*2)*pi *.05);
        return z;
    }  
}

public class Example {

public static void main(String[] args) {
final double pi=3.14159;  
int R = 20;


Egy n = new Egy();

double area = n.area(R, pi)*n.area();
System.out.println("the C_Area is "+area);
 
    }
 
}



السؤال الثالث : مكون من شقين 

الشق الاول كتابة برنامج لحل المعادلة الرياضية التى بالصورة لكن للاسف هذه المعادلة الرياضية لم افهمها حتى استطيع كتابة البرنامج لها لذلك اعتذر عنها ...الا اذا كنت تعرفها فاشرحها لى رياضية و ساقوم بكتابة البرنامج لها

أما الشق الثانى فمطلوب منك تعريف التالى :

1_Overloading أو أسلوب التحميل الزائد بالعربية:تحدثنا عنه فى السؤال الثانى و ابسط تعريف له هو ميزة تسمح للفئة أن تحتوي على أكثر من طريقة لها نفس الاسم ،لكن بمتغيرات و معاملات مختلفة....كما فى الشكل التوضيحيى التالى 
حل اسئلة و تمارين بلغة الجافا  Constructor_overloading

2_الفئة StringBuffer : هى احد فئات التعامل مع النصوص فاذا كان يتم استخدام الفئة String لمعالجة النصوص التي لا يمكن تغييرها ، فانة يتم استخدام الفئة StringBuffer النصوص التي يمكن تعديلها اثناء سير البرنامج 




الان قد تم الانتهاء من الاجزاء الخمسة المطلوبة فى السؤال الاول و من السؤال الثانى و السؤال الثالث بشقيه  ....تبقى لك السؤال الرابع غدا ان شاء الله على اقصي تقدير

تقبل تحياتى و ارجوا المعذرة

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 952
النقاط : 201717
التقيم : 113
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف زهراء في الإثنين ديسمبر 31, 2018 7:59 pm

الان قد تم الانتهاء من الاجزاء الخمسة المطلوبة فى السؤال الاول و من السؤال الثانى و السؤال الثالث بشقيه  ....تبقى لك السؤال الرابع غدا ان شاء الله على اقصي تقدير

أعتقد ان السؤال الرابع أخى [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]  قد تم حلة فى مشاركة سابقة على الرابط التالى :

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

يرجى التعديل علية فقط 
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 395
النقاط : 664
التقيم : 53
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف أحمد مناع في الأربعاء يناير 02, 2019 6:28 am

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:
الان قد تم الانتهاء من الاجزاء الخمسة المطلوبة فى السؤال الاول و من السؤال الثانى و السؤال الثالث بشقيه  ....تبقى لك السؤال الرابع غدا ان شاء الله على اقصي تقدير

أعتقد ان السؤال الرابع أخى [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]  قد تم حلة فى مشاركة سابقة على الرابط التالى :

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

يرجى التعديل علية فقط 

أشكرك [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] على المساعدة  cheers cheers

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 952
النقاط : 201717
التقيم : 113
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف abushuber في الأربعاء يناير 02, 2019 7:07 am

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:
الان قد تم الانتهاء من الاجزاء الخمسة المطلوبة فى السؤال الاول و من السؤال الثانى و السؤال الثالث بشقيه  ....تبقى لك السؤال الرابع غدا ان شاء الله 

أشكرك [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] على المساعدة  cheers cheers
كل الشكر والامتنان لكما استاذي...ربي يقضي حاجتكما للدنيااوالاخرة
abushuber
abushuber
....
....

تاريخ التسجيل : 29/09/2018
المساهمات : 57
النقاط : 81
التقيم : 0
الدولة : العراق
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف abushuber في الجمعة يناير 04, 2019 4:12 pm

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:
أعتقد ان السؤال الرابع أخى [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]  قد تم حلة فى مشاركة سابقة على الرابط التالى :

شكرا لك اختي زهراء..لكني صراحة اني مبتدأ  وجاي اتعلم وشفت الرابط اللي حضرتك اقترحتي ...بس انلاصت علي   حل اسئلة و تمارين بلغة الجافا  1f615  حل اسئلة و تمارين بلغة الجافا  1f615  ولو اتعبك بس ياريت اتلخصيلي بس الشغلات اللي اجت بالسؤال الرابع..لان من شفت الكود..جاني صداع...هههههههه
abushuber
abushuber
....
....

تاريخ التسجيل : 29/09/2018
المساهمات : 57
النقاط : 81
التقيم : 0
الدولة : العراق
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف أحمد مناع في الجمعة يناير 04, 2019 11:02 pm

اهلا بيك الاخ الكريم 

نعم كنت متاكد أن الصداع سياتى اليك  حل اسئلة و تمارين بلغة الجافا  1f600 وذلك لان الرابط الذى اتت به الاستاذة زهراء به مثال مشابه لمثالك و لكن ليس نفسه كما انه غير مشروح ....فعلى اى حال نشكر الاستاذة زهراء على الرابط 

أما بالنسبة للمطلوب فى السؤال الرابع هو إنشاء برنامج لعرض بيانات موظف كالاسم و العنوان و المرتب الشهري ..ثم عرض هذه البيانات بعد إضافة علاوة شهرية Bonus على مرتب الموظف هذا على أن يتم ذلك بإنشاء عدد 2 كلاس أو فئة باستخدام المعلومات الواردة فى السؤال على النحو التالى : 

الكلاس الاول :

A_أن يكون الكلاس باسم Employee ويتم ذلك على النحو التالى :


الكود:

class Employee {


    
}

B_ أن يحتوي الكلاس على الحقول fields التالية :


  • حقل باسم Name نوعة String ...لتخزين أسم الموظف فية
  • حقل باسم Salary نوعة double...لتخزين المرتب الشهرى للموظف
  • حقل بأسم addr نوعة String... لتخزين عنوان الموظف



ويتم ذلك على النحو التالى :
الكود:

class Employee{
    
private String Name;
private String addr;
private double Salary;  

}

C _أن يحتوي الكلاس على اربعة الطرق methods :

طريقة بأسم display بدون اى معاملات او براميترات لطباعة بيانات الموظف على النحو التالى :
الكود:
public void display(){
  System.out.println("Employee Name: "+ Name +"\n"
                     + "Employee addr: " + addr + "\n" 
                     + "Employee Salary: "  + Salary); 
    
 }


طريقة بأسم GetName من نوع String ...وطالما تم تحديد نوعها أذن تلك الطريقة ستقوم بارجاع قيمة باستخدام الكلمة return والقيمة المطلوب ارجاعها هى اسم الموظف على النحو التالى :
الكود:
public String GetName(){
  return Name;    
}


طريقة باسم GetAddr من نوع String ...لارجاع عنوان الموظف على النحو التالى :
الكود:
public String GetAddr(){
  return addr;    
}


طريقة باسم GetSalary من نوع double ... لارجاع المرتب الشهرى للموظف على النحو التالى :


الكود:

public double GetSalary(){
 return Salary;   
}


d_ إنشاء constructor أو بالعربية المشيد الخاص بالكلاس Employee وهو عبارة عن دالة من نوع خاص نستطيع كتابة متغيرات فيه يستطيع الأوبجكت أن يستخدمها في كلاس آخر ويأخذ نفس اسم الكلاس ...ويتم ذلك على النحو التالى :
الكود:

class Employee{
     


public Employee(String N, String ad, double S) {
         this.Name = N;
         this.addr = ad;
         this.Salary = S;
    }

}

e_المطلوب فى هذه الجزئية make field invisible To user أى اخفاء قيمة المتغيرات الموجودة بداخل الكلاس ...ويتم ذلك من خلال حذف الكلمة this الموجودة مع المتغيرات فى المشيد أو constructor أعلاه وهذا العملية تسمى Instance Variable hiding حيث يقوم المتغير بداخل أي دالة الذي اسمه بنفس اسم المتغير الموجود في الكلاس باخفاء قيمة المتغير الموجود بالكلاس ....و بالتالى فان الكلاس الاول سيكون على النحو التالى بعد تلك التعديلات :

الكود:

class Employee{
   public Employee(String N, String ad, double S) {
         Name = N;
         addr = ad;
        Salary = S;
    }


أذن الكلاس الاول Employee بالكامل سيكون على النحو التالى :

الكود:

class Employee{
    
private String Name;
private String addr;
private double Salary;  


public Employee(String N, String ad, double S) {
         Name = N;
         addr = ad;
        Salary = S;
    }

public void display(){
  System.out.println("Employee Name: "+ Name +"\n"
                     + "Employee addr: " + addr + "\n" 
                     + "Employee Salary: "  + Salary); 
    
 }

public String GetName(){
  return Name;    
}

public String GetAddr(){
  return addr;    
}

public double GetSalary(){
 return Salary;   
}

}




الكلاس الثاني :

a_أن يكون أسم الكلاس Manager :

الكود:

class Manager {

    
}

لكن الدوال التى بالكلاس الاول Employee سيتم استخدامها فى هذا الكلاس لذلك يجب أن نجل هذا الكلاس يرث هذه الدوال من الكلاس Employee و يتم ذلك من خلال الكلمة المحجوزة extends وذلك على النحو التالى :


الكود:
class Manager extends Employee {

    
}



B_أن يحتوي الكلاس على الحقول fields التالية :


  • حقل باسم Position نوعة String...لا اعلم الحكمة من وجودة 
  • حقل باسم Bonus نوعة double....لتخزين قيمة العلاوة الشهرية 



ويتم ذلك على النحو التالى :

الكود:
class Manager extends Employee {

private String Position;
private double Bonus; 

    
}


c_ أن يحتوي الكلاس على الخمس الطرق methods التالية:

طريقة بأسم display بدون اى معاملات او براميترات على النحو التالى :
الكود:
public void display() {
        super.display();
       
    }


طريقة بأسم CalNewSalary من نوع double ...لاحساب المرتب الجديد بعد إضافة العلاوة الشهرية الية و ارجاع الكلمة باستخدام الكلمة return على النحو التالى :
الكود:
public double CalNewSalary(){
 double baseSalary = super.GetSalary();
 return baseSalary + Bonus; 
}


طريقة باسم setBonus من نوع double ...بمعامل يسمى B من نوع double لتخزين قيمة العلاوة الشهرية للموظف على النحو التالى :
الكود:
public double setBonus(double B){
 Bonus = B;   
 return Bonus;
   }


طريقة باسمGetBonus من نوع double ... لارجاع قيمة العلاوة الشهرية للموظف على النحو التالى :
الكود:
public double GetBonus(){
 return Bonus;
   }


الطريقة الرئسية main والتى ستقوم بتشغيل البرنامج ككل

الكود:
public static void main(String [] args) {
  Manager manager = new Manager("ahmed", "Elon Musk", 42344);
  manager.display();
  
  manager.setBonus(5000);
  
  Employee e = manager;
  
 
 
       System.out.println("Employee Name: "+ e.GetName() +"\n"
                     + "Employee addr: " + e.GetAddr() + "\n" 
                     + "Employee New Salary: "  +  manager.CalNewSalary()); 
 }

أذا لم تستطيع فهم الشفرات التى بداخل الطريقة الرئسية MAIN فسال و سنشرح لك


أذن الكلاس الثانى Manager بالكامل على النحو التالى :

الكود:

class Manager extends Employee {

private String Position;
private double Bonus;  

    public Manager(String Name, String addr, double Salary) {
        super(Name, addr, Salary);
        Bonus =0;
    }
 public static void main(String [] args) {
  Manager manager = new Manager("abushuber", "the Republic of Iraq", 42344);
  manager.display();
  
  manager.setBonus(5000);
  
  Employee e = manager;
  
 
 
       System.out.println("Employee Name: "+ e.GetName() +"\n"
                     + "Employee addr: " + e.GetAddr() + "\n" 
                     + "Employee New Salary: "  +  manager.CalNewSalary()); 
 }
 
public void display() {
        super.display();
       
    } 

public double CalNewSalary(){
 double baseSalary = super.GetSalary();
 return baseSalary + Bonus; 
}
public double setBonus(double B){
 Bonus = B;   
 return Bonus;
   }
public double GetBonus(){
 return Bonus;
   }
}
 



و بالتالى فان البرنامج بالكامل المطلوب فى السؤال الرابع على النحو التالى :

الكود:

class Employee{
    
private String Name;
private String addr;
private double Salary;  


public Employee(String N, String ad, double S) {
         Name = N;
         addr = ad;
        Salary = S;
    }

public void display(){
  System.out.println("Employee Name: "+ Name +"\n"
                     + "Employee addr: " + addr + "\n" 
                     + "Employee Salary: "  + Salary); 
    
 }

public String GetName(){
  return Name;    
}

public String GetAddr(){
  return addr;    
}

public double GetSalary(){
 return Salary;   
}

}

class Manager extends Employee {

private String Position;
private double Bonus;  

    public Manager(String Name, String addr, double Salary) {
        super(Name, addr, Salary);
        Bonus =0;
    }
 public static void main(String [] args) {
  Manager manager = new Manager("abushuber", "the Republic of Iraq", 42344);
  manager.display();
  
  manager.setBonus(5000);
  
  Employee e = manager;
  
 
System.out.println("----------------------------"); 
       System.out.println("Employee Name: "+ e.GetName() +"\n"
                     + "Employee addr: " + e.GetAddr() + "\n" 
                     + "Employee New Salary: "  +  manager.CalNewSalary()); 
 }
 
public void display() {
        super.display();
       
    } 

public double CalNewSalary(){
 double baseSalary = super.GetSalary();
 return baseSalary + Bonus; 
}
public double setBonus(double B){
 Bonus = B;   
 return Bonus;
   }
public double GetBonus(){
 return Bonus;
   }
}
 



المخرجات طباعة أسم الموظف و عنوانة و مرتبة قبل العلاوة ثم طباعة نفس البيانات مع زيادة العلاوة 

حل اسئلة و تمارين بلغة الجافا  970062947

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 952
النقاط : 201717
التقيم : 113
الدولة : مصر
الجنس : ذكر

http://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

حل اسئلة و تمارين بلغة الجافا  Empty رد: حل اسئلة و تمارين بلغة الجافا

مُساهمة من طرف abushuber في السبت يناير 05, 2019 4:07 am

[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] كتب:

أما بالنسبة للمطلوب فى السؤال الرابع هو إنشاء برنامج لعرض بيانات موظف كالاسم و العنوان و المرتب الشهري ..ثم عرض هذه البيانات بعد إضافة علاوة شهرية Bonus على مرتب الموظف هذا على أن يتم ذلك بإنشاء عدد 2 كلاس أو فئة باستخدام المعلومات الواردة فى السؤال على النحو التالى : 
صراحة استاذ احمد لاادري كيف لاعبر عن امتناني لك...كل الشكر لك...وربي يفتح عليك من اوسع ابوابه...طريقتك بالتوضيح لاتحتاج الى شرح..وهذا مايجعلني اطمع في ان اتعلم منك ....يوجد عندي اسئلة اخرى...ساجعلها كموضوع جزء ثاني لهذا الموضوع..حتى الكل يستافد من حلها من قبل حضرتك...اتمنى اتجاوبني عليها بنفس الاسلوب ...وكل الود والتقدير لك
abushuber
abushuber
....
....

تاريخ التسجيل : 29/09/2018
المساهمات : 57
النقاط : 81
التقيم : 0
الدولة : العراق
الجنس : ذكر

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى