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

حساب سرعة المروحة

بدأه 201lama في 24 يناير 2010 · 3 رد · 660 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لو سمحتم اريد منكم مساعدة في هذا البرنامج

البرنامج يتكون من 3 متغيرات ثابته وبتكون public اذا كانت SLOW=1 واذاكانت MEDIUM =2 واذا FAST=3

متغير من نوع int وبيكون من نوع private لتحديد سرعة المروحة وقيمته الافتراضية هي SLOW

متغير من النوع boolean واسمه on حتي يبين لنا ما اذاكانت المروحه تعمل, وقيمتها الافتراضية off

متغير اخر من النوع double private واسمه radius لحساب دوره المروحة. وقيمته الافتراضية 5

non-arg constractor وقيمته الافتراضية للمروحة(أيش المفروض انه يكون في داخل هذا الكنستراكتور)

انشاء setter & getter methods لكل المتغيرات الثلاثة السابقة.

toString method حتى تعيد لنا المعلومات عن المروحة و حالتها.

يجب ان يكون لدينا main method التي تحتوي على 2 مراوح و مصفوفة لثلاثة مراوح.

ممكن تتطلعوا على برنامجي

مشكورين

package assignment2;
public class Fan {

 public final int SLOW = 1;
 public final int MEDIUM=2;
 public final int FAST = 3;
 private int speed = SLOW;
 private boolean on = false;
 private double radius=5;

 //**Create a constructor**//
 Fan(){


 }//end constructor


 public void setSpeed(int speed){
 if(speed==1)
 speed = SLOW;
 else if (speed== 2 )
 speed = MEDIUM;
 else if (speed ==3)
 speed =FAST;

 }//end setspeed method 
 public int getSpeed(){
 int gs;


 return gs; 
 }//end getSpeed


 public String toString(){
 return "The fan at a speed("+speed +") and it is "+on;

 }//end toString Method 


 public static void main(String[]args){
 Fan fan1,fan2;

 // f = setSpeed(Fan.FAST);
 Fan f = new Fan();

 fan1 = new Fan();
 fan2 = new Fan();
 // fan1.setRadius(10);
 // fan2 = new Fan(23,4,2);
 System.out.println(fan1);
 System.out.println(fan2);

 }//end main
}//end class

تم تعديل هذه المشاركة بواسطة herch في 24 يناير 2010 في 14:31 — السبب: الوسم [code]

#2

ال constructor تتم فيه عادة ال initialization للمتغيرات، لكنك قمت بذلك خارج ال constructor عندما قمت بتعريف المتغيرات، لذلك لا يوجد ما تكتبه فيه.

الطريقة getSpeed من االمفروض أنها تعيد speed

	public int getSpeed() {
		return speed;
	}//end getSpeed

في الطريقة setSpeed، ما تقوم بتغييره هو المتغير الذي تمرره لل method، وليس المتغير speed الخاص بال instance. يجب أن تضيف this

	public void setSpeed(int speed) {
		if (speed == 1) {
			this.speed = SLOW;
		} else if (speed == 2) {
			this.speed = MEDIUM;
		} else if (speed == 3) {
			this.speed = FAST;
		}
	}//end setspeed method

اقتباس
انشاء setter & getter methods لكل المتغيرات الثلاثة السابقة.

أنشات فقط ال getter & setter الخاص ب speed، يجب أن تضيف الباقي.

	public boolean isOn() {
		return on;
	}

	public void setOn(boolean on) {
		this.on = on;
	}

	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}

اقتباس
يجب ان يكون لدينا main method التي تحتوي على 2 مراوح و مصفوفة لثلاثة مراوح.

لم تنشئ أي مصفوفة

#3

في الشفره ، لا توجد علاقة بين سرعة المروحة و المتغير on

يجب ان تكون هناك علاقة ما .. فعندما اقوم باضافة سرعة للمروحة يجب ان تتغير قيمة المتغير on الى true

وكذلك العكس عندما اجعل سرعة المروحة صفر يجب ان تكون قيمة المتغير on=false

هناك طرق اخرى واعتقد انها افضل في ترابط الكود .. ويمكنك استخدام ما يحلو لك

هذا الكود فيه تعديلات مع ما اضافة herch

package assignment2;

public class Fan {

	public  static enum SPEED{
		OFF		(0, false),
		SLOW	(1, true),
		MEDIUM	(2),
		FAST	(3);

		private int speed;
		private boolean on;
		SPEED(int speed){
			this(speed, true);
		}
		SPEED(int speed, boolean on){
			this.speed=speed;
			this.on=on;
		}
		public int getSpeed() {
			return speed;
		}
		public boolean isOn() {
			return on;
		}
		public static SPEED value(int value){
			for (SPEED speed : SPEED.values()) {
				if(value==speed.getSpeed()){
					return speed;
				}
			}
			return null;
		}
	}

	private int speed ;
	private boolean on = false;
	private double radius=5;

	//**Create a constructor**// 
	Fan(){   
		start(SPEED.SLOW);
	}//end constructor  

	public void start(SPEED speed){
		this.speed = speed.getSpeed();
		this.on=speed.isOn();
	}
	public void shutdown(){
		this.speed = SPEED.OFF.getSpeed();
		this.on=SPEED.OFF.isOn();
	}

	public void setSpeed(SPEED speed) {
		this.speed = speed.getSpeed();
	}//end setspeed method 

	public int getSpeed() {
		return speed;

	}//end getSpeed



	public boolean isOn() {
		return SPEED.value(speed).isOn();
	}


	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}

	public String toString(){
		return "The fan at a speed("+speed +") and it is "+on;  
	}//end toString Method   

	public static void main(String[]args){ 
		Fan f = new Fan();
		System.out.println(f);

		f.shutdown();
		System.out.println(f);

		f.start(SPEED.FAST);
		System.out.println(f);

		f.start(SPEED.OFF);
		System.out.println(f);

	}//end main

}//end class
#4

اشكركم اخي herchو اخي العيافي ع مساعدتكم لي بس المشكلة اني مش فاهمه كيفية استخدام الconstructors. ممكن تفيدوني بمرجع مناسب حتى افهم اكثر

ولكم كل الشكر والتقدير

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