اذهب إلى المحتوى
  • 0

سؤال عن حذف مصفوفة وجمع مصفوفة وتغيير بيانات

Kelam Myn

السؤال

جمع جميع emp_add

حذف بيانات عامل 

تعديل emp_add

int emp_id;
string Emp_Name;
int Emp_Salary;//cost salary in one hour
double Emp_Department;//number hours work
double Emp_add;//hours add
double Emp_total;
double Emp_tax;//clcluter tax in end month
double Emp_inmonth;//salary after tax
double Emp_addn;//edite hours add
double Emp_ave;//clculter  salary average in month
static void Main(string[] args)
{
  // Geeks data
  List<Geek> Geeks = new List<Geek>()
  { 
    new Geek{emp_id = 1, Emp_Name = "Sumit", Emp_Salary = 15, Emp_Department = 1,Emp_add=1,},
    new Geek{emp_id = 2, Emp_Name = "Rohan", Emp_Salary = 65000, Emp_Department = 2,Emp_add=1},
    new Geek{emp_id = 3, Emp_Name = "Mohit",

  }

 

تم التعديل في بواسطة Hassan Hedr
تنسيق الشيفرة
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يرجى إرفاق الشيفرة بشكل كامل، ومحاولة حل المشكلة وعند ظهور أخطاء أو مشاكل توضيح المشكلة التي تواجهها بشكل واضح ليتمكن زوار الأكاديمية من مساعدتك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

أعتقد أن تلك الشفرة كُتبت بواسطة لغة الجافا, وبالتالي يمكنك تحقيق الأغراض المطلوبة بواسطة التالي:

  1. بالنسبة إلى جمع الemp_add يمكن تحقيقه عبر إستخدام الصنف stream الذي تم تقديمه في الإصدار جافا8 والذي يقوم بأخذ المعطيات على هيئة قطع(chunks) ومعالجتها معطى تلو الأخر, وبالتحديد يمكننا إستخدام الدالة reduce والتي تقوم بتنفيذ عمليات متتالية على المعطيات وتخزينها في متغير يعبر عن الناتج ومن ثم يتم إعطاء هذا الناتج كمعطى للدالة في المرة القادمة كما يتضح من الشفرة التالية 
    int total_emp_add = Geeks
      .stream()
      .reduce(0, (subtotal, element) -> subtotal + element.Emp_add);

    حيث تبدأ الدالة بقيمة إبتدائية لمتغير الsubtotal تساوي صفر, ومن ثم تقوم بجمعه مع متغير الemp_add للكائن الاول ومن ثم يتم تمرير ناتج الجمع إلى المتغير subtotal في اللفة الثانية فيتم جمع الناتتج مع الemp_add للكائن الثاني وهكذا حتى يتم الإنتهاء من القائمة فينتج لنا في النهاية ناتج جمع الemp_add

  2. يمكننا حذف العامل ببساطة عبر إستخدام الدالة removeIf والتي تقوم باللف على جميع عناصر القائمة حتى تجد عنصر يتحقق فيه الشرط الذي سنمرره فيتم حذفه 

    Geeks.removeIf(g -> g.emp_id == id);

    في تلك الشفرة يتم حذف العامل الذي يكون الid الخاص به مساوي للمتغير id 

  3. يمكننا هنا إستخدام ال Iterator وهو عبارة عن كائن يقوم باللف على جميع عناصر القائمة ونقوم بالتحقق في كل مرة أن العامل الذي لدينا يستوفي شروط العامل الذي نريد أن نقوم بتعديله, إن كانت الإجابة بنعم فنقوم حينئذ بتغيير قيمته عبر الدالة set كما يتضح لنا في الشفرة التالية 

    ListIterator<Geek> iterator = Geeks.ListIterator()
    while (iteratir.hasNext()) {
         Geek next = iterator.next();
         if (next.emp_id==id) {
             /
             iterator.set(New_Geek);
         }
     }

    وبالطبع يتم إستبدال الكائن New_Geek بالكائن الجديد الذي نريد إدراجه 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...