السلام عليكم ..
إذا كان عندي برنامج يحتوي 2 كلاس .. أحدهما يحتوي المين مثود والاخر كلاس ثاني .. يقوم البرنامج باستقبال الـ ID من اليوزر ويقوم بعرضه بعد ترتيبه تصاعديا باستخدام مثود comapreTo من كلاس Comparable ...
سؤالي .. كيف أستطيع عمل برنامج يقوم بترتيب الـID لعدد كبير من الطلاب ( عدد غير محدد وليس 3 طلاب فقط كما في المثال ) ..
وكيف أعمل حركة أختصر فيها استخدام الـ if ؟
ومثال ذلك :
ــــــــــــــــــــــــــــــــــــــ
1- عرفت 3 أوبجكتز من نوع ستيودنت ( الكلاس الاخر )
Student s1 = new Student () ; Student s2 = new Student () ; Student s3 = new Student () ;
ـــــــــــــــــــــــــــــــــــــ
2- استقبلت المعلومات من اليوزر
( استخدمت الـset لان الداتا ممبر معرفة في الكلاس از private )
java.util.Scanner input = new java.util.Scanner(System.in) ;
System.out.println("Enter ID for the fisrt Student:");
int id = input.nextInt();
s1.setID(id);
System.out.println("Enter name for the fisrt Student:");
String n = input.next();
s1.setname(n);
System.out.println("Enter ID for the second Student:");
id = input.nextInt();
s2.setID(id);
System.out.println("Enter name for the second Student:");
n = input.next();
s2.setname(n);
System.out.println("Enter ID for the third Student:");
id = input.nextInt();
s3.setID(id);
System.out.println("Enter name for the third Student:");
n = input.next();
s3.setname(n);
ــــــــــــــــــــــــــــــــــــــ
3- رتبتهم تصاعديا
if (s1.compareTo(s2) > 0 && s1.compareTo(s3) > 0 && s2.compareTo(s3)> 0 ){
System.out.println(" 1- "+s3.toString());
System.out.println(" 2- "+s2.toString());
System.out.println(" 3- "+s1.toString());
}
else if (s1.compareTo(s2) > 0 && s1.compareTo(s3) > 0 && s2.compareTo(s3) < 0){
System.out.println(" 1- "+s2.toString());
System.out.println(" 2- "+s3.toString());
System.out.println(" 3- "+s1.toString());
}
else if (s2.compareTo(s1) > 0 && s2.compareTo(s3) > 0 && s1.compareTo(s3) > 0 ){
System.out.println(" 1- "+s3.toString());
System.out.println(" 2- "+s1.toString());
System.out.println(" 3- "+s2.toString());
}
else if (s2.compareTo(s1) > 0 && s2.compareTo(s3) > 0 && s1.compareTo(s3) < 0 ){
System.out.println(" 1- "+s1.toString());
System.out.println(" 2- "+s3.toString());
System.out.println(" 3- "+s2.toString());
}
else if (s3.compareTo(s1) > 0 && s3.compareTo(s2) > 0 && s1.compareTo(s2) > 0 ){
System.out.println("1- "+s2.toString());
System.out.println("2- "+s1.toString());
System.out.println("3- "+s3.toString());
}
else if (s3.compareTo(s1) > 0 && s3.compareTo(s2) > 0 && s1.compareTo(s2) < 0 ){
System.out.println("1- "+s1.toString());
System.out.println("2- "+s2.toString());
System.out.println("3- "+s3.toString());
}ــــــــــــــــــــــــــــــ
4- في الكلاس :
;private int ID ;private String name ; private double GPA
{public void setID (int id){ID = id ;
{public int getID (){return ID ;
public String getname (){return name ;}
public void setname (String n){ name = n ;}
public double getGPA(){return GPA;}
(){} public void setGPA
} public class Student implements Comparable
@Override
} (public int compareTo(Object o
Student s = (Student) o;
if( this.ID > s.ID )
return 1;
else if(this.ID < s.ID)
return -1;
else
return 0;ــــــــــــــــــــــــــــــ
سؤالي .. كيف أستطيع عمل برنامج يقوم بترتيب الـID لعدد كبير من الطلاب ( عدد غير محدد وليس 3 طلاب فقط كما في المثال ) كما هو الحال في الواقع .. يعني الاوبجكت ماله حد معين .. وكيف أعمل حركة أختصر فيها استخدام الـ if ... ويعني تنفع مع الاوبجكات الكتيرة
وجزاكم الله خيرًا
ملاحطة : هذا السؤال الأصلي :
Task 1:
Create a class called Student that have the students ID, name and GPA as private data members. You should also implement any needed constructors our methods.
It should also override the following:
• Method equals from Class Object: which should compare the students according to their IDs.
• Method toString from Class Object.
• Method comapreTo from Class Comparable: This should also compare the students according to their IDs.
Task 2:
Create a new class called Main with a main method.
In the main method, create 3 objects from the type student. You should ask the user to enter the information using class Scanner . Finally, test the Student by comparing any two objects using equals before printing the three objects in ascending order.