PDA

View Full Version : سوال: آزمون آنلاین



hamid1752
پنج شنبه 18 شهریور 1389, 03:13 صبح
با سلام خدمت اساتید.
من با asp.net می خوام آزمون آنلاین درست کنم که سوالات از بانک sql خوانده میشه و جوابها هم در بانک ذخیره میشه. من با استفاده از datalist سوال ها را نشان می دم و مشکلم اینجاست که چطور کاربر وقتی به سوالها جواب میده جوابها در بانک ذخیره بشه.
از اساتید تقاضا دارم که یه راه حل جلوی پای من بگذارند.
با تشکر

hamid1752
شنبه 20 شهریور 1389, 04:26 صبح
کسی نمی خواد کمک کنه

Mostafa_Dindar
شنبه 20 شهریور 1389, 11:08 صبح
کسی نمی خواد کمک کنه

وقتی شما خوب سوال بپرسی چرا کسی نخواد کمک کنه ؟ :چشمک:سوال شما خیلی کلی هست , اگر در قسمت خاصی از اون به مشکل خوردید مطرح کنید و الا این موضوع میتونه خیلی کسترده باشه .

موفق باشید

naser2009
شنبه 20 شهریور 1389, 11:11 صبح
سلام دوسته من
اگه از Datalist پیج بندی شده استفاده میکنی که باید جواب ها رو موقع عوض شدن صفحه هم ذخیره و لود کنی ولی اگه تمامی سوالات در یک صفحه نشون داده میشه باید با استفاده از متد FindControl یه حلقه for ، دیتالیست رو از اول تا آخر پیمایش کنی و Radiobutton ها رو بگیری و یکی یکی درج کنی داخل دیتابیست. در ضمن تو دیتالیست یه label هم در نظر بگیر واسه questionid ولی Visible شو false کن تا دیده نشه بعد از اون میتونی استفاده کنی تا جواب ها رو درج کنی چون طبیعتا در جدول جواب ها باید فیلد questionid به عنوان FK درج بشه.

کار کنین اگه مشکلی بود بپرسین:چشمک:

z_maleki
شنبه 20 شهریور 1389, 13:22 عصر
سلام منم همین مشکلو دارم البته تو کار با timer هم مشکل دارم اگه میشه استید کد بزارنممنون میشم

hamid1752
شنبه 20 شهریور 1389, 13:46 عصر
سلام دوسته من
اگه از Datalist پیج بندی شده استفاده میکنی که باید جواب ها رو موقع عوض شدن صفحه هم ذخیره و لود کنی ولی اگه تمامی سوالات در یک صفحه نشون داده میشه باید با استفاده از متد FindControl یه حلقه for ، دیتالیست رو از اول تا آخر پیمایش کنی و Radiobutton ها رو بگیری و یکی یکی درج کنی داخل دیتابیست. در ضمن تو دیتالیست یه label هم در نظر بگیر واسه questionid ولی Visible شو false کن تا دیده نشه بعد از اون میتونی استفاده کنی تا جواب ها رو درج کنی چون طبیعتا در جدول جواب ها باید فیلد questionid به عنوان FK درج بشه.

کار کنین اگه مشکلی بود بپرسین:چشمک:


ممنون ولی من با find control و حلقه for کار کردم وقتی کاربر دکمه ثبت رو می زد فقط یک رکورد درج می کرد نمی دونم مشکل از کجاست که یک رکورد درج میشه توی دیتابیس

احمد سامعی
شنبه 20 شهریور 1389, 14:32 عصر
سلام

اول اینکه آیا فقط کاربران ثبت نام شده می تونن امتحان بدهند ؟ یا نه
اگر فقط ثبت نام شدگان امکان دارند، آیا نباید یک آرشیو از امتحاناتی که فرد داده رو داشته باشیم ؟ در واقع باید اینطور باشه

اگر هر دو سوال بالا جوابش مثبت باشه؛ راه حل ساده می شه،

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

دومین روش وقتی که آزمون ها ثابت هستند یعنی یکسری سوالات مشخص از تمام کاربران پرسیده می شه که راحتر می شه و به عهده خودتون

می بینید که طراحی اولیه بانک ها ساده می شه اما مهم و پرکاربرد
کاربردش برای تححیح آزمون ها و دادن کارنامه در هر زمان به مدیر و کاربر هست

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

در ضمن سعی کنید از sp استفاده کنید بسیار در کدنویسی سمت دیتابیس راحت تر می شه و سرعت عمل برنامه و شما بالاتر می ره چون همزمان می تونید چند عمل در دیتابیس انجام
بدید

برای نمایش سوالات و جواب های چهار جوابی می تونید از Repeater استفاده کنید که کارکردن باهاش بسیار ساده هست
من یک نمونه برنامه هم پیوست کرم که بجای دیتابیس سوالات با حلقه ایجاد کردم که فایل نمونه سبک بشه

برای کار با سوالات من یک کلاس ایجاد کردم که زمان ذخیره سوال جدید و دریافت اون کار بسیار راحت می کنه که بنا به نیاز خودتون می تونید تغییرش بدید

hamid1752
یک شنبه 21 شهریور 1389, 01:27 صبح
سلام

اول اینکه آیا فقط کاربران ثبت نام شده می تونن امتحان بدهند ؟ یا نه
اگر فقط ثبت نام شدگان امکان دارند، آیا نباید یک آرشیو از امتحاناتی که فرد داده رو داشته باشیم ؟ در واقع باید اینطور باشه

اگر هر دو سوال بالا جوابش مثبت باشه؛ راه حل ساده می شه،

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

دومین روش وقتی که آزمون ها ثابت هستند یعنی یکسری سوالات مشخص از تمام کاربران پرسیده می شه که راحتر می شه و به عهده خودتون

می بینید که طراحی اولیه بانک ها ساده می شه اما مهم و پرکاربرد
کاربردش برای تححیح آزمون ها و دادن کارنامه در هر زمان به مدیر و کاربر هست

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

در ضمن سعی کنید از sp استفاده کنید بسیار در کدنویسی سمت دیتابیس راحت تر می شه و سرعت عمل برنامه و شما بالاتر می ره چون همزمان می تونید چند عمل در دیتابیس انجام
بدید

برای نمایش سوالات و جواب های چهار جوابی می تونید از Repeater استفاده کنید که کارکردن باهاش بسیار ساده هست
من یک نمونه برنامه هم پیوست کرم که بجای دیتابیس سوالات با حلقه ایجاد کردم که فایل نمونه سبک بشه

برای کار با سوالات من یک کلاس ایجاد کردم که زمان ذخیره سوال جدید و دریافت اون کار بسیار راحت می کنه که بنا به نیاز خودتون می تونید تغییرش بدید



ممنون از راهنمایی خوبتون
امیدوارم مشکلم حل بشه