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

يا عباقرة الجافا الى الخطأ

مغلق
بدأه kousai في 20 مايو 2007 · 4 رد · 570 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

يبدو انني لم استطيع متابعة المواجهة مع الجافا

عندي واجب لازم قدمه الاسبوع الاتي

وبما انو حل الواجب ممنوع بالمنتدى فقمت انا باللي اقدر عليه

حليت اللي طلع معي (رح يبين معكم اني مازلت سيء جدا) ومحتاج مساعدتكم

بالحقيقة كنت حطيت رابط السؤال ولكنه باللغة الالمانية لذلك قمت بترجمته وسوف اكتبه لكم

الطلب الاول

قم بعمل كلاس Engine الذي يصور ميزات موتور سيارة ما كالتالي

قوة الموتور يجب ان تكون في (PS)

عدد السيلندر

نوع الوقود

قم بتعريف هده الميزات وانتبه الى مايلي

1_ اعمل كود لنوع الوقود (بنزبن , مازوت , زيت )

2_ اعمل كود لنوع الموتور (موتوربنزين , موتور مازوت)

3_انتبه الى ان قوة الموتور لا يجب ان تقل عن (20PS ) ولا يجب ان تزيد عن ( 400 PS )

4_ انتبه الى ان عدد السيلندر لا يجب ان يقل عن 3 ولا يجب ان يزيد على 12

5_الموتو المعياري standard_motor يملك 75 PS و 4 سيلندر ويدار على البنزين

الطلب الثاني

قم بأعطاء قيم لل الثوابت constants

1_ لنوع الموتور Motor-typ

2_ لانواع الوقود الثلاثة

3_للقيمة الكبرى والقيمة الصغرى والقيمة المعيارية لقوة الموتور (maximal, minimal , standard)

4_للقيمة الكبرى والقيمة الصغرى والقيمة المعيارية لعدد السيلندر(maximal , minimal , standard)

5_ وأخيرا قيم للوقود المعياري standard_fuel

الطلب الثالث

اكتب 4 (constructor chaining) اربعة كونستروكتورات مرتبطة مع بعضها وهي كما يلي

كونستروكتور لا يحتوي على parameter

كونستروكتور يحتوي على parameter واحد فقط

كونستروكتور يحتوي على اثنين parameter

كونستروكتور يحتوي على ثلاثة parameter

وبالنسبة لترتيب واختيار parameter فهو اختياري كما تحب ولا يوجد اي شرط

واستخدم هنا الثوابت constants المعطاه للقيم المعيارية standard

الطلب الرابع

اكتب لكلا من الرموز المعرفة Getter and Setter

اي يجب علينا ان نكتب لكل من نوع الوقود وعدد السيلندر وقوة الموتور الميثود غيتر و سيتر

استعمل هنا المعطات في التوابت للقيام بالفحوصات اللازمة كما انه يمكنك هنا ان تستعمل switch

الطلب الخامس

اكتب ميثود جديد

int getType()

هده المثود يعطيك نوع الموتور من خلال نوع الوقود المستعمل

البنزين يدير فقط موتو البنزين

اما موتور المازوت فيمكن ان يدار من نوعين للوقود هما المازوت والزيت

هنا انت مجبور على استخدام switch

الطلب الاخير

اكتب ميثود String toString()

وهده الميثود يجب ان تحول الميزات لتضهر كما يلي

Typ X ,177 PS (10 Zylinder

وهنا يجب على اكس x ان يستقبل الكود المختار لنوع الموتور

انتهى السؤال اتمنى ان اكون قد استطعت توصيل الفكرة العامة لكم

والان اترككم مع الكود الذي كتبته على امل ان تساعيدوني

public class Engine {
 //the Power in PS
 private int power;

 //Zylinder
 private int zylinder;
 //the Type of te fuel
 private int fuel;
 private int Benzin = 1;
 private int Diesel = 2;
 private int oel = 3;
 //Die Motor-Type
 private int motortyp;
 private int Benzinmotor = 1;
 private int Dieselmotor = 2;

 //Standard Motor
 private int standard_power = 75;
 private int standard_zylinder = 4;
 private int standard_fuel = Benzin;
 //Standard fuel
 private int standard_motortyp = Benzinmotor;

 //constant Standard-power
 static final private int Max_power = 400;
 static final private int Min_power = 20;

 //constant Standard-Zylinder 
 static final private int Max_Zylinder = 12;
 static final private int Min_Zylinder = 3;

 public Engine(){

  this.standard_power = 75;
  this.standard_zylinder = 4;
  this.standard_fuel = Benzin; 
  this.standard_motortyp = Benzinmotor;

 }

 public Engine(int power){ //constant with 1.Parameter

  this.power = power;
 }
 public Engine(int zylinder, int power){	  //constant with  2.Parameter
 this.power = power;
 this.zylinder = zylinder;
 }

 public Engine(int power, int zylinder, int fuel) { //constant with 3.Parameter 
 this.power = power;
 this.zylinder = zylinder;
 this.fuel = fuel;

 }

 //Getter for the power
 public int getLeistung(int power){
  if (power > 400 || power < 20){
  return standard_power;
  }
  else {
   return this.power = power;
  }
 }

 // Setter for the power
 public void setLeistug(){
 this.power = power;
 }

 //Getter for the Zylinder 
 public int getZylinder(int zylinder) {
  if (zylinder < 3 || zylinder > 12) {
 return standard_zylinder;
  }
}
 //Setter  for Zylinder
 public void setZylinder(int zylinder){
  this.zylinder = zylinder;
 }
 //Getter for the fuel 
 public int getFuel(int fuel){
  if (fuel == 1) {
  return fuel = Benzin; }
  else if (fuel == 2) {
   return fuel = Diesel;
  }
  else {
   return oel;
  }
 }
 //Setter for fuel
 public void setFuel(int fuel) {
  this.fuel = fuel;
 }
 public int getType(int fuel, int motortyp) {
  switch (Benzin) {
  case  1 :
  break;
  }
   switch (Diesel) {
  case 2 :
   break; 
   }
   switch (Diesel) {
   case 2 :
   default :
   }
 }
 public String toString() {
  String 
  return  "Motortyp " + getType(fuel) + ", " + getpower(power) + " PS " + getZylinder(zylinder) + " (Zylinder)";

}
}

قمت برفع الملف حتى تتمكنو من قرائته بوضوح

Engine.txt

#2

ماشاء الله ، كود جميل

اخي المشكله بالمثد

public String toString() {

  return  "Motortyp " + getType(fuel) + ", " + getpower(power) + " PS " + getZylinder(zylinder) + " (Zylinder)";

}

فلا توجد مثد getType تحتوي على مدخل واحد ،

انا لم افهم ماهو المطلوب ، ولكن اعتقد ان السؤال يريد منك انشاء مثد جديده تحتوي على متغير واحد ، او بدون متغير :

اقتباس
الطلب الخامس

اكتب ميثود جديد

int getType()

هده المثود يعطيك نوع الموتور من خلال نوع الوقود المستعمل

البنزين يدير فقط موتو البنزين

مافهمت جملت: هده المثود يعطيك نوع الموتور من خلال نوع الوقود المستعمل ، حاول تتأكد من مدخلاتها قد تكون لاتحتاج إلى type

كذلك في جملة السويتش :

public int getType(int fuel, int motortyp) {
  switch (Benzin) {
  case  1 :
  break;
  }
   switch (Diesel) {
  case 2 :
   break;
   }
   switch (Diesel) {
   case 2 :
   default :
   }
}

لماذا 3 سويتش ، وكذلك لم تقم بارجاع قيمة انتجر ، فكر بهدوء هنا .

لاتنسى أن تضيف setter & getter لكل الخصائص التي لديك ( قوة الموتور ، عدد السليندر ، نوع الوقود )

اصلح هذه الاخطاء وان شاء الله امورك تمام ..

#3

thak you

i have tried again

public class Engine {
	//the Power in PS
	private int power;

	//Zylinder
	private int zylinder;
	//the Type of the fuel

	private int fuel;
	private final static int Benzin = 1;
	private final static int Diesel = 2;
	private final static int oel = 3;
	//The Motor-Typen
	private int motortyp;
	private final static int Benzinmotor = 1;
	private final static  int Dieselmotor = 2;

	//Standard Motor
	private final static int standard_power = 75;
	private final static int standard_zylinder = 4;
	private final static int standard_fuel = Benzin;  //Standard fuel
	private final static int standard_motortyp = Benzinmotor;

	//Konstanten Standard-power
	private final static int Max_power = 400;
	private final static int Min_power = 20;

	//Konstanten Standard-Zylinder
	private final static int Max_Zylinder = 12;
	private final static int Min_Zylinder = 3;

	public Engine(int power, int zylinder, int fuel) { 

	this.power = power;
	this.zylinder = zylinder;
	this.fuel = fuel;

	}
	public Engine(){

		this(standard_power, standard_zylinder, standard_fuel);

	}

	public Engine(int power){ 

		this(power, standard_zylinder, standard_fuel);
	}
	public Engine(int zylinder, int power){	  
		this(power, zylinder, standard_fuel);
	}




	public int getPower(int power){
		if (power > 400 || power < 20) {

		return standard_power;
		}
		else {
			return this.power = power;
		}
	}


	public void setPower(){
	this.power = power;
	}

	public int getZylinder(int zylinder) {
		if (zylinder < 3 || zylinder > 12) {
	return standard_zylinder;
		}
	else {
	return zylinder;
	}

}

	public void setZylinder(int zylinder){
		this.zylinder = zylinder;
	}

	public int getFuel(int fuel){
		switch (Benzin) {
		case 1 :
		break;
		}
		switch (Diesel) {
			case 2 :
			break;
		}
		switch (oel) {
			case 3 :
			default :
		}

	}
	public void setFuel(int fuel) {
		this.fuel = fuel;
	}
	public int getType(int fuel, int motortyp) {

		switch (Benzin) {
		case  1 :
		return Benzin;
		}
			switch (Diesel) {
		case 2 :
		return Diesel;
			}
			switch (Diesel) {
			case 3 :
			return Diesel;
			default :
			}
	}
	public String toString() {
		return  "Motortyp " + getType(fuel, motortyp) + ", " + getPower(power) + " PS " + getZylinder(zylinder) + " (Zylinder)";

}
}
#4

مادام انك جعلت المثد تستقبل مدخلين ، فلا داعي لاضافة مثد جديده تستقبل مدخل واحد

الخطأ كان بسبب أنه عندما تعرف مثد على انها ترجع انتجر فلا بد ان تعيد انتجر على اطار المثد ، ليس بداخل السويتش ،

وانا هنا رجعت صفر وانا جازم بانه لن يصل الى هذه الجمله ، ولكنه الكومبايلر يريد هذا !

كذلك لاتحتاج الى 3 سويتش ، انت تريد الاختيار بحسب الfuel المدخل ، وانا عدلت على هذه المثد واضفت النوع الثالث oel

هذا تعديل بسيط مع اختبار للكلاس ، حاول تختبر اكثر وتطبع المخرجات وتتأكد انها صحيحه .

 class Engine {
	//the Power in PS
	private int power;

	//Zylinder
	private int zylinder;
	//the Type of the fuel

	private int fuel;
	private final static int Benzin = 1;
	private final static int Diesel = 2;
	private final static int oel = 3;
	//The Motor-Typen
	private int motortyp;
	private final static int Benzinmotor = 1;
	private final static  int Dieselmotor = 2;

	//Standard Motor
	private final static int standard_power = 75;
	private final static int standard_zylinder = 4;
	private final static int standard_fuel = Benzin;  //Standard fuel
	private final static int standard_motortyp = Benzinmotor;

	//Konstanten Standard-power
	private final static int Max_power = 400;
	private final static int Min_power = 20;

	//Konstanten Standard-Zylinder
	private final static int Max_Zylinder = 12;
	private final static int Min_Zylinder = 3;

	public Engine(int power, int zylinder, int fuel) {

	this.power = power;
	this.zylinder = zylinder;
	this.fuel = fuel;

	}
	public Engine(){

		this(standard_power, standard_zylinder, standard_fuel);

	}

	public Engine(int power){

		this(power, standard_zylinder, standard_fuel);
	}
	public Engine(int zylinder, int power){	  
		this(power, zylinder, standard_fuel);
	}




	public int getPower(int power){
		if (power > 400 || power < 20) {

		return standard_power;
		}
		else {
			return this.power = power;
		}
	}


	public void setPower(){
	this.power = power;
	}

	public int getZylinder(int zylinder) {
		if (zylinder < 3 || zylinder > 12) {
	return standard_zylinder;
		}
	else {
	return zylinder;
	}

}

	public void setZylinder(int zylinder){
		this.zylinder = zylinder;
	}


	public void setFuel(int fuel) {
		this.fuel = fuel;
	}
	public int getType(int fuel, int motortyp) {
		int i=0;
		switch (fuel) {
		case  1 :
		return Benzin;	 
		case 2 :  
		return Diesel;
			case 3 :
		return oel;
			default :
			}
			return 0;
	}
	public String toString() {
		return  "Motortyp " + getType(fuel, motortyp) + ", " + getPower(power) + " PS " + getZylinder(zylinder) + " (Zylinder)";

}
}

 class test {
	 public static void main(String [] args){
		 Engine e=new Engine();
		 System.out.println(e);
	 }
 }

عندما لاتستخدم احد المدخلات ، داخل المثد ( مثل motortyp في المثد getType ) فإنك لاتحتاج أن ترسله أصلاً ، وتكتفي بمدخل واحد ،

#5

الله حيك اخ عيسى

زبط البرنامج وقدمتو وكل الامور تمام

شكرا لالك مرة تانية ولا تأخذني عم عدبك معي

هذا الموضوع مغلق.

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