PDA

View Full Version : الگوریتم رزرو وقت



behrouz110
جمعه 21 فروردین 1388, 00:40 صبح
سلام خدمت اساتید ارجمند
من یه مشکلی دارم ممنون میشم راهنماییم کنید
منظور من این هست که یکی بعنوان کاربر ( مثلا خودم ) بتونم از منزلم به سایت این مطب وارد بشم بعنوان یک باز دید کننده و یک وقت بگیرم .حالا این برنامه که در اختیار دارم بتونه هر وقت کسی وقتشو کنسل کرد و زود تر از وقت من بود اون وقتو برام رزرو کنه.
ممنون میشم راهنماییم کنید.

pesar irooni
جمعه 21 فروردین 1388, 01:25 صبح
خوب اینکه خیلی راحته . فقط باید از صف استفاده کرد.
اما مشکل اینجاست که مثلا من وقتی رو برای ساعت 10 رزرو میکنم و میرم دنبال کارم و 10 برمیگردم و میبینم که وقتی که رزرو کردم به 8 منتقل شده و الان کنسل شده چون دو سه نفر قبل از من وقتشنو کنسل کرده بودند. پس چه لزومی داره جلو بندازه.

behrouz110
دوشنبه 24 فروردین 1388, 00:39 صبح
سلام
میخوام این برنامه وقتهایی که هر کس کنسل میکنه رو بتونه اتومات برام رزرو کنه
ممنون میشم کمک کنید:ناراحت:

pesar irooni
دوشنبه 24 فروردین 1388, 00:54 صبح
خوب از یه ساختمان داده صف استفاده میکنی. هرکس که کنسل میکنه یه جستجو میکنی و بعد اونو از صف حذف میکنی و یا به یکی دیگه میدی!!

behrouz110
سه شنبه 25 فروردین 1388, 00:44 صبح
با سلام
من این کاری که شما می فرمایید رو نمیدونم چه جوریه میشه بیشتر راهنماییم کنید

pesar irooni
سه شنبه 25 فروردین 1388, 01:45 صبح
امیدوارم ساختمان داده صف و ترجیحا صف اولویت دار رو مطالعه کرده باشی.
اول با استفاده از آرایه (آرایه ای از رکورد و یا شیء) یه صف شبیه سازی میکنی و بعد هر رزرو که انجام میشه یک رکورد از این آرایه رو مقدار دهی کرد (یا یک شیء new میکنی) .
سپس هر کنسل که انجام میشه با استفاده از جستجو(ی خطی!! و یا جستجوی های بهتر) اون خونه از آرایه رو پیدا میکنی و حالا میتونی اون رو به یکی دیگه اختصاص بدی و یا اینکه حذف کنی و تمام خونه های آرایه رو یکی به جلو شیفت بدی.
مکان های آرایه میتونند بیانگر زمان رزرو شده باشند (البته اگه زمان بترتیب رزرو میشه. یعنی قبل از رزرو 10 ، 9 باید رزرو شده باشه)
100% راه حلهای بهتری هم هست که در ادامه میتونه به فکرمون خطور کنه و این راه خیلی مبتدیانه ست.

mortezamsp
چهارشنبه 02 اردیبهشت 1388, 22:43 عصر
میگم بهتر بجای اینکه تغییرات رو در یک جا ثبت کنی و بعد بری جست وجو کنی اون پیدا کنی ، در هر تابع cancel بیای یک فراخاونی انجام بدی ( تغییرات رو در همون لحظه بصورت آرگومان بفرستی ):
class reserv()
{

int last_user;

void cancel(int user_number)
{

delet(user_number);

re_reserv(user_number,last_number);
{

{

منظورم اینه که اسم آخرین عضو رو در متغیری ذخیره کنی تا هروقت که یکی کنسل کرد زود بیاد اسم آخرین نفر رو و مکان خودشو بفرسته به تابع re_resrev تا وقت جدید رزرو شه.