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

تمارين بلغة الجافا ... create a class player with the following attributes

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

تمارين بلغة الجافا ... create a class player with the following attributes Empty تمارين بلغة الجافا ... create a class player with the following attributes

مُساهمة من طرف أحمد مناع الثلاثاء يونيو 02, 2020 10:44 am

اهلا بكم السؤال على النحو التالى :

تمارين بلغة الجافا ... create a class player with the following attributes 410


المطلوب فى هذا النشاط ما يلى :

1_ انشاء فئة باسم player بالحقول التالية


  • int PlayerId  
  • String name 
  • double salary

2_فى الفئة player إنشاء طريقة Generic method باسم StoreplayerDetails لاخذ خريطة مجزئة hashmap كملعمة لها وحفظ بيانات هذه الخريطة فى ملف نصي بالتنسيق التالي : key id name salary
3_ تنفيذ الطرق  getter و setter المناسبة لاسترداد وتحديث قيمة المتغيرات 
4_ انشاء فئة رئسية باسم MainProgram والتى تحتوي على الطريقة main
5_ فى الفئة MainProgram انشاء مصفوفة من ثلاثة كائنات للفئة player
6_انشاء خريطة مجزئة hashmap باسم Keys لتخزين الثلاث كائنات من الفئة playe مع المعرف الفريد للكائن الذي يتجاوز الطريقة  hashCode باستخدام المعدالة التالية :

key=2*key +i

7_ فى الفئة player إنشاء واجهة interface باسم Update 
8_ بداخل الواجهة Update مطلوب انشاء طريقة عامة Generic method باسم updateSalaries لاخذ خريطة مجزئة hashmap كملعمة لها و راجاع قائمة انتظار Queue بعد تحديث الراتب بقيمة 500 لكل كائن player باستخدام تعبير lambda expression 

9_تنفيذ واجهة المقارنة Comparable فى الفئة palyer 



الحل :

اولا : الفئة player

الكود:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

public class player implements Comparable <player> {
 
int PlayerId ;
String name ;
double salary;

    //Constructors
    public player(int PlayerId) {
        this.PlayerId = PlayerId;
    }

    public player(){ } 


    //Getters and setters
    public void setPlayerId(int PlayerId) {
        this.PlayerId = PlayerId;
    }
   
    public void setName(String name) {
        this.name = name;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public int getID() {
        return PlayerId;
    }

    public String getName() {
        return name;
    }

    public double getSalary() {
        return salary;
    }


@Override
    public int hashCode() {
       
        int key = 2;
     
        return key=2*key+PlayerId;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final player other = (player) obj;
        if (this.PlayerId != other.PlayerId) {
            return false;
        }
        return true;
    }

   
  @Override
 public String toString(){
   
    return hashCode()+" "+getID() +" "+getName()+" "+getSalary();

 }

  // generic method StoreplayerDetails
  public <T> void StoreplayerDetails( HashMap<Integer,T> inputMap ) {
      // save elements into text file
     
      PrintWriter pw = null;
        try {
            pw = new PrintWriter(new FileOutputStream("OutPut.txt"));
            for(T  element : inputMap.values()){
                pw.println(element);
                System.out.println(element);
            }
            pw.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(MainProgram.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            pw.close();
        }
  }

    @Override
    public int compareTo(player other) {
        if(this.salary>other.salary)
        return 1;
    else
        if(this.salary<other.salary)
            return -1;
    return 0; 
    }
 
    //
public interface Update  {
 
   
  public <T> void updateSalaries( HashMap<Integer,player> inputMap);
   
}
   
}


ثانيا : الفئة MainProgram

الكود:

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Queue;
import player.player.Update;

public class MainProgram {
   
   
     
    public static void main(String[] args) {
       
    // create queue
      Queue<player> q = new LinkedList<>();
     
    // array of 3 player
      player p[] = new  player[3];   
     
    //  create  to store array of  player
    HashMap< Integer,player> Keys = new HashMap<>();
   
    // Object data
    p[0] =new player(1);
    p[0].setName("Ali");
    p[0].setSalary(5000);
   
    p[1] =new player(2);
    p[1].setName("Sayed");
    p[1].setSalary(7000);
     
    p[2] =new player(3);
    p[2].setName("soha");
    p[2].setSalary(3000);
   
    // store into hashmap
    Keys.put(1, p[0]);
    Keys.put(2, p[1]);
    Keys.put(3, p[2]);
   
    // implement StoreplayerDetails for save map into txt file
    p[0].StoreplayerDetails(Keys);
     
     
        // anonymous inner class using interface
        Update up = new Update(){

            @Override
            public <T> void updateSalaries(HashMap<Integer, player> map) {
             
                  // Salary update with lambda expression
                    map.forEach((k, p) -> p.setSalary(p.getSalary() + 500));
   
                    // add my Queue after update salary
                    map.values().stream().forEach((p) -> {q.add(p); });
     
                    //print elements in the q
                    System.out.println("new map"+q.toString());
            }
           
        } ;
     
      // implement updateSalaries method TO update salaries and print elements in the q queue
      up.updateSalaries(Keys);
     
     
      // create new queue
      Queue<player> new_q = new LinkedList<>();
     
     
      // store updateSalaries into new queue
        new_q.addAll(q);
       
        // print new queue
     
        new_q.stream().forEach((s) -> {
            System.out.println(s.toString());
        });
     
    }

}



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

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

https://egy-tech.forumegypt.net

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

تمارين بلغة الجافا ... create a class player with the following attributes Empty رد: تمارين بلغة الجافا ... create a class player with the following attributes

مُساهمة من طرف Sewar Saify الأربعاء يونيو 03, 2020 10:47 am

يعطيك الف العافية
هل هناك اي حل بخصوص الفرع C ؟
Sewar Saify
Sewar Saify
.
.

تاريخ التسجيل : 28/05/2020
المساهمات : 5
النقاط : 11
التقيم : 4
الدولة : فلسطين
الجنس : انثى

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

تمارين بلغة الجافا ... create a class player with the following attributes Empty رد: تمارين بلغة الجافا ... create a class player with the following attributes

مُساهمة من طرف أحمد مناع الأربعاء يونيو 03, 2020 10:57 am

Sewar Saify كتب:يعطيك الف العافية
هل هناك اي حل بخصوص الفرع C ؟

اهلا وسهلا استاذة

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

واتمنى لو توصلى لفعل ذلك لا تبخلى علينا 

تحياتى

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

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

https://egy-tech.forumegypt.net

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

تمارين بلغة الجافا ... create a class player with the following attributes Empty رد: تمارين بلغة الجافا ... create a class player with the following attributes

مُساهمة من طرف Sewar Saify الجمعة يونيو 12, 2020 7:42 am

هاد حل السؤال كامل ويتضمن الفرع C بتغيرات بسيطة

الكود:



package javaapplication16;





import java.awt.event.ActionEvent;


import java.awt.event.ActionListener;


import java.io.File;


import java.io.FileNotFoundException;


import java.io.PrintWriter;


import java.util.HashMap;


import java.util.LinkedList;


import javax.swing.JOptionPane;


import javax.swing.Timer;





class Player implements Comparable<Player>


{


   int id;


   String name;


   double salary;





   public Player(int id, String name, double salary)


   {


       this.id = id;


       this.name = name;


       this.salary = salary;


   }


   public void setId(int id) {


       this.id = id;


   }





   public void setName(String name) {


       this.name = name;


   }





   public void setSalary(double salary){


       this.salary = salary;


   }


   public int getId() {


       return id;


   }





   public String getName() {


       return name;


   }





   public double getSalary() {


       return salary;


   }





  public static <T>void storePlayerDetails(HashMap<Integer,T>hm)


  {


      try


      {


      HashMap<Integer,Player>h = (HashMap<Integer,Player>)hm;


      PrintWriter out = new PrintWriter(new File("E:\\Players.txt"));


      for(Integer i:hm.keySet())


          out.println(i+" "+h.get(i).getId()+" "+h.get(i).getName()+" "+h.get(i).getSalary());


     


      out.flush();


      }


      catch(FileNotFoundException ex)


      {


          System.out.println(ex.toString());


      }


  }





   @Override


   public int compareTo(Player player)


   {


       if(salary>player.getSalary())


       return 1;


       return 0;


   }


  static interface Update


  {


      LinkedList<Player> updateSalaries(HashMap<Integer,Player> map );


  }


 


}


public class JavaApplication16


{


    Timer timer ;


    LinkedList<Player> queue = new LinkedList<Player>() ;


   public static void main(String[] args)


   {


       Player players[]= new Player[3];


       HashMap<Integer,Player>hash=new HashMap<Integer,Player>();


       Integer key=2;


       players[0]=new Player(1,"Ahmad",5000);


       players[1]=new Player(2,"Omar",6000);


       players[2]=new Player(3,"Mohammed",3000);


       


       for(Integer i=0;i<players.length;i++,key++)


           hash.put(hashing(key,i),players[i]);


        Player.storePlayerDetails(hash);


       


       Player.Update update;


       update =(HashMap<Integer,Player> hash_map)->


        {  


           LinkedList<Player>data=new LinkedList<Player>();      


           for(Integer i:hash_map.keySet())


           {


               Player temp = hash_map.get(i);


               double salary = temp.getSalary()+500;


               temp.setSalary(salary);


               data.add(temp);


           }


           return data;  


        };


       JavaApplication16 g = new JavaApplication16();


       LinkedList<Player>p=(LinkedList<Player>) update.updateSalaries(hash).clone();


       while(!p.isEmpty())


       {


           System.out.println( p.getFirst().getId()+" "+ p.getFirst().getName()+" "+ p.getFirst().getSalary()+" ");


           g.queue.add( p.getFirst());


           p.poll();


       }


     


       ActionListener action = new ActionListener()


       {


           @Override


           public void actionPerformed(ActionEvent e)


           {


               LinkedList<Player> p = g.queue ;


               g.timer.stop();


               printPlayerDetails(p);


               


           }


           


       };


       g.timer = new Timer(5000,action);


      g.timer.start();


       JOptionPane.showMessageDialog(null, "please wait to print player details");


       


       


   }


   


   public static int hashing(int key,int i)


   {


       return 2*key+i;


   }


   public static void printPlayerDetails(LinkedList<Player> q)


   {


       while(!q.isEmpty())


       {


           Player temp = q.getFirst();


           System.out.println(temp.getId()+" "+temp.getName()+" "+temp.getSalary()+" ");


           q.poll();


       }        


   }


   


} import java.awt.event.ActionEvent;


import java.awt.event.ActionListener;


import java.io.File;


import java.io.FileNotFoundException;


import java.io.PrintWriter;


import java.util.HashMap;


import java.util.LinkedList;


import javax.swing.JOptionPane;


import javax.swing.Timer;





class Player implements Comparable<Player>


{


   int id;


   String name;


   double salary;





   public Player(int id, String name, double salary)


   {


       this.id = id;


       this.name = name;


       this.salary = salary;


   }


   public void setId(int id) {


       this.id = id;


   }





   public void setName(String name) {


       this.name = name;


   }





   public void setSalary(double salary){


       this.salary = salary;


   }


   public int getId() {


       return id;


   }





   public String getName() {


       return name;


   }





   public double getSalary() {


       return salary;


   }





  public static <T>void storePlayerDetails(HashMap<Integer,T>hm)


  {


      try


      {


      HashMap<Integer,Player>h = (HashMap<Integer,Player>)hm;


      PrintWriter out = new PrintWriter(new File("E:\\Players.txt"));


      for(Integer i:hm.keySet())


          out.println(i+" "+h.get(i).getId()+" "+h.get(i).getName()+" "+h.get(i).getSalary());


     


      out.flush();


      }


      catch(FileNotFoundException ex)


      {


          System.out.println(ex.toString());


      }


  }





   @Override


   public int compareTo(Player player)


   {


       if(salary>player.getSalary())


       return 1;


       return 0;


   }


  static interface Update


  {


      LinkedList<Player> updateSalaries(HashMap<Integer,Player> map );


  }


 


}


public class JavaApplication16


{


    Timer timer ;


    LinkedList<Player> queue = new LinkedList<Player>() ;


   public static void main(String[] args)


   {


       Player players[]= new Player[3];


       HashMap<Integer,Player>hash=new HashMap<Integer,Player>();


       Integer key=2;


       players[0]=new Player(1,"Ahmad",5000);


       players[1]=new Player(2,"Omar",6000);


       players[2]=new Player(3,"Mohammed",3000);


       


       for(Integer i=0;i<players.length;i++,key++)


           hash.put(hashing(key,i),players[i]);


        Player.storePlayerDetails(hash);


       


       Player.Update update;


       update =(HashMap<Integer,Player> hash_map)->


        {  


           LinkedList<Player>data=new LinkedList<Player>();      


           for(Integer i:hash_map.keySet())


           {


               Player temp = hash_map.get(i);


               double salary = temp.getSalary()+500;


               temp.setSalary(salary);


               data.add(temp);


           }


           return data;  


        };


       JavaApplication16 g = new JavaApplication16();


       LinkedList<Player>p=(LinkedList<Player>) update.updateSalaries(hash).clone();


       while(!p.isEmpty())


       {


           System.out.println( p.getFirst().getId()+" "+ p.getFirst().getName()+" "+ p.getFirst().getSalary()+" ");


           g.queue.add( p.getFirst());


           p.poll();


       }


     


       ActionListener action = new ActionListener()


       {


           @Override


           public void actionPerformed(ActionEvent e)


           {


               LinkedList<Player> p = g.queue ;


               g.timer.stop();


               printPlayerDetails(p);


               


           }


           


       };


       g.timer = new Timer(5000,action);


      g.timer.start();


       JOptionPane.showMessageDialog(null, "please wait to print player details");


       


       


   }


   


   public static int hashing(int key,int i)


   {


       return 2*key+i;


   }


   public static void printPlayerDetails(LinkedList<Player> q)


   {


       while(!q.isEmpty())


       {


           Player temp = q.getFirst();


           System.out.println(temp.getId()+" "+temp.getName()+" "+temp.getSalary()+" ");


           q.poll();


       }        


   }


   


}

Sewar Saify
Sewar Saify
.
.

تاريخ التسجيل : 28/05/2020
المساهمات : 5
النقاط : 11
التقيم : 4
الدولة : فلسطين
الجنس : انثى

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

تمارين بلغة الجافا ... create a class player with the following attributes Empty رد: تمارين بلغة الجافا ... create a class player with the following attributes

مُساهمة من طرف أحمد مناع الجمعة يونيو 12, 2020 2:45 pm

أحسنتى العمل الزميلة العزيزة @Sewar Saify

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

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

https://egy-tech.forumegypt.net

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

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

ََ

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


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