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

سؤال فيه مشكلة بفحص الإدخال

بدأه حامي الحمى في 2 أبريل 2009 · 9 رد · 597 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قم ببناء قسم باسم Plantوالتي فيها تعريف المعطيات والعمليات التالية لنبتة ما:

- المعطيات: الاسم ، ري (نعم / لا)

- العمليات: نمو، ري، مكافحة الحشرات.

كل عملية / دالة تقوم بطباعة سطر. مثال في الدالة "نمو" يجب طباعة :

System.out.println( “ now growing “ ) ;

اضيفوا للقسم Plant دالة Constructive method التي تأخذ برامترات وتقوم بتهيئة حقول الجسم object

عرفوا جسمان من نوع الكلاس الذي قمتم ببناءه وقوموا بتهيئة متغيرات القسم.

اسم النبتة يحتوي معلومات عن النبتة، ومكوّن من التالي:

اول 3 حروف هي حروف اسم النبتة، بعدها نقطة ومن بعدها 5 حروف التي تعرض نوع ورق النبتة ومن ثم فراغ وبعدها 3 رموز التي تمثل طول النبتة.

قوموا بطباعة تفاصيل النبتتين اللتان قمتم بتهيئتهما.

كان هناك شك بان اسماك النبات لم يتم ادخالها حسب الهيئة المطلوبة، لذا عليكم التفكير كيف ممكن ان تغيروا القسم لكي تفحصوا ما اذا كان اسم النبتة قانوني ام لا واجراء التغيير المطلوب.

يمكنكم المساعدة بالرابط التالي:

http://java.sun.com/j2se/1.4.2/docs/api/ja...ang/String.html

قوموا بطباعة تفاصيل النبتتان اللتان قمتم بتهيئتهما من جديد، هل يوجد تغيير ؟

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

هذه الدالة ترجع رقم صحيح. قوموا بتشغيل هذه الدالة على النبتتان.

اضيفوا للقسم دالة التي تقوم بتغيير نوع ورق النبتة. خلال التغيير يتم طباعة رسالة ما هو نوع الورق السابق – "The leaf type was name1 and the new is name2"

اكتبوا قسم اضافي Tree الذي يعرض شجرة بها بالاضافة الى التفاصيل الخاصة بالنبتة العادية تكون التفاصيل التالية:

- عدد الورق في كل فرع

- مثمر ام لا (نعم / لا)

- شرح كلامي مختصر

اضيفوا للقسم Tree دالة التي تقوم بطباعة تفاصيل الشجرة، ودوال لتحديث الحقول (get/set).

هذا ما قمت بكتابته

لكني لم اعرف كيف يمكنني فحص اذا ما كان اسم النبتة قد تم ادخاله بشكل صحيح ام لا ؟

أرجو المساعدة

class Plant{

String name;
boolean Irr; // to check Irrigation (0- No, 1- Yes)


Plant( String theName , boolean theIrr )
{
	name = theName ;	
	Irr = theIrr ;
}

public void Irrigation(boolean Irr)
{
	if (Irr==true)
		System.out.println("Irrigated");
	else System.out.println("Not Irrigated");
}
public void Growth()
{
	System.out.println( " now growing " );
}

public void Degradation()
{
	System.out.println(" degradated ");
}

public void PrintDetails(){
	System.out.println("Name is: " + name);
	if (Irr==true)
		System.out.println("Irrigated");
	else System.out.println("Not Irrigated"); 
}

}
public class PlantDemo {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Plant plant1= new Plant("abc.rsltn 120", true);
		Plant plant2= new Plant("gfg.hgghd 090", false);

		plant1.PrintDetails();
		plant2.PrintDetails();

	}

}

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#2

السلام عليكم

انا سألت عن الدالة حكولي ان الدالة اسمها MATCH تقريباص

لكن ما عرفت كيف استعملها ولا عرفت كيف عملها بالضبط

يا ريت حد يفيدني

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

السلام عليكم

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#3

يمكنك أن تراجع المقالات التالية

لمحة جافاوية 27: التحقق من المدخلات

لمحة جافاوية 30: فحص المدخلات 2

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

السلام عليكم

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

موضوعان قيمان

جزيت خيرا

سأحاول عمل ذلك واعرضه عبر الموضوع ان شاء الله

السلام عليكم

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#5

السلام عليكم

اخواني انا حسب ما فهمت اني ممكن الكود يكون بهذا الشكل او هذي الهيئة

[a-z]\w{3}[.]{1}[a-z]\w{5}\s{1}[0-9]{3};

لكن كيف ممكن اقوم بعملية الفحص ؟

يعني في كلمة معينة اللي لازم اضيفها عشان يقوم بعملية الفحص !!؟

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

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#6

راجع المقالة الثانية

ستجد فيها جملة if استخدمها

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

السلام عليكم

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

بفضل الله ثم فضلكم قمت بكتابة الكود

وهو كالتالي:

		Pattern p = Pattern.compile("[a-z]{3}[.]{1}[a-z]{5}\\s{1}[0-9]{3}");
		Matcher m1 = p.matcher(plant1.name);
		Matcher m2=p.matcher(plant2.name);

		//checking if the plant names are correct and allow
		if (m1.matches()) // checking the first plant
			System.out.println("The first plant name is correct");
		else System.out.println("The first plant name is incorrect");

		if (m2.matches()) // checking the second plant
			System.out.println("The second plant name is correct");
		else System.out.println("The second plant name is incorrect");

لكن بقي لدي سؤال الآن وهو مشكلة في فهم السؤال نفسه

بمعنى مطلوب في السؤال تغيير المدخل اذا كان خاطئ ولكن كيف يجب ان يكون التغيير ؟

مثلا اذا كان اسم النبتة كالتالي:

abms.rsltn 120

فهو خاطئ

لان القسم الاول من الاسم يجب ان يحتوي 3 احرف

الآن السؤال هو الى ماذا يجب علي ان اغير اسم النبتة ؟

لم افهم السؤال فقلت ربما احدكم لديه خبرة او مرّ عليه سؤال من قبل من هذا القبيل

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

السلام عليكم

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#8

يجب عليك في حال اكتشفت أن اسم النبتة خاطئ تصحيحه

فكر في آلية للتصحيح

مثال لو كان الاسم يحتوي على أرقام

احذف الأرقام

لو كان الاسم أكثر من ثلاث حروف احذف ما بعد الحرف الثالث وهكذا

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#9

السلام عليكم

بوركت اخي الكريم

انا فكرت اني اعمل فصل وبدات اعمل الشي هذا عن طريق split

لكن ارسلت رسالة للمحاضر واخبرني انه ما في حاجة

فقط اظهر اذا الاسم صحيح او لا

لكن انا الآن بحاجة لأمر ثاني

بفرع من السؤال مطلوب

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

هذه الدالة ترجع رقم صحيح. قوموا بتشغيل هذه الدالة على النبتتان.

انا قمت بعمل فصل للسترينج واخذت منه اخر ثلاث ارقام كالتالي:

		String array[] = plant1.name.split(" ");
		for(int i=0;i<array.length;i++)
			System.out.println(array);
		String hight=array[1];

والآن اريد استعمال المتغير hight في الدالة التي تقوم بحساب الفرق بين الاطوال

المشكلة هي انه لا يمكنني عمل Casting من String الى int كي احسب الفرق

هذه هي الدالة التي كتبتها:

static String difference(int hight, String hg)
{
	int diff;
	diff=hight -(String) hg;
	return diff;	
}

فكيف يمكنني حفظ الرقم كـ int ?

بارك الله فيك

السلام عليكم

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

#10

السلام عليكم

بارك الله فيك اخواني

بحمد الله بعد بحث طويل بين صفحات النت وجدت هذه الدالة Integer.parseInt وقامت بالغرض

جزيتم خيرا

الى الفرع التالي

اسأل الله ان يكون سهل !!!

تعب الجسد

ونعيم الروح

جسد يمشي فوق الأرض

وروح ترفرف حول العرش

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