تمارين بلغة الجافا ... create a class player with the following attributes
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: نقاش و أستفسارات الاعضاء
صفحة 1 من اصل 1 • شاطر
تمارين بلغة الجافا ... create a class player with the following attributes
اهلا بكم السؤال على النحو التالى :
2_فى الفئة player إنشاء طريقة Generic method باسم StoreplayerDetails لاخذ خريطة مجزئة hashmap كملعمة لها وحفظ بيانات هذه الخريطة فى ملف نصي بالتنسيق التالي : key id name salary
ثانيا : الفئة MainProgram
المطلوب فى هذا النشاط ما يلى :
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 باستخدام المعدالة التالية :
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());
});
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: تمارين بلغة الجافا ... create a class player with the following attributes
يعطيك الف العافية
هل هناك اي حل بخصوص الفرع C ؟
هل هناك اي حل بخصوص الفرع C ؟
Sewar Saify- .
- تاريخ التسجيل : 28/05/2020
المساهمات : 5
النقاط : 11
التقيم : 4
الدولة :
الجنس :
رد: تمارين بلغة الجافا ... create a class player with the following attributes
Sewar Saify كتب:يعطيك الف العافية
هل هناك اي حل بخصوص الفرع C ؟
اهلا وسهلا استاذة
انا فعلا حاولت انفذ actionlistener فى الواجهة الغير رسومية لكن البرنامج لم يعمل وهذا كان مطلوب فى الفرع C لذلك اكتفيت بتنفيذ المطاليب فى الدالة الرئسية فقط ...على اى حال ساحول مرة اخري وان توصلت لذلك سوف اخبركم ان شاء الله تعالى
واتمنى لو توصلى لفعل ذلك لا تبخلى علينا
تحياتى
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: تمارين بلغة الجافا ... create a class player with the following attributes
هاد حل السؤال كامل ويتضمن الفرع 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- .
- تاريخ التسجيل : 28/05/2020
المساهمات : 5
النقاط : 11
التقيم : 4
الدولة :
الجنس :
رد: تمارين بلغة الجافا ... create a class player with the following attributes
أحسنتى العمل الزميلة العزيزة @Sewar Saify
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: نقاش و أستفسارات الاعضاء
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» تصميم تطبيق جوال لمغسلة ملابس
» تصميم تطبيق جوال لشركة عقارات
» شركة مكافحة النمل الابيض بالرياض
» تصميم تطبيق جوال لنقل الاثاث
» هناجر
» تصميم تطبيق جوال لمتجر ورد
» تصميم تطبيق جوال لسلسلة مطاعم
» تصميم تطبيق جوال لتوصيل الطلبات
» مظلات سيارات متحركة