PDA

View Full Version : این برنامه رو با چه کلاسی یا چه روشی پیاده سازی کنم ؟



csharpdoost
دوشنبه 23 آبان 1390, 20:15 عصر
سلام
بنده از HashTable و SortedList خواستم استفاده کنم اما دیدم جواب نمیده . یعنی متدی که بتونم بر روی هر سه مورد زیر مانور بدم رو نتونستم بنویسم :
تعداد شیفتهای کاری چند نفر رو چطوری پیاده سازی کنم با توجه به :1-تعداد شیفتهای افراد عددی و متغیر است 2- اسامی از نوع رشته میباشد 3- در هر روز تعداد شیفت روزهای قبل هر شخص جمع شده و شخصی که کمترین شیفت را دارد در صورت شیفت بودن در آن روز انتخاب کنیم در غیر اینصورت نفر بعدی که کمترین شیفت را دارد و . . . یعنی سعی کنیم تعداد شیفتهای افراد نزدیک به هم باشد .:لبخندساده:

omidh2007
دوشنبه 23 آبان 1390, 23:47 عصر
اگه منظورتو متوجه شده باشم ،
این دو تا کلاس رو نوشتم . اولی توش یه فرد جدید با یه سری شیفت کاری تعریف میشه .
توی دومی ، اعضای کلاس اشخاص مدیریت میشن .


public class Person
{
public string Name;
public List<int> WorkShift;
public Person(string _name, List<int> _workshift)
{
Name = _name;
WorkShift = _workshift;
}
}

public class ShiftManager
{
List<Person> lst = new List<Person>();
void AddList(params Person[] p)
{
foreach (var item in p)
{
lst.Add(item as Person);
}
}

public static int GetLastShift(Person p)
{
return (p.WorkShift.LastOrDefault());
}
}

csharpdoost
سه شنبه 24 آبان 1390, 10:35 صبح
با تشکر
شما در کلاس دومی و متد دومی اخرین مقدار دریافتی رو برمیگردانید . شرط سومی که در بالا مطرح شده رعایت نمیشود. یعنی تعداد شیفتهای قبلی هر شخص جمع شود و کسی که کمترین شیفت را دارد انتخاب شود و اگر این شخص در روز جاری شیفت نبود نفر بعدی که کمترین شیفت را دارد انتخاب شود و . . . یعنی میتوان گفت تعداد شیفتها را به صورت صعودی مرتب کنیم و از نفر اول شروع به بررسی کردن نماییم اما مشکل این جاست که در صورت مرتب کردن صعودی رابطه شخص با عدد متناظرش گم میشود .مساله رو به اینصورت مطرح میکنم: متد یا کلاسی تعریف کنیم که بتوانیم هم به نام شخص و هم به تعداد شیفتهای آن شخص دسترسی داشته باشیم و هم تعداد شیفتهای همه افراد به صورت صعودی مرتب شده باشد .