PDA

View Full Version : انتخاب واحد دانشگاه



بیتافرهی
جمعه 11 اردیبهشت 1388, 09:28 صبح
سلام
من دارم برای سیستم انتخاب واحد دانشگاه یه برنامه مینویسم.برای این قسمت 3 تا جدول درنظر گرفتم.جدول درسهای گرفته شده توسط دانشجو(در ترم های قبل )-جدول دروس پیش نیاز هر درس و جدول دروس ارائه شده در ترم جاری.
مشکلم اینجاست که می خوام هر دانشجو قبل از اینکه درسی را که انتخاب کرده برایش در جدول درسهای گرفته شده ثبت شود،اول چک شود(در جدول دروس گذرانده شده در ترم های قبل)که آیا دروس پیش نیاز این درس را گذرانده یا نه.که لازمه ی انجام این کار این است که از جدول دروس پیش نیاز ،دروسی که پیش نیاز این درس هستند استخراج شود.

ضمنا چون این سیستم تحت وب است و امکان ثبت نام برای همه است و اینکه ظرفیت کلاس ها محدود است ،من می خوام هنگامی که دانشجو یک درس را انتخاب کرد،و دکمه ی ثبت اون درس را زد این مراحل در موردش انجام بشه(تمام درس ها با یک دکمه ثبت نمی شوند،برای هر درس یک دکمه ی ثبت در گرید ویو وجود دارد)

از نظر اجرایی نمی دونم چطوری باید این مراحلو پیاده کنم(با وارد کردن اطلاعات در بانک مشکلی ندارم ولی این که بخواد دروس پیش نیازو پیدا کنه،مخصوصا اگر یه درس بیشتر از یک درس پیش نیاز داشته باشه و اونو با دروسی که قبلا گذرانده مقایسه کنه با پیاده سازیش خیلی مشکل دارم).لطفا منو راهنمایی کنید.

khaste_007
جمعه 11 اردیبهشت 1388, 21:39 عصر
با سلام
جواب شما را با یک مثال می زنم
فرض کنید درس 5 توسط دانشجوی a انتخاب شده تا ثبت شود.
دانشجوی a درس های 1 تا 4 را پاس کرده.
درس 5 دارای پیش نیاز های 1و 3 می باشد.
حالا اصولا طبق طراحی که کرده اید اطلاعاتی شبیه به اینها در جداول شما هست
جدول درس های گذشته
درس دانشجو
a 1
a 2
a 3
a 4

جدول پیش نیاز
درس درس پیش نیاز
5 1
5 3
خوب حالا تو محیط برنامه شما هم اطلاعات دانشجو رو دارید هم اطلاعات درسی که انتخاب شده
دو راه دارید می تونید از طریق sql و join اطلاعات لازم رو بدست بیارید و یا ترکیبی از دو تا select ساده و چند تا خط کد ساده
روش اول:این روش رو می شه تقریبا هزار جور پیادش کرد یک چیزی که الان به ذهنم می رسه اینه که شما می یایی کوئری ای می نویسی که جدول اول و دوم رو باهم join می کنی با شرط درس 5 و دانشجو a و با شرط join که درس پیش نیاز=درس در جدول درس های دانشجو و سپس مقایسه تعداد سطر ها ی آن با یک select ساده در جدول پیشنیاز ها که شرط آن درس=5 باشد. اگر این تعداد سطر ها برابر بود خوب یعنی همه پیش نیاز ها قبلا گرفته شده.
روش دوم: در این روش شما با دوتا select ساده رو این دو تا جدول که شرط اونا رو دانشجو = a و درس = 5 قرار می دی دوتا دیتا تیبل به دست میاری حالا با کد نویسی اطلاعات این دیتا تیبل ها رو سطر به سطر می خونی و با مقایسه اطلاعاتی رو که می خواهی می توانی به دست بیاری.

بیتافرهی
شنبه 19 اردیبهشت 1388, 10:40 صبح
سلام
من الان تا اینجا پیش رفتم که هر دانشجو میتونه ثبت نام کنه اما واحد هایی که در ترم جدید برمیدارد در یک جدول موقت که فیلدهایش با فیلدهای جدول دروس پاس شده توسط دانشجو در ترم های گذشته ،یکی است .
یعنی ساختار جدول دروس گذرانده در ترم های قبل را با ساختار دروسی که این ترم دانشجو تازه انتخاب کرده یکی گرفتم.موقع انتخاب واحد هر دانشجو در ترم جدید ،ابتدا چک می شود که درسی که دانشجو الان انتخاب کرده قبلا پیش نیازش را پاس کرده باشد ،اگر پیش نیاز پاس شده بود ابتدا این درس در جدول دروس انتخاب شده در ترم جدید به نام داشنجو ثبت می شود.

الان مشکلم اینجاست که در سیتم های انتخاب واحد واقعی این جریان انتخاب واحد چگونه انجام میشود.
یعنی تا اینجا من برای هر دانشجو دو تا جدول برای انتخاب واحد در نظر گرفتم.چطوری و براساس چه روندی ،باید این جدول به جدول دروس گذرانده در ترم های قبل اضافه شود.(این کار باید توسط اپراتور سیستم انجام شود ولی نمیدونم بعد از چه مدت و چطوری ؟)