amin123
پنج شنبه 05 خرداد 1390, 02:10 صبح
با سلام . من دارم یک آرایشگاه با شرایط زیر رو شبیه سازی میکنم .
دو آرایشگر داریم.
در هر 4.5 دقیقه یک مشتری وارد آرایشگاه میشود اگر هر دو آرایشگر بیکار باشند آرایشگر اول کار را شروع میکند
و طبیعی است هرگاه آرایشگر اول بیکار نبود آرایشگر دوم کارش را شروع میکند.
اگر مشتری سومی بیاید و هر دو آرایشگر در حال فعالیت باشند این مشتری با احتمال 0.3 ممکن است در یک محدوده ی زمانی 40 تا 80 دقیقه دیگر برگردد به آرایشگاه و البته با او مثل بقیه مشتری های جدید برخورد میشود
مشکل من اینه که وقتی این مشتری بعد از مثلا 1 ساعت برمیگرده چطوری باید اون رو وارد لیست یا صف بکنم که آرایش بشه .؟ این کار برای 300 مشتری شبیه سازی میشود .
من اینطوری کد نوشتم
.................................................. .......
namespace ShabiSazi2
{
class Program
{
static int currentCustomer = 1;
static Timer aTimer = new Timer();
class Customer
{
public string Id;
public double startTime;
public double finishTime;
public bool comeBack;
public double comeBackTime;
}
class Barber
{
double barber1Time;
double barber2Time;
}
class MyTimer
{
public void Timerr()
{
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 4500;
aTimer.Enabled = true;
}
}
static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Customer newCustomer = new Customer();
Mohasebe(newCustomer);
newCustomer.Id = currentCustomer.ToString();
currentCustomer++;
if (currentCustomer > 300)
aTimer.Stop();
}
private static void Mohasebe(Customer newCustomer)
{
....................
}
دو آرایشگر داریم.
در هر 4.5 دقیقه یک مشتری وارد آرایشگاه میشود اگر هر دو آرایشگر بیکار باشند آرایشگر اول کار را شروع میکند
و طبیعی است هرگاه آرایشگر اول بیکار نبود آرایشگر دوم کارش را شروع میکند.
اگر مشتری سومی بیاید و هر دو آرایشگر در حال فعالیت باشند این مشتری با احتمال 0.3 ممکن است در یک محدوده ی زمانی 40 تا 80 دقیقه دیگر برگردد به آرایشگاه و البته با او مثل بقیه مشتری های جدید برخورد میشود
مشکل من اینه که وقتی این مشتری بعد از مثلا 1 ساعت برمیگرده چطوری باید اون رو وارد لیست یا صف بکنم که آرایش بشه .؟ این کار برای 300 مشتری شبیه سازی میشود .
من اینطوری کد نوشتم
.................................................. .......
namespace ShabiSazi2
{
class Program
{
static int currentCustomer = 1;
static Timer aTimer = new Timer();
class Customer
{
public string Id;
public double startTime;
public double finishTime;
public bool comeBack;
public double comeBackTime;
}
class Barber
{
double barber1Time;
double barber2Time;
}
class MyTimer
{
public void Timerr()
{
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 4500;
aTimer.Enabled = true;
}
}
static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Customer newCustomer = new Customer();
Mohasebe(newCustomer);
newCustomer.Id = currentCustomer.ToString();
currentCustomer++;
if (currentCustomer > 300)
aTimer.Stop();
}
private static void Mohasebe(Customer newCustomer)
{
....................
}